pingram-python 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. pingram/__init__.py +395 -0
  2. pingram/api/__init__.py +21 -0
  3. pingram/api/account_api.py +2198 -0
  4. pingram/api/addresses_api.py +860 -0
  5. pingram/api/components_api.py +1681 -0
  6. pingram/api/default_api.py +320 -0
  7. pingram/api/domains_api.py +849 -0
  8. pingram/api/editor_api.py +320 -0
  9. pingram/api/environments_api.py +878 -0
  10. pingram/api/health_api.py +287 -0
  11. pingram/api/insights_api.py +321 -0
  12. pingram/api/keys_api.py +849 -0
  13. pingram/api/logs_api.py +1632 -0
  14. pingram/api/members_api.py +1780 -0
  15. pingram/api/sender_api.py +892 -0
  16. pingram/api/templates_api.py +1889 -0
  17. pingram/api/types_api.py +1411 -0
  18. pingram/api/user_api.py +2534 -0
  19. pingram/api/users_api.py +936 -0
  20. pingram/api_client.py +807 -0
  21. pingram/api_response.py +21 -0
  22. pingram/client_wrapper.py +357 -0
  23. pingram/configuration.py +623 -0
  24. pingram/exceptions.py +219 -0
  25. pingram/models/__init__.py +173 -0
  26. pingram/models/account_addresses_response.py +95 -0
  27. pingram/models/account_addresses_response_addresses_inner.py +104 -0
  28. pingram/models/account_get_response.py +143 -0
  29. pingram/models/account_get_response_pending_downgrade_usage_limit.py +99 -0
  30. pingram/models/address_response.py +91 -0
  31. pingram/models/auto_join_get_response.py +89 -0
  32. pingram/models/auto_join_post_response.py +89 -0
  33. pingram/models/auto_join_request_body.py +87 -0
  34. pingram/models/bee_token_v2.py +89 -0
  35. pingram/models/billing_post_request_body.py +91 -0
  36. pingram/models/billing_post_response_body.py +149 -0
  37. pingram/models/billing_post_response_body_pending_downgrade_usage_limit.py +99 -0
  38. pingram/models/channels_enum.py +42 -0
  39. pingram/models/create_account_request_body.py +87 -0
  40. pingram/models/create_account_response.py +89 -0
  41. pingram/models/create_address_request.py +91 -0
  42. pingram/models/create_key_request.py +98 -0
  43. pingram/models/create_key_response.py +104 -0
  44. pingram/models/delete_key_response.py +87 -0
  45. pingram/models/delete_user_response.py +87 -0
  46. pingram/models/email_auth_token_post_request.py +87 -0
  47. pingram/models/email_component_patch_request.py +93 -0
  48. pingram/models/email_component_post_request.py +95 -0
  49. pingram/models/email_component_response.py +120 -0
  50. pingram/models/email_component_response_referenced_by_inner.py +92 -0
  51. pingram/models/environment.py +96 -0
  52. pingram/models/environment_create_request.py +87 -0
  53. pingram/models/environment_patch_request.py +94 -0
  54. pingram/models/get_account_metadata_response.py +91 -0
  55. pingram/models/get_account_metadata_response_user_account_metadata.py +91 -0
  56. pingram/models/get_email_components_response_inner.py +120 -0
  57. pingram/models/get_environments_response_inner.py +96 -0
  58. pingram/models/get_inapp_notifications_response.py +95 -0
  59. pingram/models/get_inapp_notifications_response_notifications_inner.py +137 -0
  60. pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options.py +106 -0
  61. pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_instant.py +93 -0
  62. pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_off.py +87 -0
  63. pingram/models/get_inapp_notifications_response_notifications_inner_replies_inner.py +89 -0
  64. pingram/models/get_inapp_notifications_response_notifications_inner_template.py +136 -0
  65. pingram/models/get_inapp_notifications_response_notifications_inner_template_any_of.py +98 -0
  66. pingram/models/get_keys_response.py +95 -0
  67. pingram/models/get_keys_response_keys_inner.py +110 -0
  68. pingram/models/get_logs_response.py +97 -0
  69. pingram/models/get_logs_response_messages_inner.py +141 -0
  70. pingram/models/get_logs_response_messages_inner_attachments_inner.py +93 -0
  71. pingram/models/get_members_response_inner.py +95 -0
  72. pingram/models/get_metrics_response_inner.py +116 -0
  73. pingram/models/get_metrics_response_inner_messages_inner.py +89 -0
  74. pingram/models/get_notifications_response_inner.py +126 -0
  75. pingram/models/get_notifications_response_inner_deduplication.py +87 -0
  76. pingram/models/get_notifications_response_inner_options.py +122 -0
  77. pingram/models/get_notifications_response_inner_options_email.py +128 -0
  78. pingram/models/get_notifications_response_inner_options_email_daily.py +89 -0
  79. pingram/models/get_notifications_response_inner_options_email_monthly.py +101 -0
  80. pingram/models/get_notifications_response_inner_options_email_weekly.py +91 -0
  81. pingram/models/get_notifications_response_inner_templates_inner.py +90 -0
  82. pingram/models/get_notifications_response_inner_throttling.py +111 -0
  83. pingram/models/get_senders_response_inner.py +128 -0
  84. pingram/models/get_templates_response.py +136 -0
  85. pingram/models/get_users_response.py +99 -0
  86. pingram/models/get_users_response_users_inner.py +133 -0
  87. pingram/models/get_users_response_users_inner_email_suppression_status.py +96 -0
  88. pingram/models/get_users_response_users_inner_push_tokens_inner.py +104 -0
  89. pingram/models/get_users_response_users_inner_push_tokens_inner_device.py +97 -0
  90. pingram/models/get_users_response_users_inner_slack_token.py +140 -0
  91. pingram/models/get_users_response_users_inner_slack_token_authed_user.py +97 -0
  92. pingram/models/get_users_response_users_inner_slack_token_enterprise.py +89 -0
  93. pingram/models/get_users_response_users_inner_slack_token_incoming_webhook.py +93 -0
  94. pingram/models/get_users_response_users_inner_slack_token_response_metadata.py +97 -0
  95. pingram/models/get_users_response_users_inner_web_push_tokens_inner.py +91 -0
  96. pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub.py +93 -0
  97. pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub_keys.py +89 -0
  98. pingram/models/in_app_notification_patch_request.py +112 -0
  99. pingram/models/in_app_notification_unread_clear_request.py +89 -0
  100. pingram/models/inapp_unread_count_response.py +87 -0
  101. pingram/models/inbound_request_body.py +138 -0
  102. pingram/models/inbound_response_body.py +104 -0
  103. pingram/models/inbound_response_body_results_inner.py +103 -0
  104. pingram/models/ingishts_post_request.py +121 -0
  105. pingram/models/ingishts_post_request_label_options.py +87 -0
  106. pingram/models/ingishts_post_request_metric_data_queries_inner.py +103 -0
  107. pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat.py +107 -0
  108. pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric.py +99 -0
  109. pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric_dimensions_inner.py +89 -0
  110. pingram/models/intercom_webhook.py +106 -0
  111. pingram/models/intercom_webhook_data.py +91 -0
  112. pingram/models/intercom_webhook_data_item.py +136 -0
  113. pingram/models/intercom_webhook_data_item_any_of.py +140 -0
  114. pingram/models/intercom_webhook_data_item_any_of_contacts.py +104 -0
  115. pingram/models/intercom_webhook_data_item_any_of_contacts_contacts_inner.py +91 -0
  116. pingram/models/intercom_webhook_data_item_any_of_source.py +101 -0
  117. pingram/models/intercom_webhook_data_item_any_of_source_author.py +93 -0
  118. pingram/models/invite_post_response.py +89 -0
  119. pingram/models/log_query_post_body.py +109 -0
  120. pingram/models/logs_bulk_request.py +87 -0
  121. pingram/models/logs_get_response.py +95 -0
  122. pingram/models/logs_get_response_logs_inner.py +627 -0
  123. pingram/models/logs_query_response.py +87 -0
  124. pingram/models/logs_query_result_response.py +101 -0
  125. pingram/models/logs_retention_response.py +87 -0
  126. pingram/models/logs_tail_response.py +95 -0
  127. pingram/models/member_invite_request.py +89 -0
  128. pingram/models/member_update_request.py +87 -0
  129. pingram/models/message_response.py +87 -0
  130. pingram/models/notification.py +126 -0
  131. pingram/models/notification_create_request.py +97 -0
  132. pingram/models/notification_patch_request.py +112 -0
  133. pingram/models/post_email_test_request.py +99 -0
  134. pingram/models/post_email_test_response.py +89 -0
  135. pingram/models/post_senders_request_body.py +87 -0
  136. pingram/models/post_user_request.py +121 -0
  137. pingram/models/sender_post_body.py +166 -0
  138. pingram/models/sender_post_body_email.py +95 -0
  139. pingram/models/sender_post_body_inapp.py +91 -0
  140. pingram/models/sender_post_body_mobile_push.py +89 -0
  141. pingram/models/sender_post_body_options.py +103 -0
  142. pingram/models/sender_post_body_options_apn.py +99 -0
  143. pingram/models/sender_post_body_options_email.py +107 -0
  144. pingram/models/sender_post_body_options_email_attachments_inner.py +134 -0
  145. pingram/models/sender_post_body_options_email_attachments_inner_any_of.py +89 -0
  146. pingram/models/sender_post_body_options_email_attachments_inner_any_of1.py +91 -0
  147. pingram/models/sender_post_body_options_fcm.py +91 -0
  148. pingram/models/sender_post_body_options_fcm_android.py +103 -0
  149. pingram/models/sender_post_body_slack.py +123 -0
  150. pingram/models/sender_post_body_slack_metadata.py +99 -0
  151. pingram/models/sender_post_body_slack_metadata_entities_inner.py +99 -0
  152. pingram/models/sender_post_body_slack_metadata_entities_inner_external_ref.py +89 -0
  153. pingram/models/sender_post_body_sms.py +93 -0
  154. pingram/models/sender_post_body_sms_auto_reply.py +87 -0
  155. pingram/models/sender_post_body_to.py +133 -0
  156. pingram/models/sender_post_body_user.py +133 -0
  157. pingram/models/sender_post_body_web_push.py +93 -0
  158. pingram/models/sender_post_response.py +89 -0
  159. pingram/models/set_default_template_request.py +97 -0
  160. pingram/models/slack_interactivity_response.py +87 -0
  161. pingram/models/slack_oauth_request.py +89 -0
  162. pingram/models/success_response.py +87 -0
  163. pingram/models/supabase_configure_request.py +93 -0
  164. pingram/models/supabase_configure_response.py +89 -0
  165. pingram/models/supabase_o_auth_request.py +91 -0
  166. pingram/models/supabase_o_auth_response.py +89 -0
  167. pingram/models/supabase_projects_response.py +95 -0
  168. pingram/models/supabase_projects_response_projects_inner.py +95 -0
  169. pingram/models/supabase_status_response.py +93 -0
  170. pingram/models/template.py +98 -0
  171. pingram/models/template_patch_request.py +134 -0
  172. pingram/models/template_patch_request_any_of.py +97 -0
  173. pingram/models/template_patch_request_any_of1.py +103 -0
  174. pingram/models/template_patch_request_any_of1_batch.py +91 -0
  175. pingram/models/template_patch_request_any_of1_instant.py +91 -0
  176. pingram/models/template_post_request.py +131 -0
  177. pingram/models/template_post_request_batch.py +91 -0
  178. pingram/models/template_post_request_instant.py +91 -0
  179. pingram/models/update_address_request.py +91 -0
  180. pingram/models/user.py +133 -0
  181. pingram/models/user_suppression_delete_response.py +91 -0
  182. pingram/models/webhook_response.py +104 -0
  183. pingram/py.typed +0 -0
  184. pingram/rest.py +199 -0
  185. pingram_python-0.1.0.dist-info/METADATA +69 -0
  186. pingram_python-0.1.0.dist-info/RECORD +189 -0
  187. pingram_python-0.1.0.dist-info/WHEEL +5 -0
  188. pingram_python-0.1.0.dist-info/licenses/LICENSE +21 -0
  189. pingram_python-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,627 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ NotificationAPI
