daknode 0.3.3__tar.gz → 0.3.4__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 (126) hide show
  1. {daknode-0.3.3 → daknode-0.3.4}/PKG-INFO +1 -1
  2. daknode-0.3.4/daknode/api/events/poll_inbox_events.py +279 -0
  3. daknode-0.3.4/daknode/api/send/__init__.py +1 -0
  4. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/__init__.py +6 -0
  5. daknode-0.3.4/daknode/models/inbox_event.py +154 -0
  6. daknode-0.3.4/daknode/models/inbox_event_page.py +116 -0
  7. daknode-0.3.4/daknode/models/poll_inbox_events_start.py +8 -0
  8. {daknode-0.3.3 → daknode-0.3.4}/pyproject.toml +1 -1
  9. {daknode-0.3.3 → daknode-0.3.4}/README.md +0 -0
  10. {daknode-0.3.3 → daknode-0.3.4}/daknode/__init__.py +0 -0
  11. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/__init__.py +0 -0
  12. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/block_rules/__init__.py +0 -0
  13. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/block_rules/create_block_rule.py +0 -0
  14. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/block_rules/create_inbox_block_rule.py +0 -0
  15. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/block_rules/delete_block_rule.py +0 -0
  16. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/block_rules/list_block_rules.py +0 -0
  17. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/block_rules/list_inbox_block_rules.py +0 -0
  18. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/consent/__init__.py +0 -0
  19. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/consent/create_consent.py +0 -0
  20. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/consent/revoke.py +0 -0
  21. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/control_plane/__init__.py +0 -0
  22. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/control_plane/close_workspace.py +0 -0
  23. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/control_plane/create_workspace.py +0 -0
  24. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/control_plane/list_workspaces.py +0 -0
  25. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/control_plane/read_workspace.py +0 -0
  26. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/control_plane/update_workspace.py +0 -0
  27. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/dead_letters/__init__.py +0 -0
  28. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/dead_letters/list_dead_letters.py +0 -0
  29. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/dead_letters/replay_dead_letter.py +0 -0
  30. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/domains/__init__.py +0 -0
  31. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/domains/disable_domain.py +0 -0
  32. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/domains/get_domain.py +0 -0
  33. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/domains/list_domains.py +0 -0
  34. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/domains/register_domain.py +0 -0
  35. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/domains/verify_domain.py +0 -0
  36. {daknode-0.3.3/daknode/api/inboxes → daknode-0.3.4/daknode/api/events}/__init__.py +0 -0
  37. {daknode-0.3.3/daknode/api/messages → daknode-0.3.4/daknode/api/inboxes}/__init__.py +0 -0
  38. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/inboxes/create_inbox.py +0 -0
  39. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/inboxes/delete_inbox.py +0 -0
  40. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/inboxes/get_inbox.py +0 -0
  41. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/inboxes/list_inboxes.py +0 -0
  42. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/inboxes/register_webhook.py +0 -0
  43. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/inboxes/rotate_webhook_secret.py +0 -0
  44. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/inboxes/update_inbox.py +0 -0
  45. {daknode-0.3.3/daknode/api/metrics → daknode-0.3.4/daknode/api/messages}/__init__.py +0 -0
  46. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/messages/download_raw_message.py +0 -0
  47. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/messages/download_received_attachment.py +0 -0
  48. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/messages/get_message.py +0 -0
  49. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/messages/get_thread.py +0 -0
  50. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/messages/list_messages.py +0 -0
  51. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/messages/list_received_attachments.py +0 -0
  52. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/messages/list_threads.py +0 -0
  53. {daknode-0.3.3/daknode/api/privacy → daknode-0.3.4/daknode/api/metrics}/__init__.py +0 -0
  54. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/metrics/inbox_metrics.py +0 -0
  55. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/metrics/workspace_metrics.py +0 -0
  56. {daknode-0.3.3/daknode/api/public → daknode-0.3.4/daknode/api/privacy}/__init__.py +0 -0
  57. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/privacy/create_erasure_request.py +0 -0
  58. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/privacy/read_erasure_request.py +0 -0
  59. {daknode-0.3.3/daknode/api/search → daknode-0.3.4/daknode/api/public}/__init__.py +0 -0
  60. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/public/agent_signup.py +0 -0
  61. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/public/agent_verify.py +0 -0
  62. {daknode-0.3.3/daknode/api/send → daknode-0.3.4/daknode/api/search}/__init__.py +0 -0
  63. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/search/search.py +0 -0
  64. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/send/forward_message.py +0 -0
  65. {daknode-0.3.3 → daknode-0.3.4}/daknode/api/send/send.py +0 -0
  66. {daknode-0.3.3 → daknode-0.3.4}/daknode/client.py +0 -0
  67. {daknode-0.3.3 → daknode-0.3.4}/daknode/errors.py +0 -0
  68. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/attachment_out.py +0 -0
  69. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/block_rule_create.py +0 -0
  70. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/block_rule_out.py +0 -0
  71. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/block_rule_page.py +0 -0
  72. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/check_domain_request.py +0 -0
  73. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/consent_request.py +0 -0
  74. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/consent_response.py +0 -0
  75. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/create_erasure_request_response_create_erasure_request.py +0 -0
  76. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/create_in.py +0 -0
  77. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/daily_usage.py +0 -0
  78. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/dead_letter_response.py +0 -0
  79. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/delivery_cohort.py +3 -3
  80. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/delivery_cohort_current_status.py +0 -0
  81. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/delivery_cohort_provider_outcomes.py +0 -0
  82. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/dns_record.py +0 -0
  83. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/domain_out.py +0 -0
  84. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/domain_page.py +0 -0
  85. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/erasure_request_body.py +0 -0
  86. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/forward_message_response_forward_message.py +0 -0
  87. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/forward_request.py +0 -0
  88. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/http_validation_error.py +0 -0
  89. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/inbox_create_request.py +0 -0
  90. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/inbox_deleted.py +0 -0
  91. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/inbox_out.py +0 -0
  92. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/inbox_page.py +0 -0
  93. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/inbox_response.py +0 -0
  94. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/inbox_update_request.py +0 -0
  95. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/message_out.py +0 -0
  96. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/message_page.py +0 -0
  97. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/metrics_out.py +3 -3
  98. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/metrics_window.py +0 -0
  99. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/outgoing_attachment.py +0 -0
  100. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/read_erasure_request_response_read_erasure_request.py +0 -0
  101. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/register_domain_request.py +0 -0
  102. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/replay_response.py +0 -0
  103. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/revoke_request.py +0 -0
  104. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/revoke_response_revoke.py +0 -0
  105. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/search_match.py +0 -0
  106. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/search_request.py +0 -0
  107. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/search_response.py +0 -0
  108. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/send_request.py +0 -0
  109. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/send_response_send.py +0 -0
  110. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/signup_in.py +0 -0
  111. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/signup_out.py +0 -0
  112. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/thread_detail_out.py +0 -0
  113. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/thread_out.py +0 -0
  114. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/thread_page.py +0 -0
  115. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/timeline_item_out.py +0 -0
  116. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/update_in.py +0 -0
  117. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/usage_counts.py +0 -0
  118. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/validation_error.py +0 -0
  119. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/validation_error_context.py +0 -0
  120. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/verify_in.py +0 -0
  121. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/verify_out.py +0 -0
  122. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/webhook_register_request.py +0 -0
  123. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/workspace_list_out.py +0 -0
  124. {daknode-0.3.3 → daknode-0.3.4}/daknode/models/workspace_out.py +0 -0
  125. {daknode-0.3.3 → daknode-0.3.4}/daknode/py.typed +0 -0
  126. {daknode-0.3.3 → daknode-0.3.4}/daknode/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: daknode
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: A client library for accessing DakNode
5
5
  Requires-Python: >=3.9,<4.0
