airbyte-agent-asana 0.19.27__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.
Potentially problematic release.
This version of airbyte-agent-asana might be problematic. Click here for more details.
- airbyte_agent_asana/__init__.py +145 -0
- airbyte_agent_asana/_vendored/__init__.py +1 -0
- airbyte_agent_asana/_vendored/connector_sdk/__init__.py +82 -0
- airbyte_agent_asana/_vendored/connector_sdk/auth_strategies.py +1123 -0
- airbyte_agent_asana/_vendored/connector_sdk/auth_template.py +135 -0
- airbyte_agent_asana/_vendored/connector_sdk/cloud_utils/__init__.py +5 -0
- airbyte_agent_asana/_vendored/connector_sdk/cloud_utils/client.py +213 -0
- airbyte_agent_asana/_vendored/connector_sdk/connector_model_loader.py +957 -0
- airbyte_agent_asana/_vendored/connector_sdk/constants.py +78 -0
- airbyte_agent_asana/_vendored/connector_sdk/exceptions.py +23 -0
- airbyte_agent_asana/_vendored/connector_sdk/executor/__init__.py +31 -0
- airbyte_agent_asana/_vendored/connector_sdk/executor/hosted_executor.py +197 -0
- airbyte_agent_asana/_vendored/connector_sdk/executor/local_executor.py +1504 -0
- airbyte_agent_asana/_vendored/connector_sdk/executor/models.py +190 -0
- airbyte_agent_asana/_vendored/connector_sdk/extensions.py +655 -0
- airbyte_agent_asana/_vendored/connector_sdk/http/__init__.py +37 -0
- airbyte_agent_asana/_vendored/connector_sdk/http/adapters/__init__.py +9 -0
- airbyte_agent_asana/_vendored/connector_sdk/http/adapters/httpx_adapter.py +251 -0
- airbyte_agent_asana/_vendored/connector_sdk/http/config.py +98 -0
- airbyte_agent_asana/_vendored/connector_sdk/http/exceptions.py +119 -0
- airbyte_agent_asana/_vendored/connector_sdk/http/protocols.py +114 -0
- airbyte_agent_asana/_vendored/connector_sdk/http/response.py +102 -0
- airbyte_agent_asana/_vendored/connector_sdk/http_client.py +686 -0
- airbyte_agent_asana/_vendored/connector_sdk/logging/__init__.py +11 -0
- airbyte_agent_asana/_vendored/connector_sdk/logging/logger.py +264 -0
- airbyte_agent_asana/_vendored/connector_sdk/logging/types.py +92 -0
- airbyte_agent_asana/_vendored/connector_sdk/observability/__init__.py +11 -0
- airbyte_agent_asana/_vendored/connector_sdk/observability/models.py +19 -0
- airbyte_agent_asana/_vendored/connector_sdk/observability/redactor.py +81 -0
- airbyte_agent_asana/_vendored/connector_sdk/observability/session.py +94 -0
- airbyte_agent_asana/_vendored/connector_sdk/performance/__init__.py +6 -0
- airbyte_agent_asana/_vendored/connector_sdk/performance/instrumentation.py +57 -0
- airbyte_agent_asana/_vendored/connector_sdk/performance/metrics.py +93 -0
- airbyte_agent_asana/_vendored/connector_sdk/schema/__init__.py +75 -0
- airbyte_agent_asana/_vendored/connector_sdk/schema/base.py +161 -0
- airbyte_agent_asana/_vendored/connector_sdk/schema/components.py +238 -0
- airbyte_agent_asana/_vendored/connector_sdk/schema/connector.py +131 -0
- airbyte_agent_asana/_vendored/connector_sdk/schema/extensions.py +109 -0
- airbyte_agent_asana/_vendored/connector_sdk/schema/operations.py +146 -0
- airbyte_agent_asana/_vendored/connector_sdk/schema/security.py +213 -0
- airbyte_agent_asana/_vendored/connector_sdk/secrets.py +182 -0
- airbyte_agent_asana/_vendored/connector_sdk/telemetry/__init__.py +10 -0
- airbyte_agent_asana/_vendored/connector_sdk/telemetry/config.py +32 -0
- airbyte_agent_asana/_vendored/connector_sdk/telemetry/events.py +58 -0
- airbyte_agent_asana/_vendored/connector_sdk/telemetry/tracker.py +151 -0
- airbyte_agent_asana/_vendored/connector_sdk/types.py +241 -0
- airbyte_agent_asana/_vendored/connector_sdk/utils.py +60 -0
- airbyte_agent_asana/_vendored/connector_sdk/validation.py +822 -0
- airbyte_agent_asana/connector.py +1770 -0
- airbyte_agent_asana/connector_model.py +1863 -0
- airbyte_agent_asana/models.py +744 -0
- airbyte_agent_asana/types.py +195 -0
- airbyte_agent_asana-0.19.27.dist-info/METADATA +144 -0
- airbyte_agent_asana-0.19.27.dist-info/RECORD +55 -0
- airbyte_agent_asana-0.19.27.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,744 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Pydantic models for asana connector.
|
|
3
|
+
|
|
4
|
+
This module contains Pydantic models used for authentication configuration
|
|
5
|
+
and response envelope types.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
11
|
+
from typing import TypeVar, Generic, Union, Any
|
|
12
|
+
from typing import Optional
|
|
13
|
+
|
|
14
|
+
# Authentication configuration - multiple options available
|
|
15
|
+
|
|
16
|
+
class AsanaOauth2AuthConfig(BaseModel):
|
|
17
|
+
"""OAuth 2"""
|
|
18
|
+
|
|
19
|
+
model_config = ConfigDict(extra="forbid")
|
|
20
|
+
|
|
21
|
+
access_token: Optional[str] = None
|
|
22
|
+
"""OAuth access token for API requests"""
|
|
23
|
+
refresh_token: str
|
|
24
|
+
"""OAuth refresh token for automatic token renewal"""
|
|
25
|
+
client_id: str
|
|
26
|
+
"""Connected App Consumer Key"""
|
|
27
|
+
client_secret: str
|
|
28
|
+
"""Connected App Consumer Secret"""
|
|
29
|
+
|
|
30
|
+
class AsanaPersonalAccessTokenAuthConfig(BaseModel):
|
|
31
|
+
"""Personal Access Token"""
|
|
32
|
+
|
|
33
|
+
model_config = ConfigDict(extra="forbid")
|
|
34
|
+
|
|
35
|
+
token: str
|
|
36
|
+
"""Your Asana Personal Access Token. Generate one at https://app.asana.com/0/my-apps"""
|
|
37
|
+
|
|
38
|
+
AsanaAuthConfig = AsanaOauth2AuthConfig | AsanaPersonalAccessTokenAuthConfig
|
|
39
|
+
|
|
40
|
+
# ===== RESPONSE TYPE DEFINITIONS (PYDANTIC) =====
|
|
41
|
+
|
|
42
|
+
class TaskCompactCreatedBy(BaseModel):
|
|
43
|
+
"""User who created the task"""
|
|
44
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
45
|
+
|
|
46
|
+
gid: Union[str, Any] = Field(default=None)
|
|
47
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
48
|
+
|
|
49
|
+
class TaskCompact(BaseModel):
|
|
50
|
+
"""Compact task object"""
|
|
51
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
52
|
+
|
|
53
|
+
gid: Union[str, Any] = Field(default=None)
|
|
54
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
55
|
+
name: Union[str, Any] = Field(default=None)
|
|
56
|
+
resource_subtype: Union[str, Any] = Field(default=None)
|
|
57
|
+
created_by: Union[TaskCompactCreatedBy, Any] = Field(default=None)
|
|
58
|
+
|
|
59
|
+
class Task(BaseModel):
|
|
60
|
+
"""Full task object"""
|
|
61
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
62
|
+
|
|
63
|
+
gid: Union[str, Any] = Field(default=None)
|
|
64
|
+
|
|
65
|
+
class TaskResponse(BaseModel):
|
|
66
|
+
"""Task response wrapper"""
|
|
67
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
68
|
+
|
|
69
|
+
data: Union[Task, Any] = Field(default=None)
|
|
70
|
+
|
|
71
|
+
class TasksListNextPage(BaseModel):
|
|
72
|
+
"""Nested schema for TasksList.next_page"""
|
|
73
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
74
|
+
|
|
75
|
+
offset: Union[str, Any] = Field(default=None)
|
|
76
|
+
path: Union[str, Any] = Field(default=None)
|
|
77
|
+
uri: Union[str, Any] = Field(default=None)
|
|
78
|
+
|
|
79
|
+
class TasksList(BaseModel):
|
|
80
|
+
"""Paginated list of tasks containing compact task objects"""
|
|
81
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
82
|
+
|
|
83
|
+
data: Union[list[TaskCompact], Any] = Field(default=None)
|
|
84
|
+
next_page: Union[TasksListNextPage | None, Any] = Field(default=None)
|
|
85
|
+
|
|
86
|
+
class ProjectCompact(BaseModel):
|
|
87
|
+
"""Compact project object"""
|
|
88
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
89
|
+
|
|
90
|
+
gid: Union[str, Any] = Field(default=None)
|
|
91
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
92
|
+
name: Union[str, Any] = Field(default=None)
|
|
93
|
+
|
|
94
|
+
class ProjectCurrentStatusCreatedBy(BaseModel):
|
|
95
|
+
"""Nested schema for ProjectCurrentStatus.created_by"""
|
|
96
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
97
|
+
|
|
98
|
+
gid: Union[str, Any] = Field(default=None)
|
|
99
|
+
name: Union[str, Any] = Field(default=None)
|
|
100
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
101
|
+
|
|
102
|
+
class ProjectCurrentStatusAuthor(BaseModel):
|
|
103
|
+
"""Nested schema for ProjectCurrentStatus.author"""
|
|
104
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
105
|
+
|
|
106
|
+
gid: Union[str, Any] = Field(default=None)
|
|
107
|
+
name: Union[str, Any] = Field(default=None)
|
|
108
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
109
|
+
|
|
110
|
+
class ProjectCurrentStatus(BaseModel):
|
|
111
|
+
"""Nested schema for Project.current_status"""
|
|
112
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
113
|
+
|
|
114
|
+
gid: Union[str, Any] = Field(default=None)
|
|
115
|
+
author: Union[ProjectCurrentStatusAuthor, Any] = Field(default=None)
|
|
116
|
+
color: Union[str, Any] = Field(default=None)
|
|
117
|
+
created_at: Union[str, Any] = Field(default=None)
|
|
118
|
+
created_by: Union[ProjectCurrentStatusCreatedBy, Any] = Field(default=None)
|
|
119
|
+
modified_at: Union[str, Any] = Field(default=None)
|
|
120
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
121
|
+
text: Union[str, Any] = Field(default=None)
|
|
122
|
+
title: Union[str, Any] = Field(default=None)
|
|
123
|
+
|
|
124
|
+
class ProjectMembersItem(BaseModel):
|
|
125
|
+
"""Nested schema for Project.members_item"""
|
|
126
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
127
|
+
|
|
128
|
+
gid: Union[str, Any] = Field(default=None)
|
|
129
|
+
name: Union[str, Any] = Field(default=None)
|
|
130
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
131
|
+
|
|
132
|
+
class ProjectWorkspace(BaseModel):
|
|
133
|
+
"""Nested schema for Project.workspace"""
|
|
134
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
135
|
+
|
|
136
|
+
gid: Union[str, Any] = Field(default=None)
|
|
137
|
+
name: Union[str, Any] = Field(default=None)
|
|
138
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
139
|
+
|
|
140
|
+
class ProjectCurrentStatusUpdate(BaseModel):
|
|
141
|
+
"""Nested schema for Project.current_status_update"""
|
|
142
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
143
|
+
|
|
144
|
+
gid: Union[str, Any] = Field(default=None)
|
|
145
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
146
|
+
resource_subtype: Union[str, Any] = Field(default=None)
|
|
147
|
+
title: Union[str, Any] = Field(default=None)
|
|
148
|
+
|
|
149
|
+
class ProjectOwner(BaseModel):
|
|
150
|
+
"""Nested schema for Project.owner"""
|
|
151
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
152
|
+
|
|
153
|
+
gid: Union[str, Any] = Field(default=None)
|
|
154
|
+
name: Union[str, Any] = Field(default=None)
|
|
155
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
156
|
+
|
|
157
|
+
class ProjectTeam(BaseModel):
|
|
158
|
+
"""Nested schema for Project.team"""
|
|
159
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
160
|
+
|
|
161
|
+
gid: Union[str, Any] = Field(default=None)
|
|
162
|
+
name: Union[str, Any] = Field(default=None)
|
|
163
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
164
|
+
|
|
165
|
+
class ProjectFollowersItem(BaseModel):
|
|
166
|
+
"""Nested schema for Project.followers_item"""
|
|
167
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
168
|
+
|
|
169
|
+
gid: Union[str, Any] = Field(default=None)
|
|
170
|
+
name: Union[str, Any] = Field(default=None)
|
|
171
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
172
|
+
|
|
173
|
+
class Project(BaseModel):
|
|
174
|
+
"""Full project object"""
|
|
175
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
176
|
+
|
|
177
|
+
gid: Union[str, Any] = Field(default=None)
|
|
178
|
+
archived: Union[bool, Any] = Field(default=None)
|
|
179
|
+
color: Union[str | None, Any] = Field(default=None)
|
|
180
|
+
completed: Union[bool, Any] = Field(default=None)
|
|
181
|
+
completed_at: Union[str | None, Any] = Field(default=None)
|
|
182
|
+
created_at: Union[str, Any] = Field(default=None)
|
|
183
|
+
current_status: Union[ProjectCurrentStatus | None, Any] = Field(default=None)
|
|
184
|
+
current_status_update: Union[ProjectCurrentStatusUpdate | None, Any] = Field(default=None)
|
|
185
|
+
custom_fields: Union[list[Any], Any] = Field(default=None)
|
|
186
|
+
default_access_level: Union[str, Any] = Field(default=None)
|
|
187
|
+
default_view: Union[str, Any] = Field(default=None)
|
|
188
|
+
due_on: Union[str | None, Any] = Field(default=None)
|
|
189
|
+
due_date: Union[str | None, Any] = Field(default=None)
|
|
190
|
+
followers: Union[list[ProjectFollowersItem], Any] = Field(default=None)
|
|
191
|
+
members: Union[list[ProjectMembersItem], Any] = Field(default=None)
|
|
192
|
+
minimum_access_level_for_customization: Union[str, Any] = Field(default=None)
|
|
193
|
+
minimum_access_level_for_sharing: Union[str, Any] = Field(default=None)
|
|
194
|
+
modified_at: Union[str, Any] = Field(default=None)
|
|
195
|
+
name: Union[str, Any] = Field(default=None)
|
|
196
|
+
notes: Union[str, Any] = Field(default=None)
|
|
197
|
+
owner: Union[ProjectOwner, Any] = Field(default=None)
|
|
198
|
+
permalink_url: Union[str, Any] = Field(default=None)
|
|
199
|
+
privacy_setting: Union[str, Any] = Field(default=None)
|
|
200
|
+
public: Union[bool, Any] = Field(default=None)
|
|
201
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
202
|
+
start_on: Union[str | None, Any] = Field(default=None)
|
|
203
|
+
team: Union[ProjectTeam, Any] = Field(default=None)
|
|
204
|
+
workspace: Union[ProjectWorkspace, Any] = Field(default=None)
|
|
205
|
+
|
|
206
|
+
class ProjectResponse(BaseModel):
|
|
207
|
+
"""Project response wrapper"""
|
|
208
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
209
|
+
|
|
210
|
+
data: Union[Project, Any] = Field(default=None)
|
|
211
|
+
|
|
212
|
+
class ProjectsListNextPage(BaseModel):
|
|
213
|
+
"""Nested schema for ProjectsList.next_page"""
|
|
214
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
215
|
+
|
|
216
|
+
offset: Union[str, Any] = Field(default=None)
|
|
217
|
+
path: Union[str, Any] = Field(default=None)
|
|
218
|
+
uri: Union[str, Any] = Field(default=None)
|
|
219
|
+
|
|
220
|
+
class ProjectsList(BaseModel):
|
|
221
|
+
"""Paginated list of projects containing compact project objects"""
|
|
222
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
223
|
+
|
|
224
|
+
data: Union[list[ProjectCompact], Any] = Field(default=None)
|
|
225
|
+
next_page: Union[ProjectsListNextPage | None, Any] = Field(default=None)
|
|
226
|
+
|
|
227
|
+
class WorkspaceCompact(BaseModel):
|
|
228
|
+
"""Compact workspace object"""
|
|
229
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
230
|
+
|
|
231
|
+
gid: Union[str, Any] = Field(default=None)
|
|
232
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
233
|
+
name: Union[str, Any] = Field(default=None)
|
|
234
|
+
|
|
235
|
+
class Workspace(BaseModel):
|
|
236
|
+
"""Full workspace object"""
|
|
237
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
238
|
+
|
|
239
|
+
gid: Union[str, Any] = Field(default=None)
|
|
240
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
241
|
+
name: Union[str, Any] = Field(default=None)
|
|
242
|
+
email_domains: Union[list[str], Any] = Field(default=None)
|
|
243
|
+
is_organization: Union[bool, Any] = Field(default=None)
|
|
244
|
+
|
|
245
|
+
class WorkspaceResponse(BaseModel):
|
|
246
|
+
"""Workspace response wrapper"""
|
|
247
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
248
|
+
|
|
249
|
+
data: Union[Workspace, Any] = Field(default=None)
|
|
250
|
+
|
|
251
|
+
class WorkspacesListNextPage(BaseModel):
|
|
252
|
+
"""Nested schema for WorkspacesList.next_page"""
|
|
253
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
254
|
+
|
|
255
|
+
offset: Union[str, Any] = Field(default=None)
|
|
256
|
+
path: Union[str, Any] = Field(default=None)
|
|
257
|
+
uri: Union[str, Any] = Field(default=None)
|
|
258
|
+
|
|
259
|
+
class WorkspacesList(BaseModel):
|
|
260
|
+
"""Paginated list of workspaces containing compact workspace objects"""
|
|
261
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
262
|
+
|
|
263
|
+
data: Union[list[WorkspaceCompact], Any] = Field(default=None)
|
|
264
|
+
next_page: Union[WorkspacesListNextPage | None, Any] = Field(default=None)
|
|
265
|
+
|
|
266
|
+
class UserCompact(BaseModel):
|
|
267
|
+
"""Compact user object"""
|
|
268
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
269
|
+
|
|
270
|
+
gid: Union[str, Any] = Field(default=None)
|
|
271
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
272
|
+
name: Union[str, Any] = Field(default=None)
|
|
273
|
+
|
|
274
|
+
class UserWorkspacesItem(BaseModel):
|
|
275
|
+
"""Nested schema for User.workspaces_item"""
|
|
276
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
277
|
+
|
|
278
|
+
gid: Union[str, Any] = Field(default=None)
|
|
279
|
+
name: Union[str, Any] = Field(default=None)
|
|
280
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
281
|
+
|
|
282
|
+
class User(BaseModel):
|
|
283
|
+
"""Full user object"""
|
|
284
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
285
|
+
|
|
286
|
+
gid: Union[str, Any] = Field(default=None)
|
|
287
|
+
email: Union[str, Any] = Field(default=None)
|
|
288
|
+
name: Union[str, Any] = Field(default=None)
|
|
289
|
+
photo: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
290
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
291
|
+
workspaces: Union[list[UserWorkspacesItem], Any] = Field(default=None)
|
|
292
|
+
|
|
293
|
+
class UserResponse(BaseModel):
|
|
294
|
+
"""User response wrapper"""
|
|
295
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
296
|
+
|
|
297
|
+
data: Union[User, Any] = Field(default=None)
|
|
298
|
+
|
|
299
|
+
class UsersListNextPage(BaseModel):
|
|
300
|
+
"""Nested schema for UsersList.next_page"""
|
|
301
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
302
|
+
|
|
303
|
+
offset: Union[str, Any] = Field(default=None)
|
|
304
|
+
path: Union[str, Any] = Field(default=None)
|
|
305
|
+
uri: Union[str, Any] = Field(default=None)
|
|
306
|
+
|
|
307
|
+
class UsersList(BaseModel):
|
|
308
|
+
"""Paginated list of users containing compact user objects"""
|
|
309
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
310
|
+
|
|
311
|
+
data: Union[list[UserCompact], Any] = Field(default=None)
|
|
312
|
+
next_page: Union[UsersListNextPage | None, Any] = Field(default=None)
|
|
313
|
+
|
|
314
|
+
class TeamCompact(BaseModel):
|
|
315
|
+
"""Compact team object"""
|
|
316
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
317
|
+
|
|
318
|
+
gid: Union[str, Any] = Field(default=None)
|
|
319
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
320
|
+
name: Union[str, Any] = Field(default=None)
|
|
321
|
+
|
|
322
|
+
class TeamOrganization(BaseModel):
|
|
323
|
+
"""Nested schema for Team.organization"""
|
|
324
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
325
|
+
|
|
326
|
+
gid: Union[str, Any] = Field(default=None)
|
|
327
|
+
name: Union[str, Any] = Field(default=None)
|
|
328
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
329
|
+
|
|
330
|
+
class Team(BaseModel):
|
|
331
|
+
"""Full team object"""
|
|
332
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
333
|
+
|
|
334
|
+
gid: Union[str, Any] = Field(default=None)
|
|
335
|
+
name: Union[str, Any] = Field(default=None)
|
|
336
|
+
organization: Union[TeamOrganization, Any] = Field(default=None)
|
|
337
|
+
permalink_url: Union[str, Any] = Field(default=None)
|
|
338
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
339
|
+
|
|
340
|
+
class TeamResponse(BaseModel):
|
|
341
|
+
"""Team response wrapper"""
|
|
342
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
343
|
+
|
|
344
|
+
data: Union[Team, Any] = Field(default=None)
|
|
345
|
+
|
|
346
|
+
class TeamsListNextPage(BaseModel):
|
|
347
|
+
"""Nested schema for TeamsList.next_page"""
|
|
348
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
349
|
+
|
|
350
|
+
offset: Union[str, Any] = Field(default=None)
|
|
351
|
+
path: Union[str, Any] = Field(default=None)
|
|
352
|
+
uri: Union[str, Any] = Field(default=None)
|
|
353
|
+
|
|
354
|
+
class TeamsList(BaseModel):
|
|
355
|
+
"""Paginated list of teams containing compact team objects"""
|
|
356
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
357
|
+
|
|
358
|
+
data: Union[list[TeamCompact], Any] = Field(default=None)
|
|
359
|
+
next_page: Union[TeamsListNextPage | None, Any] = Field(default=None)
|
|
360
|
+
|
|
361
|
+
class AttachmentCompact(BaseModel):
|
|
362
|
+
"""Compact attachment object"""
|
|
363
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
364
|
+
|
|
365
|
+
gid: Union[str, Any] = Field(default=None)
|
|
366
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
367
|
+
name: Union[str, Any] = Field(default=None)
|
|
368
|
+
resource_subtype: Union[str, Any] = Field(default=None)
|
|
369
|
+
|
|
370
|
+
class AttachmentParent(BaseModel):
|
|
371
|
+
"""The parent object this attachment is attached to"""
|
|
372
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
373
|
+
|
|
374
|
+
gid: Union[str, Any] = Field(default=None)
|
|
375
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
376
|
+
name: Union[str, Any] = Field(default=None)
|
|
377
|
+
resource_subtype: Union[str, Any] = Field(default=None, description="The subtype of the parent resource")
|
|
378
|
+
"""The subtype of the parent resource"""
|
|
379
|
+
|
|
380
|
+
class Attachment(BaseModel):
|
|
381
|
+
"""Full attachment object"""
|
|
382
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
383
|
+
|
|
384
|
+
gid: Union[str, Any] = Field(default=None)
|
|
385
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
386
|
+
name: Union[str, Any] = Field(default=None)
|
|
387
|
+
resource_subtype: Union[str, Any] = Field(default=None)
|
|
388
|
+
created_at: Union[str, Any] = Field(default=None)
|
|
389
|
+
download_url: Union[str | None, Any] = Field(default=None)
|
|
390
|
+
permanent_url: Union[str | None, Any] = Field(default=None)
|
|
391
|
+
host: Union[str, Any] = Field(default=None)
|
|
392
|
+
parent: Union[AttachmentParent, Any] = Field(default=None)
|
|
393
|
+
view_url: Union[str | None, Any] = Field(default=None)
|
|
394
|
+
size: Union[int | None, Any] = Field(default=None)
|
|
395
|
+
|
|
396
|
+
class AttachmentResponse(BaseModel):
|
|
397
|
+
"""Attachment response wrapper"""
|
|
398
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
399
|
+
|
|
400
|
+
data: Union[Attachment, Any] = Field(default=None)
|
|
401
|
+
|
|
402
|
+
class AttachmentsListNextPage(BaseModel):
|
|
403
|
+
"""Nested schema for AttachmentsList.next_page"""
|
|
404
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
405
|
+
|
|
406
|
+
offset: Union[str, Any] = Field(default=None)
|
|
407
|
+
path: Union[str, Any] = Field(default=None)
|
|
408
|
+
uri: Union[str, Any] = Field(default=None)
|
|
409
|
+
|
|
410
|
+
class AttachmentsList(BaseModel):
|
|
411
|
+
"""Paginated list of attachments containing compact attachment objects"""
|
|
412
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
413
|
+
|
|
414
|
+
data: Union[list[AttachmentCompact], Any] = Field(default=None)
|
|
415
|
+
next_page: Union[AttachmentsListNextPage | None, Any] = Field(default=None)
|
|
416
|
+
|
|
417
|
+
class TagCompact(BaseModel):
|
|
418
|
+
"""Compact tag object"""
|
|
419
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
420
|
+
|
|
421
|
+
gid: Union[str, Any] = Field(default=None)
|
|
422
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
423
|
+
name: Union[str, Any] = Field(default=None)
|
|
424
|
+
|
|
425
|
+
class TagWorkspace(BaseModel):
|
|
426
|
+
"""Nested schema for Tag.workspace"""
|
|
427
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
428
|
+
|
|
429
|
+
gid: Union[str, Any] = Field(default=None)
|
|
430
|
+
name: Union[str, Any] = Field(default=None)
|
|
431
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
432
|
+
|
|
433
|
+
class Tag(BaseModel):
|
|
434
|
+
"""Full tag object"""
|
|
435
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
436
|
+
|
|
437
|
+
gid: Union[str, Any] = Field(default=None)
|
|
438
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
439
|
+
name: Union[str, Any] = Field(default=None)
|
|
440
|
+
color: Union[str, Any] = Field(default=None)
|
|
441
|
+
created_at: Union[str, Any] = Field(default=None)
|
|
442
|
+
followers: Union[list[Any], Any] = Field(default=None)
|
|
443
|
+
notes: Union[str, Any] = Field(default=None)
|
|
444
|
+
permalink_url: Union[str, Any] = Field(default=None)
|
|
445
|
+
workspace: Union[TagWorkspace, Any] = Field(default=None)
|
|
446
|
+
|
|
447
|
+
class TagResponse(BaseModel):
|
|
448
|
+
"""Tag response wrapper"""
|
|
449
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
450
|
+
|
|
451
|
+
data: Union[Tag, Any] = Field(default=None)
|
|
452
|
+
|
|
453
|
+
class TagsListNextPage(BaseModel):
|
|
454
|
+
"""Nested schema for TagsList.next_page"""
|
|
455
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
456
|
+
|
|
457
|
+
offset: Union[str, Any] = Field(default=None)
|
|
458
|
+
path: Union[str, Any] = Field(default=None)
|
|
459
|
+
uri: Union[str, Any] = Field(default=None)
|
|
460
|
+
|
|
461
|
+
class TagsList(BaseModel):
|
|
462
|
+
"""Paginated list of tags containing compact tag objects"""
|
|
463
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
464
|
+
|
|
465
|
+
data: Union[list[TagCompact], Any] = Field(default=None)
|
|
466
|
+
next_page: Union[TagsListNextPage | None, Any] = Field(default=None)
|
|
467
|
+
|
|
468
|
+
class SectionCompact(BaseModel):
|
|
469
|
+
"""Compact section object"""
|
|
470
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
471
|
+
|
|
472
|
+
gid: Union[str, Any] = Field(default=None)
|
|
473
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
474
|
+
name: Union[str, Any] = Field(default=None)
|
|
475
|
+
|
|
476
|
+
class SectionProject(BaseModel):
|
|
477
|
+
"""Nested schema for Section.project"""
|
|
478
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
479
|
+
|
|
480
|
+
gid: Union[str, Any] = Field(default=None)
|
|
481
|
+
name: Union[str, Any] = Field(default=None)
|
|
482
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
483
|
+
|
|
484
|
+
class Section(BaseModel):
|
|
485
|
+
"""Full section object"""
|
|
486
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
487
|
+
|
|
488
|
+
gid: Union[str, Any] = Field(default=None)
|
|
489
|
+
resource_type: Union[str, Any] = Field(default=None)
|
|
490
|
+
name: Union[str, Any] = Field(default=None)
|
|
491
|
+
created_at: Union[str, Any] = Field(default=None)
|
|
492
|
+
project: Union[SectionProject, Any] = Field(default=None)
|
|
493
|
+
|
|
494
|
+
class SectionResponse(BaseModel):
|
|
495
|
+
"""Section response wrapper"""
|
|
496
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
497
|
+
|
|
498
|
+
data: Union[Section, Any] = Field(default=None)
|
|
499
|
+
|
|
500
|
+
class SectionsListNextPage(BaseModel):
|
|
501
|
+
"""Nested schema for SectionsList.next_page"""
|
|
502
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
503
|
+
|
|
504
|
+
offset: Union[str, Any] = Field(default=None)
|
|
505
|
+
path: Union[str, Any] = Field(default=None)
|
|
506
|
+
uri: Union[str, Any] = Field(default=None)
|
|
507
|
+
|
|
508
|
+
class SectionsList(BaseModel):
|
|
509
|
+
"""Paginated list of sections containing compact section objects"""
|
|
510
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
511
|
+
|
|
512
|
+
data: Union[list[SectionCompact], Any] = Field(default=None)
|
|
513
|
+
next_page: Union[SectionsListNextPage | None, Any] = Field(default=None)
|
|
514
|
+
|
|
515
|
+
# ===== METADATA TYPE DEFINITIONS (PYDANTIC) =====
|
|
516
|
+
# Meta types for operations that extract metadata (e.g., pagination info)
|
|
517
|
+
|
|
518
|
+
class TasksListResultMeta(BaseModel):
|
|
519
|
+
"""Metadata for tasks.list operation"""
|
|
520
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
521
|
+
|
|
522
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
523
|
+
|
|
524
|
+
class ProjectTasksListResultMeta(BaseModel):
|
|
525
|
+
"""Metadata for project_tasks.list operation"""
|
|
526
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
527
|
+
|
|
528
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
529
|
+
|
|
530
|
+
class WorkspaceTaskSearchListResultMeta(BaseModel):
|
|
531
|
+
"""Metadata for workspace_task_search.list operation"""
|
|
532
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
533
|
+
|
|
534
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
535
|
+
|
|
536
|
+
class ProjectsListResultMeta(BaseModel):
|
|
537
|
+
"""Metadata for projects.list operation"""
|
|
538
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
539
|
+
|
|
540
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
541
|
+
|
|
542
|
+
class TaskProjectsListResultMeta(BaseModel):
|
|
543
|
+
"""Metadata for task_projects.list operation"""
|
|
544
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
545
|
+
|
|
546
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
547
|
+
|
|
548
|
+
class TeamProjectsListResultMeta(BaseModel):
|
|
549
|
+
"""Metadata for team_projects.list operation"""
|
|
550
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
551
|
+
|
|
552
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
553
|
+
|
|
554
|
+
class WorkspaceProjectsListResultMeta(BaseModel):
|
|
555
|
+
"""Metadata for workspace_projects.list operation"""
|
|
556
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
557
|
+
|
|
558
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
559
|
+
|
|
560
|
+
class WorkspacesListResultMeta(BaseModel):
|
|
561
|
+
"""Metadata for workspaces.list operation"""
|
|
562
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
563
|
+
|
|
564
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
565
|
+
|
|
566
|
+
class UsersListResultMeta(BaseModel):
|
|
567
|
+
"""Metadata for users.list operation"""
|
|
568
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
569
|
+
|
|
570
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
571
|
+
|
|
572
|
+
class WorkspaceUsersListResultMeta(BaseModel):
|
|
573
|
+
"""Metadata for workspace_users.list operation"""
|
|
574
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
575
|
+
|
|
576
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
577
|
+
|
|
578
|
+
class TeamUsersListResultMeta(BaseModel):
|
|
579
|
+
"""Metadata for team_users.list operation"""
|
|
580
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
581
|
+
|
|
582
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
583
|
+
|
|
584
|
+
class WorkspaceTeamsListResultMeta(BaseModel):
|
|
585
|
+
"""Metadata for workspace_teams.list operation"""
|
|
586
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
587
|
+
|
|
588
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
589
|
+
|
|
590
|
+
class UserTeamsListResultMeta(BaseModel):
|
|
591
|
+
"""Metadata for user_teams.list operation"""
|
|
592
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
593
|
+
|
|
594
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
595
|
+
|
|
596
|
+
class AttachmentsListResultMeta(BaseModel):
|
|
597
|
+
"""Metadata for attachments.list operation"""
|
|
598
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
599
|
+
|
|
600
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
601
|
+
|
|
602
|
+
class WorkspaceTagsListResultMeta(BaseModel):
|
|
603
|
+
"""Metadata for workspace_tags.list operation"""
|
|
604
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
605
|
+
|
|
606
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
607
|
+
|
|
608
|
+
class ProjectSectionsListResultMeta(BaseModel):
|
|
609
|
+
"""Metadata for project_sections.list operation"""
|
|
610
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
611
|
+
|
|
612
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
613
|
+
|
|
614
|
+
class TaskSubtasksListResultMeta(BaseModel):
|
|
615
|
+
"""Metadata for task_subtasks.list operation"""
|
|
616
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
617
|
+
|
|
618
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
619
|
+
|
|
620
|
+
class TaskDependenciesListResultMeta(BaseModel):
|
|
621
|
+
"""Metadata for task_dependencies.list operation"""
|
|
622
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
623
|
+
|
|
624
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
625
|
+
|
|
626
|
+
class TaskDependentsListResultMeta(BaseModel):
|
|
627
|
+
"""Metadata for task_dependents.list operation"""
|
|
628
|
+
model_config = ConfigDict(extra="allow", populate_by_name=True)
|
|
629
|
+
|
|
630
|
+
next_page: Union[dict[str, Any] | None, Any] = Field(default=None)
|
|
631
|
+
|
|
632
|
+
# ===== RESPONSE ENVELOPE MODELS =====
|
|
633
|
+
|
|
634
|
+
# Type variables for generic envelope models
|
|
635
|
+
T = TypeVar('T')
|
|
636
|
+
S = TypeVar('S')
|
|
637
|
+
|
|
638
|
+
|
|
639
|
+
class AsanaExecuteResult(BaseModel, Generic[T]):
|
|
640
|
+
"""Response envelope with data only.
|
|
641
|
+
|
|
642
|
+
Used for actions that return data without metadata.
|
|
643
|
+
"""
|
|
644
|
+
model_config = ConfigDict(extra="forbid")
|
|
645
|
+
|
|
646
|
+
data: T
|
|
647
|
+
"""Response data containing the result of the action."""
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
class AsanaExecuteResultWithMeta(AsanaExecuteResult[T], Generic[T, S]):
|
|
651
|
+
"""Response envelope with data and metadata.
|
|
652
|
+
|
|
653
|
+
Used for actions that return both data and metadata (e.g., pagination info).
|
|
654
|
+
"""
|
|
655
|
+
meta: S
|
|
656
|
+
"""Metadata about the response (e.g., pagination cursors, record counts)."""
|
|
657
|
+
|
|
658
|
+
|
|
659
|
+
# ===== OPERATION RESULT TYPE ALIASES =====
|
|
660
|
+
|
|
661
|
+
# Concrete type aliases for each operation result.
|
|
662
|
+
# These provide simpler, more readable type annotations than using the generic forms.
|
|
663
|
+
|
|
664
|
+
TasksListResult = AsanaExecuteResultWithMeta[list[TaskCompact], TasksListResultMeta]
|
|
665
|
+
"""Result type for tasks.list operation with data and metadata."""
|
|
666
|
+
|
|
667
|
+
ProjectTasksListResult = AsanaExecuteResultWithMeta[list[TaskCompact], ProjectTasksListResultMeta]
|
|
668
|
+
"""Result type for project_tasks.list operation with data and metadata."""
|
|
669
|
+
|
|
670
|
+
TasksGetResult = AsanaExecuteResult[Task]
|
|
671
|
+
"""Result type for tasks.get operation."""
|
|
672
|
+
|
|
673
|
+
WorkspaceTaskSearchListResult = AsanaExecuteResultWithMeta[list[TaskCompact], WorkspaceTaskSearchListResultMeta]
|
|
674
|
+
"""Result type for workspace_task_search.list operation with data and metadata."""
|
|
675
|
+
|
|
676
|
+
ProjectsListResult = AsanaExecuteResultWithMeta[list[ProjectCompact], ProjectsListResultMeta]
|
|
677
|
+
"""Result type for projects.list operation with data and metadata."""
|
|
678
|
+
|
|
679
|
+
ProjectsGetResult = AsanaExecuteResult[Project]
|
|
680
|
+
"""Result type for projects.get operation."""
|
|
681
|
+
|
|
682
|
+
TaskProjectsListResult = AsanaExecuteResultWithMeta[list[ProjectCompact], TaskProjectsListResultMeta]
|
|
683
|
+
"""Result type for task_projects.list operation with data and metadata."""
|
|
684
|
+
|
|
685
|
+
TeamProjectsListResult = AsanaExecuteResultWithMeta[list[ProjectCompact], TeamProjectsListResultMeta]
|
|
686
|
+
"""Result type for team_projects.list operation with data and metadata."""
|
|
687
|
+
|
|
688
|
+
WorkspaceProjectsListResult = AsanaExecuteResultWithMeta[list[ProjectCompact], WorkspaceProjectsListResultMeta]
|
|
689
|
+
"""Result type for workspace_projects.list operation with data and metadata."""
|
|
690
|
+
|
|
691
|
+
WorkspacesListResult = AsanaExecuteResultWithMeta[list[WorkspaceCompact], WorkspacesListResultMeta]
|
|
692
|
+
"""Result type for workspaces.list operation with data and metadata."""
|
|
693
|
+
|
|
694
|
+
WorkspacesGetResult = AsanaExecuteResult[Workspace]
|
|
695
|
+
"""Result type for workspaces.get operation."""
|
|
696
|
+
|
|
697
|
+
UsersListResult = AsanaExecuteResultWithMeta[list[UserCompact], UsersListResultMeta]
|
|
698
|
+
"""Result type for users.list operation with data and metadata."""
|
|
699
|
+
|
|
700
|
+
UsersGetResult = AsanaExecuteResult[User]
|
|
701
|
+
"""Result type for users.get operation."""
|
|
702
|
+
|
|
703
|
+
WorkspaceUsersListResult = AsanaExecuteResultWithMeta[list[UserCompact], WorkspaceUsersListResultMeta]
|
|
704
|
+
"""Result type for workspace_users.list operation with data and metadata."""
|
|
705
|
+
|
|
706
|
+
TeamUsersListResult = AsanaExecuteResultWithMeta[list[UserCompact], TeamUsersListResultMeta]
|
|
707
|
+
"""Result type for team_users.list operation with data and metadata."""
|
|
708
|
+
|
|
709
|
+
TeamsGetResult = AsanaExecuteResult[Team]
|
|
710
|
+
"""Result type for teams.get operation."""
|
|
711
|
+
|
|
712
|
+
WorkspaceTeamsListResult = AsanaExecuteResultWithMeta[list[TeamCompact], WorkspaceTeamsListResultMeta]
|
|
713
|
+
"""Result type for workspace_teams.list operation with data and metadata."""
|
|
714
|
+
|
|
715
|
+
UserTeamsListResult = AsanaExecuteResultWithMeta[list[TeamCompact], UserTeamsListResultMeta]
|
|
716
|
+
"""Result type for user_teams.list operation with data and metadata."""
|
|
717
|
+
|
|
718
|
+
AttachmentsListResult = AsanaExecuteResultWithMeta[list[AttachmentCompact], AttachmentsListResultMeta]
|
|
719
|
+
"""Result type for attachments.list operation with data and metadata."""
|
|
720
|
+
|
|
721
|
+
AttachmentsGetResult = AsanaExecuteResult[Attachment]
|
|
722
|
+
"""Result type for attachments.get operation."""
|
|
723
|
+
|
|
724
|
+
WorkspaceTagsListResult = AsanaExecuteResultWithMeta[list[TagCompact], WorkspaceTagsListResultMeta]
|
|
725
|
+
"""Result type for workspace_tags.list operation with data and metadata."""
|
|
726
|
+
|
|
727
|
+
TagsGetResult = AsanaExecuteResult[Tag]
|
|
728
|
+
"""Result type for tags.get operation."""
|
|
729
|
+
|
|
730
|
+
ProjectSectionsListResult = AsanaExecuteResultWithMeta[list[SectionCompact], ProjectSectionsListResultMeta]
|
|
731
|
+
"""Result type for project_sections.list operation with data and metadata."""
|
|
732
|
+
|
|
733
|
+
SectionsGetResult = AsanaExecuteResult[Section]
|
|
734
|
+
"""Result type for sections.get operation."""
|
|
735
|
+
|
|
736
|
+
TaskSubtasksListResult = AsanaExecuteResultWithMeta[list[TaskCompact], TaskSubtasksListResultMeta]
|
|
737
|
+
"""Result type for task_subtasks.list operation with data and metadata."""
|
|
738
|
+
|
|
739
|
+
TaskDependenciesListResult = AsanaExecuteResultWithMeta[list[TaskCompact], TaskDependenciesListResultMeta]
|
|
740
|
+
"""Result type for task_dependencies.list operation with data and metadata."""
|
|
741
|
+
|
|
742
|
+
TaskDependentsListResult = AsanaExecuteResultWithMeta[list[TaskCompact], TaskDependentsListResultMeta]
|
|
743
|
+
"""Result type for task_dependents.list operation with data and metadata."""
|
|
744
|
+
|