daknode 0.3.4__tar.gz → 0.3.5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. {daknode-0.3.4 → daknode-0.3.5}/PKG-INFO +1 -1
  2. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/list_messages.py +40 -0
  3. daknode-0.3.5/daknode/api/messages/update_message_state.py +197 -0
  4. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/__init__.py +4 -0
  5. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/message_out.py +47 -0
  6. daknode-0.3.5/daknode/models/message_state.py +121 -0
  7. daknode-0.3.5/daknode/models/state_change.py +100 -0
  8. {daknode-0.3.4 → daknode-0.3.5}/pyproject.toml +1 -1
  9. {daknode-0.3.4 → daknode-0.3.5}/README.md +0 -0
  10. {daknode-0.3.4 → daknode-0.3.5}/daknode/__init__.py +0 -0
  11. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/__init__.py +0 -0
  12. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/block_rules/__init__.py +0 -0
  13. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/block_rules/create_block_rule.py +0 -0
  14. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/block_rules/create_inbox_block_rule.py +0 -0
  15. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/block_rules/delete_block_rule.py +0 -0
  16. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/block_rules/list_block_rules.py +0 -0
  17. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/block_rules/list_inbox_block_rules.py +0 -0
  18. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/consent/__init__.py +0 -0
  19. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/consent/create_consent.py +0 -0
  20. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/consent/revoke.py +0 -0
  21. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/control_plane/__init__.py +0 -0
  22. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/control_plane/close_workspace.py +0 -0
  23. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/control_plane/create_workspace.py +0 -0
  24. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/control_plane/list_workspaces.py +0 -0
  25. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/control_plane/read_workspace.py +0 -0
  26. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/control_plane/update_workspace.py +0 -0
  27. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/dead_letters/__init__.py +0 -0
  28. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/dead_letters/list_dead_letters.py +0 -0
  29. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/dead_letters/replay_dead_letter.py +0 -0
  30. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/domains/__init__.py +0 -0
  31. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/domains/disable_domain.py +0 -0
  32. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/domains/get_domain.py +0 -0
  33. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/domains/list_domains.py +0 -0
  34. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/domains/register_domain.py +0 -0
  35. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/domains/verify_domain.py +0 -0
  36. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/events/__init__.py +0 -0
  37. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/events/poll_inbox_events.py +0 -0
  38. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/__init__.py +0 -0
  39. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/create_inbox.py +0 -0
  40. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/delete_inbox.py +0 -0
  41. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/get_inbox.py +0 -0
  42. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/list_inboxes.py +0 -0
  43. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/register_webhook.py +0 -0
  44. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/rotate_webhook_secret.py +0 -0
  45. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/inboxes/update_inbox.py +0 -0
  46. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/__init__.py +0 -0
  47. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/download_raw_message.py +0 -0
  48. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/download_received_attachment.py +0 -0
  49. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/get_message.py +0 -0
  50. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/get_thread.py +0 -0
  51. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/list_received_attachments.py +0 -0
  52. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/messages/list_threads.py +0 -0
  53. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/metrics/__init__.py +0 -0
  54. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/metrics/inbox_metrics.py +0 -0
  55. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/metrics/workspace_metrics.py +0 -0
  56. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/privacy/__init__.py +0 -0
  57. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/privacy/create_erasure_request.py +0 -0
  58. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/privacy/read_erasure_request.py +0 -0
  59. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/public/__init__.py +0 -0
  60. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/public/agent_signup.py +0 -0
  61. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/public/agent_verify.py +0 -0
  62. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/search/__init__.py +0 -0
  63. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/search/search.py +0 -0
  64. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/send/__init__.py +0 -0
  65. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/send/forward_message.py +0 -0
  66. {daknode-0.3.4 → daknode-0.3.5}/daknode/api/send/send.py +0 -0
  67. {daknode-0.3.4 → daknode-0.3.5}/daknode/client.py +0 -0
  68. {daknode-0.3.4 → daknode-0.3.5}/daknode/errors.py +0 -0
  69. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/attachment_out.py +0 -0
  70. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/block_rule_create.py +0 -0
  71. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/block_rule_out.py +0 -0
  72. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/block_rule_page.py +0 -0
  73. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/check_domain_request.py +0 -0
  74. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/consent_request.py +0 -0
  75. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/consent_response.py +0 -0
  76. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/create_erasure_request_response_create_erasure_request.py +0 -0
  77. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/create_in.py +0 -0
  78. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/daily_usage.py +0 -0
  79. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/dead_letter_response.py +0 -0
  80. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/delivery_cohort.py +3 -3
  81. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/delivery_cohort_current_status.py +0 -0
  82. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/delivery_cohort_provider_outcomes.py +0 -0
  83. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/dns_record.py +0 -0
  84. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/domain_out.py +0 -0
  85. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/domain_page.py +0 -0
  86. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/erasure_request_body.py +0 -0
  87. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/forward_message_response_forward_message.py +0 -0
  88. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/forward_request.py +0 -0
  89. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/http_validation_error.py +0 -0
  90. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_create_request.py +0 -0
  91. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_deleted.py +0 -0
  92. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_event.py +0 -0
  93. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_event_page.py +0 -0
  94. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_out.py +0 -0
  95. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_page.py +0 -0
  96. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_response.py +0 -0
  97. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/inbox_update_request.py +0 -0
  98. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/message_page.py +0 -0
  99. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/metrics_out.py +3 -3
  100. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/metrics_window.py +0 -0
  101. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/outgoing_attachment.py +0 -0
  102. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/poll_inbox_events_start.py +0 -0
  103. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/read_erasure_request_response_read_erasure_request.py +0 -0
  104. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/register_domain_request.py +0 -0
  105. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/replay_response.py +0 -0
  106. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/revoke_request.py +0 -0
  107. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/revoke_response_revoke.py +0 -0
  108. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/search_match.py +0 -0
  109. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/search_request.py +0 -0
  110. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/search_response.py +0 -0
  111. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/send_request.py +0 -0
  112. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/send_response_send.py +0 -0
  113. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/signup_in.py +0 -0
  114. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/signup_out.py +0 -0
  115. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/thread_detail_out.py +0 -0
  116. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/thread_out.py +0 -0
  117. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/thread_page.py +0 -0
  118. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/timeline_item_out.py +0 -0
  119. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/update_in.py +0 -0
  120. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/usage_counts.py +0 -0
  121. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/validation_error.py +0 -0
  122. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/validation_error_context.py +0 -0
  123. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/verify_in.py +0 -0
  124. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/verify_out.py +0 -0
  125. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/webhook_register_request.py +0 -0
  126. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/workspace_list_out.py +0 -0
  127. {daknode-0.3.4 → daknode-0.3.5}/daknode/models/workspace_out.py +0 -0
  128. {daknode-0.3.4 → daknode-0.3.5}/daknode/py.typed +0 -0
  129. {daknode-0.3.4 → daknode-0.3.5}/daknode/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: daknode