6
6
  Classifier: Programming Language :: Python :: 3
@@ -0,0 +1,279 @@
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.inbox_event_page import InboxEventPage
12
+ from ...models.poll_inbox_events_start import PollInboxEventsStart
13
+ from ...types import UNSET, Unset
14
+ from typing import cast
15
+ from typing import cast, Union
16
+ from typing import Union
17
+ from uuid import UUID
18
+
19
+
20
+
21
+ def _get_kwargs(
22
+ inbox_id: UUID,
23
+ *,
24
+ cursor: Union[None, Unset, str] = UNSET,
25
+ start: Union[Unset, PollInboxEventsStart] = PollInboxEventsStart.BEGINNING,
26
+ limit: Union[Unset, int] = 25,
27
+ wait_seconds: Union[Unset, int] = 0,
28
+
29
+ ) -> dict[str, Any]:
30
+
31
+
32
+
33
+
34
+ params: dict[str, Any] = {}
35
+
36
+ json_cursor: Union[None, Unset, str]
37
+ if isinstance(cursor, Unset):
38
+ json_cursor = UNSET
39
+ else:
40
+ json_cursor = cursor
41
+ params["cursor"] = json_cursor
42
+
43
+ json_start: Union[Unset, str] = UNSET
44
+ if not isinstance(start, Unset):
45
+ json_start = start.value
46
+
47
+ params["start"] = json_start
48
+
49
+ params["limit"] = limit
50
+
51
+ params["wait_seconds"] = wait_seconds
52
+
53
+
54
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
55
+
56
+
57
+ _kwargs: dict[str, Any] = {
58
+ "method": "get",
59
+ "url": "/v1/inboxes/{inbox_id}/events".format(inbox_id=inbox_id,),
60
+ "params": params,
61
+ }
62
+
63
+
64
+ return _kwargs
65
+
66
+
67
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Union[HTTPValidationError, InboxEventPage]]:
68
+ if response.status_code == 200:
69
+ response_200 = InboxEventPage.from_dict(response.json())
70
+
71
+
72
+
73
+ return response_200
74
+ if response.status_code == 422:
75
+ response_422 = HTTPValidationError.from_dict(response.json())
76
+
77
+
78
+
79
+ return response_422
80
+ if client.raise_on_unexpected_status:
81
+ raise errors.UnexpectedStatus(response.status_code, response.content)
82
+ else:
83
+ return None
84
+
85
+
86
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Union[HTTPValidationError, InboxEventPage]]:
87
+ return Response(
88
+ status_code=HTTPStatus(response.status_code),
89
+ content=response.content,
90
+ headers=response.headers,
91
+ parsed=_parse_response(client=client, response=response),
92
+ )
93
+
94
+
95
+ def sync_detailed(
96
+ inbox_id: UUID,
97
+ *,
98
+ client: AuthenticatedClient,
99
+ cursor: Union[None, Unset, str] = UNSET,
100
+ start: Union[Unset, PollInboxEventsStart] = PollInboxEventsStart.BEGINNING,
101
+ limit: Union[Unset, int] = 25,
102
+ wait_seconds: Union[Unset, int] = 0,
103
+
104
+ ) -> Response[Union[HTTPValidationError, InboxEventPage]]:
105
+ """ Poll Inbox Events
106
+
107
+ Poll retained inbound message availability; persist next_cursor and deduplicate IDs.
108
+
109
+ No webhook registration needed. An empty response still has a tail cursor.
110
+ Cursors expire after one hour: restart from beginning and deduplicate on id.
111
+ This is not a complete webhook/audit catalogue; fetch content via the message API.
112
+
113
+ Args:
114
+ inbox_id (UUID):
115
+ cursor (Union[None, Unset, str]):
116
+ start (Union[Unset, PollInboxEventsStart]): Default: PollInboxEventsStart.BEGINNING.
117
+ limit (Union[Unset, int]): Default: 25.
118
+ wait_seconds (Union[Unset, int]): Default: 0.
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
+ Response[Union[HTTPValidationError, InboxEventPage]]
126
+ """
127
+
128
+
129
+ kwargs = _get_kwargs(
130
+ inbox_id=inbox_id,
131
+ cursor=cursor,
132
+ start=start,
133
+ limit=limit,
134
+ wait_seconds=wait_seconds,
135
+
136
+ )
137
+
138
+ response = client.get_httpx_client().request(
139
+ **kwargs,
140
+ )
141
+
142
+ return _build_response(client=client, response=response)
143
+
144
+ def sync(
145
+ inbox_id: UUID,
146
+ *,
147
+ client: AuthenticatedClient,
148
+ cursor: Union[None, Unset, str] = UNSET,
149
+ start: Union[Unset, PollInboxEventsStart] = PollInboxEventsStart.BEGINNING,
150
+ limit: Union[Unset, int] = 25,
151
+ wait_seconds: Union[Unset, int] = 0,
152
+
153
+ ) -> Optional[Union[HTTPValidationError, InboxEventPage]]:
154
+ """ Poll Inbox Events
155
+
156
+ Poll retained inbound message availability; persist next_cursor and deduplicate IDs.
157
+
158
+ No webhook registration needed. An empty response still has a tail cursor.
159
+ Cursors expire after one hour: restart from beginning and deduplicate on id.
160
+ This is not a complete webhook/audit catalogue; fetch content via the message API.
161
+
162
+ Args:
163
+ inbox_id (UUID):
164
+ cursor (Union[None, Unset, str]):
165
+ start (Union[Unset, PollInboxEventsStart]): Default: PollInboxEventsStart.BEGINNING.
166
+ limit (Union[Unset, int]): Default: 25.
167
+ wait_seconds (Union[Unset, int]): Default: 0.
168
+
169
+ Raises:
170
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
171
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
172
+
173
+ Returns:
174
+ Union[HTTPValidationError, InboxEventPage]
175
+ """
176
+
177
+
178
+ return sync_detailed(
179
+ inbox_id=inbox_id,
180
+ client=client,
181
+ cursor=cursor,
182
+ start=start,
183
+ limit=limit,
184
+ wait_seconds=wait_seconds,
185
+
186
+ ).parsed
187
+
188
+ async def asyncio_detailed(
189
+ inbox_id: UUID,
190
+ *,
191
+ client: AuthenticatedClient,
192
+ cursor: Union[None, Unset, str] = UNSET,
193
+ start: Union[Unset, PollInboxEventsStart] = PollInboxEventsStart.BEGINNING,
194
+ limit: Union[Unset, int] = 25,
195
+ wait_seconds: Union[Unset, int] = 0,
196
+
197
+ ) -> Response[Union[HTTPValidationError, InboxEventPage]]:
198
+ """ Poll Inbox Events
199
+
200
+ Poll retained inbound message availability; persist next_cursor and deduplicate IDs.
201
+
202
+ No webhook registration needed. An empty response still has a tail cursor.
203
+ Cursors expire after one hour: restart from beginning and deduplicate on id.
204
+ This is not a complete webhook/audit catalogue; fetch content via the message API.
205
+
206
+ Args:
207
+ inbox_id (UUID):
208
+ cursor (Union[None, Unset, str]):
209
+ start (Union[Unset, PollInboxEventsStart]): Default: PollInboxEventsStart.BEGINNING.
210
+ limit (Union[Unset, int]): Default: 25.
211
+ wait_seconds (Union[Unset, int]): Default: 0.
212
+
213
+ Raises:
214
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
215
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
216
+
217
+ Returns:
218
+ Response[Union[HTTPValidationError, InboxEventPage]]
219
+ """
220
+
221
+
222
+ kwargs = _get_kwargs(
223
+ inbox_id=inbox_id,
224
+ cursor=cursor,
225
+ start=start,
226
+ limit=limit,
227
+ wait_seconds=wait_seconds,
228
+
229
+ )
230
+
231
+ response = await client.get_async_httpx_client().request(
232
+ **kwargs
233
+ )
234
+
235
+ return _build_response(client=client, response=response)
236
+
237
+ async def asyncio(
238
+ inbox_id: UUID,
239
+ *,
240
+ client: AuthenticatedClient,
241
+ cursor: Union[None, Unset, str] = UNSET,
242
+ start: Union[Unset, PollInboxEventsStart] = PollInboxEventsStart.BEGINNING,
243
+ limit: Union[Unset, int] = 25,
244
+ wait_seconds: Union[Unset, int] = 0,
245
+
246
+ ) -> Optional[Union[HTTPValidationError, InboxEventPage]]:
247
+ """ Poll Inbox Events
248
+
249
+ Poll retained inbound message availability; persist next_cursor and deduplicate IDs.
250
+
251
+ No webhook registration needed. An empty response still has a tail cursor.
252
+ Cursors expire after one hour: restart from beginning and deduplicate on id.
253
+ This is not a complete webhook/audit catalogue; fetch content via the message API.
254
+
255
+ Args:
256
+ inbox_id (UUID):
257
+ cursor (Union[None, Unset, str]):
258
+ start (Union[Unset, PollInboxEventsStart]): Default: PollInboxEventsStart.BEGINNING.
259
+ limit (Union[Unset, int]): Default: 25.
260
+ wait_seconds (Union[Unset, int]): Default: 0.
261
+
262
+ Raises:
263
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
264
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
265
+
266
+ Returns:
267
+ Union[HTTPValidationError, InboxEventPage]
268
+ """
269
+
270
+
271
+ return (await asyncio_detailed(
272
+ inbox_id=inbox_id,
273
+ client=client,
274
+ cursor=cursor,
275
+ start=start,
276
+ limit=limit,
277
+ wait_seconds=wait_seconds,
278
+
279
+ )).parsed
@@ -0,0 +1 @@
1
+ """ Contains endpoint functions for accessing the API """
@@ -23,6 +23,8 @@ from .forward_request import ForwardRequest
23
23
  from .http_validation_error import HTTPValidationError
