adcp 2.3.0__tar.gz → 2.4.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {adcp-2.3.0/src/adcp.egg-info → adcp-2.4.0}/PKG-INFO +1 -1
- {adcp-2.3.0 → adcp-2.4.0}/pyproject.toml +1 -1
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/__init__.py +1 -1
- adcp-2.4.0/src/adcp/types/generated.py +119 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/__init__.py +1 -1
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/activate_signal_request.py +5 -5
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/activate_signal_response.py +9 -9
- adcp-2.4.0/src/adcp/types/generated_poc/activation_key.py +30 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/adagents.py +46 -46
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/asset_type.py +19 -19
- adcp-2.4.0/src/adcp/types/generated_poc/audio_asset.py +26 -0
- adcp-2.4.0/src/adcp/types/generated_poc/brand_manifest.py +260 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/build_creative_request.py +6 -6
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/build_creative_response.py +9 -9
- adcp-2.4.0/src/adcp/types/generated_poc/channels.py +19 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/cpc_option.py +12 -8
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/cpcv_option.py +12 -8
- adcp-2.4.0/src/adcp/types/generated_poc/cpm_auction_option.py +58 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/cpm_fixed_option.py +12 -8
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/cpp_option.py +17 -13
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/cpv_option.py +16 -12
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/create_media_buy_request.py +29 -29
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/create_media_buy_response.py +11 -11
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/creative_asset.py +13 -13
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/creative_assignment.py +4 -4
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/creative_manifest.py +4 -4
- adcp-2.4.0/src/adcp/types/generated_poc/creative_policy.py +34 -0
- adcp-2.4.0/src/adcp/types/generated_poc/creative_status.py +14 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/css_asset.py +3 -3
- adcp-2.4.0/src/adcp/types/generated_poc/daast_asset.py +76 -0
- adcp-2.4.0/src/adcp/types/generated_poc/delivery_metrics.py +111 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/delivery_type.py +3 -3
- adcp-2.4.0/src/adcp/types/generated_poc/deployment.py +78 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/destination.py +10 -10
- adcp-2.4.0/src/adcp/types/generated_poc/error.py +29 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/flat_rate_option.py +16 -16
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/format.py +70 -70
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/format_id.py +3 -3
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/frequency_cap.py +3 -3
- adcp-2.4.0/src/adcp/types/generated_poc/frequency_cap_scope.py +16 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/get_media_buy_delivery_request.py +21 -21
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/get_media_buy_delivery_response.py +46 -46
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/get_products_request.py +23 -23
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/get_products_response.py +5 -5
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/get_signals_request.py +19 -19
- adcp-2.4.0/src/adcp/types/generated_poc/get_signals_response.py +65 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/html_asset.py +3 -3
- adcp-2.4.0/src/adcp/types/generated_poc/identifier_types.py +29 -0
- adcp-2.4.0/src/adcp/types/generated_poc/image_asset.py +23 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/javascript_asset.py +7 -7
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/list_authorized_properties_request.py +5 -5
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/list_authorized_properties_response.py +9 -9
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/list_creative_formats_request.py +22 -22
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/list_creative_formats_response.py +11 -11
- adcp-2.4.0/src/adcp/types/generated_poc/list_creatives_request.py +154 -0
- adcp-2.4.0/src/adcp/types/generated_poc/list_creatives_response.py +234 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/markdown_asset.py +7 -7
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/measurement.py +9 -9
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/media_buy.py +8 -8
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/media_buy_status.py +5 -5
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/pacing.py +4 -4
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/package.py +8 -8
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/package_request.py +7 -7
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/package_status.py +5 -5
- adcp-2.4.0/src/adcp/types/generated_poc/performance_feedback.py +89 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/placement.py +4 -4
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/preview_creative_request.py +28 -28
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/preview_creative_response.py +31 -31
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/preview_render.py +36 -28
- adcp-2.4.0/src/adcp/types/generated_poc/pricing_model.py +17 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/product.py +32 -31
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/promoted_offerings.py +29 -29
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/promoted_products.py +3 -3
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/property.py +18 -18
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/protocol_envelope.py +9 -9
- adcp-2.4.0/src/adcp/types/generated_poc/provide_performance_feedback_request.py +85 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/provide_performance_feedback_response.py +9 -9
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/publisher_identifier_types.py +6 -6
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/push_notification_config.py +9 -9
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/reporting_capabilities.py +21 -21
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/response.py +5 -5
- adcp-2.4.0/src/adcp/types/generated_poc/standard_format_ids.py +45 -0
- adcp-2.4.0/src/adcp/types/generated_poc/sub_asset.py +55 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/sync_creatives_request.py +11 -11
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/sync_creatives_response.py +23 -23
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/targeting.py +9 -9
- adcp-2.4.0/src/adcp/types/generated_poc/task_status.py +19 -0
- adcp-2.4.0/src/adcp/types/generated_poc/task_type.py +15 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/tasks_get_request.py +5 -5
- adcp-2.4.0/src/adcp/types/generated_poc/tasks_get_response.py +112 -0
- adcp-2.4.0/src/adcp/types/generated_poc/tasks_list_request.py +121 -0
- adcp-2.4.0/src/adcp/types/generated_poc/tasks_list_response.py +122 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/text_asset.py +3 -3
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/update_media_buy_request.py +27 -27
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/update_media_buy_response.py +11 -11
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/url_asset.py +7 -7
- adcp-2.4.0/src/adcp/types/generated_poc/vast_asset.py +86 -0
- adcp-2.4.0/src/adcp/types/generated_poc/vcpm_auction_option.py +61 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/vcpm_fixed_option.py +12 -8
- adcp-2.4.0/src/adcp/types/generated_poc/video_asset.py +28 -0
- adcp-2.4.0/src/adcp/types/generated_poc/webhook_asset.py +65 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/webhook_payload.py +18 -18
- {adcp-2.3.0 → adcp-2.4.0/src/adcp.egg-info}/PKG-INFO +1 -1
- adcp-2.3.0/src/adcp/types/generated.py +0 -614
- adcp-2.3.0/src/adcp/types/generated_poc/activation_key.py +0 -30
- adcp-2.3.0/src/adcp/types/generated_poc/audio_asset.py +0 -26
- adcp-2.3.0/src/adcp/types/generated_poc/brand_manifest.py +0 -260
- adcp-2.3.0/src/adcp/types/generated_poc/channels.py +0 -19
- adcp-2.3.0/src/adcp/types/generated_poc/cpm_auction_option.py +0 -54
- adcp-2.3.0/src/adcp/types/generated_poc/creative_policy.py +0 -34
- adcp-2.3.0/src/adcp/types/generated_poc/creative_status.py +0 -14
- adcp-2.3.0/src/adcp/types/generated_poc/daast_asset.py +0 -76
- adcp-2.3.0/src/adcp/types/generated_poc/delivery_metrics.py +0 -111
- adcp-2.3.0/src/adcp/types/generated_poc/deployment.py +0 -78
- adcp-2.3.0/src/adcp/types/generated_poc/error.py +0 -29
- adcp-2.3.0/src/adcp/types/generated_poc/frequency_cap_scope.py +0 -16
- adcp-2.3.0/src/adcp/types/generated_poc/get_signals_response.py +0 -65
- adcp-2.3.0/src/adcp/types/generated_poc/identifier_types.py +0 -29
- adcp-2.3.0/src/adcp/types/generated_poc/image_asset.py +0 -23
- adcp-2.3.0/src/adcp/types/generated_poc/list_creatives_request.py +0 -154
- adcp-2.3.0/src/adcp/types/generated_poc/list_creatives_response.py +0 -234
- adcp-2.3.0/src/adcp/types/generated_poc/performance_feedback.py +0 -89
- adcp-2.3.0/src/adcp/types/generated_poc/pricing_model.py +0 -17
- adcp-2.3.0/src/adcp/types/generated_poc/provide_performance_feedback_request.py +0 -85
- adcp-2.3.0/src/adcp/types/generated_poc/standard_format_ids.py +0 -45
- adcp-2.3.0/src/adcp/types/generated_poc/sub_asset.py +0 -55
- adcp-2.3.0/src/adcp/types/generated_poc/task_status.py +0 -19
- adcp-2.3.0/src/adcp/types/generated_poc/task_type.py +0 -15
- adcp-2.3.0/src/adcp/types/generated_poc/tasks_get_response.py +0 -112
- adcp-2.3.0/src/adcp/types/generated_poc/tasks_list_request.py +0 -121
- adcp-2.3.0/src/adcp/types/generated_poc/tasks_list_response.py +0 -122
- adcp-2.3.0/src/adcp/types/generated_poc/vast_asset.py +0 -86
- adcp-2.3.0/src/adcp/types/generated_poc/vcpm_auction_option.py +0 -57
- adcp-2.3.0/src/adcp/types/generated_poc/video_asset.py +0 -28
- adcp-2.3.0/src/adcp/types/generated_poc/webhook_asset.py +0 -65
- {adcp-2.3.0 → adcp-2.4.0}/LICENSE +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/README.md +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/setup.cfg +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/__main__.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/adagents.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/client.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/config.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/exceptions.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/protocols/__init__.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/protocols/a2a.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/protocols/base.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/protocols/mcp.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/py.typed +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/simple.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/testing/__init__.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/testing/test_helpers.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/__init__.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/aliases.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/base.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/core.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/brand_manifest_ref.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/index.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/pricing_option.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/types/generated_poc/start_timing.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/utils/__init__.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/utils/operation_id.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/utils/preview_cache.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/utils/response_parser.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp/validation.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp.egg-info/SOURCES.txt +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp.egg-info/dependency_links.txt +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp.egg-info/entry_points.txt +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp.egg-info/requires.txt +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/src/adcp.egg-info/top_level.txt +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_adagents.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_cli.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_client.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_code_generation.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_discriminated_unions.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_format_id_validation.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_helpers.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_preview_html.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_protocols.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_response_parser.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_simple_api.py +0 -0
- {adcp-2.3.0 → adcp-2.4.0}/tests/test_type_aliases.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "adcp"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.4.0"
|
|
8
8
|
description = "Official Python client for the Ad Context Protocol (AdCP)"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "AdCP Community", email = "maintainers@adcontextprotocol.org"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"""Generated AdCP types.
|
|
2
|
+
|
|
3
|
+
Auto-generated by datamodel-code-generator from JSON schemas.
|
|
4
|
+
DO NOT EDIT MANUALLY.
|
|
5
|
+
|
|
6
|
+
Generated from: https://github.com/adcontextprotocol/adcp/tree/main/schemas
|
|
7
|
+
Generation date: 2025-11-18 03:04:43 UTC
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
# Import all types from generated_poc modules
|
|
13
|
+
from adcp.types.generated_poc.activate_signal_request import ActivateSignalRequest
|
|
14
|
+
from adcp.types.generated_poc.activate_signal_response import ActivateSignalResponse, ActivateSignalResponse1, ActivateSignalResponse2
|
|
15
|
+
from adcp.types.generated_poc.activation_key import ActivationKey1, ActivationKey2
|
|
16
|
+
from adcp.types.generated_poc.adagents import AuthorizedAgents, AuthorizedAgents1, AuthorizedAgents2, AuthorizedAgents3, AuthorizedSalesAgents, Contact, PropertyId, PropertyTag, PublisherProperties, PublisherProperties1, Tags
|
|
17
|
+
from adcp.types.generated_poc.asset_type import AssetTypeSchema, ContentLength, Dimensions, Duration, FileSize, Quality, Requirements, Type
|
|
18
|
+
from adcp.types.generated_poc.audio_asset import AudioAsset
|
|
19
|
+
from adcp.types.generated_poc.brand_manifest import Asset, Asset1, AssetType, BrandManifest1, BrandManifest2, Colors, Disclaimer, FeedFormat, Fonts, Logo, Metadata, ProductCatalog, ProductCatalog1, UpdateFrequency
|
|
20
|
+
from adcp.types.generated_poc.brand_manifest_ref import BrandManifest, BrandManifestReference
|
|
21
|
+
from adcp.types.generated_poc.build_creative_request import BuildCreativeRequest
|
|
22
|
+
from adcp.types.generated_poc.build_creative_response import BuildCreativeResponse, BuildCreativeResponse1, BuildCreativeResponse2
|
|
23
|
+
from adcp.types.generated_poc.channels import AdvertisingChannels
|
|
24
|
+
from adcp.types.generated_poc.cpc_option import CpcPricingOption
|
|
25
|
+
from adcp.types.generated_poc.cpcv_option import CpcvPricingOption
|
|
26
|
+
from adcp.types.generated_poc.cpm_auction_option import CpmAuctionPricingOption, PriceGuidance
|
|
27
|
+
from adcp.types.generated_poc.cpm_fixed_option import CpmFixedRatePricingOption
|
|
28
|
+
from adcp.types.generated_poc.cpp_option import CppPricingOption, Parameters
|
|
29
|
+
from adcp.types.generated_poc.cpv_option import CpvPricingOption, ViewThreshold, ViewThreshold1
|
|
30
|
+
from adcp.types.generated_poc.create_media_buy_request import CreateMediaBuyRequest, ReportingFrequency, ReportingWebhook, RequestedMetric
|
|
31
|
+
from adcp.types.generated_poc.create_media_buy_response import CreateMediaBuyResponse, CreateMediaBuyResponse1, CreateMediaBuyResponse2, Package
|
|
32
|
+
from adcp.types.generated_poc.creative_asset import CreativeAsset, Input
|
|
33
|
+
from adcp.types.generated_poc.creative_assignment import CreativeAssignment
|
|
34
|
+
from adcp.types.generated_poc.creative_manifest import CreativeManifest
|
|
35
|
+
from adcp.types.generated_poc.creative_policy import CoBranding, CreativePolicy, LandingPage
|
|
36
|
+
from adcp.types.generated_poc.creative_status import CreativeStatus
|
|
37
|
+
from adcp.types.generated_poc.css_asset import CssAsset
|
|
38
|
+
from adcp.types.generated_poc.daast_asset import DaastAsset1, DaastAsset2, DaastVersion, TrackingEvent
|
|
39
|
+
from adcp.types.generated_poc.delivery_metrics import DeliveryMetrics, DoohMetrics, QuartileData, VenueBreakdownItem
|
|
40
|
+
from adcp.types.generated_poc.delivery_type import DeliveryType
|
|
41
|
+
from adcp.types.generated_poc.deployment import Deployment1, Deployment2
|
|
42
|
+
from adcp.types.generated_poc.destination import Destination1, Destination2
|
|
43
|
+
from adcp.types.generated_poc.error import Error
|
|
44
|
+
from adcp.types.generated_poc.flat_rate_option import FlatRatePricingOption
|
|
45
|
+
from adcp.types.generated_poc.format import AssetsRequired, AssetsRequired1, Format, FormatCard, FormatCardDetailed, Render, Responsive, Unit
|
|
46
|
+
from adcp.types.generated_poc.format_id import FormatId
|
|
47
|
+
from adcp.types.generated_poc.frequency_cap import FrequencyCap
|
|
48
|
+
from adcp.types.generated_poc.frequency_cap_scope import FrequencyCapScope
|
|
49
|
+
from adcp.types.generated_poc.get_media_buy_delivery_request import GetMediaBuyDeliveryRequest, StatusFilter, StatusFilterEnum
|
|
50
|
+
from adcp.types.generated_poc.get_media_buy_delivery_response import AggregatedTotals, ByPackageItem, DailyBreakdownItem, GetMediaBuyDeliveryResponse, MediaBuyDelivery, NotificationType, ReportingPeriod, Status, Totals
|
|
51
|
+
from adcp.types.generated_poc.get_products_request import Filters, FormatType, GetProductsRequest
|
|
52
|
+
from adcp.types.generated_poc.get_products_response import GetProductsResponse
|
|
53
|
+
from adcp.types.generated_poc.get_signals_request import CatalogType, Country, DeliverTo, GetSignalsRequest
|
|
54
|
+
from adcp.types.generated_poc.get_signals_response import GetSignalsResponse, Pricing, Signal, SignalType
|
|
55
|
+
from adcp.types.generated_poc.html_asset import HtmlAsset
|
|
56
|
+
from adcp.types.generated_poc.identifier_types import PropertyIdentifierTypes
|
|
57
|
+
from adcp.types.generated_poc.image_asset import ImageAsset
|
|
58
|
+
from adcp.types.generated_poc.index import AdcpAssetTypeRegistry
|
|
59
|
+
from adcp.types.generated_poc.javascript_asset import JavascriptAsset, ModuleType
|
|
60
|
+
from adcp.types.generated_poc.list_authorized_properties_request import ListAuthorizedPropertiesRequest, PublisherDomain
|
|
61
|
+
from adcp.types.generated_poc.list_authorized_properties_response import ListAuthorizedPropertiesResponse, PrimaryCountry
|
|
62
|
+
from adcp.types.generated_poc.list_creative_formats_request import ListCreativeFormatsRequest
|
|
63
|
+
from adcp.types.generated_poc.list_creative_formats_response import Capability, CreativeAgent, ListCreativeFormatsResponse
|
|
64
|
+
from adcp.types.generated_poc.list_creatives_request import Direction, Field1, FieldModel, ListCreativesRequest, Pagination, Sort
|
|
65
|
+
from adcp.types.generated_poc.list_creatives_response import AssignedPackage, Assignments, Creative, ListCreativesResponse, Performance, QuerySummary, SortApplied, StatusSummary
|
|
66
|
+
from adcp.types.generated_poc.markdown_asset import MarkdownAsset, MarkdownFlavor
|
|
67
|
+
from adcp.types.generated_poc.measurement import Measurement
|
|
68
|
+
from adcp.types.generated_poc.media_buy import MediaBuy
|
|
69
|
+
from adcp.types.generated_poc.media_buy_status import MediaBuyStatus
|
|
70
|
+
from adcp.types.generated_poc.pacing import Pacing
|
|
71
|
+
from adcp.types.generated_poc.package_request import PackageRequest
|
|
72
|
+
from adcp.types.generated_poc.package_status import PackageStatus
|
|
73
|
+
from adcp.types.generated_poc.performance_feedback import FeedbackSource, MeasurementPeriod, MetricType, PerformanceFeedback
|
|
74
|
+
from adcp.types.generated_poc.placement import Placement
|
|
75
|
+
from adcp.types.generated_poc.preview_creative_request import Input2, OutputFormat, PreviewCreativeRequest, PreviewCreativeRequest1, PreviewCreativeRequest2, Request
|
|
76
|
+
from adcp.types.generated_poc.preview_creative_response import Input4, Preview, Preview1, Preview2, PreviewCreativeResponse, PreviewCreativeResponse1, PreviewCreativeResponse2, Response, Response1, Results, Results1
|
|
77
|
+
from adcp.types.generated_poc.preview_render import Embedding, PreviewRender, PreviewRender1, PreviewRender2, PreviewRender3
|
|
78
|
+
from adcp.types.generated_poc.pricing_model import PricingModel
|
|
79
|
+
from adcp.types.generated_poc.pricing_option import CpcOption, CpcvOption, CpmAuctionOption, CpmFixedOption, CppOption, CpvOption, FlatRateOption, Parameters1, Parameters2, PriceGuidance1, PricingOption, VcpmAuctionOption, VcpmFixedOption
|
|
80
|
+
from adcp.types.generated_poc.product import DeliveryMeasurement, Product, ProductCard, ProductCardDetailed, PublisherProperties3
|
|
81
|
+
from adcp.types.generated_poc.promoted_offerings import AssetSelectors, Offering, PromotedOfferings
|
|
82
|
+
from adcp.types.generated_poc.promoted_products import PromotedProducts
|
|
83
|
+
from adcp.types.generated_poc.property import Identifier, Property, PropertyType, Tag
|
|
84
|
+
from adcp.types.generated_poc.protocol_envelope import ProtocolEnvelope
|
|
85
|
+
from adcp.types.generated_poc.provide_performance_feedback_request import ProvidePerformanceFeedbackRequest
|
|
86
|
+
from adcp.types.generated_poc.provide_performance_feedback_response import ProvidePerformanceFeedbackResponse, ProvidePerformanceFeedbackResponse1, ProvidePerformanceFeedbackResponse2
|
|
87
|
+
from adcp.types.generated_poc.publisher_identifier_types import PublisherIdentifierTypes
|
|
88
|
+
from adcp.types.generated_poc.push_notification_config import Authentication, PushNotificationConfig, Scheme
|
|
89
|
+
from adcp.types.generated_poc.reporting_capabilities import AvailableMetric, AvailableReportingFrequency, ReportingCapabilities
|
|
90
|
+
from adcp.types.generated_poc.response import ProtocolResponse
|
|
91
|
+
from adcp.types.generated_poc.standard_format_ids import StandardFormatIds
|
|
92
|
+
from adcp.types.generated_poc.start_timing import StartTiming
|
|
93
|
+
from adcp.types.generated_poc.sub_asset import SubAsset1, SubAsset2
|
|
94
|
+
from adcp.types.generated_poc.sync_creatives_request import SyncCreativesRequest, ValidationMode
|
|
95
|
+
from adcp.types.generated_poc.sync_creatives_response import Action, SyncCreativesResponse, SyncCreativesResponse1, SyncCreativesResponse2
|
|
96
|
+
from adcp.types.generated_poc.targeting import GeoCountryAnyOfItem, TargetingOverlay
|
|
97
|
+
from adcp.types.generated_poc.task_status import TaskStatus
|
|
98
|
+
from adcp.types.generated_poc.task_type import TaskType
|
|
99
|
+
from adcp.types.generated_poc.tasks_get_request import TasksGetRequest
|
|
100
|
+
from adcp.types.generated_poc.tasks_get_response import Details, Domain, HistoryItem, Progress, TasksGetResponse
|
|
101
|
+
from adcp.types.generated_poc.tasks_list_request import TasksListRequest
|
|
102
|
+
from adcp.types.generated_poc.tasks_list_response import DomainBreakdown, Task, TasksListResponse
|
|
103
|
+
from adcp.types.generated_poc.text_asset import TextAsset
|
|
104
|
+
from adcp.types.generated_poc.update_media_buy_request import Packages, Packages1, Packages2, Packages3, UpdateMediaBuyRequest, UpdateMediaBuyRequest1, UpdateMediaBuyRequest2
|
|
105
|
+
from adcp.types.generated_poc.update_media_buy_response import AffectedPackage, UpdateMediaBuyResponse, UpdateMediaBuyResponse1, UpdateMediaBuyResponse2
|
|
106
|
+
from adcp.types.generated_poc.url_asset import UrlAsset, UrlType
|
|
107
|
+
from adcp.types.generated_poc.vast_asset import VastAsset1, VastAsset2, VastVersion
|
|
108
|
+
from adcp.types.generated_poc.vcpm_auction_option import VcpmAuctionPricingOption
|
|
109
|
+
from adcp.types.generated_poc.vcpm_fixed_option import VcpmFixedRatePricingOption
|
|
110
|
+
from adcp.types.generated_poc.video_asset import VideoAsset
|
|
111
|
+
from adcp.types.generated_poc.webhook_asset import Method, Method1, ResponseType, Security, WebhookAsset
|
|
112
|
+
from adcp.types.generated_poc.webhook_payload import WebhookPayload
|
|
113
|
+
|
|
114
|
+
# Backward compatibility aliases for renamed types
|
|
115
|
+
BrandManifestRef = BrandManifestReference
|
|
116
|
+
Channels = AdvertisingChannels
|
|
117
|
+
|
|
118
|
+
# Explicit exports
|
|
119
|
+
__all__ = ['Action', 'ActivateSignalRequest', 'ActivateSignalResponse', 'ActivateSignalResponse1', 'ActivateSignalResponse2', 'ActivationKey1', 'ActivationKey2', 'AdcpAssetTypeRegistry', 'AdvertisingChannels', 'AffectedPackage', 'AggregatedTotals', 'Asset', 'Asset1', 'AssetSelectors', 'AssetType', 'AssetTypeSchema', 'AssetsRequired', 'AssetsRequired1', 'AssignedPackage', 'Assignments', 'AudioAsset', 'Authentication', 'AuthorizedAgents', 'AuthorizedAgents1', 'AuthorizedAgents2', 'AuthorizedAgents3', 'AuthorizedSalesAgents', 'AvailableMetric', 'AvailableReportingFrequency', 'BrandManifest', 'BrandManifest1', 'BrandManifest2', 'BrandManifestRef', 'BrandManifestReference', 'BuildCreativeRequest', 'BuildCreativeResponse', 'BuildCreativeResponse1', 'BuildCreativeResponse2', 'ByPackageItem', 'Capability', 'CatalogType', 'Channels', 'CoBranding', 'Colors', 'Contact', 'ContentLength', 'Country', 'CpcOption', 'CpcPricingOption', 'CpcvOption', 'CpcvPricingOption', 'CpmAuctionOption', 'CpmAuctionPricingOption', 'CpmFixedOption', 'CpmFixedRatePricingOption', 'CppOption', 'CppPricingOption', 'CpvOption', 'CpvPricingOption', 'CreateMediaBuyRequest', 'CreateMediaBuyResponse', 'CreateMediaBuyResponse1', 'CreateMediaBuyResponse2', 'Creative', 'CreativeAgent', 'CreativeAsset', 'CreativeAssignment', 'CreativeManifest', 'CreativePolicy', 'CreativeStatus', 'CssAsset', 'DaastAsset1', 'DaastAsset2', 'DaastVersion', 'DailyBreakdownItem', 'DeliverTo', 'DeliveryMeasurement', 'DeliveryMetrics', 'DeliveryType', 'Deployment1', 'Deployment2', 'Destination1', 'Destination2', 'Details', 'Dimensions', 'Direction', 'Disclaimer', 'Domain', 'DomainBreakdown', 'DoohMetrics', 'Duration', 'Embedding', 'Error', 'FeedFormat', 'FeedbackSource', 'Field1', 'FieldModel', 'FileSize', 'Filters', 'FlatRateOption', 'FlatRatePricingOption', 'Fonts', 'Format', 'FormatCard', 'FormatCardDetailed', 'FormatId', 'FormatType', 'FrequencyCap', 'FrequencyCapScope', 'GeoCountryAnyOfItem', 'GetMediaBuyDeliveryRequest', 'GetMediaBuyDeliveryResponse', 'GetProductsRequest', 'GetProductsResponse', 'GetSignalsRequest', 'GetSignalsResponse', 'HistoryItem', 'HtmlAsset', 'Identifier', 'ImageAsset', 'Input', 'Input2', 'Input4', 'JavascriptAsset', 'LandingPage', 'ListAuthorizedPropertiesRequest', 'ListAuthorizedPropertiesResponse', 'ListCreativeFormatsRequest', 'ListCreativeFormatsResponse', 'ListCreativesRequest', 'ListCreativesResponse', 'Logo', 'MarkdownAsset', 'MarkdownFlavor', 'Measurement', 'MeasurementPeriod', 'MediaBuy', 'MediaBuyDelivery', 'MediaBuyStatus', 'Metadata', 'Method', 'Method1', 'MetricType', 'ModuleType', 'NotificationType', 'Offering', 'OutputFormat', 'Pacing', 'Package', 'PackageRequest', 'PackageStatus', 'Packages', 'Packages1', 'Packages2', 'Packages3', 'Pagination', 'Parameters', 'Parameters1', 'Parameters2', 'Performance', 'PerformanceFeedback', 'Placement', 'Preview', 'Preview1', 'Preview2', 'PreviewCreativeRequest', 'PreviewCreativeRequest1', 'PreviewCreativeRequest2', 'PreviewCreativeResponse', 'PreviewCreativeResponse1', 'PreviewCreativeResponse2', 'PreviewRender', 'PreviewRender1', 'PreviewRender2', 'PreviewRender3', 'PriceGuidance', 'PriceGuidance1', 'Pricing', 'PricingModel', 'PricingOption', 'PrimaryCountry', 'Product', 'ProductCard', 'ProductCardDetailed', 'ProductCatalog', 'ProductCatalog1', 'Progress', 'PromotedOfferings', 'PromotedProducts', 'Property', 'PropertyId', 'PropertyIdentifierTypes', 'PropertyTag', 'PropertyType', 'ProtocolEnvelope', 'ProtocolResponse', 'ProvidePerformanceFeedbackRequest', 'ProvidePerformanceFeedbackResponse', 'ProvidePerformanceFeedbackResponse1', 'ProvidePerformanceFeedbackResponse2', 'PublisherDomain', 'PublisherIdentifierTypes', 'PublisherProperties', 'PublisherProperties1', 'PublisherProperties3', 'PushNotificationConfig', 'Quality', 'QuartileData', 'QuerySummary', 'Render', 'ReportingCapabilities', 'ReportingFrequency', 'ReportingPeriod', 'ReportingWebhook', 'Request', 'RequestedMetric', 'Requirements', 'Response', 'Response1', 'ResponseType', 'Responsive', 'Results', 'Results1', 'Scheme', 'Security', 'Signal', 'SignalType', 'Sort', 'SortApplied', 'StandardFormatIds', 'StartTiming', 'Status', 'StatusFilter', 'StatusFilterEnum', 'StatusSummary', 'SubAsset1', 'SubAsset2', 'SyncCreativesRequest', 'SyncCreativesResponse', 'SyncCreativesResponse1', 'SyncCreativesResponse2', 'Tag', 'Tags', 'TargetingOverlay', 'Task', 'TaskStatus', 'TaskType', 'TasksGetRequest', 'TasksGetResponse', 'TasksListRequest', 'TasksListResponse', 'TextAsset', 'Totals', 'TrackingEvent', 'Type', 'Unit', 'UpdateFrequency', 'UpdateMediaBuyRequest', 'UpdateMediaBuyRequest1', 'UpdateMediaBuyRequest2', 'UpdateMediaBuyResponse', 'UpdateMediaBuyResponse1', 'UpdateMediaBuyResponse2', 'UrlAsset', 'UrlType', 'ValidationMode', 'VastAsset1', 'VastAsset2', 'VastVersion', 'VcpmAuctionOption', 'VcpmAuctionPricingOption', 'VcpmFixedOption', 'VcpmFixedRatePricingOption', 'VenueBreakdownItem', 'VideoAsset', 'ViewThreshold', 'ViewThreshold1', 'WebhookAsset', 'WebhookPayload']
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: activate-signal-request.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -14,21 +14,21 @@ from . import destination
|
|
|
14
14
|
|
|
15
15
|
class ActivateSignalRequest(AdCPBaseModel):
|
|
16
16
|
model_config = ConfigDict(
|
|
17
|
-
extra=
|
|
17
|
+
extra='forbid',
|
|
18
18
|
)
|
|
19
19
|
context: Annotated[
|
|
20
20
|
dict[str, Any] | None,
|
|
21
21
|
Field(
|
|
22
|
-
description=
|
|
22
|
+
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.'
|
|
23
23
|
),
|
|
24
24
|
] = None
|
|
25
25
|
destinations: Annotated[
|
|
26
26
|
list[destination.Destination1 | destination.Destination2],
|
|
27
27
|
Field(
|
|
28
|
-
description=
|
|
28
|
+
description='Target destination(s) for activation. If the authenticated caller matches one of these destinations, activation keys will be included in the response.',
|
|
29
29
|
min_length=1,
|
|
30
30
|
),
|
|
31
31
|
]
|
|
32
32
|
signal_agent_segment_id: Annotated[
|
|
33
|
-
str, Field(description=
|
|
33
|
+
str, Field(description='The universal identifier for the signal to activate')
|
|
34
34
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: activate-signal-response.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -14,34 +14,34 @@ from . import deployment, error
|
|
|
14
14
|
|
|
15
15
|
class ActivateSignalResponse1(AdCPBaseModel):
|
|
16
16
|
model_config = ConfigDict(
|
|
17
|
-
extra=
|
|
17
|
+
extra='forbid',
|
|
18
18
|
)
|
|
19
19
|
context: Annotated[
|
|
20
20
|
dict[str, Any] | None,
|
|
21
21
|
Field(
|
|
22
|
-
description=
|
|
22
|
+
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
23
23
|
),
|
|
24
24
|
] = None
|
|
25
25
|
deployments: Annotated[
|
|
26
26
|
list[deployment.Deployment1 | deployment.Deployment2],
|
|
27
|
-
Field(description=
|
|
27
|
+
Field(description='Array of deployment results for each destination'),
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
|
|
31
31
|
class ActivateSignalResponse2(AdCPBaseModel):
|
|
32
32
|
model_config = ConfigDict(
|
|
33
|
-
extra=
|
|
33
|
+
extra='forbid',
|
|
34
34
|
)
|
|
35
35
|
context: Annotated[
|
|
36
36
|
dict[str, Any] | None,
|
|
37
37
|
Field(
|
|
38
|
-
description=
|
|
38
|
+
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
39
39
|
),
|
|
40
40
|
] = None
|
|
41
41
|
errors: Annotated[
|
|
42
42
|
list[error.Error],
|
|
43
43
|
Field(
|
|
44
|
-
description=
|
|
44
|
+
description='Array of errors explaining why activation failed (e.g., platform connectivity issues, signal definition problems, authentication failures)',
|
|
45
45
|
min_length=1,
|
|
46
46
|
),
|
|
47
47
|
]
|
|
@@ -51,7 +51,7 @@ class ActivateSignalResponse(RootModel[ActivateSignalResponse1 | ActivateSignalR
|
|
|
51
51
|
root: Annotated[
|
|
52
52
|
ActivateSignalResponse1 | ActivateSignalResponse2,
|
|
53
53
|
Field(
|
|
54
|
-
description=
|
|
55
|
-
title=
|
|
54
|
+
description='Response payload for activate_signal task. Returns either complete success data OR error information, never both. This enforces atomic operation semantics - the signal is either fully activated or not activated at all.',
|
|
55
|
+
title='Activate Signal Response',
|
|
56
56
|
),
|
|
57
57
|
]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: activation-key.json
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+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
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ActivationKey1(AdCPBaseModel):
|
|
14
|
+
model_config = ConfigDict(
|
|
15
|
+
extra='forbid',
|
|
16
|
+
)
|
|
17
|
+
segment_id: Annotated[
|
|
18
|
+
str,
|
|
19
|
+
Field(description='The platform-specific segment identifier to use in campaign targeting'),
|
|
20
|
+
]
|
|
21
|
+
type: Annotated[Literal['segment_id'], Field(description='Segment ID based targeting')]
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class ActivationKey2(AdCPBaseModel):
|
|
25
|
+
model_config = ConfigDict(
|
|
26
|
+
extra='forbid',
|
|
27
|
+
)
|
|
28
|
+
key: Annotated[str, Field(description='The targeting parameter key')]
|
|
29
|
+
type: Annotated[Literal['key_value'], Field(description='Key-value pair based targeting')]
|
|
30
|
+
value: Annotated[str, Field(description='The targeting parameter value')]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: adagents.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -13,21 +13,21 @@ from . import property
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class PropertyId(RootModel[str]):
|
|
16
|
-
root: Annotated[str, Field(pattern=
|
|
16
|
+
root: Annotated[str, Field(pattern='^[a-z0-9_]+$')]
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class AuthorizedAgents(AdCPBaseModel):
|
|
20
20
|
model_config = ConfigDict(
|
|
21
|
-
extra=
|
|
21
|
+
extra='forbid',
|
|
22
22
|
)
|
|
23
23
|
authorization_type: Annotated[
|
|
24
|
-
Literal[
|
|
25
|
-
Field(description=
|
|
24
|
+
Literal['property_ids'],
|
|
25
|
+
Field(description='Discriminator indicating authorization by specific property IDs'),
|
|
26
26
|
]
|
|
27
27
|
authorized_for: Annotated[
|
|
28
28
|
str,
|
|
29
29
|
Field(
|
|
30
|
-
description=
|
|
30
|
+
description='Human-readable description of what this agent is authorized to sell',
|
|
31
31
|
max_length=500,
|
|
32
32
|
min_length=1,
|
|
33
33
|
),
|
|
@@ -35,7 +35,7 @@ class AuthorizedAgents(AdCPBaseModel):
|
|
|
35
35
|
property_ids: Annotated[
|
|
36
36
|
list[PropertyId],
|
|
37
37
|
Field(
|
|
38
|
-
description=
|
|
38
|
+
description='Property IDs this agent is authorized for. Resolved against the top-level properties array in this file',
|
|
39
39
|
min_length=1,
|
|
40
40
|
),
|
|
41
41
|
]
|
|
@@ -48,16 +48,16 @@ class PropertyTag(PropertyId):
|
|
|
48
48
|
|
|
49
49
|
class AuthorizedAgents1(AdCPBaseModel):
|
|
50
50
|
model_config = ConfigDict(
|
|
51
|
-
extra=
|
|
51
|
+
extra='forbid',
|
|
52
52
|
)
|
|
53
53
|
authorization_type: Annotated[
|
|
54
|
-
Literal[
|
|
55
|
-
Field(description=
|
|
54
|
+
Literal['property_tags'],
|
|
55
|
+
Field(description='Discriminator indicating authorization by property tags'),
|
|
56
56
|
]
|
|
57
57
|
authorized_for: Annotated[
|
|
58
58
|
str,
|
|
59
59
|
Field(
|
|
60
|
-
description=
|
|
60
|
+
description='Human-readable description of what this agent is authorized to sell',
|
|
61
61
|
max_length=500,
|
|
62
62
|
min_length=1,
|
|
63
63
|
),
|
|
@@ -65,7 +65,7 @@ class AuthorizedAgents1(AdCPBaseModel):
|
|
|
65
65
|
property_tags: Annotated[
|
|
66
66
|
list[PropertyTag],
|
|
67
67
|
Field(
|
|
68
|
-
description=
|
|
68
|
+
description='Tags identifying which properties this agent is authorized for. Resolved against the top-level properties array in this file using tag matching',
|
|
69
69
|
min_length=1,
|
|
70
70
|
),
|
|
71
71
|
]
|
|
@@ -74,7 +74,7 @@ class AuthorizedAgents1(AdCPBaseModel):
|
|
|
74
74
|
|
|
75
75
|
class PublisherProperties(AdCPBaseModel):
|
|
76
76
|
model_config = ConfigDict(
|
|
77
|
-
extra=
|
|
77
|
+
extra='forbid',
|
|
78
78
|
)
|
|
79
79
|
property_ids: Annotated[
|
|
80
80
|
list[PropertyId],
|
|
@@ -87,18 +87,18 @@ class PublisherProperties(AdCPBaseModel):
|
|
|
87
87
|
str,
|
|
88
88
|
Field(
|
|
89
89
|
description="Domain where the publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
90
|
-
pattern=
|
|
90
|
+
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
91
91
|
),
|
|
92
92
|
]
|
|
93
93
|
selection_type: Annotated[
|
|
94
|
-
Literal[
|
|
95
|
-
Field(description=
|
|
94
|
+
Literal['by_id'],
|
|
95
|
+
Field(description='Discriminator indicating selection by specific property IDs'),
|
|
96
96
|
]
|
|
97
97
|
|
|
98
98
|
|
|
99
99
|
class PublisherProperties1(AdCPBaseModel):
|
|
100
100
|
model_config = ConfigDict(
|
|
101
|
-
extra=
|
|
101
|
+
extra='forbid',
|
|
102
102
|
)
|
|
103
103
|
property_tags: Annotated[
|
|
104
104
|
list[PropertyTag],
|
|
@@ -111,28 +111,28 @@ class PublisherProperties1(AdCPBaseModel):
|
|
|
111
111
|
str,
|
|
112
112
|
Field(
|
|
113
113
|
description="Domain where the publisher's adagents.json is hosted (e.g., 'cnn.com')",
|
|
114
|
-
pattern=
|
|
114
|
+
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
115
115
|
),
|
|
116
116
|
]
|
|
117
117
|
selection_type: Annotated[
|
|
118
|
-
Literal[
|
|
118
|
+
Literal['by_tag'], Field(description='Discriminator indicating selection by property tags')
|
|
119
119
|
]
|
|
120
120
|
|
|
121
121
|
|
|
122
122
|
class AuthorizedAgents3(AdCPBaseModel):
|
|
123
123
|
model_config = ConfigDict(
|
|
124
|
-
extra=
|
|
124
|
+
extra='forbid',
|
|
125
125
|
)
|
|
126
126
|
authorization_type: Annotated[
|
|
127
|
-
Literal[
|
|
127
|
+
Literal['publisher_properties'],
|
|
128
128
|
Field(
|
|
129
|
-
description=
|
|
129
|
+
description='Discriminator indicating authorization for properties from other publisher domains'
|
|
130
130
|
),
|
|
131
131
|
]
|
|
132
132
|
authorized_for: Annotated[
|
|
133
133
|
str,
|
|
134
134
|
Field(
|
|
135
|
-
description=
|
|
135
|
+
description='Human-readable description of what this agent is authorized to sell',
|
|
136
136
|
max_length=500,
|
|
137
137
|
min_length=1,
|
|
138
138
|
),
|
|
@@ -140,7 +140,7 @@ class AuthorizedAgents3(AdCPBaseModel):
|
|
|
140
140
|
publisher_properties: Annotated[
|
|
141
141
|
list[PublisherProperties | PublisherProperties1],
|
|
142
142
|
Field(
|
|
143
|
-
description=
|
|
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
144
|
min_length=1,
|
|
145
145
|
),
|
|
146
146
|
]
|
|
@@ -149,19 +149,19 @@ class AuthorizedAgents3(AdCPBaseModel):
|
|
|
149
149
|
|
|
150
150
|
class Contact(AdCPBaseModel):
|
|
151
151
|
model_config = ConfigDict(
|
|
152
|
-
extra=
|
|
152
|
+
extra='forbid',
|
|
153
153
|
)
|
|
154
154
|
domain: Annotated[
|
|
155
155
|
str | None,
|
|
156
156
|
Field(
|
|
157
|
-
description=
|
|
158
|
-
pattern=
|
|
157
|
+
description='Primary domain of the entity managing this file',
|
|
158
|
+
pattern='^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$',
|
|
159
159
|
),
|
|
160
160
|
] = None
|
|
161
161
|
email: Annotated[
|
|
162
162
|
EmailStr | None,
|
|
163
163
|
Field(
|
|
164
|
-
description=
|
|
164
|
+
description='Contact email for questions or issues with this authorization file',
|
|
165
165
|
max_length=255,
|
|
166
166
|
min_length=1,
|
|
167
167
|
),
|
|
@@ -177,7 +177,7 @@ class Contact(AdCPBaseModel):
|
|
|
177
177
|
seller_id: Annotated[
|
|
178
178
|
str | None,
|
|
179
179
|
Field(
|
|
180
|
-
description=
|
|
180
|
+
description='Seller ID from IAB Tech Lab sellers.json (if applicable)',
|
|
181
181
|
max_length=255,
|
|
182
182
|
min_length=1,
|
|
183
183
|
),
|
|
@@ -185,7 +185,7 @@ class Contact(AdCPBaseModel):
|
|
|
185
185
|
tag_id: Annotated[
|
|
186
186
|
str | None,
|
|
187
187
|
Field(
|
|
188
|
-
description=
|
|
188
|
+
description='TAG Certified Against Fraud ID for verification (if applicable)',
|
|
189
189
|
max_length=100,
|
|
190
190
|
min_length=1,
|
|
191
191
|
),
|
|
@@ -194,24 +194,24 @@ class Contact(AdCPBaseModel):
|
|
|
194
194
|
|
|
195
195
|
class Tags(AdCPBaseModel):
|
|
196
196
|
model_config = ConfigDict(
|
|
197
|
-
extra=
|
|
197
|
+
extra='forbid',
|
|
198
198
|
)
|
|
199
|
-
description: Annotated[str, Field(description=
|
|
200
|
-
name: Annotated[str, Field(description=
|
|
199
|
+
description: Annotated[str, Field(description='Description of what this tag represents')]
|
|
200
|
+
name: Annotated[str, Field(description='Human-readable name for this tag')]
|
|
201
201
|
|
|
202
202
|
|
|
203
203
|
class AuthorizedAgents2(AdCPBaseModel):
|
|
204
204
|
model_config = ConfigDict(
|
|
205
|
-
extra=
|
|
205
|
+
extra='forbid',
|
|
206
206
|
)
|
|
207
207
|
authorization_type: Annotated[
|
|
208
|
-
Literal[
|
|
209
|
-
Field(description=
|
|
208
|
+
Literal['inline_properties'],
|
|
209
|
+
Field(description='Discriminator indicating authorization by inline property definitions'),
|
|
210
210
|
]
|
|
211
211
|
authorized_for: Annotated[
|
|
212
212
|
str,
|
|
213
213
|
Field(
|
|
214
|
-
description=
|
|
214
|
+
description='Human-readable description of what this agent is authorized to sell',
|
|
215
215
|
max_length=500,
|
|
216
216
|
min_length=1,
|
|
217
217
|
),
|
|
@@ -219,7 +219,7 @@ class AuthorizedAgents2(AdCPBaseModel):
|
|
|
219
219
|
properties: Annotated[
|
|
220
220
|
list[property.Property],
|
|
221
221
|
Field(
|
|
222
|
-
description=
|
|
222
|
+
description='Specific properties this agent is authorized for (alternative to property_ids/property_tags)',
|
|
223
223
|
min_length=1,
|
|
224
224
|
),
|
|
225
225
|
]
|
|
@@ -228,39 +228,39 @@ class AuthorizedAgents2(AdCPBaseModel):
|
|
|
228
228
|
|
|
229
229
|
class AuthorizedSalesAgents(AdCPBaseModel):
|
|
230
230
|
model_config = ConfigDict(
|
|
231
|
-
extra=
|
|
231
|
+
extra='forbid',
|
|
232
232
|
)
|
|
233
233
|
field_schema: Annotated[
|
|
234
234
|
str | None,
|
|
235
|
-
Field(alias=
|
|
236
|
-
] =
|
|
235
|
+
Field(alias='$schema', description='JSON Schema identifier for this adagents.json file'),
|
|
236
|
+
] = 'https://adcontextprotocol.org/schemas/v1/adagents.json'
|
|
237
237
|
authorized_agents: Annotated[
|
|
238
238
|
list[AuthorizedAgents | AuthorizedAgents1 | AuthorizedAgents2 | AuthorizedAgents3],
|
|
239
239
|
Field(
|
|
240
|
-
description=
|
|
240
|
+
description='Array of sales agents authorized to sell inventory for properties in this file',
|
|
241
241
|
min_length=1,
|
|
242
242
|
),
|
|
243
243
|
]
|
|
244
244
|
contact: Annotated[
|
|
245
245
|
Contact | None,
|
|
246
246
|
Field(
|
|
247
|
-
description=
|
|
247
|
+
description='Contact information for the entity managing this adagents.json file (may be publisher or third-party operator)'
|
|
248
248
|
),
|
|
249
249
|
] = None
|
|
250
250
|
last_updated: Annotated[
|
|
251
251
|
AwareDatetime | None,
|
|
252
|
-
Field(description=
|
|
252
|
+
Field(description='ISO 8601 timestamp indicating when this file was last updated'),
|
|
253
253
|
] = None
|
|
254
254
|
properties: Annotated[
|
|
255
255
|
list[property.Property] | None,
|
|
256
256
|
Field(
|
|
257
|
-
description=
|
|
257
|
+
description='Array of all properties covered by this adagents.json file. Same structure as list_authorized_properties response.',
|
|
258
258
|
min_length=1,
|
|
259
259
|
),
|
|
260
260
|
] = None
|
|
261
261
|
tags: Annotated[
|
|
262
262
|
dict[str, Tags] | None,
|
|
263
263
|
Field(
|
|
264
|
-
description=
|
|
264
|
+
description='Metadata for each tag referenced by properties. Same structure as list_authorized_properties response.'
|
|
265
265
|
),
|
|
266
266
|
] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: asset-type.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -47,7 +47,7 @@ class Quality(AdCPBaseModel):
|
|
|
47
47
|
|
|
48
48
|
class Requirements(AdCPBaseModel):
|
|
49
49
|
model_config = ConfigDict(
|
|
50
|
-
extra=
|
|
50
|
+
extra='forbid',
|
|
51
51
|
)
|
|
52
52
|
content_length: ContentLength | None = None
|
|
53
53
|
dimensions: Dimensions | None = None
|
|
@@ -61,22 +61,22 @@ class Requirements(AdCPBaseModel):
|
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
class Type(Enum):
|
|
64
|
-
image =
|
|
65
|
-
video =
|
|
66
|
-
audio =
|
|
67
|
-
text =
|
|
68
|
-
html =
|
|
69
|
-
css =
|
|
70
|
-
javascript =
|
|
71
|
-
vast =
|
|
72
|
-
daast =
|
|
73
|
-
promoted_offerings =
|
|
74
|
-
url =
|
|
64
|
+
image = 'image'
|
|
65
|
+
video = 'video'
|
|
66
|
+
audio = 'audio'
|
|
67
|
+
text = 'text'
|
|
68
|
+
html = 'html'
|
|
69
|
+
css = 'css'
|
|
70
|
+
javascript = 'javascript'
|
|
71
|
+
vast = 'vast'
|
|
72
|
+
daast = 'daast'
|
|
73
|
+
promoted_offerings = 'promoted_offerings'
|
|
74
|
+
url = 'url'
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
class AssetTypeSchema(AdCPBaseModel):
|
|
78
78
|
model_config = ConfigDict(
|
|
79
|
-
extra=
|
|
79
|
+
extra='forbid',
|
|
80
80
|
)
|
|
81
81
|
asset_role: Annotated[
|
|
82
82
|
str,
|
|
@@ -86,15 +86,15 @@ class AssetTypeSchema(AdCPBaseModel):
|
|
|
86
86
|
]
|
|
87
87
|
constraints: Annotated[
|
|
88
88
|
list[str] | None,
|
|
89
|
-
Field(description=
|
|
89
|
+
Field(description='Additional constraints or requirements (human-readable)'),
|
|
90
90
|
] = None
|
|
91
91
|
examples: Annotated[
|
|
92
|
-
list[str] | None, Field(description=
|
|
92
|
+
list[str] | None, Field(description='Example values or descriptions for this asset')
|
|
93
93
|
] = None
|
|
94
94
|
required: Annotated[
|
|
95
|
-
bool | None, Field(description=
|
|
95
|
+
bool | None, Field(description='Whether this asset is mandatory for the format')
|
|
96
96
|
] = True
|
|
97
97
|
requirements: Annotated[
|
|
98
|
-
Requirements | None, Field(description=
|
|
98
|
+
Requirements | None, Field(description='Technical requirements for this asset type')
|
|
99
99
|
] = None
|
|
100
|
-
type: Annotated[Type, Field(description=
|
|
100
|
+
type: Annotated[Type, Field(description='Type of asset')]
|