adcp 2.2.0__py3-none-any.whl → 2.4.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/__init__.py +5 -1
- adcp/adagents.py +122 -0
- adcp/types/generated.py +36 -531
- adcp/types/generated_poc/__init__.py +1 -1
- adcp/types/generated_poc/activate_signal_request.py +5 -5
- adcp/types/generated_poc/activate_signal_response.py +9 -9
- adcp/types/generated_poc/activation_key.py +8 -8
- adcp/types/generated_poc/adagents.py +46 -46
- adcp/types/generated_poc/asset_type.py +19 -19
- adcp/types/generated_poc/audio_asset.py +6 -6
- adcp/types/generated_poc/brand_manifest.py +73 -73
- adcp/types/generated_poc/build_creative_request.py +6 -6
- adcp/types/generated_poc/build_creative_response.py +9 -9
- adcp/types/generated_poc/channels.py +10 -10
- adcp/types/generated_poc/cpc_option.py +12 -8
- adcp/types/generated_poc/cpcv_option.py +12 -8
- adcp/types/generated_poc/cpm_auction_option.py +17 -13
- adcp/types/generated_poc/cpm_fixed_option.py +12 -8
- adcp/types/generated_poc/cpp_option.py +17 -13
- adcp/types/generated_poc/cpv_option.py +16 -12
- adcp/types/generated_poc/create_media_buy_request.py +29 -29
- adcp/types/generated_poc/create_media_buy_response.py +11 -11
- adcp/types/generated_poc/creative_asset.py +13 -13
- adcp/types/generated_poc/creative_assignment.py +4 -4
- adcp/types/generated_poc/creative_manifest.py +4 -4
- adcp/types/generated_poc/creative_policy.py +11 -11
- adcp/types/generated_poc/creative_status.py +5 -5
- adcp/types/generated_poc/css_asset.py +3 -3
- adcp/types/generated_poc/daast_asset.py +30 -30
- adcp/types/generated_poc/delivery_metrics.py +33 -33
- adcp/types/generated_poc/delivery_type.py +3 -3
- adcp/types/generated_poc/deployment.py +21 -21
- adcp/types/generated_poc/destination.py +10 -10
- adcp/types/generated_poc/error.py +7 -7
- adcp/types/generated_poc/flat_rate_option.py +16 -16
- adcp/types/generated_poc/format.py +70 -70
- adcp/types/generated_poc/format_id.py +3 -3
- adcp/types/generated_poc/frequency_cap.py +3 -3
- adcp/types/generated_poc/frequency_cap_scope.py +4 -4
- adcp/types/generated_poc/get_media_buy_delivery_request.py +21 -21
- adcp/types/generated_poc/get_media_buy_delivery_response.py +46 -46
- adcp/types/generated_poc/get_products_request.py +23 -23
- adcp/types/generated_poc/get_products_response.py +5 -5
- adcp/types/generated_poc/get_signals_request.py +19 -19
- adcp/types/generated_poc/get_signals_response.py +20 -20
- adcp/types/generated_poc/html_asset.py +3 -3
- adcp/types/generated_poc/identifier_types.py +20 -20
- adcp/types/generated_poc/image_asset.py +7 -7
- adcp/types/generated_poc/javascript_asset.py +7 -7
- adcp/types/generated_poc/list_authorized_properties_request.py +5 -5
- adcp/types/generated_poc/list_authorized_properties_response.py +9 -9
- adcp/types/generated_poc/list_creative_formats_request.py +22 -22
- adcp/types/generated_poc/list_creative_formats_response.py +11 -11
- adcp/types/generated_poc/list_creatives_request.py +51 -51
- adcp/types/generated_poc/list_creatives_response.py +61 -61
- adcp/types/generated_poc/markdown_asset.py +7 -7
- adcp/types/generated_poc/measurement.py +9 -9
- adcp/types/generated_poc/media_buy.py +8 -8
- adcp/types/generated_poc/media_buy_status.py +5 -5
- adcp/types/generated_poc/pacing.py +4 -4
- adcp/types/generated_poc/package.py +8 -8
- adcp/types/generated_poc/package_request.py +7 -7
- adcp/types/generated_poc/package_status.py +5 -5
- adcp/types/generated_poc/performance_feedback.py +31 -31
- adcp/types/generated_poc/placement.py +4 -4
- adcp/types/generated_poc/preview_creative_request.py +28 -28
- adcp/types/generated_poc/preview_creative_response.py +31 -31
- adcp/types/generated_poc/preview_render.py +36 -28
- adcp/types/generated_poc/pricing_model.py +8 -8
- adcp/types/generated_poc/product.py +32 -31
- adcp/types/generated_poc/promoted_offerings.py +29 -29
- adcp/types/generated_poc/promoted_products.py +3 -3
- adcp/types/generated_poc/property.py +18 -18
- adcp/types/generated_poc/protocol_envelope.py +9 -9
- adcp/types/generated_poc/provide_performance_feedback_request.py +24 -24
- adcp/types/generated_poc/provide_performance_feedback_response.py +9 -9
- adcp/types/generated_poc/publisher_identifier_types.py +6 -6
- adcp/types/generated_poc/push_notification_config.py +9 -9
- adcp/types/generated_poc/reporting_capabilities.py +21 -21
- adcp/types/generated_poc/response.py +5 -5
- adcp/types/generated_poc/standard_format_ids.py +36 -36
- adcp/types/generated_poc/sub_asset.py +13 -13
- adcp/types/generated_poc/sync_creatives_request.py +11 -11
- adcp/types/generated_poc/sync_creatives_response.py +23 -23
- adcp/types/generated_poc/targeting.py +9 -9
- adcp/types/generated_poc/task_status.py +10 -10
- adcp/types/generated_poc/task_type.py +6 -6
- adcp/types/generated_poc/tasks_get_request.py +5 -5
- adcp/types/generated_poc/tasks_get_response.py +35 -35
- adcp/types/generated_poc/tasks_list_request.py +36 -36
- adcp/types/generated_poc/tasks_list_response.py +35 -35
- adcp/types/generated_poc/text_asset.py +3 -3
- adcp/types/generated_poc/update_media_buy_request.py +27 -27
- adcp/types/generated_poc/update_media_buy_response.py +11 -11
- adcp/types/generated_poc/url_asset.py +7 -7
- adcp/types/generated_poc/vast_asset.py +38 -38
- adcp/types/generated_poc/vcpm_auction_option.py +17 -13
- adcp/types/generated_poc/vcpm_fixed_option.py +12 -8
- adcp/types/generated_poc/video_asset.py +8 -8
- adcp/types/generated_poc/webhook_asset.py +19 -19
- adcp/types/generated_poc/webhook_payload.py +18 -18
- {adcp-2.2.0.dist-info → adcp-2.4.0.dist-info}/METADATA +38 -2
- adcp-2.4.0.dist-info/RECORD +132 -0
- adcp-2.2.0.dist-info/RECORD +0 -132
- {adcp-2.2.0.dist-info → adcp-2.4.0.dist-info}/WHEEL +0 -0
- {adcp-2.2.0.dist-info → adcp-2.4.0.dist-info}/entry_points.txt +0 -0
- {adcp-2.2.0.dist-info → adcp-2.4.0.dist-info}/licenses/LICENSE +0 -0
- {adcp-2.2.0.dist-info → adcp-2.4.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: targeting.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -13,41 +13,41 @@ from . import frequency_cap as frequency_cap_1
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
class GeoCountryAnyOfItem(RootModel[str]):
|
|
16
|
-
root: Annotated[str, Field(pattern=
|
|
16
|
+
root: Annotated[str, Field(pattern='^[A-Z]{2}$')]
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class TargetingOverlay(AdCPBaseModel):
|
|
20
20
|
model_config = ConfigDict(
|
|
21
|
-
extra=
|
|
21
|
+
extra='forbid',
|
|
22
22
|
)
|
|
23
23
|
axe_exclude_segment: Annotated[
|
|
24
|
-
str | None, Field(description=
|
|
24
|
+
str | None, Field(description='AXE segment ID to exclude from targeting')
|
|
25
25
|
] = None
|
|
26
26
|
axe_include_segment: Annotated[
|
|
27
|
-
str | None, Field(description=
|
|
27
|
+
str | None, Field(description='AXE segment ID to include for targeting')
|
|
28
28
|
] = None
|
|
29
29
|
frequency_cap: frequency_cap_1.FrequencyCap | None = None
|
|
30
30
|
geo_country_any_of: Annotated[
|
|
31
31
|
list[GeoCountryAnyOfItem] | None,
|
|
32
32
|
Field(
|
|
33
|
-
description=
|
|
33
|
+
description='Restrict delivery to specific countries (ISO codes). Use for regulatory compliance or RCT testing.'
|
|
34
34
|
),
|
|
35
35
|
] = None
|
|
36
36
|
geo_metro_any_of: Annotated[
|
|
37
37
|
list[str] | None,
|
|
38
38
|
Field(
|
|
39
|
-
description=
|
|
39
|
+
description='Restrict delivery to specific metro areas (DMA codes). Use for regulatory compliance or RCT testing.'
|
|
40
40
|
),
|
|
41
41
|
] = None
|
|
42
42
|
geo_postal_code_any_of: Annotated[
|
|
43
43
|
list[str] | None,
|
|
44
44
|
Field(
|
|
45
|
-
description=
|
|
45
|
+
description='Restrict delivery to specific postal/ZIP codes. Use for regulatory compliance or RCT testing.'
|
|
46
46
|
),
|
|
47
47
|
] = None
|
|
48
48
|
geo_region_any_of: Annotated[
|
|
49
49
|
list[str] | None,
|
|
50
50
|
Field(
|
|
51
|
-
description=
|
|
51
|
+
description='Restrict delivery to specific regions/states. Use for regulatory compliance or RCT testing.'
|
|
52
52
|
),
|
|
53
53
|
] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: task-status.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -8,12 +8,12 @@ from enum import Enum
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class TaskStatus(Enum):
|
|
11
|
-
submitted =
|
|
12
|
-
working =
|
|
13
|
-
input_required =
|
|
14
|
-
completed =
|
|
15
|
-
canceled =
|
|
16
|
-
failed =
|
|
17
|
-
rejected =
|
|
18
|
-
auth_required =
|
|
19
|
-
unknown =
|
|
11
|
+
submitted = 'submitted'
|
|
12
|
+
working = 'working'
|
|
13
|
+
input_required = 'input-required'
|
|
14
|
+
completed = 'completed'
|
|
15
|
+
canceled = 'canceled'
|
|
16
|
+
failed = 'failed'
|
|
17
|
+
rejected = 'rejected'
|
|
18
|
+
auth_required = 'auth-required'
|
|
19
|
+
unknown = 'unknown'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: task-type.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -8,8 +8,8 @@ from enum import Enum
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
class TaskType(Enum):
|
|
11
|
-
create_media_buy =
|
|
12
|
-
update_media_buy =
|
|
13
|
-
sync_creatives =
|
|
14
|
-
activate_signal =
|
|
15
|
-
get_signals =
|
|
11
|
+
create_media_buy = 'create_media_buy'
|
|
12
|
+
update_media_buy = 'update_media_buy'
|
|
13
|
+
sync_creatives = 'sync_creatives'
|
|
14
|
+
activate_signal = 'activate_signal'
|
|
15
|
+
get_signals = 'get_signals'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: tasks-get-request.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -12,18 +12,18 @@ from pydantic import ConfigDict, Field
|
|
|
12
12
|
|
|
13
13
|
class TasksGetRequest(AdCPBaseModel):
|
|
14
14
|
model_config = ConfigDict(
|
|
15
|
-
extra=
|
|
15
|
+
extra='forbid',
|
|
16
16
|
)
|
|
17
17
|
context: Annotated[
|
|
18
18
|
dict[str, Any] | None,
|
|
19
19
|
Field(
|
|
20
|
-
description=
|
|
20
|
+
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.'
|
|
21
21
|
),
|
|
22
22
|
] = None
|
|
23
23
|
include_history: Annotated[
|
|
24
24
|
bool | None,
|
|
25
25
|
Field(
|
|
26
|
-
description=
|
|
26
|
+
description='Include full conversation history for this task (may increase response size)'
|
|
27
27
|
),
|
|
28
28
|
] = False
|
|
29
|
-
task_id: Annotated[str, Field(description=
|
|
29
|
+
task_id: Annotated[str, Field(description='Unique identifier of the task to retrieve')]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: tasks-get-response.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -15,98 +15,98 @@ from . import task_type as task_type_1
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class Domain(Enum):
|
|
18
|
-
media_buy =
|
|
19
|
-
signals =
|
|
18
|
+
media_buy = 'media-buy'
|
|
19
|
+
signals = 'signals'
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class Details(AdCPBaseModel):
|
|
23
23
|
model_config = ConfigDict(
|
|
24
|
-
extra=
|
|
24
|
+
extra='allow',
|
|
25
25
|
)
|
|
26
|
-
domain: Annotated[Domain | None, Field(description=
|
|
27
|
-
operation: Annotated[str | None, Field(description=
|
|
26
|
+
domain: Annotated[Domain | None, Field(description='AdCP domain where error occurred')] = None
|
|
27
|
+
operation: Annotated[str | None, Field(description='Specific operation that failed')] = None
|
|
28
28
|
specific_context: Annotated[
|
|
29
|
-
dict[str, Any] | None, Field(description=
|
|
29
|
+
dict[str, Any] | None, Field(description='Domain-specific error context')
|
|
30
30
|
] = None
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
class Error(AdCPBaseModel):
|
|
34
34
|
model_config = ConfigDict(
|
|
35
|
-
extra=
|
|
35
|
+
extra='forbid',
|
|
36
36
|
)
|
|
37
|
-
code: Annotated[str, Field(description=
|
|
38
|
-
details: Annotated[Details | None, Field(description=
|
|
39
|
-
message: Annotated[str, Field(description=
|
|
37
|
+
code: Annotated[str, Field(description='Error code for programmatic handling')]
|
|
38
|
+
details: Annotated[Details | None, Field(description='Additional error context')] = None
|
|
39
|
+
message: Annotated[str, Field(description='Detailed error message')]
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class Type(Enum):
|
|
43
|
-
request =
|
|
44
|
-
response =
|
|
43
|
+
request = 'request'
|
|
44
|
+
response = 'response'
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
class HistoryItem(AdCPBaseModel):
|
|
48
48
|
model_config = ConfigDict(
|
|
49
|
-
extra=
|
|
49
|
+
extra='forbid',
|
|
50
50
|
)
|
|
51
|
-
data: Annotated[dict[str, Any], Field(description=
|
|
52
|
-
timestamp: Annotated[AwareDatetime, Field(description=
|
|
51
|
+
data: Annotated[dict[str, Any], Field(description='The full request or response payload')]
|
|
52
|
+
timestamp: Annotated[AwareDatetime, Field(description='When this exchange occurred (ISO 8601)')]
|
|
53
53
|
type: Annotated[
|
|
54
|
-
Type, Field(description=
|
|
54
|
+
Type, Field(description='Whether this was a request from client or response from server')
|
|
55
55
|
]
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
class Progress(AdCPBaseModel):
|
|
59
59
|
model_config = ConfigDict(
|
|
60
|
-
extra=
|
|
60
|
+
extra='forbid',
|
|
61
61
|
)
|
|
62
62
|
current_step: Annotated[
|
|
63
|
-
str | None, Field(description=
|
|
63
|
+
str | None, Field(description='Current step or phase of the operation')
|
|
64
64
|
] = None
|
|
65
65
|
percentage: Annotated[
|
|
66
|
-
float | None, Field(description=
|
|
66
|
+
float | None, Field(description='Completion percentage (0-100)', ge=0.0, le=100.0)
|
|
67
67
|
] = None
|
|
68
|
-
step_number: Annotated[int | None, Field(description=
|
|
68
|
+
step_number: Annotated[int | None, Field(description='Current step number', ge=1)] = None
|
|
69
69
|
total_steps: Annotated[
|
|
70
|
-
int | None, Field(description=
|
|
70
|
+
int | None, Field(description='Total number of steps in the operation', ge=1)
|
|
71
71
|
] = None
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
class TasksGetResponse(AdCPBaseModel):
|
|
75
75
|
model_config = ConfigDict(
|
|
76
|
-
extra=
|
|
76
|
+
extra='forbid',
|
|
77
77
|
)
|
|
78
78
|
completed_at: Annotated[
|
|
79
79
|
AwareDatetime | None,
|
|
80
80
|
Field(
|
|
81
|
-
description=
|
|
81
|
+
description='When the task completed (ISO 8601, only for completed/failed/canceled tasks)'
|
|
82
82
|
),
|
|
83
83
|
] = None
|
|
84
84
|
context: Annotated[
|
|
85
85
|
dict[str, Any] | None,
|
|
86
86
|
Field(
|
|
87
|
-
description=
|
|
87
|
+
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
88
88
|
),
|
|
89
89
|
] = None
|
|
90
90
|
created_at: Annotated[
|
|
91
|
-
AwareDatetime, Field(description=
|
|
91
|
+
AwareDatetime, Field(description='When the task was initially created (ISO 8601)')
|
|
92
92
|
]
|
|
93
|
-
domain: Annotated[Domain, Field(description=
|
|
94
|
-
error: Annotated[Error | None, Field(description=
|
|
93
|
+
domain: Annotated[Domain, Field(description='AdCP domain this task belongs to')]
|
|
94
|
+
error: Annotated[Error | None, Field(description='Error details for failed tasks')] = None
|
|
95
95
|
has_webhook: Annotated[
|
|
96
|
-
bool | None, Field(description=
|
|
96
|
+
bool | None, Field(description='Whether this task has webhook configuration')
|
|
97
97
|
] = None
|
|
98
98
|
history: Annotated[
|
|
99
99
|
list[HistoryItem] | None,
|
|
100
100
|
Field(
|
|
101
|
-
description=
|
|
101
|
+
description='Complete conversation history for this task (only included if include_history was true in request)'
|
|
102
102
|
),
|
|
103
103
|
] = None
|
|
104
104
|
progress: Annotated[
|
|
105
|
-
Progress | None, Field(description=
|
|
105
|
+
Progress | None, Field(description='Progress information for long-running tasks')
|
|
106
106
|
] = None
|
|
107
|
-
status: Annotated[task_status.TaskStatus, Field(description=
|
|
108
|
-
task_id: Annotated[str, Field(description=
|
|
109
|
-
task_type: Annotated[task_type_1.TaskType, Field(description=
|
|
107
|
+
status: Annotated[task_status.TaskStatus, Field(description='Current task status')]
|
|
108
|
+
task_id: Annotated[str, Field(description='Unique identifier for this task')]
|
|
109
|
+
task_type: Annotated[task_type_1.TaskType, Field(description='Type of AdCP operation')]
|
|
110
110
|
updated_at: Annotated[
|
|
111
|
-
AwareDatetime, Field(description=
|
|
111
|
+
AwareDatetime, Field(description='When the task was last updated (ISO 8601)')
|
|
112
112
|
]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: tasks-list-request.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -15,107 +15,107 @@ from . import task_type as task_type_1
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
class Domain(Enum):
|
|
18
|
-
media_buy =
|
|
19
|
-
signals =
|
|
18
|
+
media_buy = 'media-buy'
|
|
19
|
+
signals = 'signals'
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class Filters(AdCPBaseModel):
|
|
23
23
|
model_config = ConfigDict(
|
|
24
|
-
extra=
|
|
24
|
+
extra='forbid',
|
|
25
25
|
)
|
|
26
26
|
context_contains: Annotated[
|
|
27
27
|
str | None,
|
|
28
28
|
Field(
|
|
29
|
-
description=
|
|
29
|
+
description='Filter tasks where context contains this text (searches buyer_ref, media_buy_id, signal_id, etc.)'
|
|
30
30
|
),
|
|
31
31
|
] = None
|
|
32
32
|
created_after: Annotated[
|
|
33
|
-
AwareDatetime | None, Field(description=
|
|
33
|
+
AwareDatetime | None, Field(description='Filter tasks created after this date (ISO 8601)')
|
|
34
34
|
] = None
|
|
35
35
|
created_before: Annotated[
|
|
36
|
-
AwareDatetime | None, Field(description=
|
|
36
|
+
AwareDatetime | None, Field(description='Filter tasks created before this date (ISO 8601)')
|
|
37
37
|
] = None
|
|
38
|
-
domain: Annotated[Domain | None, Field(description=
|
|
38
|
+
domain: Annotated[Domain | None, Field(description='Filter by single AdCP domain')] = None
|
|
39
39
|
domains: Annotated[
|
|
40
|
-
list[Domain] | None, Field(description=
|
|
40
|
+
list[Domain] | None, Field(description='Filter by multiple AdCP domains')
|
|
41
41
|
] = None
|
|
42
42
|
has_webhook: Annotated[
|
|
43
|
-
bool | None, Field(description=
|
|
43
|
+
bool | None, Field(description='Filter tasks that have webhook configuration when true')
|
|
44
44
|
] = None
|
|
45
45
|
status: Annotated[
|
|
46
|
-
task_status.TaskStatus | None, Field(description=
|
|
46
|
+
task_status.TaskStatus | None, Field(description='Filter by single task status')
|
|
47
47
|
] = None
|
|
48
48
|
statuses: Annotated[
|
|
49
|
-
list[task_status.TaskStatus] | None, Field(description=
|
|
49
|
+
list[task_status.TaskStatus] | None, Field(description='Filter by multiple task statuses')
|
|
50
50
|
] = None
|
|
51
51
|
task_ids: Annotated[
|
|
52
|
-
list[str] | None, Field(description=
|
|
52
|
+
list[str] | None, Field(description='Filter by specific task IDs', max_length=100)
|
|
53
53
|
] = None
|
|
54
54
|
task_type: Annotated[
|
|
55
|
-
task_type_1.TaskType | None, Field(description=
|
|
55
|
+
task_type_1.TaskType | None, Field(description='Filter by single task type')
|
|
56
56
|
] = None
|
|
57
57
|
task_types: Annotated[
|
|
58
|
-
list[task_type_1.TaskType] | None, Field(description=
|
|
58
|
+
list[task_type_1.TaskType] | None, Field(description='Filter by multiple task types')
|
|
59
59
|
] = None
|
|
60
60
|
updated_after: Annotated[
|
|
61
61
|
AwareDatetime | None,
|
|
62
|
-
Field(description=
|
|
62
|
+
Field(description='Filter tasks last updated after this date (ISO 8601)'),
|
|
63
63
|
] = None
|
|
64
64
|
updated_before: Annotated[
|
|
65
65
|
AwareDatetime | None,
|
|
66
|
-
Field(description=
|
|
66
|
+
Field(description='Filter tasks last updated before this date (ISO 8601)'),
|
|
67
67
|
] = None
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
class Pagination(AdCPBaseModel):
|
|
71
71
|
model_config = ConfigDict(
|
|
72
|
-
extra=
|
|
72
|
+
extra='forbid',
|
|
73
73
|
)
|
|
74
74
|
limit: Annotated[
|
|
75
|
-
int | None, Field(description=
|
|
75
|
+
int | None, Field(description='Maximum number of tasks to return', ge=1, le=100)
|
|
76
76
|
] = 50
|
|
77
|
-
offset: Annotated[int | None, Field(description=
|
|
77
|
+
offset: Annotated[int | None, Field(description='Number of tasks to skip', ge=0)] = 0
|
|
78
78
|
|
|
79
79
|
|
|
80
80
|
class Direction(Enum):
|
|
81
|
-
asc =
|
|
82
|
-
desc =
|
|
81
|
+
asc = 'asc'
|
|
82
|
+
desc = 'desc'
|
|
83
83
|
|
|
84
84
|
|
|
85
85
|
class Field1(Enum):
|
|
86
|
-
created_at =
|
|
87
|
-
updated_at =
|
|
88
|
-
status =
|
|
89
|
-
task_type =
|
|
90
|
-
domain =
|
|
86
|
+
created_at = 'created_at'
|
|
87
|
+
updated_at = 'updated_at'
|
|
88
|
+
status = 'status'
|
|
89
|
+
task_type = 'task_type'
|
|
90
|
+
domain = 'domain'
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
class Sort(AdCPBaseModel):
|
|
94
94
|
model_config = ConfigDict(
|
|
95
|
-
extra=
|
|
95
|
+
extra='forbid',
|
|
96
96
|
)
|
|
97
|
-
direction: Annotated[Direction | None, Field(description=
|
|
98
|
-
field: Annotated[Field1 | None, Field(description=
|
|
97
|
+
direction: Annotated[Direction | None, Field(description='Sort direction')] = Direction.desc
|
|
98
|
+
field: Annotated[Field1 | None, Field(description='Field to sort by')] = Field1.created_at
|
|
99
99
|
|
|
100
100
|
|
|
101
101
|
class TasksListRequest(AdCPBaseModel):
|
|
102
102
|
model_config = ConfigDict(
|
|
103
|
-
extra=
|
|
103
|
+
extra='forbid',
|
|
104
104
|
)
|
|
105
105
|
context: Annotated[
|
|
106
106
|
dict[str, Any] | None,
|
|
107
107
|
Field(
|
|
108
|
-
description=
|
|
108
|
+
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.'
|
|
109
109
|
),
|
|
110
110
|
] = None
|
|
111
|
-
filters: Annotated[Filters | None, Field(description=
|
|
111
|
+
filters: Annotated[Filters | None, Field(description='Filter criteria for querying tasks')] = (
|
|
112
112
|
None
|
|
113
113
|
)
|
|
114
114
|
include_history: Annotated[
|
|
115
115
|
bool | None,
|
|
116
116
|
Field(
|
|
117
|
-
description=
|
|
117
|
+
description='Include full conversation history for each task (may significantly increase response size)'
|
|
118
118
|
),
|
|
119
119
|
] = False
|
|
120
|
-
pagination: Annotated[Pagination | None, Field(description=
|
|
121
|
-
sort: Annotated[Sort | None, Field(description=
|
|
120
|
+
pagination: Annotated[Pagination | None, Field(description='Pagination parameters')] = None
|
|
121
|
+
sort: Annotated[Sort | None, Field(description='Sorting parameters')] = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: tasks-list-response.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -16,38 +16,38 @@ from . import task_type as task_type_1
|
|
|
16
16
|
|
|
17
17
|
class Pagination(AdCPBaseModel):
|
|
18
18
|
model_config = ConfigDict(
|
|
19
|
-
extra=
|
|
19
|
+
extra='forbid',
|
|
20
20
|
)
|
|
21
|
-
has_more: Annotated[bool, Field(description=
|
|
22
|
-
limit: Annotated[int, Field(description=
|
|
21
|
+
has_more: Annotated[bool, Field(description='Whether there are more tasks beyond this page')]
|
|
22
|
+
limit: Annotated[int, Field(description='Limit that was applied to this query', ge=1)]
|
|
23
23
|
next_offset: Annotated[
|
|
24
24
|
int | None,
|
|
25
|
-
Field(description=
|
|
25
|
+
Field(description='Offset to use for next page (only present if has_more is true)', ge=0),
|
|
26
26
|
] = None
|
|
27
|
-
offset: Annotated[int, Field(description=
|
|
27
|
+
offset: Annotated[int, Field(description='Offset that was applied to this query', ge=0)]
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class DomainBreakdown(AdCPBaseModel):
|
|
31
31
|
model_config = ConfigDict(
|
|
32
|
-
extra=
|
|
32
|
+
extra='forbid',
|
|
33
33
|
)
|
|
34
34
|
media_buy: Annotated[
|
|
35
35
|
int | None,
|
|
36
|
-
Field(alias=
|
|
36
|
+
Field(alias='media-buy', description='Number of media-buy tasks in results', ge=0),
|
|
37
37
|
] = None
|
|
38
38
|
signals: Annotated[
|
|
39
|
-
int | None, Field(description=
|
|
39
|
+
int | None, Field(description='Number of signals tasks in results', ge=0)
|
|
40
40
|
] = None
|
|
41
41
|
|
|
42
42
|
|
|
43
43
|
class Direction(Enum):
|
|
44
|
-
asc =
|
|
45
|
-
desc =
|
|
44
|
+
asc = 'asc'
|
|
45
|
+
desc = 'desc'
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
class SortApplied(AdCPBaseModel):
|
|
49
49
|
model_config = ConfigDict(
|
|
50
|
-
extra=
|
|
50
|
+
extra='forbid',
|
|
51
51
|
)
|
|
52
52
|
direction: Direction
|
|
53
53
|
field: str
|
|
@@ -55,68 +55,68 @@ class SortApplied(AdCPBaseModel):
|
|
|
55
55
|
|
|
56
56
|
class QuerySummary(AdCPBaseModel):
|
|
57
57
|
model_config = ConfigDict(
|
|
58
|
-
extra=
|
|
58
|
+
extra='forbid',
|
|
59
59
|
)
|
|
60
60
|
domain_breakdown: Annotated[
|
|
61
|
-
DomainBreakdown | None, Field(description=
|
|
61
|
+
DomainBreakdown | None, Field(description='Count of tasks by domain')
|
|
62
62
|
] = None
|
|
63
63
|
filters_applied: Annotated[
|
|
64
|
-
list[str] | None, Field(description=
|
|
64
|
+
list[str] | None, Field(description='List of filters that were applied to the query')
|
|
65
65
|
] = None
|
|
66
|
-
returned: Annotated[int, Field(description=
|
|
66
|
+
returned: Annotated[int, Field(description='Number of tasks returned in this response', ge=0)]
|
|
67
67
|
sort_applied: Annotated[
|
|
68
|
-
SortApplied | None, Field(description=
|
|
68
|
+
SortApplied | None, Field(description='Sort order that was applied')
|
|
69
69
|
] = None
|
|
70
70
|
status_breakdown: Annotated[
|
|
71
|
-
dict[str, int] | None, Field(description=
|
|
71
|
+
dict[str, int] | None, Field(description='Count of tasks by status')
|
|
72
72
|
] = None
|
|
73
73
|
total_matching: Annotated[
|
|
74
|
-
int, Field(description=
|
|
74
|
+
int, Field(description='Total number of tasks matching filters (across all pages)', ge=0)
|
|
75
75
|
]
|
|
76
76
|
|
|
77
77
|
|
|
78
78
|
class Domain(Enum):
|
|
79
|
-
media_buy =
|
|
80
|
-
signals =
|
|
79
|
+
media_buy = 'media-buy'
|
|
80
|
+
signals = 'signals'
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
class Task(AdCPBaseModel):
|
|
84
84
|
model_config = ConfigDict(
|
|
85
|
-
extra=
|
|
85
|
+
extra='forbid',
|
|
86
86
|
)
|
|
87
87
|
completed_at: Annotated[
|
|
88
88
|
AwareDatetime | None,
|
|
89
89
|
Field(
|
|
90
|
-
description=
|
|
90
|
+
description='When the task completed (ISO 8601, only for completed/failed/canceled tasks)'
|
|
91
91
|
),
|
|
92
92
|
] = None
|
|
93
93
|
created_at: Annotated[
|
|
94
|
-
AwareDatetime, Field(description=
|
|
94
|
+
AwareDatetime, Field(description='When the task was initially created (ISO 8601)')
|
|
95
95
|
]
|
|
96
|
-
domain: Annotated[Domain, Field(description=
|
|
96
|
+
domain: Annotated[Domain, Field(description='AdCP domain this task belongs to')]
|
|
97
97
|
has_webhook: Annotated[
|
|
98
|
-
bool | None, Field(description=
|
|
98
|
+
bool | None, Field(description='Whether this task has webhook configuration')
|
|
99
99
|
] = None
|
|
100
|
-
status: Annotated[task_status.TaskStatus, Field(description=
|
|
101
|
-
task_id: Annotated[str, Field(description=
|
|
102
|
-
task_type: Annotated[task_type_1.TaskType, Field(description=
|
|
100
|
+
status: Annotated[task_status.TaskStatus, Field(description='Current task status')]
|
|
101
|
+
task_id: Annotated[str, Field(description='Unique identifier for this task')]
|
|
102
|
+
task_type: Annotated[task_type_1.TaskType, Field(description='Type of AdCP operation')]
|
|
103
103
|
updated_at: Annotated[
|
|
104
|
-
AwareDatetime, Field(description=
|
|
104
|
+
AwareDatetime, Field(description='When the task was last updated (ISO 8601)')
|
|
105
105
|
]
|
|
106
106
|
|
|
107
107
|
|
|
108
108
|
class TasksListResponse(AdCPBaseModel):
|
|
109
109
|
model_config = ConfigDict(
|
|
110
|
-
extra=
|
|
110
|
+
extra='forbid',
|
|
111
111
|
)
|
|
112
112
|
context: Annotated[
|
|
113
113
|
dict[str, Any] | None,
|
|
114
114
|
Field(
|
|
115
|
-
description=
|
|
115
|
+
description='Initiator-provided context echoed inside the task payload. Opaque metadata such as UI/session hints, correlation tokens, or tracking identifiers.'
|
|
116
116
|
),
|
|
117
117
|
] = None
|
|
118
|
-
pagination: Annotated[Pagination, Field(description=
|
|
118
|
+
pagination: Annotated[Pagination, Field(description='Pagination information')]
|
|
119
119
|
query_summary: Annotated[
|
|
120
|
-
QuerySummary, Field(description=
|
|
120
|
+
QuerySummary, Field(description='Summary of the query that was executed')
|
|
121
121
|
]
|
|
122
|
-
tasks: Annotated[list[Task], Field(description=
|
|
122
|
+
tasks: Annotated[list[Task], Field(description='Array of tasks matching the query criteria')]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: text-asset.json
|
|
3
|
-
# timestamp: 2025-11-
|
|
3
|
+
# timestamp: 2025-11-18T03:04:10+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -12,9 +12,9 @@ from pydantic import ConfigDict, Field
|
|
|
12
12
|
|
|
13
13
|
class TextAsset(AdCPBaseModel):
|
|
14
14
|
model_config = ConfigDict(
|
|
15
|
-
extra=
|
|
15
|
+
extra='forbid',
|
|
16
16
|
)
|
|
17
|
-
content: Annotated[str, Field(description=
|
|
17
|
+
content: Annotated[str, Field(description='Text content')]
|
|
18
18
|
language: Annotated[str | None, Field(description="Language code (e.g., 'en', 'es', 'fr')")] = (
|
|
19
19
|
None
|
|
20
20
|
)
|