adcp 2.11.1__py3-none-any.whl → 2.12.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- adcp/ADCP_VERSION +1 -0
- adcp/__init__.py +24 -3
- adcp/__main__.py +31 -3
- adcp/client.py +16 -0
- adcp/protocols/a2a.py +178 -25
- adcp/protocols/base.py +23 -4
- adcp/protocols/mcp.py +44 -0
- adcp/types/__init__.py +2 -26
- adcp/types/_generated.py +179 -158
- adcp/types/generated_poc/adagents.py +221 -25
- adcp/types/generated_poc/core/__init__.py +3 -0
- adcp/types/generated_poc/{activation_key.py → core/activation_key.py} +2 -2
- adcp/types/generated_poc/core/assets/__init__.py +3 -0
- adcp/types/generated_poc/{audio_asset.py → core/assets/audio_asset.py} +2 -2
- adcp/types/generated_poc/{css_asset.py → core/assets/css_asset.py} +2 -2
- adcp/types/generated_poc/{daast_asset.py → core/assets/daast_asset.py} +4 -4
- adcp/types/generated_poc/{html_asset.py → core/assets/html_asset.py} +2 -2
- adcp/types/generated_poc/core/assets/image_asset.py +19 -0
- adcp/types/generated_poc/{javascript_asset.py → core/assets/javascript_asset.py} +3 -3
- adcp/types/generated_poc/{text_asset.py → core/assets/text_asset.py} +2 -2
- adcp/types/generated_poc/{url_asset.py → core/assets/url_asset.py} +3 -3
- adcp/types/generated_poc/{vast_asset.py → core/assets/vast_asset.py} +4 -4
- adcp/types/generated_poc/{video_asset.py → core/assets/video_asset.py} +7 -11
- adcp/types/generated_poc/{webhook_asset.py → core/assets/webhook_asset.py} +3 -3
- adcp/types/generated_poc/{brand_manifest.py → core/brand_manifest.py} +3 -3
- adcp/types/generated_poc/core/context.py +15 -0
- adcp/types/generated_poc/{creative_asset.py → core/creative_asset.py} +25 -6
- adcp/types/generated_poc/{creative_assignment.py → core/creative_assignment.py} +2 -2
- adcp/types/generated_poc/{creative_filters.py → core/creative_filters.py} +12 -3
- adcp/types/generated_poc/{creative_manifest.py → core/creative_manifest.py} +13 -6
- adcp/types/generated_poc/{creative_policy.py → core/creative_policy.py} +3 -3
- adcp/types/generated_poc/{delivery_metrics.py → core/delivery_metrics.py} +2 -2
- adcp/types/generated_poc/{deployment.py → core/deployment.py} +2 -2
- adcp/types/generated_poc/{destination.py → core/destination.py} +2 -2
- adcp/types/generated_poc/core/dimensions.py +18 -0
- adcp/types/generated_poc/{error.py → core/error.py} +2 -2
- adcp/types/generated_poc/core/ext.py +15 -0
- adcp/types/generated_poc/{format.py → core/format.py} +85 -54
- adcp/types/generated_poc/core/format_id.py +50 -0
- adcp/types/generated_poc/{frequency_cap.py → core/frequency_cap.py} +2 -2
- adcp/types/generated_poc/{measurement.py → core/measurement.py} +2 -2
- adcp/types/generated_poc/{media_buy.py → core/media_buy.py} +6 -3
- adcp/types/generated_poc/{package.py → core/package.py} +13 -6
- adcp/types/generated_poc/{performance_feedback.py → core/performance_feedback.py} +4 -4
- adcp/types/generated_poc/{placement.py → core/placement.py} +3 -3
- adcp/types/generated_poc/{product.py → core/product.py} +16 -6
- adcp/types/generated_poc/core/product_filters.py +97 -0
- adcp/types/generated_poc/{promoted_offerings.py → core/promoted_offerings.py} +2 -2
- adcp/types/generated_poc/{promoted_products.py → core/promoted_products.py} +2 -2
- adcp/types/generated_poc/{property.py → core/property.py} +5 -4
- adcp/types/generated_poc/{property_id.py → core/property_id.py} +2 -2
- adcp/types/generated_poc/{property_tag.py → core/property_tag.py} +2 -2
- adcp/types/generated_poc/{protocol_envelope.py → core/protocol_envelope.py} +3 -3
- adcp/types/generated_poc/{publisher_property_selector.py → core/publisher_property_selector.py} +2 -2
- adcp/types/generated_poc/{push_notification_config.py → core/push_notification_config.py} +3 -3
- adcp/types/generated_poc/{reporting_capabilities.py → core/reporting_capabilities.py} +3 -3
- adcp/types/generated_poc/{response.py → core/response.py} +2 -2
- adcp/types/generated_poc/{signal_filters.py → core/signal_filters.py} +3 -3
- adcp/types/generated_poc/{sub_asset.py → core/sub_asset.py} +2 -2
- adcp/types/generated_poc/{targeting.py → core/targeting.py} +2 -2
- adcp/types/generated_poc/{webhook_payload.py → core/webhook_payload.py} +4 -4
- adcp/types/generated_poc/creative/__init__.py +3 -0
- adcp/types/generated_poc/creative/list_creative_formats_request.py +88 -0
- adcp/types/generated_poc/creative/list_creative_formats_response.py +55 -0
- adcp/types/generated_poc/{preview_creative_request.py → creative/preview_creative_request.py} +13 -18
- adcp/types/generated_poc/{preview_creative_response.py → creative/preview_creative_response.py} +8 -14
- adcp/types/generated_poc/{preview_render.py → creative/preview_render.py} +2 -2
- adcp/types/generated_poc/enums/__init__.py +3 -0
- adcp/types/generated_poc/{adcp_domain.py → enums/adcp_domain.py} +2 -2
- adcp/types/generated_poc/{asset_content_type.py → enums/asset_content_type.py} +2 -2
- adcp/types/generated_poc/{auth_scheme.py → enums/auth_scheme.py} +2 -2
- adcp/types/generated_poc/{available_metric.py → enums/available_metric.py} +2 -2
- adcp/types/generated_poc/{channels.py → enums/channels.py} +2 -2
- adcp/types/generated_poc/{co_branding_requirement.py → enums/co_branding_requirement.py} +2 -2
- adcp/types/generated_poc/{creative_action.py → enums/creative_action.py} +2 -2
- adcp/types/generated_poc/{creative_agent_capability.py → enums/creative_agent_capability.py} +2 -2
- adcp/types/generated_poc/{creative_sort_field.py → enums/creative_sort_field.py} +2 -2
- adcp/types/generated_poc/{creative_status.py → enums/creative_status.py} +2 -2
- adcp/types/generated_poc/{daast_tracking_event.py → enums/daast_tracking_event.py} +2 -2
- adcp/types/generated_poc/{daast_version.py → enums/daast_version.py} +2 -2
- adcp/types/generated_poc/{delivery_type.py → enums/delivery_type.py} +2 -2
- adcp/types/generated_poc/{dimension_unit.py → enums/dimension_unit.py} +2 -2
- adcp/types/generated_poc/{feed_format.py → enums/feed_format.py} +2 -2
- adcp/types/generated_poc/{feedback_source.py → enums/feedback_source.py} +2 -2
- adcp/types/generated_poc/{format_category.py → enums/format_category.py} +2 -2
- adcp/types/generated_poc/enums/format_id_parameter.py +12 -0
- adcp/types/generated_poc/{frequency_cap_scope.py → enums/frequency_cap_scope.py} +2 -2
- adcp/types/generated_poc/{history_entry_type.py → enums/history_entry_type.py} +2 -2
- adcp/types/generated_poc/{http_method.py → enums/http_method.py} +2 -2
- adcp/types/generated_poc/{identifier_types.py → enums/identifier_types.py} +2 -2
- adcp/types/generated_poc/{javascript_module_type.py → enums/javascript_module_type.py} +2 -2
- adcp/types/generated_poc/{landing_page_requirement.py → enums/landing_page_requirement.py} +2 -2
- adcp/types/generated_poc/{markdown_flavor.py → enums/markdown_flavor.py} +2 -2
- adcp/types/generated_poc/{media_buy_status.py → enums/media_buy_status.py} +2 -2
- adcp/types/generated_poc/{metric_type.py → enums/metric_type.py} +2 -2
- adcp/types/generated_poc/{notification_type.py → enums/notification_type.py} +2 -2
- adcp/types/generated_poc/{pacing.py → enums/pacing.py} +2 -2
- adcp/types/generated_poc/{preview_output_format.py → enums/preview_output_format.py} +2 -2
- adcp/types/generated_poc/{pricing_model.py → enums/pricing_model.py} +2 -2
- adcp/types/generated_poc/{property_type.py → enums/property_type.py} +2 -2
- adcp/types/generated_poc/{publisher_identifier_types.py → enums/publisher_identifier_types.py} +2 -2
- adcp/types/generated_poc/{reporting_frequency.py → enums/reporting_frequency.py} +2 -2
- adcp/types/generated_poc/{signal_catalog_type.py → enums/signal_catalog_type.py} +2 -2
- adcp/types/generated_poc/{sort_direction.py → enums/sort_direction.py} +2 -2
- adcp/types/generated_poc/{standard_format_ids.py → enums/standard_format_ids.py} +2 -2
- adcp/types/generated_poc/{task_status.py → enums/task_status.py} +2 -2
- adcp/types/generated_poc/{task_type.py → enums/task_type.py} +2 -2
- adcp/types/generated_poc/{update_frequency.py → enums/update_frequency.py} +2 -2
- adcp/types/generated_poc/{url_asset_type.py → enums/url_asset_type.py} +2 -2
- adcp/types/generated_poc/{validation_mode.py → enums/validation_mode.py} +2 -2
- adcp/types/generated_poc/{vast_tracking_event.py → enums/vast_tracking_event.py} +2 -2
- adcp/types/generated_poc/{vast_version.py → enums/vast_version.py} +2 -2
- adcp/types/generated_poc/{webhook_response_type.py → enums/webhook_response_type.py} +2 -2
- adcp/types/generated_poc/{webhook_security_method.py → enums/webhook_security_method.py} +2 -2
- adcp/types/generated_poc/media_buy/__init__.py +3 -0
- adcp/types/generated_poc/{build_creative_request.py → media_buy/build_creative_request.py} +9 -11
- adcp/types/generated_poc/{build_creative_response.py → media_buy/build_creative_response.py} +11 -17
- adcp/types/generated_poc/{create_media_buy_request.py → media_buy/create_media_buy_request.py} +9 -11
- adcp/types/generated_poc/{create_media_buy_response.py → media_buy/create_media_buy_response.py} +11 -16
- adcp/types/generated_poc/{get_media_buy_delivery_request.py → media_buy/get_media_buy_delivery_request.py} +8 -10
- adcp/types/generated_poc/{get_media_buy_delivery_response.py → media_buy/get_media_buy_delivery_response.py} +27 -12
- adcp/types/generated_poc/{get_products_request.py → media_buy/get_products_request.py} +9 -11
- adcp/types/generated_poc/{get_products_response.py → media_buy/get_products_response.py} +9 -10
- adcp/types/generated_poc/{list_authorized_properties_request.py → media_buy/list_authorized_properties_request.py} +8 -9
- adcp/types/generated_poc/{list_authorized_properties_response.py → media_buy/list_authorized_properties_response.py} +9 -10
- adcp/types/generated_poc/{list_creative_formats_request.py → media_buy/list_creative_formats_request.py} +9 -10
- adcp/types/generated_poc/{list_creative_formats_response.py → media_buy/list_creative_formats_response.py} +10 -10
- adcp/types/generated_poc/{list_creatives_request.py → media_buy/list_creatives_request.py} +9 -10
- adcp/types/generated_poc/{list_creatives_response.py → media_buy/list_creatives_response.py} +14 -15
- adcp/types/generated_poc/{package_request.py → media_buy/package_request.py} +7 -5
- adcp/types/generated_poc/{provide_performance_feedback_request.py → media_buy/provide_performance_feedback_request.py} +11 -17
- adcp/types/generated_poc/{provide_performance_feedback_response.py → media_buy/provide_performance_feedback_response.py} +10 -16
- adcp/types/generated_poc/{sync_creatives_request.py → media_buy/sync_creatives_request.py} +14 -15
- adcp/types/generated_poc/{sync_creatives_response.py → media_buy/sync_creatives_response.py} +11 -16
- adcp/types/generated_poc/{update_media_buy_request.py → media_buy/update_media_buy_request.py} +63 -28
- adcp/types/generated_poc/{update_media_buy_response.py → media_buy/update_media_buy_response.py} +11 -16
- adcp/types/generated_poc/pricing_options/__init__.py +3 -0
- adcp/types/generated_poc/{cpc_option.py → pricing_options/cpc_option.py} +2 -2
- adcp/types/generated_poc/{cpcv_option.py → pricing_options/cpcv_option.py} +2 -2
- adcp/types/generated_poc/{cpm_auction_option.py → pricing_options/cpm_auction_option.py} +2 -2
- adcp/types/generated_poc/{cpm_fixed_option.py → pricing_options/cpm_fixed_option.py} +2 -2
- adcp/types/generated_poc/{cpp_option.py → pricing_options/cpp_option.py} +2 -2
- adcp/types/generated_poc/{cpv_option.py → pricing_options/cpv_option.py} +2 -2
- adcp/types/generated_poc/{flat_rate_option.py → pricing_options/flat_rate_option.py} +2 -2
- adcp/types/generated_poc/{vcpm_auction_option.py → pricing_options/vcpm_auction_option.py} +2 -2
- adcp/types/generated_poc/{vcpm_fixed_option.py → pricing_options/vcpm_fixed_option.py} +2 -2
- adcp/types/generated_poc/protocols/__init__.py +3 -0
- adcp/types/generated_poc/protocols/adcp_extension.py +37 -0
- adcp/types/generated_poc/signals/__init__.py +3 -0
- adcp/types/generated_poc/{activate_signal_request.py → signals/activate_signal_request.py} +8 -10
- adcp/types/generated_poc/{activate_signal_response.py → signals/activate_signal_response.py} +10 -16
- adcp/types/generated_poc/{get_signals_request.py → signals/get_signals_request.py} +9 -10
- adcp/types/generated_poc/{get_signals_response.py → signals/get_signals_response.py} +9 -10
- adcp/utils/preview_cache.py +15 -3
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/METADATA +1 -1
- adcp-2.12.1.dist-info/RECORD +176 -0
- adcp/types/generated_poc/format_id.py +0 -29
- adcp/types/generated_poc/image_asset.py +0 -23
- adcp/types/generated_poc/markdown_asset.py +0 -39
- adcp/types/generated_poc/package_status.py +0 -14
- adcp/types/generated_poc/product_filters.py +0 -36
- adcp/types/generated_poc/tasks_get_request.py +0 -29
- adcp/types/generated_poc/tasks_get_response.py +0 -112
- adcp/types/generated_poc/tasks_list_request.py +0 -115
- adcp/types/generated_poc/tasks_list_response.py +0 -122
- adcp-2.11.1.dist-info/RECORD +0 -166
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/WHEEL +0 -0
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/entry_points.txt +0 -0
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.11.1.dist-info → adcp-2.12.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: enums/format_id_parameter.json
|
|
3
|
+
# timestamp: 2025-11-22T19:16:02+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from enum import Enum
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class FormatIdParameter(Enum):
|
|
11
|
+
dimensions = 'dimensions'
|
|
12
|
+
duration = 'duration'
|
|
@@ -1,34 +1,32 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/build_creative_request.json
|
|
3
|
+
# timestamp: 2025-11-22T19:54:03+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import creative_manifest as creative_manifest_1
|
|
14
|
+
from ..core import ext as ext_1
|
|
15
|
+
from ..core import format_id
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
class BuildCreativeRequest(AdCPBaseModel):
|
|
17
19
|
model_config = ConfigDict(
|
|
18
20
|
extra='forbid',
|
|
19
21
|
)
|
|
20
|
-
context:
|
|
21
|
-
dict[str, Any] | None,
|
|
22
|
-
Field(
|
|
23
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
24
|
-
),
|
|
25
|
-
] = None
|
|
22
|
+
context: context_1.ContextObject | None = None
|
|
26
23
|
creative_manifest: Annotated[
|
|
27
24
|
creative_manifest_1.CreativeManifest | None,
|
|
28
25
|
Field(
|
|
29
26
|
description='Creative manifest to transform or generate from. For pure generation, this should include the target format_id and any required input assets (e.g., promoted_offerings for generative formats). For transformation (e.g., resizing, reformatting), this is the complete creative to adapt.'
|
|
30
27
|
),
|
|
31
28
|
] = None
|
|
29
|
+
ext: ext_1.ExtensionObject | None = None
|
|
32
30
|
message: Annotated[
|
|
33
31
|
str | None,
|
|
34
32
|
Field(
|
adcp/types/generated_poc/{build_creative_response.py → media_buy/build_creative_response.py}
RENAMED
|
@@ -1,50 +1,44 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/build_creative_response.json
|
|
3
|
+
# timestamp: 2025-11-22T19:16:02+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import ConfigDict, Field, RootModel
|
|
11
11
|
|
|
12
|
-
from
|
|
13
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import creative_manifest as creative_manifest_1
|
|
14
|
+
from ..core import error
|
|
15
|
+
from ..core import ext as ext_1
|
|
14
16
|
|
|
15
17
|
|
|
16
18
|
class BuildCreativeResponse2(AdCPBaseModel):
|
|
17
19
|
model_config = ConfigDict(
|
|
18
20
|
extra='forbid',
|
|
19
21
|
)
|
|
20
|
-
context:
|
|
21
|
-
dict[str, Any] | None,
|
|
22
|
-
Field(
|
|
23
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
24
|
-
),
|
|
25
|
-
] = None
|
|
22
|
+
context: context_1.ContextObject | None = None
|
|
26
23
|
errors: Annotated[
|
|
27
24
|
list[error.Error],
|
|
28
25
|
Field(
|
|
29
26
|
description='Array of errors explaining why creative generation failed', min_length=1
|
|
30
27
|
),
|
|
31
28
|
]
|
|
29
|
+
ext: ext_1.ExtensionObject | None = None
|
|
32
30
|
|
|
33
31
|
|
|
34
32
|
class BuildCreativeResponse1(AdCPBaseModel):
|
|
35
33
|
model_config = ConfigDict(
|
|
36
34
|
extra='forbid',
|
|
37
35
|
)
|
|
38
|
-
context:
|
|
39
|
-
dict[str, Any] | None,
|
|
40
|
-
Field(
|
|
41
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
42
|
-
),
|
|
43
|
-
] = None
|
|
36
|
+
context: context_1.ContextObject | None = None
|
|
44
37
|
creative_manifest: Annotated[
|
|
45
38
|
creative_manifest_1.CreativeManifest,
|
|
46
39
|
Field(description='The generated or transformed creative manifest'),
|
|
47
40
|
]
|
|
41
|
+
ext: ext_1.ExtensionObject | None = None
|
|
48
42
|
|
|
49
43
|
|
|
50
44
|
class BuildCreativeResponse(RootModel[BuildCreativeResponse1 | BuildCreativeResponse2]):
|
adcp/types/generated_poc/{create_media_buy_request.py → media_buy/create_media_buy_request.py}
RENAMED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/create_media_buy_request.json
|
|
3
|
+
# timestamp: 2025-11-22T15:29:34+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from enum import Enum
|
|
8
|
-
from typing import Annotated
|
|
8
|
+
from typing import Annotated
|
|
9
9
|
|
|
10
10
|
from adcp.types.base import AdCPBaseModel
|
|
11
11
|
from pydantic import AnyUrl, AwareDatetime, ConfigDict, Field
|
|
12
12
|
|
|
13
|
-
from
|
|
13
|
+
from ..core import brand_manifest as brand_manifest_1
|
|
14
|
+
from ..core import context as context_1
|
|
15
|
+
from ..core import ext as ext_1
|
|
16
|
+
from ..core.push_notification_config import PushNotificationConfig
|
|
14
17
|
from . import package_request
|
|
15
|
-
from .push_notification_config import PushNotificationConfig
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
class ReportingFrequency(Enum):
|
|
@@ -74,15 +76,11 @@ class CreateMediaBuyRequest(AdCPBaseModel):
|
|
|
74
76
|
),
|
|
75
77
|
]
|
|
76
78
|
buyer_ref: Annotated[str, Field(description="Buyer's reference identifier for this media buy")]
|
|
77
|
-
context:
|
|
78
|
-
dict[str, Any] | None,
|
|
79
|
-
Field(
|
|
80
|
-
description='Initiator-provided context included in the request payload. Agentsmust echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
|
|
81
|
-
),
|
|
82
|
-
] = None
|
|
79
|
+
context: context_1.ContextObject | None = None
|
|
83
80
|
end_time: Annotated[
|
|
84
81
|
AwareDatetime, Field(description='Campaign end date/time in ISO 8601 format')
|
|
85
82
|
]
|
|
83
|
+
ext: ext_1.ExtensionObject | None = None
|
|
86
84
|
packages: Annotated[
|
|
87
85
|
list[package_request.PackageRequest], Field(description='Array of package configurations')
|
|
88
86
|
]
|
adcp/types/generated_poc/{create_media_buy_response.py → media_buy/create_media_buy_response.py}
RENAMED
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
|
-
# filename:
|
|
3
|
-
# timestamp: 2025-11-
|
|
2
|
+
# filename: media_buy/create_media_buy_response.json
|
|
3
|
+
# timestamp: 2025-11-22T19:16:02+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
|
-
from typing import Annotated
|
|
7
|
+
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import AwareDatetime, ConfigDict, Field, RootModel
|
|
11
11
|
|
|
12
|
-
from
|
|
12
|
+
from ..core import context as context_1
|
|
13
|
+
from ..core import error
|
|
14
|
+
from ..core import ext as ext_1
|
|
15
|
+
from ..core import package
|
|
13
16
|
|
|
14
17
|
|
|
15
18
|
class CreateMediaBuyResponse2(AdCPBaseModel):
|
|
16
19
|
model_config = ConfigDict(
|
|
17
20
|
extra='forbid',
|
|
18
21
|
)
|
|
19
|
-
context:
|
|
20
|
-
dict[str, Any] | None,
|
|
21
|
-
Field(
|
|
22
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
23
|
-
),
|
|
24
|
-
] = None
|
|
22
|
+
context: context_1.ContextObject | None = None
|
|
25
23
|
errors: Annotated[
|
|
26
24
|
list[error.Error],
|
|
27
25
|
Field(description='Array of errors explaining why the operation failed', min_length=1),
|
|
28
26
|
]
|
|
27
|
+
ext: ext_1.ExtensionObject | None = None
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
class CreateMediaBuyResponse1(AdCPBaseModel):
|
|
@@ -33,15 +32,11 @@ class CreateMediaBuyResponse1(AdCPBaseModel):
|
|
|
33
32
|
extra='forbid',
|
|
34
33
|
)
|
|
35
34
|
buyer_ref: Annotated[str, Field(description="Buyer's reference identifier for this media buy")]
|
|
36
|
-
context:
|
|
37
|
-
dict[str, Any] | None,
|
|
38
|
-
Field(
|
|
39
|
-
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
40
|
-
),
|
|
41
|
-
] = None
|
|
35
|
+
context: context_1.ContextObject | None = None
|
|
42
36
|
creative_deadline: Annotated[
|
|
43
37
|
AwareDatetime | None, Field(description='ISO 8601 timestamp for creative upload deadline')
|
|
44
38
|
] = None
|
|
39
|
+
ext: ext_1.ExtensionObject | None = None
|
|
45
40
|
media_buy_id: Annotated[
|
|
46
41
|
str, Field(description="Publisher's unique identifier for the created media buy")
|
|
47
42
|
]
|