adcp 3.0.0__py3-none-any.whl → 3.2.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/ADCP_VERSION +1 -1
- adcp/__init__.py +13 -5
- adcp/__main__.py +4 -4
- adcp/adagents.py +5 -9
- adcp/client.py +14 -12
- adcp/protocols/a2a.py +3 -3
- adcp/protocols/base.py +2 -2
- adcp/protocols/mcp.py +3 -3
- adcp/server/base.py +6 -10
- adcp/server/content_standards.py +17 -49
- adcp/server/governance.py +20 -59
- adcp/server/mcp_tools.py +8 -4
- adcp/server/proposal.py +1 -3
- adcp/server/sponsored_intelligence.py +10 -28
- adcp/simple.py +10 -10
- adcp/types/__init__.py +14 -6
- adcp/types/_generated.py +44 -27
- adcp/types/aliases.py +55 -0
- adcp/types/base.py +7 -7
- adcp/types/generated_poc/{protocols → a2ui}/__init__.py +1 -1
- adcp/types/generated_poc/a2ui/component.py +24 -0
- adcp/types/generated_poc/a2ui/surface.py +33 -0
- adcp/types/generated_poc/account/__init__.py +3 -0
- adcp/types/generated_poc/account/list_accounts_request.py +30 -0
- adcp/types/generated_poc/account/list_accounts_response.py +30 -0
- adcp/types/generated_poc/adagents.py +192 -195
- adcp/types/generated_poc/content_standards/artifact.py +69 -69
- adcp/types/generated_poc/content_standards/artifact_webhook_payload.py +13 -13
- adcp/types/generated_poc/content_standards/calibrate_content_request.py +2 -2
- adcp/types/generated_poc/content_standards/calibrate_content_response.py +17 -17
- adcp/types/generated_poc/content_standards/content_standards.py +8 -8
- adcp/types/generated_poc/content_standards/create_content_standards_request.py +13 -13
- adcp/types/generated_poc/content_standards/create_content_standards_response.py +6 -6
- adcp/types/generated_poc/content_standards/get_content_standards_request.py +1 -1
- adcp/types/generated_poc/content_standards/get_content_standards_response.py +4 -4
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_request.py +14 -14
- adcp/types/generated_poc/content_standards/get_media_buy_artifacts_response.py +30 -30
- adcp/types/generated_poc/content_standards/list_content_standards_request.py +4 -4
- adcp/types/generated_poc/content_standards/list_content_standards_response.py +5 -5
- adcp/types/generated_poc/content_standards/update_content_standards_request.py +14 -14
- adcp/types/generated_poc/content_standards/update_content_standards_response.py +4 -4
- adcp/types/generated_poc/content_standards/validate_content_delivery_request.py +13 -13
- adcp/types/generated_poc/content_standards/validate_content_delivery_response.py +16 -16
- adcp/types/generated_poc/core/account.py +54 -0
- adcp/types/generated_poc/core/activation_key.py +8 -8
- adcp/types/generated_poc/core/assets/audio_asset.py +37 -8
- adcp/types/generated_poc/core/assets/css_asset.py +2 -2
- adcp/types/generated_poc/core/assets/daast_asset.py +18 -18
- adcp/types/generated_poc/core/assets/html_asset.py +2 -2
- adcp/types/generated_poc/core/assets/image_asset.py +6 -6
- adcp/types/generated_poc/core/assets/javascript_asset.py +3 -3
- adcp/types/generated_poc/core/assets/text_asset.py +2 -2
- adcp/types/generated_poc/core/assets/url_asset.py +3 -3
- adcp/types/generated_poc/core/assets/vast_asset.py +18 -18
- adcp/types/generated_poc/core/assets/video_asset.py +126 -10
- adcp/types/generated_poc/core/assets/webhook_asset.py +9 -9
- adcp/types/generated_poc/core/async_response_data.py +2 -2
- adcp/types/generated_poc/core/brand_manifest.py +66 -66
- adcp/types/generated_poc/core/brand_manifest_ref.py +9 -9
- adcp/types/generated_poc/core/context.py +1 -1
- adcp/types/generated_poc/core/creative_asset.py +12 -12
- adcp/types/generated_poc/core/creative_assignment.py +3 -3
- adcp/types/generated_poc/core/creative_filters.py +23 -17
- adcp/types/generated_poc/core/creative_manifest.py +4 -4
- adcp/types/generated_poc/core/creative_policy.py +4 -4
- adcp/types/generated_poc/core/delivery_metrics.py +32 -32
- adcp/types/generated_poc/core/deployment.py +20 -20
- adcp/types/generated_poc/core/destination.py +11 -11
- adcp/types/generated_poc/core/error.py +6 -6
- adcp/types/generated_poc/core/ext.py +1 -1
- adcp/types/generated_poc/core/format.py +49 -124
- adcp/types/generated_poc/core/format_id.py +5 -5
- adcp/types/generated_poc/core/frequency_cap.py +2 -2
- adcp/types/generated_poc/core/identifier.py +2 -2
- adcp/types/generated_poc/core/mcp_webhook_payload.py +10 -10
- adcp/types/generated_poc/core/measurement.py +8 -8
- adcp/types/generated_poc/core/media_buy.py +12 -8
- adcp/types/generated_poc/core/media_buy_features.py +3 -3
- adcp/types/generated_poc/core/offering.py +9 -9
- adcp/types/generated_poc/core/package.py +8 -8
- adcp/types/generated_poc/core/performance_feedback.py +18 -18
- adcp/types/generated_poc/core/placement.py +4 -4
- adcp/types/generated_poc/core/pricing_option.py +1 -1
- adcp/types/generated_poc/core/product.py +27 -21
- adcp/types/generated_poc/core/product_allocation.py +5 -5
- adcp/types/generated_poc/core/product_filters.py +27 -27
- adcp/types/generated_poc/core/promoted_offerings.py +18 -18
- adcp/types/generated_poc/core/promoted_products.py +2 -2
- adcp/types/generated_poc/core/property.py +10 -10
- adcp/types/generated_poc/core/property_id.py +4 -4
- adcp/types/generated_poc/core/property_list_ref.py +4 -4
- adcp/types/generated_poc/core/property_tag.py +4 -4
- adcp/types/generated_poc/core/proposal.py +13 -13
- adcp/types/generated_poc/core/protocol_envelope.py +8 -8
- adcp/types/generated_poc/core/publisher_property_selector.py +13 -13
- adcp/types/generated_poc/core/push_notification_config.py +5 -5
- adcp/types/generated_poc/core/reporting_capabilities.py +8 -8
- adcp/types/generated_poc/core/reporting_webhook.py +10 -10
- adcp/types/generated_poc/core/response.py +4 -4
- adcp/types/generated_poc/core/signal_filters.py +5 -5
- adcp/types/generated_poc/core/start_timing.py +3 -3
- adcp/types/generated_poc/core/sub_asset.py +14 -14
- adcp/types/generated_poc/core/targeting.py +17 -10
- adcp/types/generated_poc/creative/list_creative_formats_request.py +20 -20
- adcp/types/generated_poc/creative/list_creative_formats_response.py +5 -5
- adcp/types/generated_poc/creative/preview_creative_request.py +24 -24
- adcp/types/generated_poc/creative/preview_creative_response.py +28 -28
- adcp/types/generated_poc/creative/preview_render.py +25 -25
- adcp/types/generated_poc/enums/adcp_domain.py +4 -4
- adcp/types/generated_poc/enums/asset_content_type.py +13 -13
- adcp/types/generated_poc/enums/auth_scheme.py +2 -2
- adcp/types/generated_poc/enums/available_metric.py +9 -9
- adcp/types/generated_poc/enums/channels.py +19 -19
- adcp/types/generated_poc/enums/co_branding_requirement.py +3 -3
- adcp/types/generated_poc/enums/creative_action.py +5 -5
- adcp/types/generated_poc/enums/creative_agent_capability.py +4 -4
- adcp/types/generated_poc/enums/creative_sort_field.py +6 -6
- adcp/types/generated_poc/enums/creative_status.py +5 -5
- adcp/types/generated_poc/enums/daast_tracking_event.py +11 -11
- adcp/types/generated_poc/enums/daast_version.py +2 -2
- adcp/types/generated_poc/enums/delivery_type.py +2 -2
- adcp/types/generated_poc/enums/dimension_unit.py +4 -4
- adcp/types/generated_poc/enums/feed_format.py +3 -3
- adcp/types/generated_poc/enums/feedback_source.py +4 -4
- adcp/types/generated_poc/enums/format_category.py +7 -7
- adcp/types/generated_poc/enums/format_id_parameter.py +2 -2
- adcp/types/generated_poc/enums/frequency_cap_scope.py +3 -3
- adcp/types/generated_poc/enums/geo_level.py +4 -4
- adcp/types/generated_poc/enums/history_entry_type.py +2 -2
- adcp/types/generated_poc/enums/http_method.py +2 -2
- adcp/types/generated_poc/enums/identifier_types.py +19 -19
- adcp/types/generated_poc/enums/javascript_module_type.py +3 -3
- adcp/types/generated_poc/enums/landing_page_requirement.py +3 -3
- adcp/types/generated_poc/enums/markdown_flavor.py +2 -2
- adcp/types/generated_poc/enums/media_buy_status.py +4 -4
- adcp/types/generated_poc/enums/metric_type.py +8 -8
- adcp/types/generated_poc/enums/metro_system.py +5 -5
- adcp/types/generated_poc/enums/notification_type.py +4 -4
- adcp/types/generated_poc/enums/pacing.py +3 -3
- adcp/types/generated_poc/enums/postal_system.py +9 -9
- adcp/types/generated_poc/enums/preview_output_format.py +2 -2
- adcp/types/generated_poc/enums/pricing_model.py +7 -7
- adcp/types/generated_poc/enums/property_type.py +8 -8
- adcp/types/generated_poc/enums/publisher_identifier_types.py +5 -5
- adcp/types/generated_poc/enums/reporting_frequency.py +3 -3
- adcp/types/generated_poc/enums/signal_catalog_type.py +3 -3
- adcp/types/generated_poc/enums/sort_direction.py +2 -2
- adcp/types/generated_poc/enums/task_status.py +9 -9
- adcp/types/generated_poc/enums/task_type.py +11 -12
- adcp/types/generated_poc/enums/update_frequency.py +4 -4
- adcp/types/generated_poc/enums/url_asset_type.py +3 -3
- adcp/types/generated_poc/enums/validation_mode.py +2 -2
- adcp/types/generated_poc/enums/vast_tracking_event.py +16 -16
- adcp/types/generated_poc/enums/vast_version.py +5 -5
- adcp/types/generated_poc/enums/webhook_response_type.py +4 -4
- adcp/types/generated_poc/enums/webhook_security_method.py +3 -3
- adcp/types/generated_poc/extensions/extension_meta.py +14 -14
- adcp/types/generated_poc/media_buy/build_creative_request.py +4 -4
- adcp/types/generated_poc/media_buy/build_creative_response.py +6 -6
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_input_required.py +5 -5
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_submitted.py +1 -1
- adcp/types/generated_poc/media_buy/create_media_buy_async_response_working.py +5 -5
- adcp/types/generated_poc/media_buy/create_media_buy_request.py +27 -21
- adcp/types/generated_poc/media_buy/create_media_buy_response.py +15 -8
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_request.py +8 -8
- adcp/types/generated_poc/media_buy/get_media_buy_delivery_response.py +51 -51
- adcp/types/generated_poc/media_buy/get_products_async_response_input_required.py +6 -6
- adcp/types/generated_poc/media_buy/get_products_async_response_submitted.py +2 -2
- adcp/types/generated_poc/media_buy/get_products_async_response_working.py +4 -4
- adcp/types/generated_poc/media_buy/get_products_request.py +11 -5
- adcp/types/generated_poc/media_buy/get_products_response.py +5 -5
- adcp/types/generated_poc/media_buy/list_creative_formats_request.py +9 -9
- adcp/types/generated_poc/media_buy/list_creative_formats_response.py +5 -5
- adcp/types/generated_poc/media_buy/list_creatives_request.py +23 -23
- adcp/types/generated_poc/media_buy/list_creatives_response.py +53 -49
- adcp/types/generated_poc/media_buy/package_request.py +8 -8
- adcp/types/generated_poc/media_buy/package_update.py +16 -16
- adcp/types/generated_poc/media_buy/provide_performance_feedback_request.py +19 -19
- adcp/types/generated_poc/media_buy/provide_performance_feedback_response.py +6 -6
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_input_required.py +5 -5
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_submitted.py +1 -1
- adcp/types/generated_poc/media_buy/sync_creatives_async_response_working.py +7 -7
- adcp/types/generated_poc/media_buy/sync_creatives_request.py +14 -8
- adcp/types/generated_poc/media_buy/sync_creatives_response.py +33 -29
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_input_required.py +4 -4
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_submitted.py +1 -1
- adcp/types/generated_poc/media_buy/update_media_buy_async_response_working.py +5 -5
- adcp/types/generated_poc/media_buy/update_media_buy_request.py +14 -14
- adcp/types/generated_poc/media_buy/update_media_buy_response.py +7 -7
- adcp/types/generated_poc/pricing_options/cpc_option.py +13 -26
- adcp/types/generated_poc/pricing_options/cpcv_option.py +13 -26
- adcp/types/generated_poc/pricing_options/cpm_option.py +13 -20
- adcp/types/generated_poc/pricing_options/cpp_option.py +19 -32
- adcp/types/generated_poc/pricing_options/cpv_option.py +19 -32
- adcp/types/generated_poc/pricing_options/flat_rate_option.py +23 -36
- adcp/types/generated_poc/pricing_options/price_guidance.py +26 -0
- adcp/types/generated_poc/pricing_options/vcpm_option.py +13 -26
- adcp/types/generated_poc/property/base_property_source.py +15 -15
- adcp/types/generated_poc/property/create_property_list_request.py +4 -4
- adcp/types/generated_poc/property/create_property_list_response.py +3 -3
- adcp/types/generated_poc/property/delete_property_list_request.py +2 -2
- adcp/types/generated_poc/property/delete_property_list_response.py +3 -3
- adcp/types/generated_poc/property/feature_requirement.py +8 -8
- adcp/types/generated_poc/property/get_property_list_request.py +5 -5
- adcp/types/generated_poc/property/get_property_list_response.py +11 -11
- adcp/types/generated_poc/property/list_property_lists_request.py +5 -5
- adcp/types/generated_poc/property/list_property_lists_response.py +8 -8
- adcp/types/generated_poc/property/property_error.py +10 -10
- adcp/types/generated_poc/property/property_feature.py +4 -4
- adcp/types/generated_poc/property/property_feature_definition.py +18 -18
- adcp/types/generated_poc/property/property_list.py +11 -11
- adcp/types/generated_poc/property/property_list_changed_webhook.py +11 -11
- adcp/types/generated_poc/property/property_list_filters.py +7 -7
- adcp/types/generated_poc/property/update_property_list_request.py +8 -8
- adcp/types/generated_poc/property/update_property_list_response.py +2 -2
- adcp/types/generated_poc/protocol/get_adcp_capabilities_request.py +8 -6
- adcp/types/generated_poc/protocol/get_adcp_capabilities_response.py +59 -58
- adcp/types/generated_poc/signals/activate_signal_request.py +3 -3
- adcp/types/generated_poc/signals/activate_signal_response.py +6 -6
- adcp/types/generated_poc/signals/get_signals_request.py +8 -8
- adcp/types/generated_poc/signals/get_signals_response.py +15 -15
- adcp/types/generated_poc/sponsored_intelligence/si_capabilities.py +45 -30
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_request.py +4 -4
- adcp/types/generated_poc/sponsored_intelligence/si_get_offering_response.py +23 -23
- adcp/types/generated_poc/sponsored_intelligence/si_identity.py +16 -16
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_request.py +5 -5
- adcp/types/generated_poc/sponsored_intelligence/si_initiate_session_response.py +7 -7
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_request.py +11 -11
- adcp/types/generated_poc/sponsored_intelligence/si_send_message_response.py +37 -23
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_request.py +17 -17
- adcp/types/generated_poc/sponsored_intelligence/si_terminate_session_response.py +15 -15
- adcp/types/generated_poc/sponsored_intelligence/si_ui_element.py +11 -11
- adcp/utils/format_assets.py +32 -32
- {adcp-3.0.0.dist-info → adcp-3.2.0.dist-info}/METADATA +10 -5
- adcp-3.2.0.dist-info/RECORD +268 -0
- adcp/types/generated_poc/media_buy/list_authorized_properties_request.py +0 -38
- adcp/types/generated_poc/media_buy/list_authorized_properties_response.py +0 -84
- adcp/types/generated_poc/protocols/adcp_extension.py +0 -50
- adcp-3.0.0.dist-info/RECORD +0 -264
- {adcp-3.0.0.dist-info → adcp-3.2.0.dist-info}/WHEEL +0 -0
- {adcp-3.0.0.dist-info → adcp-3.2.0.dist-info}/entry_points.txt +0 -0
- {adcp-3.0.0.dist-info → adcp-3.2.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-3.0.0.dist-info → adcp-3.2.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: media_buy/list_creatives_response.json
|
|
3
|
-
# timestamp: 2026-
|
|
3
|
+
# timestamp: 2026-02-02T17:45:21+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -9,6 +9,7 @@ from typing import Annotated
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
10
|
from pydantic import AwareDatetime, ConfigDict, Field
|
|
11
11
|
|
|
12
|
+
from ..core import account as account_1
|
|
12
13
|
from ..core import context as context_1
|
|
13
14
|
from ..core import ext as ext_1
|
|
14
15
|
from ..core import format_id as format_id_1
|
|
@@ -30,80 +31,80 @@ from ..enums import creative_status, sort_direction
|
|
|
30
31
|
|
|
31
32
|
class AssignedPackage(AdCPBaseModel):
|
|
32
33
|
model_config = ConfigDict(
|
|
33
|
-
extra=
|
|
34
|
+
extra="allow",
|
|
34
35
|
)
|
|
35
|
-
assigned_date: Annotated[AwareDatetime, Field(description=
|
|
36
|
+
assigned_date: Annotated[AwareDatetime, Field(description="When this assignment was created")]
|
|
36
37
|
buyer_ref: Annotated[
|
|
37
38
|
str | None, Field(description="Buyer's reference identifier for this package")
|
|
38
39
|
] = None
|
|
39
|
-
package_id: Annotated[str, Field(description=
|
|
40
|
+
package_id: Annotated[str, Field(description="Package identifier")]
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
class Assignments(AdCPBaseModel):
|
|
43
44
|
model_config = ConfigDict(
|
|
44
|
-
extra=
|
|
45
|
+
extra="allow",
|
|
45
46
|
)
|
|
46
47
|
assigned_packages: Annotated[
|
|
47
48
|
list[AssignedPackage] | None,
|
|
48
|
-
Field(description=
|
|
49
|
+
Field(description="List of packages this creative is assigned to"),
|
|
49
50
|
] = None
|
|
50
51
|
assignment_count: Annotated[
|
|
51
|
-
int, Field(description=
|
|
52
|
+
int, Field(description="Total number of active package assignments", ge=0)
|
|
52
53
|
]
|
|
53
54
|
|
|
54
55
|
|
|
55
56
|
class Performance(AdCPBaseModel):
|
|
56
57
|
model_config = ConfigDict(
|
|
57
|
-
extra=
|
|
58
|
+
extra="allow",
|
|
58
59
|
)
|
|
59
60
|
clicks: Annotated[
|
|
60
|
-
int | None, Field(description=
|
|
61
|
+
int | None, Field(description="Total clicks across all assignments", ge=0)
|
|
61
62
|
] = None
|
|
62
63
|
conversion_rate: Annotated[
|
|
63
|
-
float | None, Field(description=
|
|
64
|
+
float | None, Field(description="Conversion rate across all assignments", ge=0.0, le=1.0)
|
|
64
65
|
] = None
|
|
65
66
|
ctr: Annotated[
|
|
66
|
-
float | None, Field(description=
|
|
67
|
+
float | None, Field(description="Click-through rate (clicks/impressions)", ge=0.0, le=1.0)
|
|
67
68
|
] = None
|
|
68
69
|
impressions: Annotated[
|
|
69
|
-
int | None, Field(description=
|
|
70
|
+
int | None, Field(description="Total impressions across all assignments", ge=0)
|
|
70
71
|
] = None
|
|
71
72
|
last_updated: Annotated[
|
|
72
|
-
AwareDatetime, Field(description=
|
|
73
|
+
AwareDatetime, Field(description="When performance data was last updated")
|
|
73
74
|
]
|
|
74
75
|
performance_score: Annotated[
|
|
75
|
-
float | None, Field(description=
|
|
76
|
+
float | None, Field(description="Aggregated performance score (0-100)", ge=0.0, le=100.0)
|
|
76
77
|
] = None
|
|
77
78
|
|
|
78
79
|
|
|
79
80
|
class Pagination(AdCPBaseModel):
|
|
80
81
|
model_config = ConfigDict(
|
|
81
|
-
extra=
|
|
82
|
+
extra="allow",
|
|
82
83
|
)
|
|
83
84
|
current_page: Annotated[
|
|
84
|
-
int | None, Field(description=
|
|
85
|
+
int | None, Field(description="Current page number (1-based)", ge=1)
|
|
85
86
|
] = None
|
|
86
|
-
has_more: Annotated[bool, Field(description=
|
|
87
|
-
limit: Annotated[int, Field(description=
|
|
88
|
-
offset: Annotated[int, Field(description=
|
|
87
|
+
has_more: Annotated[bool, Field(description="Whether more results are available")]
|
|
88
|
+
limit: Annotated[int, Field(description="Maximum number of results requested", ge=1)]
|
|
89
|
+
offset: Annotated[int, Field(description="Number of results skipped", ge=0)]
|
|
89
90
|
total_pages: Annotated[
|
|
90
|
-
int | None, Field(description=
|
|
91
|
+
int | None, Field(description="Total number of pages available", ge=0)
|
|
91
92
|
] = None
|
|
92
93
|
|
|
93
94
|
|
|
94
95
|
class StatusSummary(AdCPBaseModel):
|
|
95
96
|
model_config = ConfigDict(
|
|
96
|
-
extra=
|
|
97
|
+
extra="allow",
|
|
97
98
|
)
|
|
98
|
-
approved: Annotated[int | None, Field(description=
|
|
99
|
-
archived: Annotated[int | None, Field(description=
|
|
99
|
+
approved: Annotated[int | None, Field(description="Number of approved creatives", ge=0)] = None
|
|
100
|
+
archived: Annotated[int | None, Field(description="Number of archived creatives", ge=0)] = None
|
|
100
101
|
pending_review: Annotated[
|
|
101
|
-
int | None, Field(description=
|
|
102
|
+
int | None, Field(description="Number of creatives pending review", ge=0)
|
|
102
103
|
] = None
|
|
103
104
|
processing: Annotated[
|
|
104
|
-
int | None, Field(description=
|
|
105
|
+
int | None, Field(description="Number of creatives being processed", ge=0)
|
|
105
106
|
] = None
|
|
106
|
-
rejected: Annotated[int | None, Field(description=
|
|
107
|
+
rejected: Annotated[int | None, Field(description="Number of rejected creatives", ge=0)] = None
|
|
107
108
|
|
|
108
109
|
|
|
109
110
|
class SortApplied(AdCPBaseModel):
|
|
@@ -113,27 +114,30 @@ class SortApplied(AdCPBaseModel):
|
|
|
113
114
|
|
|
114
115
|
class QuerySummary(AdCPBaseModel):
|
|
115
116
|
model_config = ConfigDict(
|
|
116
|
-
extra=
|
|
117
|
+
extra="allow",
|
|
117
118
|
)
|
|
118
119
|
filters_applied: Annotated[
|
|
119
|
-
list[str] | None, Field(description=
|
|
120
|
+
list[str] | None, Field(description="List of filters that were applied to the query")
|
|
120
121
|
] = None
|
|
121
122
|
returned: Annotated[
|
|
122
|
-
int, Field(description=
|
|
123
|
+
int, Field(description="Number of creatives returned in this response", ge=0)
|
|
123
124
|
]
|
|
124
125
|
sort_applied: Annotated[
|
|
125
|
-
SortApplied | None, Field(description=
|
|
126
|
+
SortApplied | None, Field(description="Sort order that was applied")
|
|
126
127
|
] = None
|
|
127
128
|
total_matching: Annotated[
|
|
128
129
|
int,
|
|
129
|
-
Field(description=
|
|
130
|
+
Field(description="Total number of creatives matching filters (across all pages)", ge=0),
|
|
130
131
|
]
|
|
131
132
|
|
|
132
133
|
|
|
133
134
|
class Creative(AdCPBaseModel):
|
|
134
135
|
model_config = ConfigDict(
|
|
135
|
-
extra=
|
|
136
|
+
extra="allow",
|
|
136
137
|
)
|
|
138
|
+
account: Annotated[
|
|
139
|
+
account_1.Account | None, Field(description="Account that owns this creative")
|
|
140
|
+
] = None
|
|
137
141
|
assets: Annotated[
|
|
138
142
|
dict[
|
|
139
143
|
str,
|
|
@@ -150,60 +154,60 @@ class Creative(AdCPBaseModel):
|
|
|
150
154
|
| url_asset.UrlAsset,
|
|
151
155
|
]
|
|
152
156
|
| None,
|
|
153
|
-
Field(description=
|
|
157
|
+
Field(description="Assets for this creative, keyed by asset_role"),
|
|
154
158
|
] = None
|
|
155
159
|
assignments: Annotated[
|
|
156
160
|
Assignments | None,
|
|
157
|
-
Field(description=
|
|
161
|
+
Field(description="Current package assignments (included when include_assignments=true)"),
|
|
158
162
|
] = None
|
|
159
163
|
created_date: Annotated[
|
|
160
|
-
AwareDatetime, Field(description=
|
|
164
|
+
AwareDatetime, Field(description="When the creative was uploaded to the library")
|
|
161
165
|
]
|
|
162
|
-
creative_id: Annotated[str, Field(description=
|
|
166
|
+
creative_id: Annotated[str, Field(description="Unique identifier for the creative")]
|
|
163
167
|
format_id: Annotated[
|
|
164
168
|
format_id_1.FormatId,
|
|
165
|
-
Field(description=
|
|
169
|
+
Field(description="Format identifier specifying which format this creative conforms to"),
|
|
166
170
|
]
|
|
167
|
-
name: Annotated[str, Field(description=
|
|
171
|
+
name: Annotated[str, Field(description="Human-readable creative name")]
|
|
168
172
|
performance: Annotated[
|
|
169
173
|
Performance | None,
|
|
170
174
|
Field(
|
|
171
|
-
description=
|
|
175
|
+
description="Aggregated performance metrics (included when include_performance=true)"
|
|
172
176
|
),
|
|
173
177
|
] = None
|
|
174
178
|
status: Annotated[
|
|
175
|
-
creative_status.CreativeStatus, Field(description=
|
|
179
|
+
creative_status.CreativeStatus, Field(description="Current approval status of the creative")
|
|
176
180
|
]
|
|
177
181
|
sub_assets: Annotated[
|
|
178
182
|
list[sub_asset.SubAsset] | None,
|
|
179
183
|
Field(
|
|
180
|
-
description=
|
|
184
|
+
description="Sub-assets for multi-asset formats (included when include_sub_assets=true)"
|
|
181
185
|
),
|
|
182
186
|
] = None
|
|
183
187
|
tags: Annotated[
|
|
184
|
-
list[str] | None, Field(description=
|
|
188
|
+
list[str] | None, Field(description="User-defined tags for organization and searchability")
|
|
185
189
|
] = None
|
|
186
|
-
updated_date: Annotated[AwareDatetime, Field(description=
|
|
190
|
+
updated_date: Annotated[AwareDatetime, Field(description="When the creative was last modified")]
|
|
187
191
|
|
|
188
192
|
|
|
189
193
|
class ListCreativesResponse(AdCPBaseModel):
|
|
190
194
|
model_config = ConfigDict(
|
|
191
|
-
extra=
|
|
195
|
+
extra="allow",
|
|
192
196
|
)
|
|
193
197
|
context: context_1.ContextObject | None = None
|
|
194
198
|
creatives: Annotated[
|
|
195
|
-
list[Creative], Field(description=
|
|
199
|
+
list[Creative], Field(description="Array of creative assets matching the query")
|
|
196
200
|
]
|
|
197
201
|
ext: ext_1.ExtensionObject | None = None
|
|
198
202
|
format_summary: Annotated[
|
|
199
|
-
dict[str, int] | None, Field(description=
|
|
203
|
+
dict[str, int] | None, Field(description="Breakdown of creatives by format type")
|
|
200
204
|
] = None
|
|
201
205
|
pagination: Annotated[
|
|
202
|
-
Pagination, Field(description=
|
|
206
|
+
Pagination, Field(description="Pagination information for navigating results")
|
|
203
207
|
]
|
|
204
208
|
query_summary: Annotated[
|
|
205
|
-
QuerySummary, Field(description=
|
|
209
|
+
QuerySummary, Field(description="Summary of the query that was executed")
|
|
206
210
|
]
|
|
207
211
|
status_summary: Annotated[
|
|
208
|
-
StatusSummary | None, Field(description=
|
|
212
|
+
StatusSummary | None, Field(description="Breakdown of creatives by status")
|
|
209
213
|
] = None
|
|
@@ -17,12 +17,12 @@ from ..enums import pacing as pacing_1
|
|
|
17
17
|
|
|
18
18
|
class PackageRequest(AdCPBaseModel):
|
|
19
19
|
model_config = ConfigDict(
|
|
20
|
-
extra=
|
|
20
|
+
extra="allow",
|
|
21
21
|
)
|
|
22
22
|
bid_price: Annotated[
|
|
23
23
|
float | None,
|
|
24
24
|
Field(
|
|
25
|
-
description=
|
|
25
|
+
description="Bid price for auction-based CPM pricing (required if using cpm-auction-option)",
|
|
26
26
|
ge=0.0,
|
|
27
27
|
),
|
|
28
28
|
] = None
|
|
@@ -34,13 +34,13 @@ class PackageRequest(AdCPBaseModel):
|
|
|
34
34
|
creative_assignments: Annotated[
|
|
35
35
|
list[creative_assignment.CreativeAssignment] | None,
|
|
36
36
|
Field(
|
|
37
|
-
description=
|
|
37
|
+
description="Assign existing library creatives to this package with optional weights and placement targeting"
|
|
38
38
|
),
|
|
39
39
|
] = None
|
|
40
40
|
creatives: Annotated[
|
|
41
41
|
list[creative_asset.CreativeAsset] | None,
|
|
42
42
|
Field(
|
|
43
|
-
description=
|
|
43
|
+
description="Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.",
|
|
44
44
|
max_length=100,
|
|
45
45
|
),
|
|
46
46
|
] = None
|
|
@@ -48,18 +48,18 @@ class PackageRequest(AdCPBaseModel):
|
|
|
48
48
|
format_ids: Annotated[
|
|
49
49
|
list[format_id.FormatId] | None,
|
|
50
50
|
Field(
|
|
51
|
-
description=
|
|
51
|
+
description="Array of format IDs that will be used for this package - must be supported by the product. If omitted, defaults to all formats supported by the product.",
|
|
52
52
|
min_length=1,
|
|
53
53
|
),
|
|
54
54
|
] = None
|
|
55
55
|
impressions: Annotated[
|
|
56
|
-
float | None, Field(description=
|
|
56
|
+
float | None, Field(description="Impression goal for this package", ge=0.0)
|
|
57
57
|
] = None
|
|
58
58
|
pacing: pacing_1.Pacing | None = None
|
|
59
59
|
paused: Annotated[
|
|
60
60
|
bool | None,
|
|
61
61
|
Field(
|
|
62
|
-
description=
|
|
62
|
+
description="Whether this package should be created in a paused state. Paused packages do not deliver impressions. Defaults to false."
|
|
63
63
|
),
|
|
64
64
|
] = False
|
|
65
65
|
pricing_option_id: Annotated[
|
|
@@ -68,5 +68,5 @@ class PackageRequest(AdCPBaseModel):
|
|
|
68
68
|
description="ID of the selected pricing option from the product's pricing_options array"
|
|
69
69
|
),
|
|
70
70
|
]
|
|
71
|
-
product_id: Annotated[str, Field(description=
|
|
71
|
+
product_id: Annotated[str, Field(description="Product ID for this package")]
|
|
72
72
|
targeting_overlay: targeting.TargetingOverlay | None = None
|
|
@@ -17,19 +17,19 @@ from ..enums import pacing as pacing_1
|
|
|
17
17
|
|
|
18
18
|
class PackageUpdate1(AdCPBaseModel):
|
|
19
19
|
model_config = ConfigDict(
|
|
20
|
-
extra=
|
|
20
|
+
extra="allow",
|
|
21
21
|
)
|
|
22
22
|
bid_price: Annotated[
|
|
23
23
|
float | None,
|
|
24
24
|
Field(
|
|
25
|
-
description=
|
|
25
|
+
description="Updated bid price for auction-based pricing options (only applies when pricing_option is auction-based)",
|
|
26
26
|
ge=0.0,
|
|
27
27
|
),
|
|
28
28
|
] = None
|
|
29
29
|
budget: Annotated[
|
|
30
30
|
float | None,
|
|
31
31
|
Field(
|
|
32
|
-
description=
|
|
32
|
+
description="Updated budget allocation for this package in the currency specified by the pricing option",
|
|
33
33
|
ge=0.0,
|
|
34
34
|
),
|
|
35
35
|
] = None
|
|
@@ -39,44 +39,44 @@ class PackageUpdate1(AdCPBaseModel):
|
|
|
39
39
|
creative_assignments: Annotated[
|
|
40
40
|
list[creative_assignment.CreativeAssignment] | None,
|
|
41
41
|
Field(
|
|
42
|
-
description=
|
|
42
|
+
description="Replace creative assignments for this package with optional weights and placement targeting. Uses replacement semantics - omit to leave assignments unchanged."
|
|
43
43
|
),
|
|
44
44
|
] = None
|
|
45
45
|
creatives: Annotated[
|
|
46
46
|
list[creative_asset.CreativeAsset] | None,
|
|
47
47
|
Field(
|
|
48
|
-
description=
|
|
48
|
+
description="Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.",
|
|
49
49
|
max_length=100,
|
|
50
50
|
),
|
|
51
51
|
] = None
|
|
52
52
|
ext: ext_1.ExtensionObject | None = None
|
|
53
53
|
impressions: Annotated[
|
|
54
|
-
float | None, Field(description=
|
|
54
|
+
float | None, Field(description="Updated impression goal for this package", ge=0.0)
|
|
55
55
|
] = None
|
|
56
56
|
pacing: pacing_1.Pacing | None = None
|
|
57
57
|
package_id: Annotated[str, Field(description="Publisher's ID of package to update")]
|
|
58
58
|
paused: Annotated[
|
|
59
59
|
bool | None,
|
|
60
|
-
Field(description=
|
|
60
|
+
Field(description="Pause/resume specific package (true = paused, false = active)"),
|
|
61
61
|
] = None
|
|
62
62
|
targeting_overlay: targeting.TargetingOverlay | None = None
|
|
63
63
|
|
|
64
64
|
|
|
65
65
|
class PackageUpdate2(AdCPBaseModel):
|
|
66
66
|
model_config = ConfigDict(
|
|
67
|
-
extra=
|
|
67
|
+
extra="allow",
|
|
68
68
|
)
|
|
69
69
|
bid_price: Annotated[
|
|
70
70
|
float | None,
|
|
71
71
|
Field(
|
|
72
|
-
description=
|
|
72
|
+
description="Updated bid price for auction-based pricing options (only applies when pricing_option is auction-based)",
|
|
73
73
|
ge=0.0,
|
|
74
74
|
),
|
|
75
75
|
] = None
|
|
76
76
|
budget: Annotated[
|
|
77
77
|
float | None,
|
|
78
78
|
Field(
|
|
79
|
-
description=
|
|
79
|
+
description="Updated budget allocation for this package in the currency specified by the pricing option",
|
|
80
80
|
ge=0.0,
|
|
81
81
|
),
|
|
82
82
|
] = None
|
|
@@ -84,19 +84,19 @@ class PackageUpdate2(AdCPBaseModel):
|
|
|
84
84
|
creative_assignments: Annotated[
|
|
85
85
|
list[creative_assignment.CreativeAssignment] | None,
|
|
86
86
|
Field(
|
|
87
|
-
description=
|
|
87
|
+
description="Replace creative assignments for this package with optional weights and placement targeting. Uses replacement semantics - omit to leave assignments unchanged."
|
|
88
88
|
),
|
|
89
89
|
] = None
|
|
90
90
|
creatives: Annotated[
|
|
91
91
|
list[creative_asset.CreativeAsset] | None,
|
|
92
92
|
Field(
|
|
93
|
-
description=
|
|
93
|
+
description="Upload new creative assets and assign to this package (creatives will be added to library). Use creative_assignments instead for existing library creatives.",
|
|
94
94
|
max_length=100,
|
|
95
95
|
),
|
|
96
96
|
] = None
|
|
97
97
|
ext: ext_1.ExtensionObject | None = None
|
|
98
98
|
impressions: Annotated[
|
|
99
|
-
float | None, Field(description=
|
|
99
|
+
float | None, Field(description="Updated impression goal for this package", ge=0.0)
|
|
100
100
|
] = None
|
|
101
101
|
pacing: pacing_1.Pacing | None = None
|
|
102
102
|
package_id: Annotated[str | None, Field(description="Publisher's ID of package to update")] = (
|
|
@@ -104,7 +104,7 @@ class PackageUpdate2(AdCPBaseModel):
|
|
|
104
104
|
)
|
|
105
105
|
paused: Annotated[
|
|
106
106
|
bool | None,
|
|
107
|
-
Field(description=
|
|
107
|
+
Field(description="Pause/resume specific package (true = paused, false = active)"),
|
|
108
108
|
] = None
|
|
109
109
|
targeting_overlay: targeting.TargetingOverlay | None = None
|
|
110
110
|
|
|
@@ -113,7 +113,7 @@ class PackageUpdate(RootModel[PackageUpdate1 | PackageUpdate2]):
|
|
|
113
113
|
root: Annotated[
|
|
114
114
|
PackageUpdate1 | PackageUpdate2,
|
|
115
115
|
Field(
|
|
116
|
-
description=
|
|
117
|
-
title=
|
|
116
|
+
description="Package update configuration for update_media_buy. Identifies package by package_id or buyer_ref and specifies fields to modify. Fields not present are left unchanged. Note: product_id, format_ids, and pricing_option_id cannot be changed after creation.",
|
|
117
|
+
title="Package Update",
|
|
118
118
|
),
|
|
119
119
|
]
|
|
@@ -17,19 +17,19 @@ from ..enums import metric_type as metric_type_1
|
|
|
17
17
|
|
|
18
18
|
class MeasurementPeriod(AdCPBaseModel):
|
|
19
19
|
model_config = ConfigDict(
|
|
20
|
-
extra=
|
|
20
|
+
extra="allow",
|
|
21
21
|
)
|
|
22
22
|
end: Annotated[
|
|
23
|
-
AwareDatetime, Field(description=
|
|
23
|
+
AwareDatetime, Field(description="ISO 8601 end timestamp for measurement period")
|
|
24
24
|
]
|
|
25
25
|
start: Annotated[
|
|
26
|
-
AwareDatetime, Field(description=
|
|
26
|
+
AwareDatetime, Field(description="ISO 8601 start timestamp for measurement period")
|
|
27
27
|
]
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class ProvidePerformanceFeedbackRequest1(AdCPBaseModel):
|
|
31
31
|
model_config = ConfigDict(
|
|
32
|
-
extra=
|
|
32
|
+
extra="allow",
|
|
33
33
|
)
|
|
34
34
|
buyer_ref: Annotated[
|
|
35
35
|
str | None, Field(description="Buyer's reference for the media buy", min_length=1)
|
|
@@ -38,33 +38,33 @@ class ProvidePerformanceFeedbackRequest1(AdCPBaseModel):
|
|
|
38
38
|
creative_id: Annotated[
|
|
39
39
|
str | None,
|
|
40
40
|
Field(
|
|
41
|
-
description=
|
|
41
|
+
description="Specific creative asset (if feedback is creative-specific)", min_length=1
|
|
42
42
|
),
|
|
43
43
|
] = None
|
|
44
44
|
ext: ext_1.ExtensionObject | None = None
|
|
45
45
|
feedback_source: Annotated[
|
|
46
|
-
feedback_source_1.FeedbackSource | None, Field(description=
|
|
46
|
+
feedback_source_1.FeedbackSource | None, Field(description="Source of the performance data")
|
|
47
47
|
] = feedback_source_1.FeedbackSource.buyer_attribution
|
|
48
48
|
measurement_period: Annotated[
|
|
49
|
-
MeasurementPeriod, Field(description=
|
|
49
|
+
MeasurementPeriod, Field(description="Time period for performance measurement")
|
|
50
50
|
]
|
|
51
51
|
media_buy_id: Annotated[
|
|
52
52
|
str, Field(description="Publisher's media buy identifier", min_length=1)
|
|
53
53
|
]
|
|
54
54
|
metric_type: Annotated[
|
|
55
|
-
metric_type_1.MetricType | None, Field(description=
|
|
55
|
+
metric_type_1.MetricType | None, Field(description="The business metric being measured")
|
|
56
56
|
] = metric_type_1.MetricType.overall_performance
|
|
57
57
|
package_id: Annotated[
|
|
58
58
|
str | None,
|
|
59
59
|
Field(
|
|
60
|
-
description=
|
|
60
|
+
description="Specific package within the media buy (if feedback is package-specific)",
|
|
61
61
|
min_length=1,
|
|
62
62
|
),
|
|
63
63
|
] = None
|
|
64
64
|
performance_index: Annotated[
|
|
65
65
|
float,
|
|
66
66
|
Field(
|
|
67
|
-
description=
|
|
67
|
+
description="Normalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above expected)",
|
|
68
68
|
ge=0.0,
|
|
69
69
|
),
|
|
70
70
|
]
|
|
@@ -72,7 +72,7 @@ class ProvidePerformanceFeedbackRequest1(AdCPBaseModel):
|
|
|
72
72
|
|
|
73
73
|
class ProvidePerformanceFeedbackRequest2(AdCPBaseModel):
|
|
74
74
|
model_config = ConfigDict(
|
|
75
|
-
extra=
|
|
75
|
+
extra="allow",
|
|
76
76
|
)
|
|
77
77
|
buyer_ref: Annotated[
|
|
78
78
|
str, Field(description="Buyer's reference for the media buy", min_length=1)
|
|
@@ -81,33 +81,33 @@ class ProvidePerformanceFeedbackRequest2(AdCPBaseModel):
|
|
|
81
81
|
creative_id: Annotated[
|
|
82
82
|
str | None,
|
|
83
83
|
Field(
|
|
84
|
-
description=
|
|
84
|
+
description="Specific creative asset (if feedback is creative-specific)", min_length=1
|
|
85
85
|
),
|
|
86
86
|
] = None
|
|
87
87
|
ext: ext_1.ExtensionObject | None = None
|
|
88
88
|
feedback_source: Annotated[
|
|
89
|
-
feedback_source_1.FeedbackSource | None, Field(description=
|
|
89
|
+
feedback_source_1.FeedbackSource | None, Field(description="Source of the performance data")
|
|
90
90
|
] = feedback_source_1.FeedbackSource.buyer_attribution
|
|
91
91
|
measurement_period: Annotated[
|
|
92
|
-
MeasurementPeriod, Field(description=
|
|
92
|
+
MeasurementPeriod, Field(description="Time period for performance measurement")
|
|
93
93
|
]
|
|
94
94
|
media_buy_id: Annotated[
|
|
95
95
|
str | None, Field(description="Publisher's media buy identifier", min_length=1)
|
|
96
96
|
] = None
|
|
97
97
|
metric_type: Annotated[
|
|
98
|
-
metric_type_1.MetricType | None, Field(description=
|
|
98
|
+
metric_type_1.MetricType | None, Field(description="The business metric being measured")
|
|
99
99
|
] = metric_type_1.MetricType.overall_performance
|
|
100
100
|
package_id: Annotated[
|
|
101
101
|
str | None,
|
|
102
102
|
Field(
|
|
103
|
-
description=
|
|
103
|
+
description="Specific package within the media buy (if feedback is package-specific)",
|
|
104
104
|
min_length=1,
|
|
105
105
|
),
|
|
106
106
|
] = None
|
|
107
107
|
performance_index: Annotated[
|
|
108
108
|
float,
|
|
109
109
|
Field(
|
|
110
|
-
description=
|
|
110
|
+
description="Normalized performance score (0.0 = no value, 1.0 = expected, >1.0 = above expected)",
|
|
111
111
|
ge=0.0,
|
|
112
112
|
),
|
|
113
113
|
]
|
|
@@ -119,7 +119,7 @@ class ProvidePerformanceFeedbackRequest(
|
|
|
119
119
|
root: Annotated[
|
|
120
120
|
ProvidePerformanceFeedbackRequest1 | ProvidePerformanceFeedbackRequest2,
|
|
121
121
|
Field(
|
|
122
|
-
description=
|
|
123
|
-
title=
|
|
122
|
+
description="Request payload for provide_performance_feedback task",
|
|
123
|
+
title="Provide Performance Feedback Request",
|
|
124
124
|
),
|
|
125
125
|
]
|
|
@@ -16,25 +16,25 @@ from ..core import ext as ext_1
|
|
|
16
16
|
|
|
17
17
|
class ProvidePerformanceFeedbackResponse1(AdCPBaseModel):
|
|
18
18
|
model_config = ConfigDict(
|
|
19
|
-
extra=
|
|
19
|
+
extra="allow",
|
|
20
20
|
)
|
|
21
21
|
context: context_1.ContextObject | None = None
|
|
22
22
|
ext: ext_1.ExtensionObject | None = None
|
|
23
23
|
success: Annotated[
|
|
24
24
|
Literal[True],
|
|
25
|
-
Field(description=
|
|
25
|
+
Field(description="Whether the performance feedback was successfully received"),
|
|
26
26
|
]
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class ProvidePerformanceFeedbackResponse2(AdCPBaseModel):
|
|
30
30
|
model_config = ConfigDict(
|
|
31
|
-
extra=
|
|
31
|
+
extra="allow",
|
|
32
32
|
)
|
|
33
33
|
context: context_1.ContextObject | None = None
|
|
34
34
|
errors: Annotated[
|
|
35
35
|
list[error.Error],
|
|
36
36
|
Field(
|
|
37
|
-
description=
|
|
37
|
+
description="Array of errors explaining why feedback was rejected (e.g., invalid measurement period, missing campaign data)",
|
|
38
38
|
min_length=1,
|
|
39
39
|
),
|
|
40
40
|
]
|
|
@@ -47,7 +47,7 @@ class ProvidePerformanceFeedbackResponse(
|
|
|
47
47
|
root: Annotated[
|
|
48
48
|
ProvidePerformanceFeedbackResponse1 | ProvidePerformanceFeedbackResponse2,
|
|
49
49
|
Field(
|
|
50
|
-
description=
|
|
51
|
-
title=
|
|
50
|
+
description="Response payload for provide_performance_feedback task. Returns either success confirmation OR error information, never both.",
|
|
51
|
+
title="Provide Performance Feedback Response",
|
|
52
52
|
),
|
|
53
53
|
]
|
|
@@ -15,17 +15,17 @@ from ..core import ext as ext_1
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class Reason(Enum):
|
|
18
|
-
APPROVAL_REQUIRED =
|
|
19
|
-
ASSET_CONFIRMATION =
|
|
20
|
-
FORMAT_CLARIFICATION =
|
|
18
|
+
APPROVAL_REQUIRED = "APPROVAL_REQUIRED"
|
|
19
|
+
ASSET_CONFIRMATION = "ASSET_CONFIRMATION"
|
|
20
|
+
FORMAT_CLARIFICATION = "FORMAT_CLARIFICATION"
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class SyncCreativesInputRequired(AdCPBaseModel):
|
|
24
24
|
model_config = ConfigDict(
|
|
25
|
-
extra=
|
|
25
|
+
extra="allow",
|
|
26
26
|
)
|
|
27
27
|
context: context_1.ContextObject | None = None
|
|
28
28
|
ext: ext_1.ExtensionObject | None = None
|
|
29
29
|
reason: Annotated[
|
|
30
|
-
Reason | None, Field(description=
|
|
30
|
+
Reason | None, Field(description="Reason code indicating why buyer input is needed")
|
|
31
31
|
] = None
|
|
@@ -15,23 +15,23 @@ from ..core import ext as ext_1
|
|
|
15
15
|
|
|
16
16
|
class SyncCreativesWorking(AdCPBaseModel):
|
|
17
17
|
model_config = ConfigDict(
|
|
18
|
-
extra=
|
|
18
|
+
extra="allow",
|
|
19
19
|
)
|
|
20
20
|
context: context_1.ContextObject | None = None
|
|
21
21
|
creatives_processed: Annotated[
|
|
22
|
-
int | None, Field(description=
|
|
22
|
+
int | None, Field(description="Number of creatives processed so far", ge=0)
|
|
23
23
|
] = None
|
|
24
24
|
creatives_total: Annotated[
|
|
25
|
-
int | None, Field(description=
|
|
25
|
+
int | None, Field(description="Total number of creatives to process", ge=0)
|
|
26
26
|
] = None
|
|
27
27
|
current_step: Annotated[
|
|
28
|
-
str | None, Field(description=
|
|
28
|
+
str | None, Field(description="Current step or phase of the operation")
|
|
29
29
|
] = None
|
|
30
30
|
ext: ext_1.ExtensionObject | None = None
|
|
31
31
|
percentage: Annotated[
|
|
32
|
-
float | None, Field(description=
|
|
32
|
+
float | None, Field(description="Completion percentage (0-100)", ge=0.0, le=100.0)
|
|
33
33
|
] = None
|
|
34
|
-
step_number: Annotated[int | None, Field(description=
|
|
34
|
+
step_number: Annotated[int | None, Field(description="Current step number", ge=1)] = None
|
|
35
35
|
total_steps: Annotated[
|
|
36
|
-
int | None, Field(description=
|
|
36
|
+
int | None, Field(description="Total number of steps in the operation", ge=1)
|
|
37
37
|
] = None
|