5
+
6
+ Internal API for notification delivery and management
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class LogsGetResponseLogsInner(BaseModel):
26
+ """
27
+ LogsGetResponseLogsInner
28
+ """ # noqa: E501
29
+ received_at: Optional[StrictStr] = None
30
+ type: Optional[StrictStr] = None
31
+ env_id: Optional[StrictStr] = Field(default=None, alias="envId")
32
+ client_id: Optional[StrictStr] = Field(default=None, alias="clientId")
33
+ agent: Optional[StrictStr] = None
34
+ ip: Optional[StrictStr] = None
35
+ request: Optional[StrictStr] = None
36
+ test: Optional[StrictBool] = None
37
+ tracking_id: StrictStr = Field(alias="trackingId")
38
+ account_id: StrictStr = Field(alias="accountId")
39
+ failed_at: Optional[StrictStr] = None
40
+ failed_code: Optional[StrictStr] = None
41
+ failed_internal: Optional[StrictStr] = None
42
+ inapp_sent_at: Optional[StrictStr] = None
43
+ inapp_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
44
+ inapp_delivered_at: Optional[StrictStr] = None
45
+ inapp_delivered_after: Optional[Union[StrictFloat, StrictInt]] = None
46
+ inapp_failed_at: Optional[StrictStr] = None
47
+ inapp_failed_code: Optional[StrictStr] = None
48
+ inapp_failed_internal: Optional[StrictStr] = None
49
+ mobile_push_failed_at: Optional[StrictStr] = None
50
+ mobile_push_failed_code: Optional[StrictStr] = None
51
+ mobile_push_failed_token: Optional[StrictStr] = None
52
+ mobile_push_failed_internal: Optional[StrictStr] = None
53
+ mobile_push_sent_at: Optional[StrictStr] = None
54
+ mobile_push_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
55
+ mobile_push_sent_token: Optional[StrictStr] = None
56
+ mobile_push_delivered_at: Optional[StrictStr] = None
57
+ mobile_push_delivered_after: Optional[Union[StrictFloat, StrictInt]] = None
58
+ email_sent_at: Optional[StrictStr] = None
59
+ email_sent_message_id: Optional[StrictStr] = None
60
+ email_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
61
+ email_delivered_at: Optional[StrictStr] = None
62
+ email_delivered_recipients: Optional[StrictStr] = None
63
+ email_delivered_after: Optional[Union[StrictFloat, StrictInt]] = None
64
+ email_failed_at: Optional[StrictStr] = None
65
+ email_failed_code: Optional[StrictStr] = None
66
+ email_failed_recipient: Optional[StrictStr] = None
67
+ email_failed_diagnostic_code: Optional[StrictStr] = None
68
+ email_failed_internal: Optional[StrictStr] = None
69
+ email_opened_at: Optional[StrictStr] = None
70
+ email_opened_user_agent: Optional[StrictStr] = None
71
+ email_opened_ip: Optional[StrictStr] = None
72
+ email_clicked_at: Optional[StrictStr] = None
73
+ email_clicked_user_agent: Optional[StrictStr] = None
74
+ email_clicked_ip: Optional[StrictStr] = None
75
+ email_clicked_link: Optional[StrictStr] = None
76
+ email_clicked_link_tags: Optional[StrictStr] = None
77
+ email_inbound_at: Optional[StrictStr] = None
78
+ email_inbound_from: Optional[StrictStr] = None
79
+ email_inbound_from_name: Optional[StrictStr] = None
80
+ email_inbound_to: Optional[StrictStr] = None
81
+ email_inbound_cc: Optional[StrictStr] = None
82
+ email_inbound_bcc: Optional[StrictStr] = None
83
+ email_inbound_reply_to: Optional[StrictStr] = None
84
+ email_inbound_inbox: Optional[StrictStr] = None
85
+ email_inbound_subject: Optional[StrictStr] = None
86
+ email_inbound_body_text: Optional[StrictStr] = None
87
+ email_inbound_body_html: Optional[StrictStr] = None
88
+ email_inbound_has_attachments: Optional[StrictBool] = None
89
+ email_inbound_attachment_count: Optional[Union[StrictFloat, StrictInt]] = None
90
+ email_inbound_message_id: Optional[StrictStr] = None
91
+ email_inbound_in_reply_to: Optional[StrictStr] = None
92
+ email_inbound_references: Optional[StrictStr] = None
93
+ email_inbound_webhook_delivered: Optional[StrictBool] = None
94
+ email_inbound_resolution_type: Optional[StrictStr] = None
95
+ sms_inbound_at: Optional[StrictStr] = None
96
+ sms_inbound_from: Optional[StrictStr] = None
97
+ sms_inbound_text: Optional[StrictStr] = None
98
+ sms_inbound_webhook_delivered: Optional[StrictBool] = None
99
+ sms_replied_at: Optional[StrictStr] = None
100
+ sms_replied_to: Optional[StrictStr] = None
101
+ sms_replied_text: Optional[StrictStr] = None
102
+ sms_replied_segments: Optional[Union[StrictFloat, StrictInt]] = None
103
+ sms_replied_encoding: Optional[StrictStr] = None
104
+ web_push_sent_token: Optional[StrictStr] = None
105
+ web_push_sent_at: Optional[StrictStr] = None
106
+ web_push_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
107
+ web_push_delivered_at: Optional[StrictStr] = None
108
+ web_push_delivered_after: Optional[Union[StrictFloat, StrictInt]] = None
109
+ web_push_delivered_token: Optional[StrictStr] = None
110
+ web_push_delivered_internal: Optional[StrictStr] = None
111
+ web_push_failed_at: Optional[StrictStr] = None
112
+ web_push_failed_token: Optional[StrictStr] = None
113
+ web_push_failed_code: Optional[StrictStr] = None
114
+ web_push_failed_internal: Optional[StrictStr] = None
115
+ processed_at: Optional[StrictStr] = None
116
+ ignored: Optional[StrictStr] = None
117
+ scheduled_for: Optional[StrictStr] = None
118
+ user_id: Optional[StrictStr] = None
119
+ user_email: Optional[StrictStr] = None
120
+ user_number: Optional[StrictStr] = None
121
+ email_routing: Optional[StrictStr] = None
122
+ email_routing_reason: Optional[StrictStr] = None
123
+ sms_routing: Optional[StrictStr] = None
124
+ sms_routing_reason: Optional[StrictStr] = None
125
+ web_push_routing: Optional[StrictStr] = None
126
+ web_push_routing_reason: Optional[StrictStr] = None
127
+ mobile_push_routing: Optional[StrictStr] = None
128
+ mobile_push_routing_reason: Optional[StrictStr] = None
129
+ call_routing: Optional[StrictStr] = None
130
+ call_routing_reason: Optional[StrictStr] = None
131
+ inapp_routing: Optional[StrictStr] = None
132
+ inapp_routing_reason: Optional[StrictStr] = None
133
+ slack_routing: Optional[StrictStr] = None
134
+ slack_routing_reason: Optional[StrictStr] = None
135
+ email_preview: Optional[StrictStr] = None
136
+ sms_preview: Optional[StrictStr] = None
137
+ call_preview: Optional[StrictStr] = None
138
+ web_push_preview: Optional[StrictStr] = None
139
+ mobile_push_preview: Optional[StrictStr] = None
140
+ slack_preview: Optional[StrictStr] = None
141
+ inapp_preview: Optional[StrictStr] = None
142
+ slack_sent_at: Optional[StrictStr] = None
143
+ slack_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
144
+ slack_delivered_at: Optional[StrictStr] = None
145
+ slack_delivered_after: Optional[Union[StrictFloat, StrictInt]] = None
146
+ slack_delivered_internal: Optional[StrictStr] = None
147
+ slack_failed_at: Optional[StrictStr] = None
148
+ slack_failed_code: Optional[StrictStr] = None
149
+ slack_failed_internal: Optional[StrictStr] = None
150
+ call_sent_at: Optional[StrictStr] = None
151
+ call_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
152
+ call_sent_from: Optional[StrictStr] = None
153
+ call_delivered_at: Optional[StrictStr] = None
154
+ call_delivered_after: Optional[Union[StrictFloat, StrictInt]] = None
155
+ call_delivered_code: Optional[StrictStr] = None
156
+ call_failed_at: Optional[StrictStr] = None
157
+ call_failed_code: Optional[StrictStr] = None
158
+ call_failed_internal: Optional[StrictStr] = None
159
+ sms_failed_at: Optional[StrictStr] = None
160
+ sms_failed_code: Optional[StrictStr] = None
161
+ sms_failed_internal: Optional[StrictStr] = None
162
+ sms_sent_at: Optional[StrictStr] = None
163
+ sms_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
164
+ sms_sent_from: Optional[StrictStr] = None
165
+ sms_sent_carrier: Optional[StrictStr] = None
166
+ sms_sent_line_type: Optional[StrictStr] = None
167
+ sms_sent_encoding: Optional[StrictStr] = None
168
+ sms_sent_segments: Optional[Union[StrictFloat, StrictInt]] = None
169
+ sms_sent_parts: Optional[Union[StrictFloat, StrictInt]] = None
170
+ sms_delivered_at: Optional[StrictStr] = None
171
+ sms_delivered_after: Optional[Union[StrictFloat, StrictInt]] = None
172
+ schedule_updated_at: Optional[StrictStr] = None
173
+ schedule_updated_to: Optional[StrictStr] = None
174
+ schedule_deleted_at: Optional[StrictStr] = None
175
+ __properties: ClassVar[List[str]] = ["received_at", "type", "envId", "clientId", "agent", "ip", "request", "test", "trackingId", "accountId", "failed_at", "failed_code", "failed_internal", "inapp_sent_at", "inapp_sent_after", "inapp_delivered_at", "inapp_delivered_after", "inapp_failed_at", "inapp_failed_code", "inapp_failed_internal", "mobile_push_failed_at", "mobile_push_failed_code", "mobile_push_failed_token", "mobile_push_failed_internal", "mobile_push_sent_at", "mobile_push_sent_after", "mobile_push_sent_token", "mobile_push_delivered_at", "mobile_push_delivered_after", "email_sent_at", "email_sent_message_id", "email_sent_after", "email_delivered_at", "email_delivered_recipients", "email_delivered_after", "email_failed_at", "email_failed_code", "email_failed_recipient", "email_failed_diagnostic_code", "email_failed_internal", "email_opened_at", "email_opened_user_agent", "email_opened_ip", "email_clicked_at", "email_clicked_user_agent", "email_clicked_ip", "email_clicked_link", "email_clicked_link_tags", "email_inbound_at", "email_inbound_from", "email_inbound_from_name", "email_inbound_to", "email_inbound_cc", "email_inbound_bcc", "email_inbound_reply_to", "email_inbound_inbox", "email_inbound_subject", "email_inbound_body_text", "email_inbound_body_html", "email_inbound_has_attachments", "email_inbound_attachment_count", "email_inbound_message_id", "email_inbound_in_reply_to", "email_inbound_references", "email_inbound_webhook_delivered", "email_inbound_resolution_type", "sms_inbound_at", "sms_inbound_from", "sms_inbound_text", "sms_inbound_webhook_delivered", "sms_replied_at", "sms_replied_to", "sms_replied_text", "sms_replied_segments", "sms_replied_encoding", "web_push_sent_token", "web_push_sent_at", "web_push_sent_after", "web_push_delivered_at", "web_push_delivered_after", "web_push_delivered_token", "web_push_delivered_internal", "web_push_failed_at", "web_push_failed_token", "web_push_failed_code", "web_push_failed_internal", "processed_at", "ignored", "scheduled_for", "user_id", "user_email", "user_number", "email_routing", "email_routing_reason", "sms_routing", "sms_routing_reason", "web_push_routing", "web_push_routing_reason", "mobile_push_routing", "mobile_push_routing_reason", "call_routing", "call_routing_reason", "inapp_routing", "inapp_routing_reason", "slack_routing", "slack_routing_reason", "email_preview", "sms_preview", "call_preview", "web_push_preview", "mobile_push_preview", "slack_preview", "inapp_preview", "slack_sent_at", "slack_sent_after", "slack_delivered_at", "slack_delivered_after", "slack_delivered_internal", "slack_failed_at", "slack_failed_code", "slack_failed_internal", "call_sent_at", "call_sent_after", "call_sent_from", "call_delivered_at", "call_delivered_after", "call_delivered_code", "call_failed_at", "call_failed_code", "call_failed_internal", "sms_failed_at", "sms_failed_code", "sms_failed_internal", "sms_sent_at", "sms_sent_after", "sms_sent_from", "sms_sent_carrier", "sms_sent_line_type", "sms_sent_encoding", "sms_sent_segments", "sms_sent_parts", "sms_delivered_at", "sms_delivered_after", "schedule_updated_at", "schedule_updated_to", "schedule_deleted_at"]
176
+
177
+ @field_validator('failed_code')
178
+ def failed_code_validate_enum(cls, value):
179
+ """Validates the enum"""
180
+ if value is None:
181
+ return value
182
+
183
+ if value not in set(['SPAM_CONTENT', 'INVALID_SCHEDULE_FORMAT', 'SCHEDULE_RESOURCE_NOT_FOUND', 'UNKNOWN']):
184
+ raise ValueError("must be one of enum values ('SPAM_CONTENT', 'INVALID_SCHEDULE_FORMAT', 'SCHEDULE_RESOURCE_NOT_FOUND', 'UNKNOWN')")
185
+ return value
186
+
187
+ @field_validator('inapp_failed_code')
188
+ def inapp_failed_code_validate_enum(cls, value):
189
+ """Validates the enum"""
190
+ if value is None:
191
+ return value
192
+
193
+ if value not in set(['IN_APP_WEB_FAILED', 'UNKNOWN']):
194
+ raise ValueError("must be one of enum values ('IN_APP_WEB_FAILED', 'UNKNOWN')")
195
+ return value
196
+
197
+ @field_validator('mobile_push_failed_code')
198
+ def mobile_push_failed_code_validate_enum(cls, value):
199
+ """Validates the enum"""
200
+ if value is None:
201
+ return value
202
+
203
+ if value not in set(['NO_APN_CONFIG', 'NO_FCM_CONFIG', 'INVALID_APN_TOKEN', 'INVALID_FCM_TOKEN', 'UNKNOWN']):
204
+ raise ValueError("must be one of enum values ('NO_APN_CONFIG', 'NO_FCM_CONFIG', 'INVALID_APN_TOKEN', 'INVALID_FCM_TOKEN', 'UNKNOWN')")
205
+ return value
206
+
207
+ @field_validator('email_failed_code')
208
+ def email_failed_code_validate_enum(cls, value):
209
+ """Validates the enum"""
210
+ if value is None:
211
+ return value
212
+
213
+ if value not in set(['UNVERIFIED_SENDER', 'PERMANENT_GENERAL_BOUNCE', 'PERMANENT_NO_EMAIL_BOUNCE', 'PERMANENT_SUPPRESSED_BOUNCE', 'TRANSIENT_GENERAL_BOUNCE', 'TRANSIENT_MAILBOX_FULL_BOUNCE', 'TRANSIENT_MESSAGE_TOO_LARGE_BOUNCE', 'TRANSIENT_CONTENT_REJECTED_BOUNCE', 'TRANSIENT_ATTACHMENT_REJECTED_BOUNCE', 'UNDETERMINED_BOUNCE', 'COMPLAINT_ABUSE', 'COMPLAINT_AUTH', 'COMPLAINT_FRAUD', 'COMPLAINT_NOT_SPAM', 'COMPLAINT_OTHER', 'COMPLAINT_VIRUS', 'SUPPRESSED_COMPLAINT', 'SUPPRESSED_BOUNCE', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE']):
214
+ raise ValueError("must be one of enum values ('UNVERIFIED_SENDER', 'PERMANENT_GENERAL_BOUNCE', 'PERMANENT_NO_EMAIL_BOUNCE', 'PERMANENT_SUPPRESSED_BOUNCE', 'TRANSIENT_GENERAL_BOUNCE', 'TRANSIENT_MAILBOX_FULL_BOUNCE', 'TRANSIENT_MESSAGE_TOO_LARGE_BOUNCE', 'TRANSIENT_CONTENT_REJECTED_BOUNCE', 'TRANSIENT_ATTACHMENT_REJECTED_BOUNCE', 'UNDETERMINED_BOUNCE', 'COMPLAINT_ABUSE', 'COMPLAINT_AUTH', 'COMPLAINT_FRAUD', 'COMPLAINT_NOT_SPAM', 'COMPLAINT_OTHER', 'COMPLAINT_VIRUS', 'SUPPRESSED_COMPLAINT', 'SUPPRESSED_BOUNCE', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE')")
215
+ return value
216
+
217
+ @field_validator('email_inbound_resolution_type')
218
+ def email_inbound_resolution_type_validate_enum(cls, value):
219
+ """Validates the enum"""
220
+ if value is None:
221
+ return value
222
+
223
+ if value not in set(['reply', 'builtin', 'custom']):
224
+ raise ValueError("must be one of enum values ('reply', 'builtin', 'custom')")
225
+ return value
226
+
227
+ @field_validator('web_push_failed_code')
228
+ def web_push_failed_code_validate_enum(cls, value):
229
+ """Validates the enum"""
230
+ if value is None:
231
+ return value
232
+
233
+ if value not in set(['UNSUBSCIRBED_OR_EXPIRED', 'UNKNOWN', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE']):
234
+ raise ValueError("must be one of enum values ('UNSUBSCIRBED_OR_EXPIRED', 'UNKNOWN', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE')")
235
+ return value
236
+
237
+ @field_validator('ignored')
238
+ def ignored_validate_enum(cls, value):
239
+ """Validates the enum"""
240
+ if value is None:
241
+ return value
242
+
243
+ if value not in set(['THROTTLING', 'DEDUPLICATION', 'DISABLED_NOTIFICATION', 'ALL_CHANNELS_IGNORED']):
244
+ raise ValueError("must be one of enum values ('THROTTLING', 'DEDUPLICATION', 'DISABLED_NOTIFICATION', 'ALL_CHANNELS_IGNORED')")
245
+ return value
246
+
247
+ @field_validator('email_routing')
248
+ def email_routing_validate_enum(cls, value):
249
+ """Validates the enum"""
250
+ if value is None:
251
+ return value
252
+
253
+ if value not in set(['OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED']):
254
+ raise ValueError("must be one of enum values ('OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED')")
255
+ return value
256
+
257
+ @field_validator('email_routing_reason')
258
+ def email_routing_reason_validate_enum(cls, value):
259
+ """Validates the enum"""
260
+ if value is None:
261
+ return value
262
+
263
+ if value not in set(['IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY']):
264
+ raise ValueError("must be one of enum values ('IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY')")
265
+ return value
266
+
267
+ @field_validator('sms_routing')
268
+ def sms_routing_validate_enum(cls, value):
269
+ """Validates the enum"""
270
+ if value is None:
271
+ return value
272
+
273
+ if value not in set(['OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED']):
274
+ raise ValueError("must be one of enum values ('OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED')")
275
+ return value
276
+
277
+ @field_validator('sms_routing_reason')
278
+ def sms_routing_reason_validate_enum(cls, value):
279
+ """Validates the enum"""
280
+ if value is None:
281
+ return value
282
+
283
+ if value not in set(['IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY']):
284
+ raise ValueError("must be one of enum values ('IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY')")
285
+ return value
286
+
287
+ @field_validator('web_push_routing')
288
+ def web_push_routing_validate_enum(cls, value):
289
+ """Validates the enum"""
290
+ if value is None:
291
+ return value
292
+
293
+ if value not in set(['OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED']):
294
+ raise ValueError("must be one of enum values ('OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED')")
295
+ return value
296
+
297
+ @field_validator('web_push_routing_reason')
298
+ def web_push_routing_reason_validate_enum(cls, value):
299
+ """Validates the enum"""
300
+ if value is None:
301
+ return value
302
+
303
+ if value not in set(['IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY']):
304
+ raise ValueError("must be one of enum values ('IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY')")
305
+ return value
306
+
307
+ @field_validator('mobile_push_routing')
308
+ def mobile_push_routing_validate_enum(cls, value):
309
+ """Validates the enum"""
310
+ if value is None:
311
+ return value
312
+
313
+ if value not in set(['OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED']):
314
+ raise ValueError("must be one of enum values ('OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED')")
315
+ return value
316
+
317
+ @field_validator('mobile_push_routing_reason')
318
+ def mobile_push_routing_reason_validate_enum(cls, value):
319
+ """Validates the enum"""
320
+ if value is None:
321
+ return value
322
+
323
+ if value not in set(['IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY']):
324
+ raise ValueError("must be one of enum values ('IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY')")
325
+ return value
326
+
327
+ @field_validator('call_routing')
328
+ def call_routing_validate_enum(cls, value):
329
+ """Validates the enum"""
330
+ if value is None:
331
+ return value
332
+
333
+ if value not in set(['OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED']):
334
+ raise ValueError("must be one of enum values ('OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED')")
335
+ return value
336
+
337
+ @field_validator('call_routing_reason')
338
+ def call_routing_reason_validate_enum(cls, value):
339
+ """Validates the enum"""
340
+ if value is None:
341
+ return value
342
+
343
+ if value not in set(['IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY']):
344
+ raise ValueError("must be one of enum values ('IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY')")
345
+ return value
346
+
347
+ @field_validator('inapp_routing')
348
+ def inapp_routing_validate_enum(cls, value):
349
+ """Validates the enum"""
350
+ if value is None:
351
+ return value
352
+
353
+ if value not in set(['OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED']):
354
+ raise ValueError("must be one of enum values ('OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED')")
355
+ return value
356
+
357
+ @field_validator('inapp_routing_reason')
358
+ def inapp_routing_reason_validate_enum(cls, value):
359
+ """Validates the enum"""
360
+ if value is None:
361
+ return value
362
+
363
+ if value not in set(['IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY']):
364
+ raise ValueError("must be one of enum values ('IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY')")
365
+ return value
366
+
367
+ @field_validator('slack_routing')
368
+ def slack_routing_validate_enum(cls, value):
369
+ """Validates the enum"""
370
+ if value is None:
371
+ return value
372
+
373
+ if value not in set(['OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED']):
374
+ raise ValueError("must be one of enum values ('OFF', 'SEND', 'BATCH', 'IGNORE', 'SCHEDULE', 'THROTTLED', 'DEDUPLICATED')")
375
+ return value
376
+
377
+ @field_validator('slack_routing_reason')
378
+ def slack_routing_reason_validate_enum(cls, value):
379
+ """Validates the enum"""
380
+ if value is None:
381
+ return value
382
+
383
+ if value not in set(['IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY']):
384
+ raise ValueError("must be one of enum values ('IGNORE_BY_PREFERENCES', 'IGNORE_BY_ENVIRONMENT', 'IGNORE_BY_DEFAULT_DELIVERY')")
385
+ return value
386
+
387
+ @field_validator('slack_failed_code')
388
+ def slack_failed_code_validate_enum(cls, value):
389
+ """Validates the enum"""
390
+ if value is None:
391
+ return value
392
+
393
+ if value not in set(['CHANNEL_NOT_FOUND', 'NOT_IN_CHANNEL', 'CHANNEL_ARCHIVED', 'MESSAGE_TOO_LONG', 'NO_TEXT', 'RESTRICTED_ACTION', 'TOKEN_EXPIRED', 'INVALID_AUTH', 'UNKNOWN', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE']):
394
+ raise ValueError("must be one of enum values ('CHANNEL_NOT_FOUND', 'NOT_IN_CHANNEL', 'CHANNEL_ARCHIVED', 'MESSAGE_TOO_LONG', 'NO_TEXT', 'RESTRICTED_ACTION', 'TOKEN_EXPIRED', 'INVALID_AUTH', 'UNKNOWN', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE')")
395
+ return value
396
+
397
+ @field_validator('call_delivered_code')
398
+ def call_delivered_code_validate_enum(cls, value):
399
+ """Validates the enum"""
400
+ if value is None:
401
+ return value
402
+
403
+ if value not in set(['COMPLETED', 'BUSY', 'NO_ANSWER', 'UNKNOWN']):
404
+ raise ValueError("must be one of enum values ('COMPLETED', 'BUSY', 'NO_ANSWER', 'UNKNOWN')")
405
+ return value
406
+
407
+ @field_validator('call_failed_code')
408
+ def call_failed_code_validate_enum(cls, value):
409
+ """Validates the enum"""
410
+ if value is None:
411
+ return value
412
+
413
+ if value not in set(['13224', '21211', '21215', '21265', '21610', '21614', '21612', '30005', '30006', '30007', '30008', '30453', '40001', '40002', '40300', 'Unknown', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE']):
414
+ raise ValueError("must be one of enum values ('13224', '21211', '21215', '21265', '21610', '21614', '21612', '30005', '30006', '30007', '30008', '30453', '40001', '40002', '40300', 'Unknown', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE')")
415
+ return value
416
+
417
+ @field_validator('sms_failed_code')
418
+ def sms_failed_code_validate_enum(cls, value):
419
+ """Validates the enum"""
420
+ if value is None:
421
+ return value
422
+
423
+ if value not in set(['13224', '21211', '21215', '21265', '21610', '21614', '21612', '30005', '30006', '30007', '30008', '30453', '40001', '40002', '40300', 'Unknown', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE']):
424
+ raise ValueError("must be one of enum values ('13224', '21211', '21215', '21265', '21610', '21614', '21612', '30005', '30006', '30007', '30008', '30453', '40001', '40002', '40300', 'Unknown', 'NO_ADDRESS', 'USAGE_LIMIT', 'VERIFICATION_LIMIT', 'TEMPLATE_NOT_FOUND', 'NO_DEFAULT_TEMPLATE')")
425
+ return value
426
+
427
+ model_config = ConfigDict(
428
+ populate_by_name=True,
429
+ validate_assignment=True,
430
+ protected_namespaces=(),
431
+ )
432
+
433
+
434
+ def to_str(self) -> str:
435
+ """Returns the string representation of the model using alias"""
436
+ return pprint.pformat(self.model_dump(by_alias=True))
437
+
438
+ def to_json(self) -> str:
439
+ """Returns the JSON representation of the model using alias"""
440
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
441
+ return json.dumps(self.to_dict())
442
+
443
+ @classmethod
444
+ def from_json(cls, json_str: str) -> Optional[Self]:
445
+ """Create an instance of LogsGetResponseLogsInner from a JSON string"""
446
+ return cls.from_dict(json.loads(json_str))
447
+
448
+ def to_dict(self) -> Dict[str, Any]:
449
+ """Return the dictionary representation of the model using alias.
450
+
451
+ This has the following differences from calling pydantic's
452
+ `self.model_dump(by_alias=True)`:
453
+
454
+ * `None` is only added to the output dict for nullable fields that
455
+ were set at model initialization. Other fields with value `None`
456
+ are ignored.
457
+ """
458
+ excluded_fields: Set[str] = set([
459
+ ])
460
+
461
+ _dict = self.model_dump(
462
+ by_alias=True,
463
+ exclude=excluded_fields,
464
+ exclude_none=True,
465
+ )
466
+ return _dict
467
+
468
+ @classmethod
469
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
470
+ """Create an instance of LogsGetResponseLogsInner from a dict"""
471
+ if obj is None:
472
+ return None
473
+
474
+ if not isinstance(obj, dict):
475
+ return cls.model_validate(obj)
476
+
477
+ _obj = cls.model_validate({
478
+ "received_at": obj.get("received_at"),
479
+ "type": obj.get("type"),
480
+ "envId": obj.get("envId"),
481
+ "clientId": obj.get("clientId"),
482
+ "agent": obj.get("agent"),
483
+ "ip": obj.get("ip"),
484
+ "request": obj.get("request"),
485
+ "test": obj.get("test"),
486
+ "trackingId": obj.get("trackingId"),
487
+ "accountId": obj.get("accountId"),
488
+ "failed_at": obj.get("failed_at"),
489
+ "failed_code": obj.get("failed_code"),
490
+ "failed_internal": obj.get("failed_internal"),
491
+ "inapp_sent_at": obj.get("inapp_sent_at"),
492
+ "inapp_sent_after": obj.get("inapp_sent_after"),
493
+ "inapp_delivered_at": obj.get("inapp_delivered_at"),
494
+ "inapp_delivered_after": obj.get("inapp_delivered_after"),
495
+ "inapp_failed_at": obj.get("inapp_failed_at"),
496
+ "inapp_failed_code": obj.get("inapp_failed_code"),
497
+ "inapp_failed_internal": obj.get("inapp_failed_internal"),
498
+ "mobile_push_failed_at": obj.get("mobile_push_failed_at"),
499
+ "mobile_push_failed_code": obj.get("mobile_push_failed_code"),
500
+ "mobile_push_failed_token": obj.get("mobile_push_failed_token"),
501
+ "mobile_push_failed_internal": obj.get("mobile_push_failed_internal"),
502
+ "mobile_push_sent_at": obj.get("mobile_push_sent_at"),
503
+ "mobile_push_sent_after": obj.get("mobile_push_sent_after"),
504
+ "mobile_push_sent_token": obj.get("mobile_push_sent_token"),
505
+ "mobile_push_delivered_at": obj.get("mobile_push_delivered_at"),
506
+ "mobile_push_delivered_after": obj.get("mobile_push_delivered_after"),
507
+ "email_sent_at": obj.get("email_sent_at"),
508
+ "email_sent_message_id": obj.get("email_sent_message_id"),
509
+ "email_sent_after": obj.get("email_sent_after"),
510
+ "email_delivered_at": obj.get("email_delivered_at"),
511
+ "email_delivered_recipients": obj.get("email_delivered_recipients"),
512
+ "email_delivered_after": obj.get("email_delivered_after"),
513
+ "email_failed_at": obj.get("email_failed_at"),
514
+ "email_failed_code": obj.get("email_failed_code"),
515
+ "email_failed_recipient": obj.get("email_failed_recipient"),
516
+ "email_failed_diagnostic_code": obj.get("email_failed_diagnostic_code"),
517
+ "email_failed_internal": obj.get("email_failed_internal"),
518
+ "email_opened_at": obj.get("email_opened_at"),
519
+ "email_opened_user_agent": obj.get("email_opened_user_agent"),
520
+ "email_opened_ip": obj.get("email_opened_ip"),
521
+ "email_clicked_at": obj.get("email_clicked_at"),
522
+ "email_clicked_user_agent": obj.get("email_clicked_user_agent"),
523
+ "email_clicked_ip": obj.get("email_clicked_ip"),
524
+ "email_clicked_link": obj.get("email_clicked_link"),
525
+ "email_clicked_link_tags": obj.get("email_clicked_link_tags"),
526
+ "email_inbound_at": obj.get("email_inbound_at"),
527
+ "email_inbound_from": obj.get("email_inbound_from"),
528
+ "email_inbound_from_name": obj.get("email_inbound_from_name"),
529
+ "email_inbound_to": obj.get("email_inbound_to"),
530
+ "email_inbound_cc": obj.get("email_inbound_cc"),
531
+ "email_inbound_bcc": obj.get("email_inbound_bcc"),
532
+ "email_inbound_reply_to": obj.get("email_inbound_reply_to"),
533
+ "email_inbound_inbox": obj.get("email_inbound_inbox"),
534
+ "email_inbound_subject": obj.get("email_inbound_subject"),
535
+ "email_inbound_body_text": obj.get("email_inbound_body_text"),
536
+ "email_inbound_body_html": obj.get("email_inbound_body_html"),
537
+ "email_inbound_has_attachments": obj.get("email_inbound_has_attachments"),
538
+ "email_inbound_attachment_count": obj.get("email_inbound_attachment_count"),
539
+ "email_inbound_message_id": obj.get("email_inbound_message_id"),
540
+ "email_inbound_in_reply_to": obj.get("email_inbound_in_reply_to"),
541
+ "email_inbound_references": obj.get("email_inbound_references"),
542
+ "email_inbound_webhook_delivered": obj.get("email_inbound_webhook_delivered"),
543
+ "email_inbound_resolution_type": obj.get("email_inbound_resolution_type"),
544
+ "sms_inbound_at": obj.get("sms_inbound_at"),
545
+ "sms_inbound_from": obj.get("sms_inbound_from"),
546
+ "sms_inbound_text": obj.get("sms_inbound_text"),
547
+ "sms_inbound_webhook_delivered": obj.get("sms_inbound_webhook_delivered"),
548
+ "sms_replied_at": obj.get("sms_replied_at"),
549
+ "sms_replied_to": obj.get("sms_replied_to"),
550
+ "sms_replied_text": obj.get("sms_replied_text"),
551
+ "sms_replied_segments": obj.get("sms_replied_segments"),
552
+ "sms_replied_encoding": obj.get("sms_replied_encoding"),
553
+ "web_push_sent_token": obj.get("web_push_sent_token"),
554
+ "web_push_sent_at": obj.get("web_push_sent_at"),
555
+ "web_push_sent_after": obj.get("web_push_sent_after"),
556
+ "web_push_delivered_at": obj.get("web_push_delivered_at"),
557
+ "web_push_delivered_after": obj.get("web_push_delivered_after"),
558
+ "web_push_delivered_token": obj.get("web_push_delivered_token"),
559
+ "web_push_delivered_internal": obj.get("web_push_delivered_internal"),
560
+ "web_push_failed_at": obj.get("web_push_failed_at"),
561
+ "web_push_failed_token": obj.get("web_push_failed_token"),
562
+ "web_push_failed_code": obj.get("web_push_failed_code"),
563
+ "web_push_failed_internal": obj.get("web_push_failed_internal"),
564
+ "processed_at": obj.get("processed_at"),
565
+ "ignored": obj.get("ignored"),
566
+ "scheduled_for": obj.get("scheduled_for"),
567
+ "user_id": obj.get("user_id"),
568
+ "user_email": obj.get("user_email"),
569
+ "user_number": obj.get("user_number"),
570
+ "email_routing": obj.get("email_routing"),
571
+ "email_routing_reason": obj.get("email_routing_reason"),
572
+ "sms_routing": obj.get("sms_routing"),
573
+ "sms_routing_reason": obj.get("sms_routing_reason"),
574
+ "web_push_routing": obj.get("web_push_routing"),
575
+ "web_push_routing_reason": obj.get("web_push_routing_reason"),
576
+ "mobile_push_routing": obj.get("mobile_push_routing"),
577
+ "mobile_push_routing_reason": obj.get("mobile_push_routing_reason"),
578
+ "call_routing": obj.get("call_routing"),
579
+ "call_routing_reason": obj.get("call_routing_reason"),
580
+ "inapp_routing": obj.get("inapp_routing"),
581
+ "inapp_routing_reason": obj.get("inapp_routing_reason"),
582
+ "slack_routing": obj.get("slack_routing"),
583
+ "slack_routing_reason": obj.get("slack_routing_reason"),
584
+ "email_preview": obj.get("email_preview"),
585
+ "sms_preview": obj.get("sms_preview"),
586
+ "call_preview": obj.get("call_preview"),
587
+ "web_push_preview": obj.get("web_push_preview"),
588
+ "mobile_push_preview": obj.get("mobile_push_preview"),
589
+ "slack_preview": obj.get("slack_preview"),
590
+ "inapp_preview": obj.get("inapp_preview"),
591
+ "slack_sent_at": obj.get("slack_sent_at"),
592
+ "slack_sent_after": obj.get("slack_sent_after"),
593
+ "slack_delivered_at": obj.get("slack_delivered_at"),
594
+ "slack_delivered_after": obj.get("slack_delivered_after"),
595
+ "slack_delivered_internal": obj.get("slack_delivered_internal"),
596
+ "slack_failed_at": obj.get("slack_failed_at"),
597
+ "slack_failed_code": obj.get("slack_failed_code"),
598
+ "slack_failed_internal": obj.get("slack_failed_internal"),
599
+ "call_sent_at": obj.get("call_sent_at"),
600
+ "call_sent_after": obj.get("call_sent_after"),
601
+ "call_sent_from": obj.get("call_sent_from"),
602
+ "call_delivered_at": obj.get("call_delivered_at"),
603
+ "call_delivered_after": obj.get("call_delivered_after"),
604
+ "call_delivered_code": obj.get("call_delivered_code"),
605
+ "call_failed_at": obj.get("call_failed_at"),
606
+ "call_failed_code": obj.get("call_failed_code"),
607
+ "call_failed_internal": obj.get("call_failed_internal"),
608
+ "sms_failed_at": obj.get("sms_failed_at"),
609
+ "sms_failed_code": obj.get("sms_failed_code"),
610
+ "sms_failed_internal": obj.get("sms_failed_internal"),
611
+ "sms_sent_at": obj.get("sms_sent_at"),
612
+ "sms_sent_after": obj.get("sms_sent_after"),
613
+ "sms_sent_from": obj.get("sms_sent_from"),
614
+ "sms_sent_carrier": obj.get("sms_sent_carrier"),
615
+ "sms_sent_line_type": obj.get("sms_sent_line_type"),
616
+ "sms_sent_encoding": obj.get("sms_sent_encoding"),
617
+ "sms_sent_segments": obj.get("sms_sent_segments"),
618
+ "sms_sent_parts": obj.get("sms_sent_parts"),
619
+ "sms_delivered_at": obj.get("sms_delivered_at"),
620
+ "sms_delivered_after": obj.get("sms_delivered_after"),
621
+ "schedule_updated_at": obj.get("schedule_updated_at"),
622
+ "schedule_updated_to": obj.get("schedule_updated_to"),
623
+ "schedule_deleted_at": obj.get("schedule_deleted_at")
624
+ })
625
+ return _obj
626
+
627
+