adcp 2.11.0__tar.gz → 2.11.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {adcp-2.11.0/src/adcp.egg-info → adcp-2.11.1}/PKG-INFO +1 -1
- {adcp-2.11.0 → adcp-2.11.1}/pyproject.toml +1 -1
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/__init__.py +1 -1
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/__init__.py +0 -2
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/_generated.py +6 -4
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/adagents.py +55 -63
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/property.py +7 -15
- adcp-2.11.1/src/adcp/types/generated_poc/property_id.py +21 -0
- adcp-2.11.1/src/adcp/types/generated_poc/property_tag.py +21 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/publisher_property_selector.py +6 -12
- {adcp-2.11.0 → adcp-2.11.1/src/adcp.egg-info}/PKG-INFO +1 -1
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp.egg-info/SOURCES.txt +2 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_discriminated_unions.py +75 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_type_aliases.py +15 -3
- {adcp-2.11.0 → adcp-2.11.1}/LICENSE +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/README.md +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/setup.cfg +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/__main__.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/adagents.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/client.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/config.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/exceptions.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/protocols/__init__.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/protocols/a2a.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/protocols/base.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/protocols/mcp.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/py.typed +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/simple.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/testing/__init__.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/testing/test_helpers.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/aliases.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/base.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/core.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/__init__.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/activate_signal_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/activate_signal_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/activation_key.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/adcp_domain.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/asset_content_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/audio_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/auth_scheme.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/available_metric.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/brand_manifest.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/build_creative_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/build_creative_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/channels.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/co_branding_requirement.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/cpc_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/cpcv_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/cpm_auction_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/cpm_fixed_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/cpp_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/cpv_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/create_media_buy_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/create_media_buy_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_action.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_agent_capability.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_assignment.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_filters.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_manifest.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_policy.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_sort_field.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/creative_status.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/css_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/daast_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/daast_tracking_event.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/daast_version.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/delivery_metrics.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/delivery_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/deployment.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/destination.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/dimension_unit.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/error.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/feed_format.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/feedback_source.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/flat_rate_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/format.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/format_category.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/format_id.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/frequency_cap.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/frequency_cap_scope.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/get_media_buy_delivery_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/get_media_buy_delivery_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/get_products_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/get_products_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/get_signals_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/get_signals_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/history_entry_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/html_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/http_method.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/identifier_types.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/image_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/javascript_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/javascript_module_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/landing_page_requirement.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_authorized_properties_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_authorized_properties_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_creative_formats_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_creative_formats_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_creatives_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_creatives_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/markdown_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/markdown_flavor.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/measurement.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/media_buy.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/media_buy_status.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/metric_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/notification_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/pacing.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/package.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/package_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/package_status.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/performance_feedback.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/placement.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/preview_creative_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/preview_creative_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/preview_output_format.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/preview_render.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/pricing_model.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/product.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/product_filters.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/promoted_offerings.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/promoted_products.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/property_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/protocol_envelope.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/provide_performance_feedback_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/provide_performance_feedback_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/publisher_identifier_types.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/push_notification_config.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/reporting_capabilities.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/reporting_frequency.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/signal_catalog_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/signal_filters.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/sort_direction.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/standard_format_ids.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/sub_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/sync_creatives_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/sync_creatives_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/targeting.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/task_status.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/task_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/tasks_get_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/tasks_get_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/tasks_list_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/tasks_list_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/text_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/update_frequency.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/update_media_buy_request.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/update_media_buy_response.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/url_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/url_asset_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/validation_mode.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/vast_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/vast_tracking_event.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/vast_version.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/vcpm_auction_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/vcpm_fixed_option.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/video_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/webhook_asset.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/webhook_payload.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/webhook_response_type.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/webhook_security_method.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/utils/__init__.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/utils/operation_id.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/utils/preview_cache.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/utils/response_parser.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp/validation.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp.egg-info/dependency_links.txt +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp.egg-info/entry_points.txt +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp.egg-info/requires.txt +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/src/adcp.egg-info/top_level.txt +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_adagents.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_cli.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_client.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_code_generation.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_format_id_validation.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_helpers.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_preview_html.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_protocols.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_public_api.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_response_parser.py +0 -0
- {adcp-2.11.0 → adcp-2.11.1}/tests/test_simple_api.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "adcp"
|
|
7
|
-
version = "2.11.
|
|
7
|
+
version = "2.11.1"
|
|
8
8
|
description = "Official Python client for the Ad Context Protocol (AdCP)"
|
|
9
9
|
authors = [
|
|
10
10
|
{name = "AdCP Community", email = "maintainers@adcontextprotocol.org"}
|
|
@@ -182,7 +182,6 @@ from adcp.types._generated import (
|
|
|
182
182
|
StatusSummary,
|
|
183
183
|
SyncCreativesRequest,
|
|
184
184
|
SyncCreativesResponse,
|
|
185
|
-
Tag,
|
|
186
185
|
Tags,
|
|
187
186
|
TargetingOverlay,
|
|
188
187
|
Task,
|
|
@@ -426,7 +425,6 @@ __all__ = [
|
|
|
426
425
|
"Results",
|
|
427
426
|
"Signal",
|
|
428
427
|
"SignalFilters",
|
|
429
|
-
"Tag",
|
|
430
428
|
"Tags",
|
|
431
429
|
"TargetingOverlay",
|
|
432
430
|
"VenueBreakdownItem",
|
|
@@ -10,7 +10,7 @@ Auto-generated by datamodel-code-generator from JSON schemas.
|
|
|
10
10
|
DO NOT EDIT MANUALLY.
|
|
11
11
|
|
|
12
12
|
Generated from: https://github.com/adcontextprotocol/adcp/tree/main/schemas
|
|
13
|
-
Generation date: 2025-11-21
|
|
13
|
+
Generation date: 2025-11-21 20:45:16 UTC
|
|
14
14
|
"""
|
|
15
15
|
# ruff: noqa: E501, I001
|
|
16
16
|
from __future__ import annotations
|
|
@@ -19,7 +19,7 @@ from __future__ import annotations
|
|
|
19
19
|
from adcp.types.generated_poc.activate_signal_request import ActivateSignalRequest
|
|
20
20
|
from adcp.types.generated_poc.activate_signal_response import ActivateSignalResponse, ActivateSignalResponse1, ActivateSignalResponse2
|
|
21
21
|
from adcp.types.generated_poc.activation_key import ActivationKey1, ActivationKey2
|
|
22
|
-
from adcp.types.generated_poc.adagents import AuthorizedAgents, AuthorizedAgents1, AuthorizedAgents2, AuthorizedAgents3, AuthorizedSalesAgents, Contact,
|
|
22
|
+
from adcp.types.generated_poc.adagents import AuthorizedAgents, AuthorizedAgents1, AuthorizedAgents2, AuthorizedAgents3, AuthorizedSalesAgents, Contact, Tags
|
|
23
23
|
from adcp.types.generated_poc.adcp_domain import AdcpDomain
|
|
24
24
|
from adcp.types.generated_poc.asset_content_type import AssetContentType
|
|
25
25
|
from adcp.types.generated_poc.audio_asset import AudioAsset
|
|
@@ -104,7 +104,9 @@ from adcp.types.generated_poc.product import DeliveryMeasurement, Product, Produ
|
|
|
104
104
|
from adcp.types.generated_poc.product_filters import ProductFilters
|
|
105
105
|
from adcp.types.generated_poc.promoted_offerings import AssetSelectors, AssetType, Offering, PromotedOfferings
|
|
106
106
|
from adcp.types.generated_poc.promoted_products import PromotedProducts
|
|
107
|
-
from adcp.types.generated_poc.property import Identifier, Property
|
|
107
|
+
from adcp.types.generated_poc.property import Identifier, Property
|
|
108
|
+
from adcp.types.generated_poc.property_id import PropertyId
|
|
109
|
+
from adcp.types.generated_poc.property_tag import PropertyTag
|
|
108
110
|
from adcp.types.generated_poc.property_type import PropertyType
|
|
109
111
|
from adcp.types.generated_poc.protocol_envelope import ProtocolEnvelope
|
|
110
112
|
from adcp.types.generated_poc.provide_performance_feedback_request import ProvidePerformanceFeedbackRequest, ProvidePerformanceFeedbackRequest1, ProvidePerformanceFeedbackRequest2
|
|
@@ -202,7 +204,7 @@ __all__ = [
|
|
|
202
204
|
"SignalCatalogType", "SignalFilters", "Sort", "SortApplied", "SortDirection",
|
|
203
205
|
"StandardFormatIds", "Status", "StatusSummary", "SubAsset1", "SubAsset2",
|
|
204
206
|
"SyncCreativesRequest", "SyncCreativesResponse", "SyncCreativesResponse1",
|
|
205
|
-
"SyncCreativesResponse2", "
|
|
207
|
+
"SyncCreativesResponse2", "Tags", "TargetingOverlay", "Task", "TaskStatus", "TaskType",
|
|
206
208
|
"TasksGetRequest", "TasksGetResponse", "TasksListRequest", "TasksListResponse", "TextAsset",
|
|
207
209
|
"Totals", "Type", "UpdateFrequency", "UpdateMediaBuyRequest", "UpdateMediaBuyRequest1",
|
|
208
210
|
"UpdateMediaBuyRequest2", "UpdateMediaBuyResponse", "UpdateMediaBuyResponse1",
|
|
@@ -1,75 +1,15 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: adagents.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-21T20:45:16+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from typing import Annotated, Literal
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
|
-
from pydantic import AnyUrl, AwareDatetime, ConfigDict, EmailStr, Field
|
|
10
|
+
from pydantic import AnyUrl, AwareDatetime, ConfigDict, EmailStr, Field
|
|
11
11
|
|
|
12
|
-
from . import property, publisher_property_selector
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class PropertyId(RootModel[str]):
|
|
16
|
-
root: Annotated[str, Field(pattern='^[a-z0-9_]+$')]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class AuthorizedAgents(AdCPBaseModel):
|
|
20
|
-
model_config = ConfigDict(
|
|
21
|
-
extra='forbid',
|
|
22
|
-
)
|
|
23
|
-
authorization_type: Annotated[
|
|
24
|
-
Literal['property_ids'],
|
|
25
|
-
Field(description='Discriminator indicating authorization by specific property IDs'),
|
|
26
|
-
]
|
|
27
|
-
authorized_for: Annotated[
|
|
28
|
-
str,
|
|
29
|
-
Field(
|
|
30
|
-
description='Human-readable description of what this agent is authorized to sell',
|
|
31
|
-
max_length=500,
|
|
32
|
-
min_length=1,
|
|
33
|
-
),
|
|
34
|
-
]
|
|
35
|
-
property_ids: Annotated[
|
|
36
|
-
list[PropertyId],
|
|
37
|
-
Field(
|
|
38
|
-
description='Property IDs this agent is authorized for. Resolved against the top-level properties array in this file',
|
|
39
|
-
min_length=1,
|
|
40
|
-
),
|
|
41
|
-
]
|
|
42
|
-
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
class PropertyTag(PropertyId):
|
|
46
|
-
pass
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
class AuthorizedAgents1(AdCPBaseModel):
|
|
50
|
-
model_config = ConfigDict(
|
|
51
|
-
extra='forbid',
|
|
52
|
-
)
|
|
53
|
-
authorization_type: Annotated[
|
|
54
|
-
Literal['property_tags'],
|
|
55
|
-
Field(description='Discriminator indicating authorization by property tags'),
|
|
56
|
-
]
|
|
57
|
-
authorized_for: Annotated[
|
|
58
|
-
str,
|
|
59
|
-
Field(
|
|
60
|
-
description='Human-readable description of what this agent is authorized to sell',
|
|
61
|
-
max_length=500,
|
|
62
|
-
min_length=1,
|
|
63
|
-
),
|
|
64
|
-
]
|
|
65
|
-
property_tags: Annotated[
|
|
66
|
-
list[PropertyTag],
|
|
67
|
-
Field(
|
|
68
|
-
description='Tags identifying which properties this agent is authorized for. Resolved against the top-level properties array in this file using tag matching',
|
|
69
|
-
min_length=1,
|
|
70
|
-
),
|
|
71
|
-
]
|
|
72
|
-
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
12
|
+
from . import property, property_id, property_tag, publisher_property_selector
|
|
73
13
|
|
|
74
14
|
|
|
75
15
|
class Contact(AdCPBaseModel):
|
|
@@ -125,6 +65,58 @@ class Tags(AdCPBaseModel):
|
|
|
125
65
|
name: Annotated[str, Field(description='Human-readable name for this tag')]
|
|
126
66
|
|
|
127
67
|
|
|
68
|
+
class AuthorizedAgents(AdCPBaseModel):
|
|
69
|
+
model_config = ConfigDict(
|
|
70
|
+
extra='forbid',
|
|
71
|
+
)
|
|
72
|
+
authorization_type: Annotated[
|
|
73
|
+
Literal['property_ids'],
|
|
74
|
+
Field(description='Discriminator indicating authorization by specific property IDs'),
|
|
75
|
+
]
|
|
76
|
+
authorized_for: Annotated[
|
|
77
|
+
str,
|
|
78
|
+
Field(
|
|
79
|
+
description='Human-readable description of what this agent is authorized to sell',
|
|
80
|
+
max_length=500,
|
|
81
|
+
min_length=1,
|
|
82
|
+
),
|
|
83
|
+
]
|
|
84
|
+
property_ids: Annotated[
|
|
85
|
+
list[property_id.PropertyId],
|
|
86
|
+
Field(
|
|
87
|
+
description='Property IDs this agent is authorized for. Resolved against the top-level properties array in this file',
|
|
88
|
+
min_length=1,
|
|
89
|
+
),
|
|
90
|
+
]
|
|
91
|
+
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
class AuthorizedAgents1(AdCPBaseModel):
|
|
95
|
+
model_config = ConfigDict(
|
|
96
|
+
extra='forbid',
|
|
97
|
+
)
|
|
98
|
+
authorization_type: Annotated[
|
|
99
|
+
Literal['property_tags'],
|
|
100
|
+
Field(description='Discriminator indicating authorization by property tags'),
|
|
101
|
+
]
|
|
102
|
+
authorized_for: Annotated[
|
|
103
|
+
str,
|
|
104
|
+
Field(
|
|
105
|
+
description='Human-readable description of what this agent is authorized to sell',
|
|
106
|
+
max_length=500,
|
|
107
|
+
min_length=1,
|
|
108
|
+
),
|
|
109
|
+
]
|
|
110
|
+
property_tags: Annotated[
|
|
111
|
+
list[property_tag.PropertyTag],
|
|
112
|
+
Field(
|
|
113
|
+
description='Tags identifying which properties this agent is authorized for. Resolved against the top-level properties array in this file using tag matching',
|
|
114
|
+
min_length=1,
|
|
115
|
+
),
|
|
116
|
+
]
|
|
117
|
+
url: Annotated[AnyUrl, Field(description="The authorized agent's API endpoint URL")]
|
|
118
|
+
|
|
119
|
+
|
|
128
120
|
class AuthorizedAgents2(AdCPBaseModel):
|
|
129
121
|
model_config = ConfigDict(
|
|
130
122
|
extra='forbid',
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: property.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-21T20:45:16+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from typing import Annotated
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
|
-
from pydantic import ConfigDict, Field
|
|
10
|
+
from pydantic import ConfigDict, Field
|
|
11
11
|
|
|
12
|
-
from . import identifier_types
|
|
12
|
+
from . import identifier_types, property_tag
|
|
13
13
|
from . import property_type as property_type_1
|
|
14
14
|
|
|
15
15
|
|
|
@@ -29,16 +29,6 @@ class Identifier(AdCPBaseModel):
|
|
|
29
29
|
]
|
|
30
30
|
|
|
31
31
|
|
|
32
|
-
class Tag(RootModel[str]):
|
|
33
|
-
root: Annotated[
|
|
34
|
-
str,
|
|
35
|
-
Field(
|
|
36
|
-
description="Lowercase tag with underscores (e.g., 'conde_nast_network', 'premium_content')",
|
|
37
|
-
pattern='^[a-z0-9_]+$',
|
|
38
|
-
),
|
|
39
|
-
]
|
|
40
|
-
|
|
41
|
-
|
|
42
32
|
class Property(AdCPBaseModel):
|
|
43
33
|
model_config = ConfigDict(
|
|
44
34
|
extra='forbid',
|
|
@@ -50,8 +40,10 @@ class Property(AdCPBaseModel):
|
|
|
50
40
|
property_id: Annotated[
|
|
51
41
|
str | None,
|
|
52
42
|
Field(
|
|
53
|
-
description=
|
|
43
|
+
description='Unique identifier for this property (optional). Enables referencing properties by ID instead of repeating full objects.',
|
|
44
|
+
examples=['cnn_ctv_app', 'homepage', 'mobile_ios', 'instagram'],
|
|
54
45
|
pattern='^[a-z0-9_]+$',
|
|
46
|
+
title='Property ID',
|
|
55
47
|
),
|
|
56
48
|
] = None
|
|
57
49
|
property_type: Annotated[
|
|
@@ -64,7 +56,7 @@ class Property(AdCPBaseModel):
|
|
|
64
56
|
),
|
|
65
57
|
] = None
|
|
66
58
|
tags: Annotated[
|
|
67
|
-
list[
|
|
59
|
+
list[property_tag.PropertyTag] | None,
|
|
68
60
|
Field(
|
|
69
61
|
description='Tags for categorization and grouping (e.g., network membership, content categories)'
|
|
70
62
|
),
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: property-id.json
|
|
3
|
+
# timestamp: 2025-11-21T20:45:16+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Annotated
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class PropertyId(RootModel[str]):
|
|
13
|
+
root: Annotated[
|
|
14
|
+
str,
|
|
15
|
+
Field(
|
|
16
|
+
description='Identifier for a publisher property. Must be lowercase alphanumeric with underscores only.',
|
|
17
|
+
examples=['cnn_ctv_app', 'homepage', 'mobile_ios', 'instagram'],
|
|
18
|
+
pattern='^[a-z0-9_]+$',
|
|
19
|
+
title='Property ID',
|
|
20
|
+
),
|
|
21
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# generated by datamodel-codegen:
|
|
2
|
+
# filename: property-tag.json
|
|
3
|
+
# timestamp: 2025-11-21T20:45:16+00:00
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from typing import Annotated
|
|
8
|
+
|
|
9
|
+
from pydantic import Field, RootModel
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class PropertyTag(RootModel[str]):
|
|
13
|
+
root: Annotated[
|
|
14
|
+
str,
|
|
15
|
+
Field(
|
|
16
|
+
description='Tag for categorizing publisher properties. Must be lowercase alphanumeric with underscores only.',
|
|
17
|
+
examples=['ctv', 'premium', 'news', 'sports', 'meta_network', 'social_media'],
|
|
18
|
+
pattern='^[a-z0-9_]+$',
|
|
19
|
+
title='Property Tag',
|
|
20
|
+
),
|
|
21
|
+
]
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: publisher-property-selector.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-21T20:45:16+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from typing import Annotated, Literal
|
|
8
8
|
|
|
9
9
|
from adcp.types.base import AdCPBaseModel
|
|
10
|
-
from pydantic import ConfigDict, Field
|
|
10
|
+
from pydantic import ConfigDict, Field
|
|
11
|
+
|
|
12
|
+
from . import property_id, property_tag
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
class PublisherPropertySelector1(AdCPBaseModel):
|
|
@@ -29,16 +31,12 @@ class PublisherPropertySelector1(AdCPBaseModel):
|
|
|
29
31
|
]
|
|
30
32
|
|
|
31
33
|
|
|
32
|
-
class PropertyId(RootModel[str]):
|
|
33
|
-
root: Annotated[str, Field(pattern='^[a-z0-9_]+$')]
|
|
34
|
-
|
|
35
|
-
|
|
36
34
|
class PublisherPropertySelector2(AdCPBaseModel):
|
|
37
35
|
model_config = ConfigDict(
|
|
38
36
|
extra='forbid',
|
|
39
37
|
)
|
|
40
38
|
property_ids: Annotated[
|
|
41
|
-
list[PropertyId],
|
|
39
|
+
list[property_id.PropertyId],
|
|
42
40
|
Field(description="Specific property IDs from the publisher's adagents.json", min_length=1),
|
|
43
41
|
]
|
|
44
42
|
publisher_domain: Annotated[
|
|
@@ -54,16 +52,12 @@ class PublisherPropertySelector2(AdCPBaseModel):
|
|
|
54
52
|
]
|
|
55
53
|
|
|
56
54
|
|
|
57
|
-
class PropertyTag(PropertyId):
|
|
58
|
-
pass
|
|
59
|
-
|
|
60
|
-
|
|
61
55
|
class PublisherPropertySelector3(AdCPBaseModel):
|
|
62
56
|
model_config = ConfigDict(
|
|
63
57
|
extra='forbid',
|
|
64
58
|
)
|
|
65
59
|
property_tags: Annotated[
|
|
66
|
-
list[PropertyTag],
|
|
60
|
+
list[property_tag.PropertyTag],
|
|
67
61
|
Field(
|
|
68
62
|
description="Property tags from the publisher's adagents.json. Selector covers all properties with these tags",
|
|
69
63
|
min_length=1,
|
|
@@ -120,6 +120,8 @@ src/adcp/types/generated_poc/product_filters.py
|
|
|
120
120
|
src/adcp/types/generated_poc/promoted_offerings.py
|
|
121
121
|
src/adcp/types/generated_poc/promoted_products.py
|
|
122
122
|
src/adcp/types/generated_poc/property.py
|
|
123
|
+
src/adcp/types/generated_poc/property_id.py
|
|
124
|
+
src/adcp/types/generated_poc/property_tag.py
|
|
123
125
|
src/adcp/types/generated_poc/property_type.py
|
|
124
126
|
src/adcp/types/generated_poc/protocol_envelope.py
|
|
125
127
|
src/adcp/types/generated_poc/provide_performance_feedback_request.py
|
|
@@ -769,3 +769,78 @@ class TestSemanticAliasDiscriminatorRoundtrips:
|
|
|
769
769
|
parsed = TextSubAsset.model_validate_json(json_str)
|
|
770
770
|
assert parsed.asset_kind == "text"
|
|
771
771
|
assert parsed.content == original.content
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
class TestPropertyTagSharedSchema:
|
|
775
|
+
"""Test that PropertyTag uses shared schema definition.
|
|
776
|
+
|
|
777
|
+
As of AdCP v1.0.0, PropertyTag and PropertyId are defined in separate shared
|
|
778
|
+
schema files (property-tag.json and property-id.json) that are referenced by
|
|
779
|
+
both adagents.json and publisher-property-selector.json.
|
|
780
|
+
|
|
781
|
+
This eliminates the previous name collision where both files defined their own
|
|
782
|
+
identical PropertyTag types.
|
|
783
|
+
"""
|
|
784
|
+
|
|
785
|
+
def test_public_property_tag_is_from_shared_schema(self):
|
|
786
|
+
"""Public PropertyTag should be from the shared property_tag schema."""
|
|
787
|
+
from adcp import PropertyTag
|
|
788
|
+
|
|
789
|
+
# Should come from the shared schema, not embedded in another schema
|
|
790
|
+
assert PropertyTag.__module__ == "adcp.types.generated_poc.property_tag"
|
|
791
|
+
|
|
792
|
+
def test_property_id_is_from_shared_schema(self):
|
|
793
|
+
"""Public PropertyId should be from the shared property_id schema."""
|
|
794
|
+
from adcp import PropertyId
|
|
795
|
+
|
|
796
|
+
# Should come from the shared schema
|
|
797
|
+
assert PropertyId.__module__ == "adcp.types.generated_poc.property_id"
|
|
798
|
+
|
|
799
|
+
def test_property_tag_works_with_publisher_properties_by_tag(self):
|
|
800
|
+
"""PropertyTag should work correctly with PublisherPropertiesByTag."""
|
|
801
|
+
from adcp import PropertyTag, PublisherPropertiesByTag
|
|
802
|
+
|
|
803
|
+
props = PublisherPropertiesByTag(
|
|
804
|
+
publisher_domain="example.com",
|
|
805
|
+
selection_type="by_tag",
|
|
806
|
+
property_tags=[PropertyTag("premium"), PropertyTag("video")]
|
|
807
|
+
)
|
|
808
|
+
|
|
809
|
+
assert props.selection_type == "by_tag"
|
|
810
|
+
assert len(props.property_tags) == 2
|
|
811
|
+
assert str(props.property_tags[0].root) == "premium"
|
|
812
|
+
assert str(props.property_tags[1].root) == "video"
|
|
813
|
+
|
|
814
|
+
def test_shared_schema_prevents_collision(self):
|
|
815
|
+
"""Verify that both adagents and publisher_property_selector import from shared schema."""
|
|
816
|
+
from adcp.types.generated_poc import property_tag
|
|
817
|
+
from adcp import PropertyTag
|
|
818
|
+
|
|
819
|
+
# The shared schema is the canonical definition
|
|
820
|
+
assert PropertyTag is property_tag.PropertyTag
|
|
821
|
+
|
|
822
|
+
# Both adagents.py and publisher_property_selector.py should import from property_tag module
|
|
823
|
+
# (not define their own)
|
|
824
|
+
import inspect
|
|
825
|
+
import adcp.types.generated_poc.adagents as adagents_module
|
|
826
|
+
import adcp.types.generated_poc.publisher_property_selector as selector_module
|
|
827
|
+
|
|
828
|
+
# Check that they import from property_tag, not define their own
|
|
829
|
+
adagents_source = inspect.getsource(adagents_module)
|
|
830
|
+
selector_source = inspect.getsource(selector_module)
|
|
831
|
+
|
|
832
|
+
# May be on same line as other imports or separate line
|
|
833
|
+
assert "property_tag" in adagents_source and "from . import" in adagents_source
|
|
834
|
+
assert "property_tag" in selector_source and "from . import" in selector_source
|
|
835
|
+
|
|
836
|
+
def test_property_tag_validation(self):
|
|
837
|
+
"""PropertyTag should validate according to shared schema rules."""
|
|
838
|
+
from adcp import PropertyTag
|
|
839
|
+
|
|
840
|
+
# Valid tags: lowercase alphanumeric + underscores
|
|
841
|
+
valid = PropertyTag("premium_video")
|
|
842
|
+
assert str(valid.root) == "premium_video"
|
|
843
|
+
|
|
844
|
+
# Pattern validation should work
|
|
845
|
+
with pytest.raises(ValidationError):
|
|
846
|
+
PropertyTag("Invalid-Tag") # Hyphens not allowed in property tags
|
|
@@ -430,8 +430,14 @@ def test_publisher_properties_aliases_in_exports():
|
|
|
430
430
|
|
|
431
431
|
|
|
432
432
|
def test_property_id_and_tag_are_root_models():
|
|
433
|
-
"""Test that PropertyId and PropertyTag are properly constrained string types.
|
|
433
|
+
"""Test that PropertyId and PropertyTag are properly constrained string types.
|
|
434
|
+
|
|
435
|
+
As of AdCP v1.0.0, PropertyId and PropertyTag are separate RootModel types
|
|
436
|
+
defined in their own schema files, not in an inheritance relationship.
|
|
437
|
+
Both use the same pattern constraint (^[a-z0-9_]+$) but are semantically distinct.
|
|
438
|
+
"""
|
|
434
439
|
from adcp import PropertyId, PropertyTag
|
|
440
|
+
from pydantic import RootModel
|
|
435
441
|
|
|
436
442
|
# Create valid PropertyId and PropertyTag
|
|
437
443
|
prop_id = PropertyId("my_property_id")
|
|
@@ -441,8 +447,14 @@ def test_property_id_and_tag_are_root_models():
|
|
|
441
447
|
assert prop_id.root == "my_property_id"
|
|
442
448
|
assert prop_tag.root == "premium"
|
|
443
449
|
|
|
444
|
-
#
|
|
445
|
-
assert issubclass(
|
|
450
|
+
# Both should be RootModel subclasses (but not related to each other)
|
|
451
|
+
assert issubclass(PropertyId, RootModel)
|
|
452
|
+
assert issubclass(PropertyTag, RootModel)
|
|
453
|
+
|
|
454
|
+
# They are separate types, not in an inheritance relationship
|
|
455
|
+
assert PropertyId is not PropertyTag
|
|
456
|
+
assert not issubclass(PropertyTag, PropertyId)
|
|
457
|
+
assert not issubclass(PropertyId, PropertyTag)
|
|
446
458
|
|
|
447
459
|
|
|
448
460
|
def test_deployment_aliases_imports():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_authorized_properties_request.py
RENAMED
|
File without changes
|
{adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/list_authorized_properties_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/provide_performance_feedback_request.py
RENAMED
|
File without changes
|
{adcp-2.11.0 → adcp-2.11.1}/src/adcp/types/generated_poc/provide_performance_feedback_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|