Skip to content

Commit fb7fa9f

Browse files
authored
feat(protocol): adopt AdCP 3.2 beta.11 (#1114)
* feat(protocol): adopt AdCP 3.2 beta.11 * test(protocol): track current beta schema coverage
1 parent 5216119 commit fb7fa9f

1,577 files changed

Lines changed: 2548425 additions & 204 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

MANIFEST.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ recursive-include src/adcp py.typed
1010
recursive-include src/adcp/_schemas/2.5 *.json
1111
recursive-include src/adcp/_schemas/3.0 *.json
1212
recursive-include src/adcp/_schemas/3.1 *.json
13-
recursive-include src/adcp/_schemas/3.2.0-beta.10 *.json
13+
recursive-include src/adcp/_schemas/3.2.0-beta.11 *.json
1414
prune src/adcp/_schemas/3.1.0-*
1515
# A clean VCS source tree has no ignored ``src/adcp/_schemas`` directory.
1616
# Keep the tracked inputs needed by the build_py hook in source distributions

SCHEMA_DELTAS.md

Lines changed: 1 addition & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1,165 +1,3 @@
11
# Generated-types delta
22

3-
## Files added
4-
5-
- `core/agent_notification_config_state.py` — AgentNotificationConfigState, Authentication
6-
- `core/agent_reporting_destination.py` — AcceptedFormat, AgentReportingDestination, AgentReportingDestination1, AgentReportingDestination2, AgentReportingDestination3
7-
- `core/agent_reporting_destination_state.py` — Action, AgentReportingDestinationState, PriorDestinationRef, Setup
8-
- `core/collection_selection.py` — CollectionSelection, CollectionSelection1, CollectionSelection2
9-
- `core/delivery_provider.py` — DeliveryProvider
10-
- `core/delivery_recipient.py` — DeliveryRecipient
11-
- `core/experimental_feature_id.py` — ExperimentalFeatureId
12-
- `core/principal_changed_webhook.py` — PrincipalChangedWebhook, Reason
13-
- `core/principal_declarations.py` — AgentDeclarations, AsyncAdcpVersion, WebhookSigningAlgorithm
14-
- `core/principal_declarations_state.py` — Axis, Exclusion, PrincipalDeclarationsState
15-
- `core/principal_state.py` — DestinationRef, PrincipalState, RetiredDestination
16-
- `core/reporting_canonical_content_digest.py` — ReportingCanonicalContentDigest
17-
- `core/reporting_canonicalization_contract.py` — AdditionalItem, EmptyReport, GoldenVectors, OrderingEncoding, ReportingCanonicalizationContract, ReportingPrimaryKey
18-
- `core/reporting_control_total.py` — ReportingControlTotal, ReportingControlTotal1, ReportingControlTotal2
19-
- `core/reporting_coverage.py` — Limitation, Reason, ReportingCoverage, ReportingMediaBuyId, ReportingPackageId, Status
20-
- `core/reporting_dataset_share_destination.py` — Provider, Recipient, ReportingCloud, ReportingDatasetShareDestination, ReportingDatasetShareDestination1, ReportingDatasetShareDestination2
21-
- `core/reporting_delivery_capabilities.py` — ReportingDeliveryCapabilities
22-
- `core/reporting_delivery_config.py` — CoverageRequirement, ReportingDeliveryConfiguration, Scope
23-
- `core/reporting_delivery_config_state.py` — Action, ReportingDeliveryConfigLifecycleState, ReportingDeliveryConfigurationState, Setup
24-
- `core/reporting_delivery_method.py` — Format, ReportingDeliveryMethod, ReportingDeliveryMethod1, ReportingDeliveryMethod2, ReportingDeliveryMethod3, ReportingOrchestration
25-
- `core/reporting_delivery_offering.py` — DestinationMode, Format, Method, ProducerIdentity, Provider, ReportingDeliveryOffering, ReportingDeliveryPattern, ReportingFeedPurpose, ReportingProfile
26-
- `core/reporting_delivery_ready_webhook.py` — Readiness, ReportingDeliveryReadyWebhook
27-
- `core/reporting_file_compression.py` — ReportingFileCompression
28-
- `core/reporting_file_entry.py` — ReportingFileEntry
29-
- `core/reporting_file_manifest.py` — Format, Period, ReportingFileManifest
30-
- `core/reporting_materialization.py` — Method, ReportingMaterialization, Status
31-
- `core/reporting_obligation.py` — Period, ProductionStatus, ReconciliationStatus, ReportingObligation
32-
- `core/reporting_receipt.py` — RejectionCode, ReportingReceipt, Status
33-
- `core/reporting_reconciliation_mode.py` — ReportingReconciliationMode
34-
- `core/reporting_report_definition.py` — Aggregation, Calendar, Dimension, FinalityPolicies, FinalityPolicies1, FinalityPolicies2, Metric, Provider, ReportCalendarTimezoneBasis, ReportingReportDefinition, RestatementPolicy, Source
35-
- `core/reporting_resource.py` — Immutability, Kind, ReportingReaderCompatibilityItem, ReportingResource
36-
- `core/reporting_revision.py` — DataThroughPrecision, FinalityBasis, Period, ReportingRevision
37-
- `core/reporting_schedule.py` — ReportingSchedule, ReportingScheduleAlignment
38-
- `core/reporting_schedule_offering.py` — PeriodAnchorPolicy, ReportingScheduleOffering
39-
- `core/reporting_status_changed_webhook.py` — IssueId, ReportingStatusChangedWebhook
40-
- `core/reporting_status_issue.py` — Code, RecommendedAction, ReportingStatusIssue, ReportingStatusSeverity, ResponsibleParty
41-
- `core/reporting_verification.py` — NativeCommitEvidence, ObservedThrough, PhysicalChecksums, PhysicalChecksums1, ReportingVerification, VerificationPath
42-
- `core/reporting_verification_profile.py` — ReportingVerificationProfile
43-
- `core/reporting_verification_profile_set.py` — ReportingVerificationProfileSet, ReportingVerificationProfileSetEnum
44-
- `core/reporting_write_destination.py` — Provider, ReportingWriteDestination, ReportingWriteDestination1, ReportingWriteDestination2
45-
- `enums/delivery_recipient_cloud.py` — DeliveryRecipientCloud
46-
- `enums/dooh_motion_type.py` — DoohMotionType
47-
- `enums/principal_kind.py` — PrincipalKind
48-
- `enums/reporting_destination_setup_state.py` — ReportingDestinationSetupState
49-
- `enums/reporting_finality.py` — ReportingFinality
50-
- `enums/reporting_health.py` — ReportingHealth
51-
- `formats/canonical/audio_vast.py` — CanonicalFormatVastAudio, DurationMsRangeItem
52-
- `media_buy/get_reporting_status_request.py` — DeliveryConfigId, GetReportingStatusRequest, Period, ReportingStatusView
53-
- `media_buy/get_reporting_status_response.py` — DeliveryConfigGeneration, GetReportingStatusResponse, ObligationCounts, Scope
54-
- `media_buy/sync_reporting_receipts_request.py` — SyncReportingReceiptsRequest
55-
- `media_buy/sync_reporting_receipts_response.py` — Results, Results18, Results19, SyncReportingReceiptsResponse
56-
- `protocol/get_principal_request.py` — GetPrincipalRequest
57-
- `protocol/get_principal_response.py` — GetPrincipalResponse, Result, Result6, Result7, Result9
58-
- `protocol/sync_principal_request.py` — Configuration, SyncPrincipalRequest
59-
- `protocol/sync_principal_response.py` — Action, Action29, Result, Result17, Result19, SyncPrincipalResponse
60-
61-
## Field changes
62-
63-
- `a2ui/si_catalog.py`
64-
- **classes added**: Action22
65-
- **classes removed**: Action19
66-
- `account/sync_accounts_request.py`
67-
- `Accounts`: `+reporting_delivery_configs`
68-
- `Accounts1`: `+reporting_delivery_configs`
69-
- `account/sync_accounts_response.py`
70-
- `Account`: `+reporting_delivery_configs`
71-
- `bundled/protocol/get_adcp_capabilities_response.py`
72-
- **classes added**: Alignment, Authentication5, BudgetCappingTimezoneBasis, BuyerReason, CapabilityReportingDeliveryMethod, DestinationMode, Format5, Method, Offering, Orchestration, Pattern, PeriodAnchorPolicy, PrimaryKey, Principal, ProducerIdentity, Provider, ReaderCompatibilityItem, ReconciliationMode, RegistrationTask, ReportingDelivery, ReportingDeliveryPattern, ReportingDestinationOffering, ReportingFeedPurpose, ReportingProfile, Schedule, SupportedFinalityEnum, SupportedSection, Transport3, VerificationProfile
73-
- **classes removed**: Authentication4, ReportingDeliveryMethod, TimezoneBasis
74-
- `Adcp`: `+principal`
75-
- `AdcpError`: `+buyer_reason`
76-
- `Error`: `+buyer_reason`
77-
- `Format`: `+avro`, `+csv`, `+jsonl`, `+orc`, `+parquet` `-applies_to_channels`, `-canonical_formats_only`, `-display_name`, `-experimental`, `-format_kind`, `-format_option_id`, `-format_schema`, `-format_shape`, `-locale_policy`, `-macro_resolution_capabilities`, `-params`, `-publisher_domain`, `-sample_render_url`, `-seller_preference`, `-technical_requirements_complete`, `-v1_format_ref`
78-
- `FormatKind`: `+audio_vast`
79-
- `MediaBuy`: `+reporting_delivery`
80-
- `Specialism`: `+sales_dooh`
81-
- `Transport`: `+root` `-type`, `-url`
82-
- `collection/get_collection_list_response.py`
83-
- `Collection`: `+collection_id`, `+publisher_domain`
84-
- `compliance/comply_test_controller_request.py`
85-
- `Params`: `+dooh_metrics`, `+plays`
86-
- `core/account.py`
87-
- `Account`: `+reporting_delivery_configs`
88-
- `core/agent_notification_config.py`
89-
- `AgentNotificationConfig`: `+all_authorized_accounts`, `+include_future_event_types`
90-
- `core/canonical_format_kind.py`
91-
- `CanonicalFormatKind`: `+audio_vast`
92-
- `core/canonical_format_option.py`
93-
- `FormatKind`: `+audio_vast`
94-
- `core/canonical_media_buy_action.py`
95-
- **classes added**: Action4
96-
- **classes removed**: Action2
97-
- `Action3`: `+add_packages`, `+cancel`, `+decrease_budget`, `+extend_flight`, `+increase_budget`, `+reallocate_budget`, `+remove_packages`, `+shorten_flight`, `+update_bidding`, `+update_budget_allocation`, `+update_flight_dates`, `+update_frequency_caps`, `+update_pacing`, `+update_targeting` `-remove_creative`, `-replace_creative`, `-update_creative_assignments`
98-
- `core/canonical_placement.py`
99-
- **classes added**: CanonicalDoohPlacementAttributes, CanonicalDoohScreenResolution, Identifier
100-
- `CanonicalProductPlacement1`: `+dooh_placement_attributes`, `+identifiers`
101-
- `CanonicalProductPlacement2`: `+dooh_placement_attributes`, `+identifiers`
102-
- `core/collection_distribution.py`
103-
- `CollectionDistribution`: `+property_ids`
104-
- `core/delivery_metrics.py`
105-
- **classes added**: DoohMetrics1
106-
- **classes removed**: DoohMetrics
107-
- `core/error.py`
108-
- **classes added**: BuyerReason
109-
- `Error`: `+buyer_reason`
110-
- `core/format.py`
111-
- **classes added**: CanonicalParameters16
112-
- `core/notification_config.py`
113-
- `EventType`: `+reporting_delivery_ready`, `+reporting_status_changed`
114-
- `core/package_format_snapshot.py`
115-
- **classes added**: PackageFormatSnapshot32, PackageFormatSnapshot33
116-
- `PackageFormatSnapshot16`: `+applies_to_channels`, `+canonical_formats_only`, `+display_name`, `+experimental`, `+format_kind`, `+format_option_id`, `+format_schema`, `+format_shape`, `+locale_policy`, `+macro_resolution_capabilities`, `+params`, `+publisher_domain`, `+sample_render_url`, `+seller_preference`, `+technical_requirements_complete`, `+tracker_execution_contract`, `+v1_format_ref` `-execution_daast_version`, `-execution_vast_version`, `-placement_refs`, `-product_id`, `-product_snapshot_digest`, `-tracker_execution_contract_digest`
117-
- `PackageFormatSnapshot17`: `-format_kind`, `-params`
118-
- `core/placement.py`
119-
- **classes added**: Identifier, ProductDoohPlacementAttributes, ProductDoohScreenResolution
120-
- `Placement`: `+dooh_placement_attributes`, `+identifiers`
121-
- `core/placement_definition.py`
122-
- **classes added**: Identifier, PublisherDoohPlacementAttributes, PublisherDoohScreenResolution
123-
- `PlacementDefinition`: `+dooh_placement_attributes`, `+identifiers`
124-
- `core/reporting_capabilities.py`
125-
- **classes added**: ReportingDeliveryOfferingId
126-
- `ReportingCapabilities`: `+reporting_delivery_offering_ids`
127-
- `core/targeting.py`
128-
- `TargetingOverlay`: `+collection_selection`
129-
- `core/transformer.py`
130-
- **classes added**: InputFormat16, InputFormat34
131-
- **classes removed**: InputFormat32
132-
- `core/x_entity_types.py`
133-
- `XEntityTypes`: `+reporting_definition`, `+reporting_delivery_config`, `+reporting_destination`, `+reporting_materialization`, `+reporting_obligation`, `+reporting_offering`, `+reporting_receipt`, `+reporting_resource`, `+reporting_revision`
134-
- `enums/collection_kind.py`
135-
- `CollectionKind`: `+channel`
136-
- `enums/distribution_identifier_type.py`
137-
- `DistributionIdentifierType`: `+platform_channel_id`
138-
- `enums/error_code.py`
139-
- `ErrorCode`: `+CREATIVE_MISSING_CLICK_URL`, `+CREATIVE_SIZE_MISMATCH`, `+CREATIVE_VALIDATION_FAILED_GENERIC`
140-
- `enums/notification_type.py`
141-
- `NotificationType`: `+principal_changed`, `+reporting_delivery_ready`, `+reporting_status_changed`
142-
- `enums/specialism.py`
143-
- `AdcpSpecialism`: `+sales_dooh`
144-
- `enums/task_type.py`
145-
- `TaskType`: `+get_principal`, `+sync_principal`, `+sync_reporting_receipts`
146-
- `governance/sync_plans_response.py`
147-
- **classes added**: Status44
148-
- **classes removed**: Status40
149-
- `media_buy/get_media_buy_delivery_response.py`
150-
- `BySpotItem`: `+creative_id`
151-
- `media_buy/get_products_request.py`
152-
- **classes added**: Action9
153-
- **classes removed**: Action7
154-
- `media_buy/product_refinement.py`
155-
- **classes added**: Action11
156-
- **classes removed**: Action9
157-
- `protocol/get_adcp_capabilities_response.py`
158-
- **classes added**: BudgetCappingTimezoneBasis, CapabilityReportingDeliveryMethod, Format, Pattern, Principal, RegistrationTask, ReportingDestinationOffering, SupportedSection, Transport1
159-
- **classes removed**: ExperimentalFeature, ReportingDeliveryMethod, TimezoneBasis
160-
- `Adcp`: `+principal`
161-
- `MediaBuy`: `+reporting_delivery`
162-
- `Transport`: `+root` `-type`, `-url`
163-
- `sponsored_intelligence/si_sponsored_context_receipt.py`
164-
- **classes added**: Status41
165-
- **classes removed**: Status37
3+
_No field-shape changes detected._

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ adcp = [
193193
"_schemas/2.5/**/*.json",
194194
"_schemas/3.0/**/*.json",
195195
"_schemas/3.1/**/*.json",
196-
"_schemas/3.2.0-beta.10/**/*.json",
196+
"_schemas/3.2.0-beta.11/**/*.json",
197197
# Vendored canonical-formats reference fixtures (14 v2 products +
198198
# 50-entry v1 catalog) so :mod:`adcp.canonical_formats.fixtures`
199199
# can serve them to adopter test suites without forcing each
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"title": "A2UI Bound Value",
4+
"description": "A value that can be a literal or bound to a path in the data model",
5+
"oneOf": [
6+
{
7+
"type": "object",
8+
"description": "Literal string value",
9+
"properties": {
10+
"literalString": {
11+
"type": "string",
12+
"description": "Static string value"
13+
}
14+
},
15+
"required": [
16+
"literalString"
17+
],
18+
"additionalProperties": false
19+
},
20+
{
21+
"type": "object",
22+
"description": "Literal number value",
23+
"properties": {
24+
"literalNumber": {
25+
"type": "number",
26+
"description": "Static number value"
27+
}
28+
},
29+
"required": [
30+
"literalNumber"
31+
],
32+
"additionalProperties": false
33+
},
34+
{
35+
"type": "object",
36+
"description": "Literal boolean value",
37+
"properties": {
38+
"literalBoolean": {
39+
"type": "boolean",
40+
"description": "Static boolean value"
41+
}
42+
},
43+
"required": [
44+
"literalBoolean"
45+
],
46+
"additionalProperties": false
47+
},
48+
{
49+
"type": "object",
50+
"description": "Path to data model value",
51+
"properties": {
52+
"path": {
53+
"type": "string",
54+
"description": "JSON pointer path to value in data model (e.g., '/products/0/title')"
55+
}
56+
},
57+
"required": [
58+
"path"
59+
],
60+
"additionalProperties": false
61+
},
62+
{
63+
"type": "object",
64+
"description": "Literal with path binding (sets default and binds)",
65+
"properties": {
66+
"literalString": {
67+
"type": "string"
68+
},
69+
"path": {
70+
"type": "string"
71+
}
72+
},
73+
"required": [
74+
"literalString",
75+
"path"
76+
],
77+
"additionalProperties": false
78+
}
79+
]
80+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"title": "A2UI Component",
4+
"description": "A component in an A2UI surface",
5+
"type": "object",
6+
"properties": {
7+
"id": {
8+
"type": "string",
9+
"description": "Unique identifier for this component within the surface"
10+
},
11+
"parentId": {
12+
"type": "string",
13+
"description": "ID of the parent component (null for root)"
14+
},
15+
"component": {
16+
"type": "object",
17+
"description": "Component definition (keyed by component type)",
18+
"minProperties": 1,
19+
"maxProperties": 1,
20+
"additionalProperties": {
21+
"type": "object",
22+
"description": "Component properties"
23+
}
24+
}
25+
},
26+
"required": [
27+
"id",
28+
"component"
29+
],
30+
"additionalProperties": true
31+
}

0 commit comments

Comments
 (0)