3
- Version: 0.3.4
3
+ Version: 0.3.5
4
4
  Summary: A client library for accessing DakNode
5
5
  Requires-Python: >=3.9,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -22,6 +22,8 @@ def _get_kwargs(
22
22
  *,
23
23
  limit: Union[Unset, int] = 25,
24
24
  cursor: Union[None, Unset, str] = UNSET,
25
+ label: Union[None, Unset, str] = UNSET,
26
+ is_read: Union[None, Unset, bool] = UNSET,
25
27
 
26
28
  ) -> dict[str, Any]:
27
29
 
@@ -39,6 +41,20 @@ def _get_kwargs(
39
41
  json_cursor = cursor
40
42
  params["cursor"] = json_cursor
41
43
 
44
+ json_label: Union[None, Unset, str]
45
+ if isinstance(label, Unset):
46
+ json_label = UNSET
47
+ else:
48
+ json_label = label
49
+ params["label"] = json_label
50
+
51
+ json_is_read: Union[None, Unset, bool]
52
+ if isinstance(is_read, Unset):
53
+ json_is_read = UNSET
54
+ else:
55
+ json_is_read = is_read
56
+ params["is_read"] = json_is_read
57
+
42
58
 
43
59
  params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
44
60
 
@@ -87,6 +103,8 @@ def sync_detailed(
87
103
  client: AuthenticatedClient,
88
104
  limit: Union[Unset, int] = 25,
89
105
  cursor: Union[None, Unset, str] = UNSET,
106
+ label: Union[None, Unset, str] = UNSET,
107
+ is_read: Union[None, Unset, bool] = UNSET,
90
108
 
91
109
  ) -> Response[Union[HTTPValidationError, MessagePage]]:
92
110
  """ List Messages
@@ -97,6 +115,8 @@ def sync_detailed(
97
115
  inbox_id (UUID):
98
116
  limit (Union[Unset, int]): Default: 25.
99
117
  cursor (Union[None, Unset, str]):
118
+ label (Union[None, Unset, str]):
119
+ is_read (Union[None, Unset, bool]):
100
120
 
101
121
  Raises:
102
122
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -111,6 +131,8 @@ def sync_detailed(
111
131
  inbox_id=inbox_id,
112
132
  limit=limit,
113
133
  cursor=cursor,
134
+ label=label,
135
+ is_read=is_read,
114
136
 
115
137
  )
116
138
 
@@ -126,6 +148,8 @@ def sync(
126
148
  client: AuthenticatedClient,
127
149
  limit: Union[Unset, int] = 25,
128
150
  cursor: Union[None, Unset, str] = UNSET,
151
+ label: Union[None, Unset, str] = UNSET,
152
+ is_read: Union[None, Unset, bool] = UNSET,
129
153
 
130
154
  ) -> Optional[Union[HTTPValidationError, MessagePage]]:
131
155
  """ List Messages
@@ -136,6 +160,8 @@ def sync(
136
160
  inbox_id (UUID):
137
161
  limit (Union[Unset, int]): Default: 25.
138
162
  cursor (Union[None, Unset, str]):
163
+ label (Union[None, Unset, str]):
164
+ is_read (Union[None, Unset, bool]):
139
165
 
140
166
  Raises:
141
167
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -151,6 +177,8 @@ def sync(
151
177
  client=client,
152
178
  limit=limit,
153
179
  cursor=cursor,
180
+ label=label,
181
+ is_read=is_read,
154
182
 
155
183
  ).parsed
156
184
 
@@ -160,6 +188,8 @@ async def asyncio_detailed(
160
188
  client: AuthenticatedClient,
161
189
  limit: Union[Unset, int] = 25,
162
190
  cursor: Union[None, Unset, str] = UNSET,
191
+ label: Union[None, Unset, str] = UNSET,
192
+ is_read: Union[None, Unset, bool] = UNSET,
163
193
 
164
194
  ) -> Response[Union[HTTPValidationError, MessagePage]]:
165
195
  """ List Messages
@@ -170,6 +200,8 @@ async def asyncio_detailed(
170
200
  inbox_id (UUID):
171
201
  limit (Union[Unset, int]): Default: 25.
172
202
  cursor (Union[None, Unset, str]):
203
+ label (Union[None, Unset, str]):
204
+ is_read (Union[None, Unset, bool]):
173
205
 
174
206
  Raises:
175
207
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -184,6 +216,8 @@ async def asyncio_detailed(
184
216
  inbox_id=inbox_id,
185
217
  limit=limit,
186
218
  cursor=cursor,
219
+ label=label,
220
+ is_read=is_read,
187
221
 
188
222
  )
189
223
 
@@ -199,6 +233,8 @@ async def asyncio(
199
233
  client: AuthenticatedClient,
200
234
  limit: Union[Unset, int] = 25,
201
235
  cursor: Union[None, Unset, str] = UNSET,
236
+ label: Union[None, Unset, str] = UNSET,
237
+ is_read: Union[None, Unset, bool] = UNSET,
202
238
 
203
239
  ) -> Optional[Union[HTTPValidationError, MessagePage]]:
204
240
  """ List Messages
@@ -209,6 +245,8 @@ async def asyncio(
209
245
  inbox_id (UUID):
210
246
  limit (Union[Unset, int]): Default: 25.
211
247
  cursor (Union[None, Unset, str]):
248
+ label (Union[None, Unset, str]):
249
+ is_read (Union[None, Unset, bool]):
212
250
 
213
251
  Raises:
214
252
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -224,5 +262,7 @@ async def asyncio(
224
262
  client=client,
225
263
  limit=limit,
226
264
  cursor=cursor,
265
+ label=label,
266
+ is_read=is_read,
227
267
 
228
268
  )).parsed
@@ -0,0 +1,197 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union, cast
3
+
4
+ import httpx
5
+
6
+ from ...client import AuthenticatedClient, Client
7
+ from ...types import Response, UNSET
8
+ from ... import errors
9
+
10
+ from ...models.http_validation_error import HTTPValidationError
11
+ from ...models.message_state import MessageState
12
+ from ...models.state_change import StateChange
13
+ from typing import cast
14
+ from uuid import UUID
15
+
16
+
17
+
18
+ def _get_kwargs(
19
+ message_id: UUID,
20
+ *,
21
+ body: StateChange,
22
+
23
+ ) -> dict[str, Any]:
24
+ headers: dict[str, Any] = {}
25
+
26
+
27
+
28
+
29
+
30
+
31
+ _kwargs: dict[str, Any] = {
32
+ "method": "patch",
33
+ "url": "/v1/messages/{message_id}/state".format(message_id=message_id,),
34
+ }
35
+
36
+ _kwargs["json"] = body.to_dict()
37
+
38
+
39
+ headers["Content-Type"] = "application/json"
40
+
41
+ _kwargs["headers"] = headers
42
+ return _kwargs
43
+
44
+
45
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Union[HTTPValidationError, MessageState]]:
46
+ if response.status_code == 200:
47
+ response_200 = MessageState.from_dict(response.json())
48
+
49
+
50
+
51
+ return response_200
52
+ if response.status_code == 422:
53
+ response_422 = HTTPValidationError.from_dict(response.json())
54
+
55
+
56
+
57
+ return response_422
58
+ if client.raise_on_unexpected_status:
59
+ raise errors.UnexpectedStatus(response.status_code, response.content)
60
+ else:
61
+ return None
62
+
63
+
64
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Union[HTTPValidationError, MessageState]]:
65
+ return Response(
66
+ status_code=HTTPStatus(response.status_code),
67
+ content=response.content,
68
+ headers=response.headers,
69
+ parsed=_parse_response(client=client, response=response),
70
+ )
71
+
72
+
73
+ def sync_detailed(
74
+ message_id: UUID,
75
+ *,
76
+ client: AuthenticatedClient,
77
+ body: StateChange,
78
+
79
+ ) -> Response[Union[HTTPValidationError, MessageState]]:
80
+ """ Update Message State
81
+
82
+ Args:
83
+ message_id (UUID):
84
+ body (StateChange):
85
+
86
+ Raises:
87
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
88
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
89
+
90
+ Returns:
91
+ Response[Union[HTTPValidationError, MessageState]]
92
+ """
93
+
94
+
95
+ kwargs = _get_kwargs(
96
+ message_id=message_id,
97
+ body=body,
98
+
99
+ )
100
+
101
+ response = client.get_httpx_client().request(
102
+ **kwargs,
103
+ )
104
+
105
+ return _build_response(client=client, response=response)
106
+
107
+ def sync(
108
+ message_id: UUID,
109
+ *,
110
+ client: AuthenticatedClient,
111
+ body: StateChange,
112
+
113
+ ) -> Optional[Union[HTTPValidationError, MessageState]]:
114
+ """ Update Message State
115
+
116
+ Args:
117
+ message_id (UUID):
118
+ body (StateChange):
119
+
120
+ Raises:
121
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
122
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
123
+
124
+ Returns:
125
+ Union[HTTPValidationError, MessageState]
126
+ """
127
+
128
+
129
+ return sync_detailed(
130
+ message_id=message_id,
131
+ client=client,
132
+ body=body,
133
+
134
+ ).parsed
135
+
136
+ async def asyncio_detailed(
137
+ message_id: UUID,
138
+ *,
139
+ client: AuthenticatedClient,
140
+ body: StateChange,
141
+
142
+ ) -> Response[Union[HTTPValidationError, MessageState]]:
143
+ """ Update Message State
144
+
145
+ Args:
146
+ message_id (UUID):
147
+ body (StateChange):
148
+
149
+ Raises:
150
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
151
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
152
+
153
+ Returns:
154
+ Response[Union[HTTPValidationError, MessageState]]
155
+ """
156
+
157
+
158
+ kwargs = _get_kwargs(
159
+ message_id=message_id,
160
+ body=body,
161
+
162
+ )
163
+
164
+ response = await client.get_async_httpx_client().request(
165
+ **kwargs
166
+ )
167
+
168
+ return _build_response(client=client, response=response)
169
+
170
+ async def asyncio(
171
+ message_id: UUID,
172
+ *,
173
+ client: AuthenticatedClient,
174
+ body: StateChange,
175
+
176
+ ) -> Optional[Union[HTTPValidationError, MessageState]]:
177
+ """ Update Message State
178
+
179
+ Args:
180
+ message_id (UUID):
181
+ body (StateChange):
182
+
183
+ Raises:
184
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
185
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
186
+
187
+ Returns:
188
+ Union[HTTPValidationError, MessageState]
189
+ """
190
+
191
+
192
+ return (await asyncio_detailed(
193
+ message_id=message_id,
194
+ client=client,
195
+ body=body,
196
+
197
+ )).parsed
@@ -31,6 +31,7 @@ from .inbox_response import InboxResponse
31
31
  from .inbox_update_request import InboxUpdateRequest
