adcp 3.1.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 +5 -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 +10 -6
- adcp/types/_generated.py +44 -27
- 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.1.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.1.0.dist-info/RECORD +0 -264
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/WHEEL +0 -0
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/entry_points.txt +0 -0
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-3.1.0.dist-info → adcp-3.2.0.dist-info}/top_level.txt +0 -0
|
@@ -15,19 +15,19 @@ from ..core import identifier
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class Role(Enum):
|
|
18
|
-
title_ =
|
|
19
|
-
paragraph =
|
|
20
|
-
heading =
|
|
21
|
-
caption =
|
|
22
|
-
quote =
|
|
23
|
-
list_item =
|
|
24
|
-
description =
|
|
18
|
+
title_ = "title"
|
|
19
|
+
paragraph = "paragraph"
|
|
20
|
+
heading = "heading"
|
|
21
|
+
caption = "caption"
|
|
22
|
+
quote = "quote"
|
|
23
|
+
list_item = "list_item"
|
|
24
|
+
description = "description"
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
class Assets(AdCPBaseModel):
|
|
28
|
-
content: Annotated[str, Field(description=
|
|
28
|
+
content: Annotated[str, Field(description="Text content")]
|
|
29
29
|
heading_level: Annotated[
|
|
30
|
-
int | None, Field(description=
|
|
30
|
+
int | None, Field(description="Heading level (1-6), only for role=heading", ge=1, le=6)
|
|
31
31
|
] = None
|
|
32
32
|
language: Annotated[
|
|
33
33
|
str | None,
|
|
@@ -41,123 +41,123 @@ class Assets(AdCPBaseModel):
|
|
|
41
41
|
description="Role of this text in the document. Use 'title' for the main artifact title, 'description' for summaries."
|
|
42
42
|
),
|
|
43
43
|
] = None
|
|
44
|
-
type: Literal[
|
|
44
|
+
type: Literal["text"]
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
class TranscriptSource(Enum):
|
|
48
|
-
original_script =
|
|
49
|
-
subtitles =
|
|
50
|
-
closed_captions =
|
|
51
|
-
dub =
|
|
52
|
-
generated =
|
|
48
|
+
original_script = "original_script"
|
|
49
|
+
subtitles = "subtitles"
|
|
50
|
+
closed_captions = "closed_captions"
|
|
51
|
+
dub = "dub"
|
|
52
|
+
generated = "generated"
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
class TranscriptSource1(Enum):
|
|
56
|
-
original_script =
|
|
57
|
-
closed_captions =
|
|
58
|
-
generated =
|
|
56
|
+
original_script = "original_script"
|
|
57
|
+
closed_captions = "closed_captions"
|
|
58
|
+
generated = "generated"
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
class Identifiers(AdCPBaseModel):
|
|
62
62
|
model_config = ConfigDict(
|
|
63
|
-
extra=
|
|
63
|
+
extra="allow",
|
|
64
64
|
)
|
|
65
|
-
apple_podcast_id: Annotated[str | None, Field(description=
|
|
66
|
-
podcast_guid: Annotated[str | None, Field(description=
|
|
67
|
-
rss_url: Annotated[AnyUrl | None, Field(description=
|
|
68
|
-
spotify_show_id: Annotated[str | None, Field(description=
|
|
69
|
-
youtube_video_id: Annotated[str | None, Field(description=
|
|
65
|
+
apple_podcast_id: Annotated[str | None, Field(description="Apple Podcasts ID")] = None
|
|
66
|
+
podcast_guid: Annotated[str | None, Field(description="Podcast GUID (from RSS feed)")] = None
|
|
67
|
+
rss_url: Annotated[AnyUrl | None, Field(description="RSS feed URL")] = None
|
|
68
|
+
spotify_show_id: Annotated[str | None, Field(description="Spotify show ID")] = None
|
|
69
|
+
youtube_video_id: Annotated[str | None, Field(description="YouTube video ID")] = None
|
|
70
70
|
|
|
71
71
|
|
|
72
72
|
class Metadata(AdCPBaseModel):
|
|
73
73
|
model_config = ConfigDict(
|
|
74
|
-
extra=
|
|
74
|
+
extra="allow",
|
|
75
75
|
)
|
|
76
|
-
author: Annotated[str | None, Field(description=
|
|
77
|
-
canonical: Annotated[AnyUrl | None, Field(description=
|
|
76
|
+
author: Annotated[str | None, Field(description="Artifact author name")] = None
|
|
77
|
+
canonical: Annotated[AnyUrl | None, Field(description="Canonical URL")] = None
|
|
78
78
|
json_ld: Annotated[
|
|
79
|
-
list[dict[str, Any]] | None, Field(description=
|
|
79
|
+
list[dict[str, Any]] | None, Field(description="JSON-LD structured data (schema.org)")
|
|
80
80
|
] = None
|
|
81
|
-
keywords: Annotated[str | None, Field(description=
|
|
81
|
+
keywords: Annotated[str | None, Field(description="Artifact keywords")] = None
|
|
82
82
|
open_graph: Annotated[
|
|
83
|
-
dict[str, Any] | None, Field(description=
|
|
83
|
+
dict[str, Any] | None, Field(description="Open Graph protocol metadata")
|
|
84
84
|
] = None
|
|
85
|
-
twitter_card: Annotated[dict[str, Any] | None, Field(description=
|
|
85
|
+
twitter_card: Annotated[dict[str, Any] | None, Field(description="Twitter Card metadata")] = (
|
|
86
86
|
None
|
|
87
87
|
)
|
|
88
88
|
|
|
89
89
|
|
|
90
90
|
class AssetAccess1(AdCPBaseModel):
|
|
91
|
-
method: Literal[
|
|
92
|
-
token: Annotated[str, Field(description=
|
|
91
|
+
method: Literal["bearer_token"]
|
|
92
|
+
token: Annotated[str, Field(description="OAuth2 bearer token for Authorization header")]
|
|
93
93
|
|
|
94
94
|
|
|
95
95
|
class Provider(Enum):
|
|
96
|
-
gcp =
|
|
97
|
-
aws =
|
|
96
|
+
gcp = "gcp"
|
|
97
|
+
aws = "aws"
|
|
98
98
|
|
|
99
99
|
|
|
100
100
|
class AssetAccess2(AdCPBaseModel):
|
|
101
101
|
credentials: Annotated[
|
|
102
|
-
dict[str, Any] | None, Field(description=
|
|
102
|
+
dict[str, Any] | None, Field(description="Service account credentials")
|
|
103
103
|
] = None
|
|
104
|
-
method: Literal[
|
|
105
|
-
provider: Annotated[Provider, Field(description=
|
|
104
|
+
method: Literal["service_account"]
|
|
105
|
+
provider: Annotated[Provider, Field(description="Cloud provider")]
|
|
106
106
|
|
|
107
107
|
|
|
108
108
|
class AssetAccess3(AdCPBaseModel):
|
|
109
|
-
method: Literal[
|
|
109
|
+
method: Literal["signed_url"]
|
|
110
110
|
|
|
111
111
|
|
|
112
112
|
class AssetAccess(RootModel[AssetAccess1 | AssetAccess2 | AssetAccess3]):
|
|
113
113
|
root: Annotated[
|
|
114
114
|
AssetAccess1 | AssetAccess2 | AssetAccess3,
|
|
115
|
-
Field(description=
|
|
115
|
+
Field(description="Authentication for accessing secured asset URLs"),
|
|
116
116
|
]
|
|
117
117
|
|
|
118
118
|
|
|
119
119
|
class Assets1(AdCPBaseModel):
|
|
120
|
-
access: Annotated[AssetAccess | None, Field(description=
|
|
120
|
+
access: Annotated[AssetAccess | None, Field(description="Authentication for secured URLs")] = (
|
|
121
121
|
None
|
|
122
122
|
)
|
|
123
|
-
alt_text: Annotated[str | None, Field(description=
|
|
124
|
-
caption: Annotated[str | None, Field(description=
|
|
125
|
-
height: Annotated[int | None, Field(description=
|
|
126
|
-
type: Literal[
|
|
127
|
-
url: Annotated[AnyUrl, Field(description=
|
|
128
|
-
width: Annotated[int | None, Field(description=
|
|
123
|
+
alt_text: Annotated[str | None, Field(description="Alt text or image description")] = None
|
|
124
|
+
caption: Annotated[str | None, Field(description="Image caption")] = None
|
|
125
|
+
height: Annotated[int | None, Field(description="Image height in pixels")] = None
|
|
126
|
+
type: Literal["image"]
|
|
127
|
+
url: Annotated[AnyUrl, Field(description="Image URL")]
|
|
128
|
+
width: Annotated[int | None, Field(description="Image width in pixels")] = None
|
|
129
129
|
|
|
130
130
|
|
|
131
131
|
class Assets2(AdCPBaseModel):
|
|
132
|
-
access: Annotated[AssetAccess | None, Field(description=
|
|
132
|
+
access: Annotated[AssetAccess | None, Field(description="Authentication for secured URLs")] = (
|
|
133
133
|
None
|
|
134
134
|
)
|
|
135
|
-
duration_ms: Annotated[int | None, Field(description=
|
|
136
|
-
thumbnail_url: Annotated[AnyUrl | None, Field(description=
|
|
137
|
-
transcript: Annotated[str | None, Field(description=
|
|
135
|
+
duration_ms: Annotated[int | None, Field(description="Video duration in milliseconds")] = None
|
|
136
|
+
thumbnail_url: Annotated[AnyUrl | None, Field(description="Video thumbnail URL")] = None
|
|
137
|
+
transcript: Annotated[str | None, Field(description="Video transcript")] = None
|
|
138
138
|
transcript_source: Annotated[
|
|
139
|
-
TranscriptSource | None, Field(description=
|
|
139
|
+
TranscriptSource | None, Field(description="How the transcript was generated")
|
|
140
140
|
] = None
|
|
141
|
-
type: Literal[
|
|
142
|
-
url: Annotated[AnyUrl, Field(description=
|
|
141
|
+
type: Literal["video"]
|
|
142
|
+
url: Annotated[AnyUrl, Field(description="Video URL")]
|
|
143
143
|
|
|
144
144
|
|
|
145
145
|
class Assets3(AdCPBaseModel):
|
|
146
|
-
access: Annotated[AssetAccess | None, Field(description=
|
|
146
|
+
access: Annotated[AssetAccess | None, Field(description="Authentication for secured URLs")] = (
|
|
147
147
|
None
|
|
148
148
|
)
|
|
149
|
-
duration_ms: Annotated[int | None, Field(description=
|
|
150
|
-
transcript: Annotated[str | None, Field(description=
|
|
149
|
+
duration_ms: Annotated[int | None, Field(description="Audio duration in milliseconds")] = None
|
|
150
|
+
transcript: Annotated[str | None, Field(description="Audio transcript")] = None
|
|
151
151
|
transcript_source: Annotated[
|
|
152
|
-
TranscriptSource1 | None, Field(description=
|
|
152
|
+
TranscriptSource1 | None, Field(description="How the transcript was generated")
|
|
153
153
|
] = None
|
|
154
|
-
type: Literal[
|
|
155
|
-
url: Annotated[AnyUrl, Field(description=
|
|
154
|
+
type: Literal["audio"]
|
|
155
|
+
url: Annotated[AnyUrl, Field(description="Audio URL")]
|
|
156
156
|
|
|
157
157
|
|
|
158
158
|
class Artifact(AdCPBaseModel):
|
|
159
159
|
model_config = ConfigDict(
|
|
160
|
-
extra=
|
|
160
|
+
extra="allow",
|
|
161
161
|
)
|
|
162
162
|
artifact_id: Annotated[
|
|
163
163
|
str,
|
|
@@ -168,36 +168,36 @@ class Artifact(AdCPBaseModel):
|
|
|
168
168
|
assets: Annotated[
|
|
169
169
|
list[Assets | Assets1 | Assets2 | Assets3],
|
|
170
170
|
Field(
|
|
171
|
-
description=
|
|
171
|
+
description="Artifact assets in document flow order - text blocks, images, video, audio"
|
|
172
172
|
),
|
|
173
173
|
]
|
|
174
174
|
format_id: Annotated[
|
|
175
175
|
format_id_1.FormatId | None,
|
|
176
176
|
Field(
|
|
177
|
-
description=
|
|
177
|
+
description="Optional reference to a format definition. Uses the same format registry as creative formats."
|
|
178
178
|
),
|
|
179
179
|
] = None
|
|
180
180
|
identifiers: Annotated[
|
|
181
|
-
Identifiers | None, Field(description=
|
|
181
|
+
Identifiers | None, Field(description="Platform-specific identifiers for this artifact")
|
|
182
182
|
] = None
|
|
183
183
|
last_update_time: Annotated[
|
|
184
184
|
AwareDatetime | None,
|
|
185
|
-
Field(description=
|
|
185
|
+
Field(description="When the artifact was last modified (ISO 8601 format)"),
|
|
186
186
|
] = None
|
|
187
187
|
metadata: Annotated[
|
|
188
|
-
Metadata | None, Field(description=
|
|
188
|
+
Metadata | None, Field(description="Rich metadata extracted from the artifact")
|
|
189
189
|
] = None
|
|
190
190
|
property_id: Annotated[
|
|
191
191
|
identifier.Identifier,
|
|
192
|
-
Field(description=
|
|
192
|
+
Field(description="Identifier for the property where this artifact appears"),
|
|
193
193
|
]
|
|
194
194
|
published_time: Annotated[
|
|
195
|
-
AwareDatetime | None, Field(description=
|
|
195
|
+
AwareDatetime | None, Field(description="When the artifact was published (ISO 8601 format)")
|
|
196
196
|
] = None
|
|
197
197
|
url: Annotated[
|
|
198
198
|
AnyUrl | None,
|
|
199
199
|
Field(
|
|
200
|
-
description=
|
|
200
|
+
description="Optional URL for this artifact (web page, podcast feed, video page). Not all artifacts have URLs (e.g., Instagram content, podcast segments, TV scenes)."
|
|
201
201
|
),
|
|
202
202
|
] = None
|
|
203
203
|
variant_id: Annotated[
|
|
@@ -14,51 +14,51 @@ from . import artifact as artifact_1
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class Pagination(AdCPBaseModel):
|
|
17
|
-
batch_number: Annotated[int | None, Field(description=
|
|
17
|
+
batch_number: Annotated[int | None, Field(description="Current batch number (1-indexed)")] = (
|
|
18
18
|
None
|
|
19
19
|
)
|
|
20
20
|
total_artifacts: Annotated[
|
|
21
|
-
int | None, Field(description=
|
|
21
|
+
int | None, Field(description="Total artifacts in the delivery period")
|
|
22
22
|
] = None
|
|
23
23
|
total_batches: Annotated[
|
|
24
|
-
int | None, Field(description=
|
|
24
|
+
int | None, Field(description="Total batches for this delivery period")
|
|
25
25
|
] = None
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
class Artifact(AdCPBaseModel):
|
|
29
|
-
artifact: Annotated[artifact_1.Artifact, Field(description=
|
|
29
|
+
artifact: Annotated[artifact_1.Artifact, Field(description="The content artifact")]
|
|
30
30
|
delivered_at: Annotated[
|
|
31
|
-
AwareDatetime, Field(description=
|
|
31
|
+
AwareDatetime, Field(description="When the impression was delivered (ISO 8601)")
|
|
32
32
|
]
|
|
33
33
|
impression_id: Annotated[
|
|
34
34
|
str | None,
|
|
35
|
-
Field(description=
|
|
35
|
+
Field(description="Optional impression identifier for correlation with delivery reports"),
|
|
36
36
|
] = None
|
|
37
37
|
package_id: Annotated[
|
|
38
|
-
str | None, Field(description=
|
|
38
|
+
str | None, Field(description="Package within the media buy this artifact relates to")
|
|
39
39
|
] = None
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class ArtifactWebhookPayload(AdCPBaseModel):
|
|
43
43
|
model_config = ConfigDict(
|
|
44
|
-
extra=
|
|
44
|
+
extra="allow",
|
|
45
45
|
)
|
|
46
46
|
artifacts: Annotated[
|
|
47
|
-
list[Artifact], Field(description=
|
|
47
|
+
list[Artifact], Field(description="Content artifacts from delivered impressions")
|
|
48
48
|
]
|
|
49
49
|
batch_id: Annotated[
|
|
50
50
|
str,
|
|
51
51
|
Field(
|
|
52
|
-
description=
|
|
52
|
+
description="Unique identifier for this batch of artifacts. Use for deduplication and acknowledgment."
|
|
53
53
|
),
|
|
54
54
|
]
|
|
55
55
|
ext: ext_1.ExtensionObject | None = None
|
|
56
56
|
media_buy_id: Annotated[
|
|
57
|
-
str, Field(description=
|
|
57
|
+
str, Field(description="Media buy identifier these artifacts belong to")
|
|
58
58
|
]
|
|
59
59
|
pagination: Annotated[
|
|
60
|
-
Pagination | None, Field(description=
|
|
60
|
+
Pagination | None, Field(description="Pagination info when batching large artifact sets")
|
|
61
61
|
] = None
|
|
62
62
|
timestamp: Annotated[
|
|
63
|
-
AwareDatetime, Field(description=
|
|
63
|
+
AwareDatetime, Field(description="When this batch was generated (ISO 8601)")
|
|
64
64
|
]
|
|
@@ -13,5 +13,5 @@ from . import artifact as artifact_1
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class CalibrateContentRequest(AdCPBaseModel):
|
|
16
|
-
artifact: Annotated[artifact_1.Artifact, Field(description=
|
|
17
|
-
standards_id: Annotated[str, Field(description=
|
|
16
|
+
artifact: Annotated[artifact_1.Artifact, Field(description="Artifact to evaluate")]
|
|
17
|
+
standards_id: Annotated[str, Field(description="Standards configuration to calibrate against")]
|
|
@@ -14,53 +14,53 @@ from ..core import error
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class Status(Enum):
|
|
17
|
-
passed =
|
|
18
|
-
failed =
|
|
19
|
-
warning =
|
|
20
|
-
unevaluated =
|
|
17
|
+
passed = "passed"
|
|
18
|
+
failed = "failed"
|
|
19
|
+
warning = "warning"
|
|
20
|
+
unevaluated = "unevaluated"
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class Feature(AdCPBaseModel):
|
|
24
24
|
explanation: Annotated[
|
|
25
25
|
str | None,
|
|
26
|
-
Field(description=
|
|
26
|
+
Field(description="Human-readable explanation of why this feature passed or failed"),
|
|
27
27
|
] = None
|
|
28
28
|
feature_id: Annotated[
|
|
29
29
|
str,
|
|
30
30
|
Field(
|
|
31
|
-
description=
|
|
31
|
+
description="Which feature was evaluated (e.g., brand_safety, brand_suitability, competitor_adjacency)"
|
|
32
32
|
),
|
|
33
33
|
]
|
|
34
|
-
status: Annotated[Status, Field(description=
|
|
34
|
+
status: Annotated[Status, Field(description="Evaluation status for this feature")]
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
class Verdict(Enum):
|
|
38
|
-
pass_ =
|
|
39
|
-
fail =
|
|
38
|
+
pass_ = "pass"
|
|
39
|
+
fail = "fail"
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class CalibrateContentResponse1(AdCPBaseModel):
|
|
43
43
|
confidence: Annotated[
|
|
44
|
-
float | None, Field(description=
|
|
44
|
+
float | None, Field(description="Model confidence in the verdict (0-1)", ge=0.0, le=1.0)
|
|
45
45
|
] = None
|
|
46
46
|
errors: Annotated[
|
|
47
|
-
Any | None, Field(description=
|
|
47
|
+
Any | None, Field(description="Field must not be present in success response")
|
|
48
48
|
] = None
|
|
49
49
|
explanation: Annotated[
|
|
50
|
-
str | None, Field(description=
|
|
50
|
+
str | None, Field(description="Detailed natural language explanation of the decision")
|
|
51
51
|
] = None
|
|
52
52
|
features: Annotated[
|
|
53
|
-
list[Feature] | None, Field(description=
|
|
53
|
+
list[Feature] | None, Field(description="Per-feature breakdown with explanations")
|
|
54
54
|
] = None
|
|
55
55
|
verdict: Annotated[
|
|
56
|
-
Verdict, Field(description=
|
|
56
|
+
Verdict, Field(description="Overall pass/fail verdict for the content evaluation")
|
|
57
57
|
]
|
|
58
58
|
|
|
59
59
|
|
|
60
60
|
class CalibrateContentResponse2(AdCPBaseModel):
|
|
61
61
|
errors: list[error.Error]
|
|
62
62
|
verdict: Annotated[
|
|
63
|
-
Any | None, Field(description=
|
|
63
|
+
Any | None, Field(description="Field must not be present in error response")
|
|
64
64
|
] = None
|
|
65
65
|
|
|
66
66
|
|
|
@@ -68,7 +68,7 @@ class CalibrateContentResponse(RootModel[CalibrateContentResponse1 | CalibrateCo
|
|
|
68
68
|
root: Annotated[
|
|
69
69
|
CalibrateContentResponse1 | CalibrateContentResponse2,
|
|
70
70
|
Field(
|
|
71
|
-
description=
|
|
72
|
-
title=
|
|
71
|
+
description="Response payload with verdict and detailed explanations for collaborative calibration",
|
|
72
|
+
title="Calibrate Content Response",
|
|
73
73
|
),
|
|
74
74
|
]
|
|
@@ -17,11 +17,11 @@ from . import artifact
|
|
|
17
17
|
class CalibrationExemplars(AdCPBaseModel):
|
|
18
18
|
fail: Annotated[
|
|
19
19
|
list[artifact.Artifact] | None,
|
|
20
|
-
Field(description=
|
|
20
|
+
Field(description="Artifacts that fail the content standards"),
|
|
21
21
|
] = None
|
|
22
22
|
pass_: Annotated[
|
|
23
23
|
list[artifact.Artifact] | None,
|
|
24
|
-
Field(alias=
|
|
24
|
+
Field(alias="pass", description="Artifacts that pass the content standards"),
|
|
25
25
|
] = None
|
|
26
26
|
|
|
27
27
|
|
|
@@ -29,19 +29,19 @@ class ContentStandards(AdCPBaseModel):
|
|
|
29
29
|
calibration_exemplars: Annotated[
|
|
30
30
|
CalibrationExemplars | None,
|
|
31
31
|
Field(
|
|
32
|
-
description=
|
|
32
|
+
description="Training/test set to calibrate policy interpretation. Provides concrete examples of pass/fail decisions."
|
|
33
33
|
),
|
|
34
34
|
] = None
|
|
35
35
|
channels_any: Annotated[
|
|
36
36
|
list[channels.MediaChannel] | None,
|
|
37
37
|
Field(
|
|
38
|
-
description=
|
|
38
|
+
description="Advertising channels. Standards apply to ANY of the listed channels (OR logic)."
|
|
39
39
|
),
|
|
40
40
|
] = None
|
|
41
41
|
countries_all: Annotated[
|
|
42
42
|
list[str] | None,
|
|
43
43
|
Field(
|
|
44
|
-
description=
|
|
44
|
+
description="ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic)."
|
|
45
45
|
),
|
|
46
46
|
] = None
|
|
47
47
|
ext: ext_1.ExtensionObject | None = None
|
|
@@ -53,14 +53,14 @@ class ContentStandards(AdCPBaseModel):
|
|
|
53
53
|
),
|
|
54
54
|
] = None
|
|
55
55
|
name: Annotated[
|
|
56
|
-
str | None, Field(description=
|
|
56
|
+
str | None, Field(description="Human-readable name for this standards configuration")
|
|
57
57
|
] = None
|
|
58
58
|
policy: Annotated[
|
|
59
59
|
str | None,
|
|
60
60
|
Field(
|
|
61
|
-
description=
|
|
61
|
+
description="Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments."
|
|
62
62
|
),
|
|
63
63
|
] = None
|
|
64
64
|
standards_id: Annotated[
|
|
65
|
-
str, Field(description=
|
|
65
|
+
str, Field(description="Unique identifier for this standards configuration")
|
|
66
66
|
]
|
|
@@ -17,9 +17,9 @@ from . import artifact
|
|
|
17
17
|
|
|
18
18
|
class Fail(AdCPBaseModel):
|
|
19
19
|
language: Annotated[
|
|
20
|
-
str | None, Field(description=
|
|
20
|
+
str | None, Field(description="BCP 47 language tag for content at this URL")
|
|
21
21
|
] = None
|
|
22
|
-
type: Annotated[Literal[
|
|
22
|
+
type: Annotated[Literal["url"], Field(description="Indicates this is a URL reference")]
|
|
23
23
|
value: Annotated[
|
|
24
24
|
AnyUrl,
|
|
25
25
|
Field(
|
|
@@ -30,9 +30,9 @@ class Fail(AdCPBaseModel):
|
|
|
30
30
|
|
|
31
31
|
class Pass(AdCPBaseModel):
|
|
32
32
|
language: Annotated[
|
|
33
|
-
str | None, Field(description=
|
|
33
|
+
str | None, Field(description="BCP 47 language tag for content at this URL")
|
|
34
34
|
] = None
|
|
35
|
-
type: Annotated[Literal[
|
|
35
|
+
type: Annotated[Literal["url"], Field(description="Indicates this is a URL reference")]
|
|
36
36
|
value: Annotated[
|
|
37
37
|
AnyUrl,
|
|
38
38
|
Field(
|
|
@@ -45,17 +45,17 @@ class Scope(AdCPBaseModel):
|
|
|
45
45
|
channels_any: Annotated[
|
|
46
46
|
list[channels.MediaChannel] | None,
|
|
47
47
|
Field(
|
|
48
|
-
description=
|
|
48
|
+
description="Advertising channels. Standards apply to ANY of the listed channels (OR logic)."
|
|
49
49
|
),
|
|
50
50
|
] = None
|
|
51
51
|
countries_all: Annotated[
|
|
52
52
|
list[str] | None,
|
|
53
53
|
Field(
|
|
54
|
-
description=
|
|
54
|
+
description="ISO 3166-1 alpha-2 country codes. Standards apply in ALL listed countries (AND logic)."
|
|
55
55
|
),
|
|
56
56
|
] = None
|
|
57
57
|
description: Annotated[
|
|
58
|
-
str | None, Field(description=
|
|
58
|
+
str | None, Field(description="Human-readable description of this scope")
|
|
59
59
|
] = None
|
|
60
60
|
languages_any: Annotated[
|
|
61
61
|
list[str],
|
|
@@ -68,22 +68,22 @@ class Scope(AdCPBaseModel):
|
|
|
68
68
|
|
|
69
69
|
class CalibrationExemplars(AdCPBaseModel):
|
|
70
70
|
fail: Annotated[
|
|
71
|
-
list[Fail | artifact.Artifact] | None, Field(description=
|
|
71
|
+
list[Fail | artifact.Artifact] | None, Field(description="Content that fails the standards")
|
|
72
72
|
] = None
|
|
73
73
|
pass_: Annotated[
|
|
74
74
|
list[Pass | artifact.Artifact] | None,
|
|
75
|
-
Field(alias=
|
|
75
|
+
Field(alias="pass", description="Content that passes the standards"),
|
|
76
76
|
] = None
|
|
77
77
|
|
|
78
78
|
|
|
79
79
|
class CreateContentStandardsRequest(AdCPBaseModel):
|
|
80
80
|
model_config = ConfigDict(
|
|
81
|
-
extra=
|
|
81
|
+
extra="allow",
|
|
82
82
|
)
|
|
83
83
|
calibration_exemplars: Annotated[
|
|
84
84
|
CalibrationExemplars | None,
|
|
85
85
|
Field(
|
|
86
|
-
description=
|
|
86
|
+
description="Training/test set to calibrate policy interpretation. Use URL references for pages to be fetched and analyzed, or full artifacts for pre-extracted content."
|
|
87
87
|
),
|
|
88
88
|
] = None
|
|
89
89
|
context: context_1.ContextObject | None = None
|
|
@@ -91,7 +91,7 @@ class CreateContentStandardsRequest(AdCPBaseModel):
|
|
|
91
91
|
policy: Annotated[
|
|
92
92
|
str,
|
|
93
93
|
Field(
|
|
94
|
-
description=
|
|
94
|
+
description="Natural language policy describing acceptable and unacceptable content contexts. Used by LLMs and human reviewers to make judgments."
|
|
95
95
|
),
|
|
96
96
|
]
|
|
97
|
-
scope: Annotated[Scope, Field(description=
|
|
97
|
+
scope: Annotated[Scope, Field(description="Where this standards configuration applies")]
|
|
@@ -17,11 +17,11 @@ from ..core import ext as ext_1
|
|
|
17
17
|
class CreateContentStandardsResponse1(AdCPBaseModel):
|
|
18
18
|
context: context_1.ContextObject | None = None
|
|
19
19
|
errors: Annotated[
|
|
20
|
-
Any | None, Field(description=
|
|
20
|
+
Any | None, Field(description="Field must not be present in success response")
|
|
21
21
|
] = None
|
|
22
22
|
ext: ext_1.ExtensionObject | None = None
|
|
23
23
|
standards_id: Annotated[
|
|
24
|
-
str, Field(description=
|
|
24
|
+
str, Field(description="Unique identifier for the created standards configuration")
|
|
25
25
|
]
|
|
26
26
|
|
|
27
27
|
|
|
@@ -29,14 +29,14 @@ class CreateContentStandardsResponse2(AdCPBaseModel):
|
|
|
29
29
|
conflicting_standards_id: Annotated[
|
|
30
30
|
str | None,
|
|
31
31
|
Field(
|
|
32
|
-
description=
|
|
32
|
+
description="If the error is a scope conflict, the ID of the existing standards that conflict"
|
|
33
33
|
),
|
|
34
34
|
] = None
|
|
35
35
|
context: context_1.ContextObject | None = None
|
|
36
36
|
errors: list[error.Error]
|
|
37
37
|
ext: ext_1.ExtensionObject | None = None
|
|
38
38
|
standards_id: Annotated[
|
|
39
|
-
Any | None, Field(description=
|
|
39
|
+
Any | None, Field(description="Field must not be present in error response")
|
|
40
40
|
] = None
|
|
41
41
|
|
|
42
42
|
|
|
@@ -46,7 +46,7 @@ class CreateContentStandardsResponse(
|
|
|
46
46
|
root: Annotated[
|
|
47
47
|
CreateContentStandardsResponse1 | CreateContentStandardsResponse2,
|
|
48
48
|
Field(
|
|
49
|
-
description=
|
|
50
|
-
title=
|
|
49
|
+
description="Response payload for creating a content standards configuration",
|
|
50
|
+
title="Create Content Standards Response",
|
|
51
51
|
),
|
|
52
52
|
]
|
|
@@ -17,5 +17,5 @@ class GetContentStandardsRequest(AdCPBaseModel):
|
|
|
17
17
|
context: context_1.ContextObject | None = None
|
|
18
18
|
ext: ext_1.ExtensionObject | None = None
|
|
19
19
|
standards_id: Annotated[
|
|
20
|
-
str, Field(description=
|
|
20
|
+
str, Field(description="Identifier for the standards configuration to retrieve")
|
|
21
21
|
]
|
|
@@ -20,14 +20,14 @@ class GetContentStandardsResponse2(AdCPBaseModel):
|
|
|
20
20
|
errors: list[error.Error]
|
|
21
21
|
ext: ext_1.ExtensionObject | None = None
|
|
22
22
|
standards_id: Annotated[
|
|
23
|
-
Any | None, Field(description=
|
|
23
|
+
Any | None, Field(description="Field must not be present in error response")
|
|
24
24
|
] = None
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
class GetContentStandardsResponse1(ContentStandards):
|
|
28
28
|
context: context_1.ContextObject | None = None
|
|
29
29
|
errors: Annotated[
|
|
30
|
-
Any | None, Field(description=
|
|
30
|
+
Any | None, Field(description="Field must not be present in success response")
|
|
31
31
|
] = None
|
|
32
32
|
|
|
33
33
|
|
|
@@ -37,7 +37,7 @@ class GetContentStandardsResponse(
|
|
|
37
37
|
root: Annotated[
|
|
38
38
|
GetContentStandardsResponse1 | GetContentStandardsResponse2,
|
|
39
39
|
Field(
|
|
40
|
-
description=
|
|
41
|
-
title=
|
|
40
|
+
description="Response payload with content safety policies",
|
|
41
|
+
title="Get Content Standards Response",
|
|
42
42
|
),
|
|
43
43
|
]
|