adcp 2.8.0__py3-none-any.whl → 2.10.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/types/_generated.py CHANGED
@@ -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-19 02:03:09 UTC
13
+ Generation date: 2025-11-20 21:00:13 UTC
14
14
  """
15
15
  # ruff: noqa: E501, I001
16
16
  from __future__ import annotations
@@ -20,9 +20,9 @@ from adcp.types.generated_poc.activate_signal_request import ActivateSignalReque
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
22
  from adcp.types.generated_poc.adagents import AuthorizedAgents, AuthorizedAgents1, AuthorizedAgents2, AuthorizedAgents3, AuthorizedSalesAgents, Contact, PropertyId, PropertyTag, Tags
23
- from adcp.types.generated_poc.asset_type import AssetTypeSchema, ContentLength, Dimensions, Duration, FileSize, Quality, Requirements, Type
23
+ from adcp.types.generated_poc.asset_content_type import AssetContentType
24
24
  from adcp.types.generated_poc.audio_asset import AudioAsset
25
- from adcp.types.generated_poc.brand_manifest import Asset, AssetType, BrandManifest, Colors, Disclaimer, FeedFormat, Fonts, Logo, Metadata, ProductCatalog, UpdateFrequency
25
+ from adcp.types.generated_poc.brand_manifest import Asset, BrandManifest, Colors, Disclaimer, FeedFormat, Fonts, Logo, Metadata, ProductCatalog, UpdateFrequency
26
26
  from adcp.types.generated_poc.build_creative_request import BuildCreativeRequest
27
27
  from adcp.types.generated_poc.build_creative_response import BuildCreativeResponse, BuildCreativeResponse1, BuildCreativeResponse2
28
28
  from adcp.types.generated_poc.channels import AdvertisingChannels
@@ -47,7 +47,8 @@ from adcp.types.generated_poc.deployment import Deployment1, Deployment2
47
47
  from adcp.types.generated_poc.destination import Destination1, Destination2
48
48
  from adcp.types.generated_poc.error import Error
49
49
  from adcp.types.generated_poc.flat_rate_option import FlatRatePricingOption
50
- from adcp.types.generated_poc.format import AssetsRequired, AssetsRequired1, Format, FormatCard, FormatCardDetailed, Render, Responsive, Unit
50
+ from adcp.types.generated_poc.format import AssetsRequired, AssetsRequired1, Dimensions, Format, FormatCard, FormatCardDetailed, Render, Responsive, Unit
51
+ from adcp.types.generated_poc.format_category import FormatCategory
51
52
  from adcp.types.generated_poc.format_id import FormatId
52
53
  from adcp.types.generated_poc.frequency_cap import FrequencyCap
53
54
  from adcp.types.generated_poc.frequency_cap_scope import FrequencyCapScope
@@ -81,7 +82,7 @@ from adcp.types.generated_poc.preview_creative_response import Input4, Preview,
81
82
  from adcp.types.generated_poc.preview_render import Embedding, PreviewRender, PreviewRender1, PreviewRender2, PreviewRender3
82
83
  from adcp.types.generated_poc.pricing_model import PricingModel
83
84
  from adcp.types.generated_poc.product import DeliveryMeasurement, Product, ProductCard, ProductCardDetailed
84
- from adcp.types.generated_poc.promoted_offerings import AssetSelectors, Offering, PromotedOfferings
85
+ from adcp.types.generated_poc.promoted_offerings import AssetSelectors, AssetType, Offering, PromotedOfferings
85
86
  from adcp.types.generated_poc.promoted_products import PromotedProducts
86
87
  from adcp.types.generated_poc.property import Identifier, Property, PropertyType, Tag
87
88
  from adcp.types.generated_poc.protocol_envelope import ProtocolEnvelope
@@ -100,12 +101,12 @@ from adcp.types.generated_poc.targeting import GeoCountryAnyOfItem, TargetingOve
100
101
  from adcp.types.generated_poc.task_status import TaskStatus
101
102
  from adcp.types.generated_poc.task_type import TaskType
102
103
  from adcp.types.generated_poc.tasks_get_request import TasksGetRequest
103
- from adcp.types.generated_poc.tasks_get_response import Details, Domain, HistoryItem, Progress, TasksGetResponse
104
+ from adcp.types.generated_poc.tasks_get_response import Details, Domain, HistoryItem, Progress, TasksGetResponse, Type
104
105
  from adcp.types.generated_poc.tasks_list_request import TasksListRequest
105
106
  from adcp.types.generated_poc.tasks_list_response import DomainBreakdown, Task, TasksListResponse
106
107
  from adcp.types.generated_poc.text_asset import TextAsset
107
108
  from adcp.types.generated_poc.update_media_buy_request import Packages, Packages1, Packages2, Packages3, UpdateMediaBuyRequest, UpdateMediaBuyRequest1, UpdateMediaBuyRequest2
108
- from adcp.types.generated_poc.update_media_buy_response import AffectedPackage, UpdateMediaBuyResponse, UpdateMediaBuyResponse1, UpdateMediaBuyResponse2
109
+ from adcp.types.generated_poc.update_media_buy_response import UpdateMediaBuyResponse, UpdateMediaBuyResponse1, UpdateMediaBuyResponse2
109
110
  from adcp.types.generated_poc.url_asset import UrlAsset, UrlType
110
111
  from adcp.types.generated_poc.vast_asset import VastAsset1, VastAsset2, VastVersion
111
112
  from adcp.types.generated_poc.vcpm_auction_option import VcpmAuctionPricingOption
@@ -115,7 +116,6 @@ from adcp.types.generated_poc.webhook_asset import Method, Method1, ResponseType
115
116
  from adcp.types.generated_poc.webhook_payload import WebhookPayload
116
117
 
117
118
  # Special imports for name collisions (qualified names for types defined in multiple modules)
118
- from adcp.types.generated_poc.create_media_buy_response import Package as _PackageFromCreateMediaBuyResponse
119
119
  from adcp.types.generated_poc.package import Package as _PackageFromPackage
120
120
 
121
121
  # Backward compatibility aliases for renamed types
@@ -125,24 +125,24 @@ Channels = AdvertisingChannels
125
125
  __all__ = [
126
126
  "Action", "ActivateSignalRequest", "ActivateSignalResponse", "ActivateSignalResponse1",
127
127
  "ActivateSignalResponse2", "ActivationKey1", "ActivationKey2", "AdvertisingChannels",
128
- "AffectedPackage", "AggregatedTotals", "Asset", "AssetSelectors", "AssetType",
129
- "AssetTypeSchema", "AssetsRequired", "AssetsRequired1", "AssignedPackage", "Assignments",
130
- "AudioAsset", "Authentication", "AuthorizedAgents", "AuthorizedAgents1", "AuthorizedAgents2",
128
+ "AggregatedTotals", "Asset", "AssetContentType", "AssetSelectors", "AssetType",
129
+ "AssetsRequired", "AssetsRequired1", "AssignedPackage", "Assignments", "AudioAsset",
130
+ "Authentication", "AuthorizedAgents", "AuthorizedAgents1", "AuthorizedAgents2",
131
131
  "AuthorizedAgents3", "AuthorizedSalesAgents", "AvailableMetric", "AvailableReportingFrequency",
132
132
  "BrandManifest", "BuildCreativeRequest", "BuildCreativeResponse", "BuildCreativeResponse1",
133
133
  "BuildCreativeResponse2", "ByPackageItem", "Capability", "CatalogType", "Channels",
134
- "CoBranding", "Colors", "Contact", "ContentLength", "Country", "CpcPricingOption",
135
- "CpcvPricingOption", "CpmAuctionPricingOption", "CpmFixedRatePricingOption",
136
- "CppPricingOption", "CpvPricingOption", "CreateMediaBuyRequest", "CreateMediaBuyResponse",
137
- "CreateMediaBuyResponse1", "CreateMediaBuyResponse2", "Creative", "CreativeAgent",
138
- "CreativeAsset", "CreativeAssignment", "CreativeManifest", "CreativePolicy", "CreativeStatus",
139
- "CssAsset", "DaastAsset1", "DaastAsset2", "DaastVersion", "DailyBreakdownItem", "DeliverTo",
140
- "DeliveryMeasurement", "DeliveryMetrics", "DeliveryType", "Deployment1", "Deployment2",
141
- "Destination1", "Destination2", "Details", "Dimensions", "Direction", "Disclaimer", "Domain",
142
- "DomainBreakdown", "DoohMetrics", "Duration", "Embedding", "Error", "FeedFormat",
143
- "FeedbackSource", "Field1", "FieldModel", "FileSize", "Filters", "FlatRatePricingOption",
144
- "Fonts", "Format", "FormatCard", "FormatCardDetailed", "FormatId", "FormatType",
145
- "FrequencyCap", "FrequencyCapScope", "GeoCountryAnyOfItem", "GetMediaBuyDeliveryRequest",
134
+ "CoBranding", "Colors", "Contact", "Country", "CpcPricingOption", "CpcvPricingOption",
135
+ "CpmAuctionPricingOption", "CpmFixedRatePricingOption", "CppPricingOption", "CpvPricingOption",
136
+ "CreateMediaBuyRequest", "CreateMediaBuyResponse", "CreateMediaBuyResponse1",
137
+ "CreateMediaBuyResponse2", "Creative", "CreativeAgent", "CreativeAsset", "CreativeAssignment",
138
+ "CreativeManifest", "CreativePolicy", "CreativeStatus", "CssAsset", "DaastAsset1",
139
+ "DaastAsset2", "DaastVersion", "DailyBreakdownItem", "DeliverTo", "DeliveryMeasurement",
140
+ "DeliveryMetrics", "DeliveryType", "Deployment1", "Deployment2", "Destination1",
141
+ "Destination2", "Details", "Dimensions", "Direction", "Disclaimer", "Domain",
142
+ "DomainBreakdown", "DoohMetrics", "Embedding", "Error", "FeedFormat", "FeedbackSource",
143
+ "Field1", "FieldModel", "Filters", "FlatRatePricingOption", "Fonts", "Format", "FormatCard",
144
+ "FormatCardDetailed", "FormatCategory", "FormatId", "FormatType", "FrequencyCap",
145
+ "FrequencyCapScope", "GeoCountryAnyOfItem", "GetMediaBuyDeliveryRequest",
146
146
  "GetMediaBuyDeliveryResponse", "GetProductsRequest", "GetProductsResponse",
147
147
  "GetSignalsRequest", "GetSignalsResponse", "HistoryItem", "HtmlAsset", "Identifier",
148
148
  "ImageAsset", "Input", "Input2", "Input4", "JavascriptAsset", "LandingPage",
@@ -163,19 +163,18 @@ __all__ = [
163
163
  "ProvidePerformanceFeedbackResponse", "ProvidePerformanceFeedbackResponse1",
164
164
  "ProvidePerformanceFeedbackResponse2", "PublisherDomain", "PublisherIdentifierTypes",
165
165
  "PublisherPropertySelector1", "PublisherPropertySelector2", "PublisherPropertySelector3",
166
- "PushNotificationConfig", "Quality", "QuartileData", "QuerySummary", "Render",
167
- "ReportingCapabilities", "ReportingFrequency", "ReportingPeriod", "ReportingWebhook",
168
- "Request", "RequestedMetric", "Requirements", "Response", "Response1", "ResponseType",
169
- "Responsive", "Results", "Results1", "Scheme", "Security", "Signal", "SignalType", "Sort",
170
- "SortApplied", "StandardFormatIds", "Status", "StatusFilter", "StatusFilterEnum",
171
- "StatusSummary", "SubAsset1", "SubAsset2", "SyncCreativesRequest", "SyncCreativesResponse",
172
- "SyncCreativesResponse1", "SyncCreativesResponse2", "Tag", "Tags", "TargetingOverlay", "Task",
173
- "TaskStatus", "TaskType", "TasksGetRequest", "TasksGetResponse", "TasksListRequest",
174
- "TasksListResponse", "TextAsset", "Totals", "TrackingEvent", "Type", "Unit", "UpdateFrequency",
175
- "UpdateMediaBuyRequest", "UpdateMediaBuyRequest1", "UpdateMediaBuyRequest2",
176
- "UpdateMediaBuyResponse", "UpdateMediaBuyResponse1", "UpdateMediaBuyResponse2", "UrlAsset",
177
- "UrlType", "ValidationMode", "VastAsset1", "VastAsset2", "VastVersion",
178
- "VcpmAuctionPricingOption", "VcpmFixedRatePricingOption", "VenueBreakdownItem", "VideoAsset",
179
- "ViewThreshold", "ViewThreshold1", "WebhookAsset", "WebhookPayload",
180
- "_PackageFromCreateMediaBuyResponse", "_PackageFromPackage"
166
+ "PushNotificationConfig", "QuartileData", "QuerySummary", "Render", "ReportingCapabilities",
167
+ "ReportingFrequency", "ReportingPeriod", "ReportingWebhook", "Request", "RequestedMetric",
168
+ "Response", "Response1", "ResponseType", "Responsive", "Results", "Results1", "Scheme",
169
+ "Security", "Signal", "SignalType", "Sort", "SortApplied", "StandardFormatIds", "Status",
170
+ "StatusFilter", "StatusFilterEnum", "StatusSummary", "SubAsset1", "SubAsset2",
171
+ "SyncCreativesRequest", "SyncCreativesResponse", "SyncCreativesResponse1",
172
+ "SyncCreativesResponse2", "Tag", "Tags", "TargetingOverlay", "Task", "TaskStatus", "TaskType",
173
+ "TasksGetRequest", "TasksGetResponse", "TasksListRequest", "TasksListResponse", "TextAsset",
174
+ "Totals", "TrackingEvent", "Type", "Unit", "UpdateFrequency", "UpdateMediaBuyRequest",
175
+ "UpdateMediaBuyRequest1", "UpdateMediaBuyRequest2", "UpdateMediaBuyResponse",
176
+ "UpdateMediaBuyResponse1", "UpdateMediaBuyResponse2", "UrlAsset", "UrlType", "ValidationMode",
177
+ "VastAsset1", "VastAsset2", "VastVersion", "VcpmAuctionPricingOption",
178
+ "VcpmFixedRatePricingOption", "VenueBreakdownItem", "VideoAsset", "ViewThreshold",
179
+ "ViewThreshold1", "WebhookAsset", "WebhookPayload", "_PackageFromPackage"
181
180
  ]
adcp/types/aliases.py CHANGED
@@ -100,14 +100,11 @@ from adcp.types._generated import (
100
100
  PublisherPropertySelector3 as PublisherPropertiesByTagInternal,
101
101
  )
102
102
 
103
- # Import all generated types that need semantic aliases
104
- from adcp.types._generated import (
105
- # Package types (from name collision resolution)
106
- _PackageFromCreateMediaBuyResponse as CreatedPackageInternal,
107
- )
108
- from adcp.types._generated import (
109
- _PackageFromPackage as FullPackageInternal,
110
- )
103
+ # Note: Package collision resolved by PR #223
104
+ # Both create_media_buy and update_media_buy now return full Package objects
105
+ # No more separate reference type needed
106
+ # Import Package from _generated (still uses qualified name for internal reasons)
107
+ from adcp.types._generated import _PackageFromPackage as Package
111
108
 
112
109
  # ============================================================================
113
110
  # RESPONSE TYPE ALIASES - Success/Error Discriminated Unions
@@ -242,40 +239,11 @@ TextSubAsset = SubAsset2
242
239
  # - Used in MediaBuy, update operations, and package management
243
240
  # - Has 12+ fields for full package configuration
244
241
  #
245
- # 2. Created Package (from create-media-buy-response.json schema):
246
- # - Minimal response type with only IDs (buyer_ref, package_id)
247
- # - Used in CreateMediaBuy success responses
248
- # - Only 2 fields - represents newly created package references
249
- #
250
- # The code generator's "first wins" collision handling exports the Created Package
251
- # as "Package", shadowing the Full Package. These semantic aliases provide clear,
252
- # unambiguous names for both types.
253
-
254
- Package = FullPackageInternal
255
- """Complete package configuration with all operational fields.
256
-
257
- This is the canonical Package type used throughout AdCP for package management.
258
-
259
- Used in:
260
- - MediaBuy.packages (list of full package details)
261
- - Update operations (modifying existing packages)
262
- - Package management (creating/configuring packages)
263
-
264
- Fields include: budget, pricing_option_id, product_id, status, bid_price,
265
- creative_assignments, format_ids_to_provide, impressions, pacing, targeting_overlay
266
- """
267
-
268
- CreatedPackageReference = CreatedPackageInternal
269
- """Minimal package reference with only IDs returned after creation.
270
-
271
- This is NOT the full Package type - it's a lightweight reference returned
272
- in CreateMediaBuySuccessResponse to indicate which packages were created.
273
-
274
- Used in:
275
- - CreateMediaBuySuccessResponse.packages (list of created package references)
276
-
277
- Fields: buyer_ref, package_id only
278
- """
242
+ # Package collision resolved by PR #223:
243
+ # - create-media-buy-response.json now returns full Package objects (not minimal refs)
244
+ # - update-media-buy-response.json already returned full Package objects
245
+ # - Both operations return identical Package structures
246
+ # - Single Package type imported above, no aliases needed
279
247
 
280
248
  # ============================================================================
281
249
  # PUBLISHER PROPERTIES ALIASES - Selection Type Discriminated Unions
@@ -757,7 +725,6 @@ __all__ = [
757
725
  "UpdateMediaBuySuccessResponse",
758
726
  "UpdateMediaBuyErrorResponse",
759
727
  # Package type aliases
760
- "CreatedPackageReference",
761
728
  "Package",
762
729
  # Publisher properties types
763
730
  "PropertyId",
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: activate-signal-request.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T20:44:40+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -22,10 +22,10 @@ class ActivateSignalRequest(AdCPBaseModel):
22
22
  description='Initiator-provided context included in the request payload. Agents must echo this value back unchanged in responses and webhooks. Use for UI/session hints, correlation tokens, or tracking metadata.'
23
23
  ),
24
24
  ] = None
25
- destinations: Annotated[
25
+ deployments: Annotated[
26
26
  list[destination.Destination1 | destination.Destination2],
27
27
  Field(
28
- description='Target destination(s) for activation. If the authenticated caller matches one of these destinations, activation keys will be included in the response.',
28
+ description='Target deployment(s) for activation. If the authenticated caller matches one of these deployment targets, activation keys will be included in the response.',
29
29
  min_length=1,
30
30
  ),
31
31
  ]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: activate-signal-response.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T20:44:40+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -24,7 +24,7 @@ class ActivateSignalResponse1(AdCPBaseModel):
24
24
  ] = None
25
25
  deployments: Annotated[
26
26
  list[deployment.Deployment1 | deployment.Deployment2],
27
- Field(description='Array of deployment results for each destination'),
27
+ Field(description='Array of deployment results for each deployment target'),
28
28
  ]
29
29
 
30
30
 
@@ -0,0 +1,23 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: asset-content-type.json
3
+ # timestamp: 2025-11-20T11:58:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class AssetContentType(Enum):
11
+ image = 'image'
12
+ video = 'video'
13
+ audio = 'audio'
14
+ text = 'text'
15
+ markdown = 'markdown'
16
+ html = 'html'
17
+ css = 'css'
18
+ javascript = 'javascript'
19
+ vast = 'vast'
20
+ daast = 'daast'
21
+ promoted_offerings = 'promoted_offerings'
22
+ url = 'url'
23
+ webhook = 'webhook'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: brand-manifest.json
3
- # timestamp: 2025-11-18T04:34:42+00:00
3
+ # timestamp: 2025-11-20T11:58:34+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -10,12 +10,7 @@ from typing import Annotated, Any
10
10
  from adcp.types.base import AdCPBaseModel
11
11
  from pydantic import AnyUrl, AwareDatetime, ConfigDict, EmailStr, Field
12
12
 
13
-
14
- class AssetType(Enum):
15
- image = 'image'
16
- video = 'video'
17
- audio = 'audio'
18
- text = 'text'
13
+ from . import asset_content_type
19
14
 
20
15
 
21
16
  class Asset(AdCPBaseModel):
@@ -23,7 +18,12 @@ class Asset(AdCPBaseModel):
23
18
  extra='forbid',
24
19
  )
25
20
  asset_id: Annotated[str, Field(description='Unique identifier for this asset')]
26
- asset_type: Annotated[AssetType, Field(description='Type of asset')]
21
+ asset_type: Annotated[
22
+ asset_content_type.AssetContentType,
23
+ Field(
24
+ description='Type of asset. Note: Brand manifests typically contain basic media assets (image, video, audio, text). Code assets (html, javascript, css) and ad markup (vast, daast) are usually not part of brand asset libraries.'
25
+ ),
26
+ ]
27
27
  description: Annotated[str | None, Field(description='Asset description or usage notes')] = None
28
28
  duration_seconds: Annotated[
29
29
  float | None, Field(description='Video/audio duration in seconds')
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: create-media-buy-response.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T11:58:34+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -9,15 +9,23 @@ from typing import Annotated, Any
9
9
  from adcp.types.base import AdCPBaseModel
10
10
  from pydantic import AwareDatetime, ConfigDict, Field, RootModel
11
11
 
12
- from . import error
12
+ from . import error, package
13
13
 
14
14
 
15
- class Package(AdCPBaseModel):
15
+ class CreateMediaBuyResponse2(AdCPBaseModel):
16
16
  model_config = ConfigDict(
17
17
  extra='forbid',
18
18
  )
19
- buyer_ref: Annotated[str, Field(description="Buyer's reference identifier for the package")]
20
- package_id: Annotated[str, Field(description="Publisher's unique identifier for the package")]
19
+ context: Annotated[
20
+ dict[str, Any] | None,
21
+ Field(
22
+ description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
23
+ ),
24
+ ] = None
25
+ errors: Annotated[
26
+ list[error.Error],
27
+ Field(description='Array of errors explaining why the operation failed', min_length=1),
28
+ ]
21
29
 
22
30
 
23
31
  class CreateMediaBuyResponse1(AdCPBaseModel):
@@ -37,22 +45,9 @@ class CreateMediaBuyResponse1(AdCPBaseModel):
37
45
  media_buy_id: Annotated[
38
46
  str, Field(description="Publisher's unique identifier for the created media buy")
39
47
  ]
40
- packages: Annotated[list[Package], Field(description='Array of created packages')]
41
-
42
-
43
- class CreateMediaBuyResponse2(AdCPBaseModel):
44
- model_config = ConfigDict(
45
- extra='forbid',
46
- )
47
- context: Annotated[
48
- dict[str, Any] | None,
49
- Field(
50
- description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
51
- ),
52
- ] = None
53
- errors: Annotated[
54
- list[error.Error],
55
- Field(description='Array of errors explaining why the operation failed', min_length=1),
48
+ packages: Annotated[
49
+ list[package.Package],
50
+ Field(description='Array of created packages with complete state information'),
56
51
  ]
57
52
 
58
53
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: deployment.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T20:44:40+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -20,7 +20,7 @@ class Deployment1(AdCPBaseModel):
20
20
  activation_key: Annotated[
21
21
  activation_key_1.ActivationKey1 | activation_key_1.ActivationKey2 | None,
22
22
  Field(
23
- description='The key to use for targeting. Only present if is_live=true AND requester has access to this destination.',
23
+ description='The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.',
24
24
  title='Activation Key',
25
25
  ),
26
26
  ] = None
@@ -36,7 +36,7 @@ class Deployment1(AdCPBaseModel):
36
36
  ),
37
37
  ] = None
38
38
  is_live: Annotated[
39
- bool, Field(description='Whether signal is currently active on this destination')
39
+ bool, Field(description='Whether signal is currently active on this deployment')
40
40
  ]
41
41
  platform: Annotated[str, Field(description='Platform identifier for DSPs')]
42
42
  type: Annotated[
@@ -53,11 +53,11 @@ class Deployment2(AdCPBaseModel):
53
53
  activation_key: Annotated[
54
54
  activation_key_1.ActivationKey1 | activation_key_1.ActivationKey2 | None,
55
55
  Field(
56
- description='The key to use for targeting. Only present if is_live=true AND requester has access to this destination.',
56
+ description='The key to use for targeting. Only present if is_live=true AND requester has access to this deployment.',
57
57
  title='Activation Key',
58
58
  ),
59
59
  ] = None
60
- agent_url: Annotated[AnyUrl, Field(description='URL identifying the destination agent')]
60
+ agent_url: Annotated[AnyUrl, Field(description='URL identifying the deployment agent')]
61
61
  deployed_at: Annotated[
62
62
  AwareDatetime | None,
63
63
  Field(description='Timestamp when activation completed (if is_live=true)'),
@@ -70,7 +70,7 @@ class Deployment2(AdCPBaseModel):
70
70
  ),
71
71
  ] = None
72
72
  is_live: Annotated[
73
- bool, Field(description='Whether signal is currently active on this destination')
73
+ bool, Field(description='Whether signal is currently active on this deployment')
74
74
  ]
75
75
  type: Annotated[
76
76
  Literal['agent'],
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: destination.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T20:44:40+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -23,7 +23,7 @@ class Destination1(AdCPBaseModel):
23
23
  ]
24
24
  type: Annotated[
25
25
  Literal['platform'],
26
- Field(description='Discriminator indicating this is a platform-based destination'),
26
+ Field(description='Discriminator indicating this is a platform-based deployment'),
27
27
  ]
28
28
 
29
29
 
@@ -35,9 +35,9 @@ class Destination2(AdCPBaseModel):
35
35
  str | None, Field(description='Optional account identifier on the agent')
36
36
  ] = None
37
37
  agent_url: Annotated[
38
- AnyUrl, Field(description='URL identifying the destination agent (for sales agents, etc.)')
38
+ AnyUrl, Field(description='URL identifying the deployment agent (for sales agents, etc.)')
39
39
  ]
40
40
  type: Annotated[
41
41
  Literal['agent'],
42
- Field(description='Discriminator indicating this is an agent URL-based destination'),
42
+ Field(description='Discriminator indicating this is an agent URL-based deployment'),
43
43
  ]
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: format.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T11:58:34+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -10,25 +10,10 @@ from typing import Annotated, Any, Literal
10
10
  from adcp.types.base import AdCPBaseModel
11
11
  from pydantic import AnyUrl, ConfigDict, Field
12
12
 
13
+ from . import asset_content_type, format_category
13
14
  from . import format_id as format_id_1
14
15
 
15
16
 
16
- class AssetType(Enum):
17
- image = 'image'
18
- video = 'video'
19
- audio = 'audio'
20
- vast = 'vast'
21
- daast = 'daast'
22
- text = 'text'
23
- markdown = 'markdown'
24
- html = 'html'
25
- css = 'css'
26
- javascript = 'javascript'
27
- url = 'url'
28
- webhook = 'webhook'
29
- promoted_offerings = 'promoted_offerings'
30
-
31
-
32
17
  class AssetsRequired(AdCPBaseModel):
33
18
  asset_id: Annotated[
34
19
  str,
@@ -42,7 +27,7 @@ class AssetsRequired(AdCPBaseModel):
42
27
  description="Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only."
43
28
  ),
44
29
  ] = None
45
- asset_type: Annotated[AssetType, Field(description='Type of asset')]
30
+ asset_type: Annotated[asset_content_type.AssetContentType, Field(description='Type of asset')]
46
31
  item_type: Annotated[
47
32
  Literal['individual'],
48
33
  Field(description='Discriminator indicating this is an individual asset requirement'),
@@ -64,7 +49,7 @@ class Asset(AdCPBaseModel):
64
49
  description="Optional descriptive label for this asset's purpose (e.g., 'hero_image', 'logo'). Not used for referencing assets in manifests—use asset_id instead. This field is for human-readable documentation and UI display only."
65
50
  ),
66
51
  ] = None
67
- asset_type: Annotated[AssetType, Field(description='Type of asset')]
52
+ asset_type: Annotated[asset_content_type.AssetContentType, Field(description='Type of asset')]
68
53
  required: Annotated[
69
54
  bool | None, Field(description='Whether this asset is required in each repetition')
70
55
  ] = None
@@ -174,16 +159,6 @@ class Render(AdCPBaseModel):
174
159
  ]
175
160
 
176
161
 
177
- class Type(Enum):
178
- audio = 'audio'
179
- video = 'video'
180
- display = 'display'
181
- native = 'native'
182
- dooh = 'dooh'
183
- rich_media = 'rich_media'
184
- universal = 'universal'
185
-
186
-
187
162
  class Format(AdCPBaseModel):
188
163
  model_config = ConfigDict(
189
164
  extra='forbid',
@@ -253,7 +228,7 @@ class Format(AdCPBaseModel):
253
228
  ),
254
229
  ] = None
255
230
  type: Annotated[
256
- Type,
231
+ format_category.FormatCategory,
257
232
  Field(
258
233
  description='Media type of this format - determines rendering method and asset requirements'
259
234
  ),
@@ -0,0 +1,17 @@
1
+ # generated by datamodel-codegen:
2
+ # filename: format-category.json
3
+ # timestamp: 2025-11-20T11:58:34+00:00
4
+
5
+ from __future__ import annotations
6
+
7
+ from enum import Enum
8
+
9
+
10
+ class FormatCategory(Enum):
11
+ audio = 'audio'
12
+ video = 'video'
13
+ display = 'display'
14
+ native = 'native'
15
+ dooh = 'dooh'
16
+ rich_media = 'rich_media'
17
+ universal = 'universal'
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: get-signals-request.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T20:44:40+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -24,10 +24,10 @@ class DeliverTo(AdCPBaseModel):
24
24
  countries: Annotated[
25
25
  list[Country], Field(description='Countries where signals will be used (ISO codes)')
26
26
  ]
27
- destinations: Annotated[
27
+ deployments: Annotated[
28
28
  list[destination.Destination1 | destination.Destination2],
29
29
  Field(
30
- description='List of destination platforms (DSPs, sales agents, etc.). If the authenticated caller matches one of these destinations, activation keys will be included in the response.',
30
+ description='List of deployment targets (DSPs, sales agents, etc.). If the authenticated caller matches one of these deployment targets, activation keys will be included in the response.',
31
31
  min_length=1,
32
32
  ),
33
33
  ]
@@ -66,7 +66,7 @@ class GetSignalsRequest(AdCPBaseModel):
66
66
  ),
67
67
  ] = None
68
68
  deliver_to: Annotated[
69
- DeliverTo, Field(description='Destination platforms where signals need to be activated')
69
+ DeliverTo, Field(description='Deployment targets where signals need to be activated')
70
70
  ]
71
71
  filters: Annotated[Filters | None, Field(description='Filters to refine results')] = None
72
72
  max_results: Annotated[
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: get-signals-response.json
3
- # timestamp: 2025-11-18T03:35:10+00:00
3
+ # timestamp: 2025-11-20T20:44:40+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -37,7 +37,7 @@ class Signal(AdCPBaseModel):
37
37
  data_provider: Annotated[str, Field(description='Name of the data provider')]
38
38
  deployments: Annotated[
39
39
  list[deployment.Deployment1 | deployment.Deployment2],
40
- Field(description='Array of destination deployments'),
40
+ Field(description='Array of deployment targets'),
41
41
  ]
42
42
  description: Annotated[str, Field(description='Detailed signal description')]
43
43
  name: Annotated[str, Field(description='Human-readable signal name')]