32
32
  from .message_out import MessageOut
33
33
  from .message_page import MessagePage
34
+ from .message_state import MessageState
34
35
  from .metrics_out import MetricsOut
35
36
  from .metrics_window import MetricsWindow
36
37
  from .outgoing_attachment import OutgoingAttachment
@@ -47,6 +48,7 @@ from .send_request import SendRequest
47
48
  from .send_response_send import SendResponseSend
48
49
  from .signup_in import SignupIn
49
50
  from .signup_out import SignupOut
51
+ from .state_change import StateChange
50
52
  from .thread_detail_out import ThreadDetailOut
51
53
  from .thread_out import ThreadOut
52
54
  from .thread_page import ThreadPage
@@ -93,6 +95,7 @@ __all__ = (
93
95
  "InboxUpdateRequest",
94
96
  "MessageOut",
95
97
  "MessagePage",
98
+ "MessageState",
96
99
  "MetricsOut",
97
100
  "MetricsWindow",
98
101
  "OutgoingAttachment",
@@ -109,6 +112,7 @@ __all__ = (
109
112
  "SendResponseSend",
110
113
  "SignupIn",
111
114
  "SignupOut",
115
+ "StateChange",
112
116
  "ThreadDetailOut",
113
117
  "ThreadOut",
114
118
  "ThreadPage",
@@ -53,6 +53,8 @@ class MessageOut:
53
53
  subject (Union[None, str]):
54
54
  thread_id (UUID):
55
55
  cc_addresses (Union[None, Unset, list[str]]):
56
+ labels (Union[Unset, list[str]]):
57
+ read_at (Union[None, Unset, datetime.datetime]):
56
58
  to_addresses (Union[None, Unset, list[str]]):
57
59
  """
58
60
 
@@ -75,6 +77,8 @@ class MessageOut:
75
77
  subject: Union[None, str]
76
78
  thread_id: UUID
77
79
  cc_addresses: Union[None, Unset, list[str]] = UNSET
80
+ labels: Union[Unset, list[str]] = UNSET
81
+ read_at: Union[None, Unset, datetime.datetime] = UNSET
78
82
  to_addresses: Union[None, Unset, list[str]] = UNSET
79
83
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
80
84
 
@@ -146,6 +150,20 @@ class MessageOut:
146
150
  else:
147
151
  cc_addresses = self.cc_addresses
148
152
 
153
+ labels: Union[Unset, list[str]] = UNSET
154
+ if not isinstance(self.labels, Unset):
155
+ labels = self.labels
156
+
157
+
158
+
159
+ read_at: Union[None, Unset, str]
160
+ if isinstance(self.read_at, Unset):
161
+ read_at = UNSET
162
+ elif isinstance(self.read_at, datetime.datetime):
163
+ read_at = self.read_at.isoformat()
164
+ else:
165
+ read_at = self.read_at
166
+
149
167
  to_addresses: Union[None, Unset, list[str]]
150
168
  if isinstance(self.to_addresses, Unset):
151
169
  to_addresses = UNSET
@@ -181,6 +199,10 @@ class MessageOut:
181
199
  })
182
200
  if cc_addresses is not UNSET:
183
201
  field_dict["cc_addresses"] = cc_addresses
202
+ if labels is not UNSET:
203
+ field_dict["labels"] = labels
204
+ if read_at is not UNSET:
205
+ field_dict["read_at"] = read_at
184
206
  if to_addresses is not UNSET:
185
207
  field_dict["to_addresses"] = to_addresses
186
208
 
@@ -315,6 +337,29 @@ class MessageOut:
315
337
  cc_addresses = _parse_cc_addresses(d.pop("cc_addresses", UNSET))
316
338
 
317
339
 
340
+ labels = cast(list[str], d.pop("labels", UNSET))
341
+
342
+
343
+ def _parse_read_at(data: object) -> Union[None, Unset, datetime.datetime]:
344
+ if data is None:
345
+ return data
346
+ if isinstance(data, Unset):
347
+ return data
348
+ try:
349
+ if not isinstance(data, str):
350
+ raise TypeError()
351
+ read_at_type_0 = isoparse(data)
352
+
353
+
354
+
355
+ return read_at_type_0
356
+ except: # noqa: E722
357
+ pass
358
+ return cast(Union[None, Unset, datetime.datetime], data)
359
+
360
+ read_at = _parse_read_at(d.pop("read_at", UNSET))
361
+
362
+
318
363
  def _parse_to_addresses(data: object) -> Union[None, Unset, list[str]]:
319
364
  if data is None:
320
365
  return data
@@ -353,6 +398,8 @@ class MessageOut:
353
398
  subject=subject,
354
399
  thread_id=thread_id,
355
400
  cc_addresses=cc_addresses,
401
+ labels=labels,
402
+ read_at=read_at,
356
403
  to_addresses=to_addresses,
357
404
  )
358
405
 
@@ -0,0 +1,121 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING, Generator
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ from dateutil.parser import isoparse
10
+ from typing import cast
11
+ from typing import cast, Union
12
+ from uuid import UUID
13
+ import datetime
14
+
15
+
16
+
17
+
18
+
19
+
20
+ T = TypeVar("T", bound="MessageState")
21
+
22
+
23
+
24
+ @_attrs_define
25
+ class MessageState:
26
+ """
27
+ Attributes:
28
+ id (UUID):
29
+ labels (list[str]):
30
+ read_at (Union[None, datetime.datetime]):
31
+ """
32
+
33
+ id: UUID
34
+ labels: list[str]
35
+ read_at: Union[None, datetime.datetime]
36
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
37
+
38
+
39
+
40
+
41
+
42
+ def to_dict(self) -> dict[str, Any]:
43
+ id = str(self.id)
44
+
45
+ labels = self.labels
46
+
47
+
48
+
49
+ read_at: Union[None, str]
50
+ if isinstance(self.read_at, datetime.datetime):
51
+ read_at = self.read_at.isoformat()
52
+ else:
53
+ read_at = self.read_at
54
+
55
+
56
+ field_dict: dict[str, Any] = {}
57
+ field_dict.update(self.additional_properties)
58
+ field_dict.update({
59
+ "id": id,
60
+ "labels": labels,
61
+ "read_at": read_at,
62
+ })
63
+
64
+ return field_dict
65
+
66
+
67
+
68
+ @classmethod
69
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
70
+ d = dict(src_dict)
71
+ id = UUID(d.pop("id"))
72
+
73
+
74
+
75
+
76
+ labels = cast(list[str], d.pop("labels"))
77
+
78
+
79
+ def _parse_read_at(data: object) -> Union[None, datetime.datetime]:
80
+ if data is None:
81
+ return data
82
+ try:
83
+ if not isinstance(data, str):
84
+ raise TypeError()
85
+ read_at_type_0 = isoparse(data)
86
+
87
+
88
+
89
+ return read_at_type_0
90
+ except: # noqa: E722
91
+ pass
92
+ return cast(Union[None, datetime.datetime], data)
93
+
94
+ read_at = _parse_read_at(d.pop("read_at"))
95
+
96
+
97
+ message_state = cls(
98
+ id=id,
99
+ labels=labels,
100
+ read_at=read_at,
101
+ )
102
+
103
+
104
+ message_state.additional_properties = d
105
+ return message_state
106
+
107
+ @property
108
+ def additional_keys(self) -> list[str]:
109
+ return list(self.additional_properties.keys())
110
+
111
+ def __getitem__(self, key: str) -> Any:
112
+ return self.additional_properties[key]
113
+
114
+ def __setitem__(self, key: str, value: Any) -> None:
115
+ self.additional_properties[key] = value
116
+
117
+ def __delitem__(self, key: str) -> None:
118
+ del self.additional_properties[key]
119
+
120
+ def __contains__(self, key: str) -> bool:
121
+ return key in self.additional_properties
@@ -0,0 +1,100 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Optional, BinaryIO, TextIO, TYPE_CHECKING, Generator
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ from ..types import UNSET, Unset
10
+ from typing import cast
11
+ from typing import cast, Union
12
+ from typing import Union
13
+
14
+
15
+
16
+
17
+
18
+
19
+ T = TypeVar("T", bound="StateChange")
20
+
21
+
22
+
23
+ @_attrs_define
24
+ class StateChange:
25
+ """
26
+ Attributes:
27
+ add_labels (Union[Unset, list[str]]):
28
+ is_read (Union[None, Unset, bool]):
29
+ remove_labels (Union[Unset, list[str]]):
30
+ """
31
+
32
+ add_labels: Union[Unset, list[str]] = UNSET
33
+ is_read: Union[None, Unset, bool] = UNSET
34
+ remove_labels: Union[Unset, list[str]] = UNSET
35
+
36
+
37
+
38
+
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ add_labels: Union[Unset, list[str]] = UNSET
42
+ if not isinstance(self.add_labels, Unset):
43
+ add_labels = self.add_labels
44
+
45
+
46
+
47
+ is_read: Union[None, Unset, bool]
48
+ if isinstance(self.is_read, Unset):
49
+ is_read = UNSET
50
+ else:
51
+ is_read = self.is_read
52
+
53
+ remove_labels: Union[Unset, list[str]] = UNSET
54
+ if not isinstance(self.remove_labels, Unset):
55
+ remove_labels = self.remove_labels
56
+
57
+
58
+
59
+
60
+ field_dict: dict[str, Any] = {}
61
+
62
+ field_dict.update({
63
+ })
64
+ if add_labels is not UNSET:
65
+ field_dict["add_labels"] = add_labels
66
+ if is_read is not UNSET:
67
+ field_dict["is_read"] = is_read
68
+ if remove_labels is not UNSET:
69
+ field_dict["remove_labels"] = remove_labels
70
+
71
+ return field_dict
72
+
73
+
74
+
75
+ @classmethod
76
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
77
+ d = dict(src_dict)
78
+ add_labels = cast(list[str], d.pop("add_labels", UNSET))
79
+
80
+
81
+ def _parse_is_read(data: object) -> Union[None, Unset, bool]:
82
+ if data is None:
83
+ return data
84
+ if isinstance(data, Unset):
85
+ return data
86
+ return cast(Union[None, Unset, bool], data)
87
+
88
+ is_read = _parse_is_read(d.pop("is_read", UNSET))
89
+
90
+
91
+ remove_labels = cast(list[str], d.pop("remove_labels", UNSET))
92
+
93
+
94
+ state_change = cls(
95
+ add_labels=add_labels,
96
+ is_read=is_read,
97
+ remove_labels=remove_labels,
98
+ )
99
+
100
+ return state_change
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "daknode"
3
- version = "0.3.4"
3
+ version = "0.3.5"
4
4
  description = "A client library for accessing DakNode"
5
5
  authors = []
6
6
  readme = "README.md"
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -14,8 +14,8 @@ from typing import Union
14
14
  import datetime
15
15
 
16
16
  if TYPE_CHECKING:
17
- from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
18
17
  from ..models.delivery_cohort_provider_outcomes import DeliveryCohortProviderOutcomes
18
+ from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
19
19
 
20
20
 
21
21
 
@@ -54,8 +54,8 @@ class DeliveryCohort:
54
54
 
55
55
 
56
56
  def to_dict(self) -> dict[str, Any]:
57
- from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
58
57
  from ..models.delivery_cohort_provider_outcomes import DeliveryCohortProviderOutcomes
58
+ from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
59
59
  accepted_sends = self.accepted_sends
60
60
 
61
61
  current_status = self.current_status.to_dict()
@@ -96,8 +96,8 @@ class DeliveryCohort:
96
96
 
97
97
  @classmethod
98
98
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
99
- from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
100
99
  from ..models.delivery_cohort_provider_outcomes import DeliveryCohortProviderOutcomes
100
+ from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
101
101
  d = dict(src_dict)
102
102
  accepted_sends = d.pop("accepted_sends")
103
103
 
@@ -13,10 +13,10 @@ from typing import Union
13
13
  from uuid import UUID
14
14
 
15
15
  if TYPE_CHECKING:
16
+ from ..models.usage_counts import UsageCounts
16
17
  from ..models.delivery_cohort import DeliveryCohort
17
18
  from ..models.daily_usage import DailyUsage
18
19
  from ..models.metrics_window import MetricsWindow
19
- from ..models.usage_counts import UsageCounts
20
20
 
21
21
 
22
22
 
@@ -53,10 +53,10 @@ class MetricsOut:
53
53
 
54
54
 
55
55
  def to_dict(self) -> dict[str, Any]:
56
+ from ..models.usage_counts import UsageCounts
56
57
  from ..models.delivery_cohort import DeliveryCohort
57
58
  from ..models.daily_usage import DailyUsage
58
59
  from ..models.metrics_window import MetricsWindow
59
- from ..models.usage_counts import UsageCounts
60
60
  daily = []
61
61
  for daily_item_data in self.daily:
62
62
  daily_item = daily_item_data.to_dict()
@@ -104,10 +104,10 @@ class MetricsOut:
104
104
 
105
105
  @classmethod
106
106
  def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
107
+ from ..models.usage_counts import UsageCounts
107
108
  from ..models.delivery_cohort import DeliveryCohort
108
109
  from ..models.daily_usage import DailyUsage
109
110
  from ..models.metrics_window import MetricsWindow
110
- from ..models.usage_counts import UsageCounts
111
111
  d = dict(src_dict)
112
112
  daily = []
113
113
  _daily = d.pop("daily")
File without changes
File without changes