24
24
  from .inbox_create_request import InboxCreateRequest
25
25
  from .inbox_deleted import InboxDeleted
26
+ from .inbox_event import InboxEvent
27
+ from .inbox_event_page import InboxEventPage
26
28
  from .inbox_out import InboxOut
27
29
  from .inbox_page import InboxPage
28
30
  from .inbox_response import InboxResponse
@@ -32,6 +34,7 @@ from .message_page import MessagePage
32
34
  from .metrics_out import MetricsOut
33
35
  from .metrics_window import MetricsWindow
34
36
  from .outgoing_attachment import OutgoingAttachment
37
+ from .poll_inbox_events_start import PollInboxEventsStart
35
38
  from .read_erasure_request_response_read_erasure_request import ReadErasureRequestResponseReadErasureRequest
36
39
  from .register_domain_request import RegisterDomainRequest
37
40
  from .replay_response import ReplayResponse
@@ -82,6 +85,8 @@ __all__ = (
82
85
  "HTTPValidationError",
83
86
  "InboxCreateRequest",
84
87
  "InboxDeleted",
88
+ "InboxEvent",
89
+ "InboxEventPage",
85
90
  "InboxOut",
86
91
  "InboxPage",
87
92
  "InboxResponse",
@@ -91,6 +96,7 @@ __all__ = (
91
96
  "MetricsOut",
92
97
  "MetricsWindow",
93
98
  "OutgoingAttachment",
99
+ "PollInboxEventsStart",
94
100
  "ReadErasureRequestResponseReadErasureRequest",
95
101
  "RegisterDomainRequest",
96
102
  "ReplayResponse",
@@ -0,0 +1,154 @@
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 dateutil.parser import isoparse
11
+ from typing import cast
12
+ from typing import Literal, Union, cast
13
+ from uuid import UUID
14
+ import datetime
15
+
16
+
17
+
18
+
19
+
20
+
21
+ T = TypeVar("T", bound="InboxEvent")
22
+
23
+
24
+
25
+ @_attrs_define
26
+ class InboxEvent:
27
+ """
28
+ Attributes:
29
+ channel (str):
30
+ id (UUID):
31
+ inbox_id (UUID):
32
+ message_id (UUID):
33
+ occurred_at (datetime.datetime):
34
+ sequence_number (int):
35
+ thread_id (UUID):
36
+ type_ (Union[Literal['message.received'], Unset]): Default: 'message.received'.
37
+ """
38
+
39
+ channel: str
40
+ id: UUID
41
+ inbox_id: UUID
42
+ message_id: UUID
43
+ occurred_at: datetime.datetime
44
+ sequence_number: int
45
+ thread_id: UUID
46
+ type_: Union[Literal['message.received'], Unset] = 'message.received'
47
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
48
+
49
+
50
+
51
+
52
+
53
+ def to_dict(self) -> dict[str, Any]:
54
+ channel = self.channel
55
+
56
+ id = str(self.id)
57
+
58
+ inbox_id = str(self.inbox_id)
59
+
60
+ message_id = str(self.message_id)
61
+
62
+ occurred_at = self.occurred_at.isoformat()
63
+
64
+ sequence_number = self.sequence_number
65
+
66
+ thread_id = str(self.thread_id)
67
+
68
+ type_ = self.type_
69
+
70
+
71
+ field_dict: dict[str, Any] = {}
72
+ field_dict.update(self.additional_properties)
73
+ field_dict.update({
74
+ "channel": channel,
75
+ "id": id,
76
+ "inbox_id": inbox_id,
77
+ "message_id": message_id,
78
+ "occurred_at": occurred_at,
79
+ "sequence_number": sequence_number,
80
+ "thread_id": thread_id,
81
+ })
82
+ if type_ is not UNSET:
83
+ field_dict["type"] = type_
84
+
85
+ return field_dict
86
+
87
+
88
+
89
+ @classmethod
90
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
91
+ d = dict(src_dict)
92
+ channel = d.pop("channel")
93
+
94
+ id = UUID(d.pop("id"))
95
+
96
+
97
+
98
+
99
+ inbox_id = UUID(d.pop("inbox_id"))
100
+
101
+
102
+
103
+
104
+ message_id = UUID(d.pop("message_id"))
105
+
106
+
107
+
108
+
109
+ occurred_at = isoparse(d.pop("occurred_at"))
110
+
111
+
112
+
113
+
114
+ sequence_number = d.pop("sequence_number")
115
+
116
+ thread_id = UUID(d.pop("thread_id"))
117
+
118
+
119
+
120
+
121
+ type_ = cast(Union[Literal['message.received'], Unset] , d.pop("type", UNSET))
122
+ if type_ != 'message.received'and not isinstance(type_, Unset):
123
+ raise ValueError(f"type must match const 'message.received', got '{type_}'")
124
+
125
+ inbox_event = cls(
126
+ channel=channel,
127
+ id=id,
128
+ inbox_id=inbox_id,
129
+ message_id=message_id,
130
+ occurred_at=occurred_at,
131
+ sequence_number=sequence_number,
132
+ thread_id=thread_id,
133
+ type_=type_,
134
+ )
135
+
136
+
137
+ inbox_event.additional_properties = d
138
+ return inbox_event
139
+
140
+ @property
141
+ def additional_keys(self) -> list[str]:
142
+ return list(self.additional_properties.keys())
143
+
144
+ def __getitem__(self, key: str) -> Any:
145
+ return self.additional_properties[key]
146
+
147
+ def __setitem__(self, key: str, value: Any) -> None:
148
+ self.additional_properties[key] = value
149
+
150
+ def __delitem__(self, key: str) -> None:
151
+ del self.additional_properties[key]
152
+
153
+ def __contains__(self, key: str) -> bool:
154
+ return key in self.additional_properties
@@ -0,0 +1,116 @@
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 typing import cast
10
+
11
+ if TYPE_CHECKING:
12
+ from ..models.inbox_event import InboxEvent
13
+
14
+
15
+
16
+
17
+
18
+ T = TypeVar("T", bound="InboxEventPage")
19
+
20
+
21
+
22
+ @_attrs_define
23
+ class InboxEventPage:
24
+ """
25
+ Attributes:
26
+ has_more (bool):
27
+ items (list['InboxEvent']):
28
+ next_cursor (str):
29
+ poll_after_seconds (int):
30
+ """
31
+
32
+ has_more: bool
33
+ items: list['InboxEvent']
34
+ next_cursor: str
35
+ poll_after_seconds: int
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
+ from ..models.inbox_event import InboxEvent
44
+ has_more = self.has_more
45
+
46
+ items = []
47
+ for items_item_data in self.items:
48
+ items_item = items_item_data.to_dict()
49
+ items.append(items_item)
50
+
51
+
52
+
53
+ next_cursor = self.next_cursor
54
+
55
+ poll_after_seconds = self.poll_after_seconds
56
+
57
+
58
+ field_dict: dict[str, Any] = {}
59
+ field_dict.update(self.additional_properties)
60
+ field_dict.update({
61
+ "has_more": has_more,
62
+ "items": items,
63
+ "next_cursor": next_cursor,
64
+ "poll_after_seconds": poll_after_seconds,
65
+ })
66
+
67
+ return field_dict
68
+
69
+
70
+
71
+ @classmethod
72
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
73
+ from ..models.inbox_event import InboxEvent
74
+ d = dict(src_dict)
75
+ has_more = d.pop("has_more")
76
+
77
+ items = []
78
+ _items = d.pop("items")
79
+ for items_item_data in (_items):
80
+ items_item = InboxEvent.from_dict(items_item_data)
81
+
82
+
83
+
84
+ items.append(items_item)
85
+
86
+
87
+ next_cursor = d.pop("next_cursor")
88
+
89
+ poll_after_seconds = d.pop("poll_after_seconds")
90
+
91
+ inbox_event_page = cls(
92
+ has_more=has_more,
93
+ items=items,
94
+ next_cursor=next_cursor,
95
+ poll_after_seconds=poll_after_seconds,
96
+ )
97
+
98
+
99
+ inbox_event_page.additional_properties = d
100
+ return inbox_event_page
101
+
102
+ @property
103
+ def additional_keys(self) -> list[str]:
104
+ return list(self.additional_properties.keys())
105
+
106
+ def __getitem__(self, key: str) -> Any:
107
+ return self.additional_properties[key]
108
+
109
+ def __setitem__(self, key: str, value: Any) -> None:
110
+ self.additional_properties[key] = value
111
+
112
+ def __delitem__(self, key: str) -> None:
113
+ del self.additional_properties[key]
114
+
115
+ def __contains__(self, key: str) -> bool:
116
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+ class PollInboxEventsStart(str, Enum):
4
+ BEGINNING = "beginning"
5
+ LATEST = "latest"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "daknode"
3
- version = "0.3.3"
3
+ version = "0.3.4"
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_provider_outcomes import DeliveryCohortProviderOutcomes
18
17
  from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
18
+ from ..models.delivery_cohort_provider_outcomes import DeliveryCohortProviderOutcomes
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_provider_outcomes import DeliveryCohortProviderOutcomes
58
57
  from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
58
+ from ..models.delivery_cohort_provider_outcomes import DeliveryCohortProviderOutcomes
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_provider_outcomes import DeliveryCohortProviderOutcomes
100
99
  from ..models.delivery_cohort_current_status import DeliveryCohortCurrentStatus
100
+ from ..models.delivery_cohort_provider_outcomes import DeliveryCohortProviderOutcomes
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
17
16
  from ..models.delivery_cohort import DeliveryCohort
18
17
  from ..models.daily_usage import DailyUsage
19
18
  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
57
56
  from ..models.delivery_cohort import DeliveryCohort
58
57
  from ..models.daily_usage import DailyUsage
59
58
  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
108
107
  from ..models.delivery_cohort import DeliveryCohort
109
108
  from ..models.daily_usage import DailyUsage
110
109
  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