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
pingram/exceptions.py ADDED
@@ -0,0 +1,219 @@
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
+ from typing import Any, Optional
15
+ from typing_extensions import Self
16
+
17
+ class OpenApiException(Exception):
18
+ """The base exception class for all OpenAPIExceptions"""
19
+
20
+
21
+ class ApiTypeError(OpenApiException, TypeError):
22
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
23
+ key_type=None) -> None:
24
+ """ Raises an exception for TypeErrors
25
+
26
+ Args:
27
+ msg (str): the exception message
28
+
29
+ Keyword Args:
30
+ path_to_item (list): a list of keys an indices to get to the
31
+ current_item
32
+ None if unset
33
+ valid_classes (tuple): the primitive classes that current item
34
+ should be an instance of
35
+ None if unset
36
+ key_type (bool): False if our value is a value in a dict
37
+ True if it is a key in a dict
38
+ False if our item is an item in a list
39
+ None if unset
40
+ """
41
+ self.path_to_item = path_to_item
42
+ self.valid_classes = valid_classes
43
+ self.key_type = key_type
44
+ full_msg = msg
45
+ if path_to_item:
46
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
47
+ super(ApiTypeError, self).__init__(full_msg)
48
+
49
+
50
+ class ApiValueError(OpenApiException, ValueError):
51
+ def __init__(self, msg, path_to_item=None) -> None:
52
+ """
53
+ Args:
54
+ msg (str): the exception message
55
+
56
+ Keyword Args:
57
+ path_to_item (list) the path to the exception in the
58
+ received_data dict. None if unset
59
+ """
60
+
61
+ self.path_to_item = path_to_item
62
+ full_msg = msg
63
+ if path_to_item:
64
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
65
+ super(ApiValueError, self).__init__(full_msg)
66
+
67
+
68
+ class ApiAttributeError(OpenApiException, AttributeError):
69
+ def __init__(self, msg, path_to_item=None) -> None:
70
+ """
71
+ Raised when an attribute reference or assignment fails.
72
+
73
+ Args:
74
+ msg (str): the exception message
75
+
76
+ Keyword Args:
77
+ path_to_item (None/list) the path to the exception in the
78
+ received_data dict
79
+ """
80
+ self.path_to_item = path_to_item
81
+ full_msg = msg
82
+ if path_to_item:
83
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
84
+ super(ApiAttributeError, self).__init__(full_msg)
85
+
86
+
87
+ class ApiKeyError(OpenApiException, KeyError):
88
+ def __init__(self, msg, path_to_item=None) -> None:
89
+ """
90
+ Args:
91
+ msg (str): the exception message
92
+
93
+ Keyword Args:
94
+ path_to_item (None/list) the path to the exception in the
95
+ received_data dict
96
+ """
97
+ self.path_to_item = path_to_item
98
+ full_msg = msg
99
+ if path_to_item:
100
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
101
+ super(ApiKeyError, self).__init__(full_msg)
102
+
103
+
104
+ class ApiException(OpenApiException):
105
+
106
+ def __init__(
107
+ self,
108
+ status=None,
109
+ reason=None,
110
+ http_resp=None,
111
+ *,
112
+ body: Optional[str] = None,
113
+ data: Optional[Any] = None,
114
+ ) -> None:
115
+ self.status = status
116
+ self.reason = reason
117
+ self.body = body
118
+ self.data = data
119
+ self.headers = None
120
+
121
+ if http_resp:
122
+ if self.status is None:
123
+ self.status = http_resp.status
124
+ if self.reason is None:
125
+ self.reason = http_resp.reason
126
+ if self.body is None:
127
+ try:
128
+ self.body = http_resp.data.decode('utf-8')
129
+ except Exception:
130
+ pass
131
+ self.headers = http_resp.headers
132
+
133
+ @classmethod
134
+ def from_response(
135
+ cls,
136
+ *,
137
+ http_resp,
138
+ body: Optional[str],
139
+ data: Optional[Any],
140
+ ) -> Self:
141
+ if http_resp.status == 400:
142
+ raise BadRequestException(http_resp=http_resp, body=body, data=data)
143
+
144
+ if http_resp.status == 401:
145
+ raise UnauthorizedException(http_resp=http_resp, body=body, data=data)
146
+
147
+ if http_resp.status == 403:
148
+ raise ForbiddenException(http_resp=http_resp, body=body, data=data)
149
+
150
+ if http_resp.status == 404:
151
+ raise NotFoundException(http_resp=http_resp, body=body, data=data)
152
+
153
+ # Added new conditions for 409 and 422
154
+ if http_resp.status == 409:
155
+ raise ConflictException(http_resp=http_resp, body=body, data=data)
156
+
157
+ if http_resp.status == 422:
158
+ raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data)
159
+
160
+ if 500 <= http_resp.status <= 599:
161
+ raise ServiceException(http_resp=http_resp, body=body, data=data)
162
+ raise ApiException(http_resp=http_resp, body=body, data=data)
163
+
164
+ def __str__(self):
165
+ """Custom error messages for exception"""
166
+ error_message = "({0})\n"\
167
+ "Reason: {1}\n".format(self.status, self.reason)
168
+ if self.headers:
169
+ error_message += "HTTP response headers: {0}\n".format(
170
+ self.headers)
171
+
172
+ if self.body:
173
+ error_message += "HTTP response body: {0}\n".format(self.body)
174
+
175
+ if self.data:
176
+ error_message += "HTTP response data: {0}\n".format(self.data)
177
+
178
+ return error_message
179
+
180
+
181
+ class BadRequestException(ApiException):
182
+ pass
183
+
184
+
185
+ class NotFoundException(ApiException):
186
+ pass
187
+
188
+
189
+ class UnauthorizedException(ApiException):
190
+ pass
191
+
192
+
193
+ class ForbiddenException(ApiException):
194
+ pass
195
+
196
+
197
+ class ServiceException(ApiException):
198
+ pass
199
+
200
+
201
+ class ConflictException(ApiException):
202
+ """Exception for HTTP 409 Conflict."""
203
+ pass
204
+
205
+
206
+ class UnprocessableEntityException(ApiException):
207
+ """Exception for HTTP 422 Unprocessable Entity."""
208
+ pass
209
+
210
+
211
+ def render_path(path_to_item):
212
+ """Returns a string representation of a path"""
213
+ result = ""
214
+ for pth in path_to_item:
215
+ if isinstance(pth, int):
216
+ result += "[{0}]".format(pth)
217
+ else:
218
+ result += "['{0}']".format(pth)
219
+ return result
@@ -0,0 +1,173 @@
1
+ # coding: utf-8
2
+
3
+ # flake8: noqa
4
+ """
5
+ NotificationAPI
6
+
7
+ Internal API for notification delivery and management
8
+
9
+ The version of the OpenAPI document: 1.0.0
10
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
11
+
12
+ Do not edit the class manually.
13
+ """ # noqa: E501
14
+
15
+ # import models into model package
16
+ from pingram.models.account_addresses_response import AccountAddressesResponse
17
+ from pingram.models.account_addresses_response_addresses_inner import AccountAddressesResponseAddressesInner
18
+ from pingram.models.account_get_response import AccountGetResponse
19
+ from pingram.models.account_get_response_pending_downgrade_usage_limit import AccountGetResponsePendingDowngradeUsageLimit
20
+ from pingram.models.address_response import AddressResponse
21
+ from pingram.models.auto_join_get_response import AutoJoinGetResponse
22
+ from pingram.models.auto_join_post_response import AutoJoinPostResponse
23
+ from pingram.models.auto_join_request_body import AutoJoinRequestBody
24
+ from pingram.models.bee_token_v2 import BeeTokenV2
25
+ from pingram.models.billing_post_request_body import BillingPostRequestBody
26
+ from pingram.models.billing_post_response_body import BillingPostResponseBody
27
+ from pingram.models.billing_post_response_body_pending_downgrade_usage_limit import BillingPostResponseBodyPendingDowngradeUsageLimit
28
+ from pingram.models.channels_enum import ChannelsEnum
29
+ from pingram.models.create_account_request_body import CreateAccountRequestBody
30
+ from pingram.models.create_account_response import CreateAccountResponse
31
+ from pingram.models.create_address_request import CreateAddressRequest
32
+ from pingram.models.create_key_request import CreateKeyRequest
33
+ from pingram.models.create_key_response import CreateKeyResponse
34
+ from pingram.models.delete_key_response import DeleteKeyResponse
35
+ from pingram.models.delete_user_response import DeleteUserResponse
36
+ from pingram.models.email_auth_token_post_request import EmailAuthTokenPostRequest
37
+ from pingram.models.email_component_patch_request import EmailComponentPatchRequest
38
+ from pingram.models.email_component_post_request import EmailComponentPostRequest
39
+ from pingram.models.email_component_response import EmailComponentResponse
40
+ from pingram.models.email_component_response_referenced_by_inner import EmailComponentResponseReferencedByInner
41
+ from pingram.models.environment import Environment
42
+ from pingram.models.environment_create_request import EnvironmentCreateRequest
43
+ from pingram.models.environment_patch_request import EnvironmentPatchRequest
44
+ from pingram.models.get_account_metadata_response import GetAccountMetadataResponse
45
+ from pingram.models.get_account_metadata_response_user_account_metadata import GetAccountMetadataResponseUserAccountMetadata
46
+ from pingram.models.get_email_components_response_inner import GetEmailComponentsResponseInner
47
+ from pingram.models.get_environments_response_inner import GetEnvironmentsResponseInner
48
+ from pingram.models.get_inapp_notifications_response import GetInappNotificationsResponse
49
+ from pingram.models.get_inapp_notifications_response_notifications_inner import GetInappNotificationsResponseNotificationsInner
50
+ from pingram.models.get_inapp_notifications_response_notifications_inner_delivery_options import GetInappNotificationsResponseNotificationsInnerDeliveryOptions
51
+ from pingram.models.get_inapp_notifications_response_notifications_inner_delivery_options_instant import GetInappNotificationsResponseNotificationsInnerDeliveryOptionsInstant
52
+ from pingram.models.get_inapp_notifications_response_notifications_inner_delivery_options_off import GetInappNotificationsResponseNotificationsInnerDeliveryOptionsOff
53
+ from pingram.models.get_inapp_notifications_response_notifications_inner_replies_inner import GetInappNotificationsResponseNotificationsInnerRepliesInner
54
+ from pingram.models.get_inapp_notifications_response_notifications_inner_template import GetInappNotificationsResponseNotificationsInnerTemplate
55
+ from pingram.models.get_inapp_notifications_response_notifications_inner_template_any_of import GetInappNotificationsResponseNotificationsInnerTemplateAnyOf
56
+ from pingram.models.get_keys_response import GetKeysResponse
57
+ from pingram.models.get_keys_response_keys_inner import GetKeysResponseKeysInner
58
+ from pingram.models.get_logs_response import GetLogsResponse
59
+ from pingram.models.get_logs_response_messages_inner import GetLogsResponseMessagesInner
60
+ from pingram.models.get_logs_response_messages_inner_attachments_inner import GetLogsResponseMessagesInnerAttachmentsInner
61
+ from pingram.models.get_members_response_inner import GetMembersResponseInner
62
+ from pingram.models.get_metrics_response_inner import GetMetricsResponseInner
63
+ from pingram.models.get_metrics_response_inner_messages_inner import GetMetricsResponseInnerMessagesInner
64
+ from pingram.models.get_notifications_response_inner import GetNotificationsResponseInner
65
+ from pingram.models.get_notifications_response_inner_deduplication import GetNotificationsResponseInnerDeduplication
66
+ from pingram.models.get_notifications_response_inner_options import GetNotificationsResponseInnerOptions
67
+ from pingram.models.get_notifications_response_inner_options_email import GetNotificationsResponseInnerOptionsEMAIL
68
+ from pingram.models.get_notifications_response_inner_options_email_daily import GetNotificationsResponseInnerOptionsEMAILDaily
69
+ from pingram.models.get_notifications_response_inner_options_email_monthly import GetNotificationsResponseInnerOptionsEMAILMonthly
70
+ from pingram.models.get_notifications_response_inner_options_email_weekly import GetNotificationsResponseInnerOptionsEMAILWeekly
71
+ from pingram.models.get_notifications_response_inner_templates_inner import GetNotificationsResponseInnerTemplatesInner
72
+ from pingram.models.get_notifications_response_inner_throttling import GetNotificationsResponseInnerThrottling
73
+ from pingram.models.get_senders_response_inner import GetSendersResponseInner
74
+ from pingram.models.get_templates_response import GetTemplatesResponse
75
+ from pingram.models.get_users_response import GetUsersResponse
76
+ from pingram.models.get_users_response_users_inner import GetUsersResponseUsersInner
77
+ from pingram.models.get_users_response_users_inner_email_suppression_status import GetUsersResponseUsersInnerEmailSuppressionStatus
78
+ from pingram.models.get_users_response_users_inner_push_tokens_inner import GetUsersResponseUsersInnerPushTokensInner
79
+ from pingram.models.get_users_response_users_inner_push_tokens_inner_device import GetUsersResponseUsersInnerPushTokensInnerDevice
80
+ from pingram.models.get_users_response_users_inner_slack_token import GetUsersResponseUsersInnerSlackToken
81
+ from pingram.models.get_users_response_users_inner_slack_token_authed_user import GetUsersResponseUsersInnerSlackTokenAuthedUser
82
+ from pingram.models.get_users_response_users_inner_slack_token_enterprise import GetUsersResponseUsersInnerSlackTokenEnterprise
83
+ from pingram.models.get_users_response_users_inner_slack_token_incoming_webhook import GetUsersResponseUsersInnerSlackTokenIncomingWebhook
84
+ from pingram.models.get_users_response_users_inner_slack_token_response_metadata import GetUsersResponseUsersInnerSlackTokenResponseMetadata
85
+ from pingram.models.get_users_response_users_inner_web_push_tokens_inner import GetUsersResponseUsersInnerWebPushTokensInner
86
+ from pingram.models.get_users_response_users_inner_web_push_tokens_inner_sub import GetUsersResponseUsersInnerWebPushTokensInnerSub
87
+ from pingram.models.get_users_response_users_inner_web_push_tokens_inner_sub_keys import GetUsersResponseUsersInnerWebPushTokensInnerSubKeys
88
+ from pingram.models.in_app_notification_patch_request import InAppNotificationPatchRequest
89
+ from pingram.models.in_app_notification_unread_clear_request import InAppNotificationUnreadClearRequest
90
+ from pingram.models.inapp_unread_count_response import InappUnreadCountResponse
91
+ from pingram.models.inbound_request_body import InboundRequestBody
92
+ from pingram.models.inbound_response_body import InboundResponseBody
93
+ from pingram.models.inbound_response_body_results_inner import InboundResponseBodyResultsInner
94
+ from pingram.models.ingishts_post_request import IngishtsPostRequest
95
+ from pingram.models.ingishts_post_request_label_options import IngishtsPostRequestLabelOptions
96
+ from pingram.models.ingishts_post_request_metric_data_queries_inner import IngishtsPostRequestMetricDataQueriesInner
97
+ from pingram.models.ingishts_post_request_metric_data_queries_inner_metric_stat import IngishtsPostRequestMetricDataQueriesInnerMetricStat
98
+ from pingram.models.ingishts_post_request_metric_data_queries_inner_metric_stat_metric import IngishtsPostRequestMetricDataQueriesInnerMetricStatMetric
99
+ from pingram.models.ingishts_post_request_metric_data_queries_inner_metric_stat_metric_dimensions_inner import IngishtsPostRequestMetricDataQueriesInnerMetricStatMetricDimensionsInner
100
+ from pingram.models.intercom_webhook import IntercomWebhook
101
+ from pingram.models.intercom_webhook_data import IntercomWebhookData
102
+ from pingram.models.intercom_webhook_data_item import IntercomWebhookDataItem
103
+ from pingram.models.intercom_webhook_data_item_any_of import IntercomWebhookDataItemAnyOf
104
+ from pingram.models.intercom_webhook_data_item_any_of_contacts import IntercomWebhookDataItemAnyOfContacts
105
+ from pingram.models.intercom_webhook_data_item_any_of_contacts_contacts_inner import IntercomWebhookDataItemAnyOfContactsContactsInner
106
+ from pingram.models.intercom_webhook_data_item_any_of_source import IntercomWebhookDataItemAnyOfSource
107
+ from pingram.models.intercom_webhook_data_item_any_of_source_author import IntercomWebhookDataItemAnyOfSourceAuthor
108
+ from pingram.models.invite_post_response import InvitePostResponse
109
+ from pingram.models.log_query_post_body import LogQueryPostBody
110
+ from pingram.models.logs_bulk_request import LogsBulkRequest
111
+ from pingram.models.logs_get_response import LogsGetResponse
112
+ from pingram.models.logs_get_response_logs_inner import LogsGetResponseLogsInner
113
+ from pingram.models.logs_query_response import LogsQueryResponse
114
+ from pingram.models.logs_query_result_response import LogsQueryResultResponse
115
+ from pingram.models.logs_retention_response import LogsRetentionResponse
116
+ from pingram.models.logs_tail_response import LogsTailResponse
117
+ from pingram.models.member_invite_request import MemberInviteRequest
118
+ from pingram.models.member_update_request import MemberUpdateRequest
119
+ from pingram.models.message_response import MessageResponse
120
+ from pingram.models.notification import Notification
121
+ from pingram.models.notification_create_request import NotificationCreateRequest
122
+ from pingram.models.notification_patch_request import NotificationPatchRequest
123
+ from pingram.models.post_email_test_request import PostEmailTestRequest
124
+ from pingram.models.post_email_test_response import PostEmailTestResponse
125
+ from pingram.models.post_senders_request_body import PostSendersRequestBody
126
+ from pingram.models.post_user_request import PostUserRequest
127
+ from pingram.models.sender_post_body import SenderPostBody
128
+ from pingram.models.sender_post_body_email import SenderPostBodyEmail
129
+ from pingram.models.sender_post_body_inapp import SenderPostBodyInapp
130
+ from pingram.models.sender_post_body_mobile_push import SenderPostBodyMobilePush
131
+ from pingram.models.sender_post_body_options import SenderPostBodyOptions
132
+ from pingram.models.sender_post_body_options_apn import SenderPostBodyOptionsApn
133
+ from pingram.models.sender_post_body_options_email import SenderPostBodyOptionsEmail
134
+ from pingram.models.sender_post_body_options_email_attachments_inner import SenderPostBodyOptionsEmailAttachmentsInner
135
+ from pingram.models.sender_post_body_options_email_attachments_inner_any_of import SenderPostBodyOptionsEmailAttachmentsInnerAnyOf
136
+ from pingram.models.sender_post_body_options_email_attachments_inner_any_of1 import SenderPostBodyOptionsEmailAttachmentsInnerAnyOf1
137
+ from pingram.models.sender_post_body_options_fcm import SenderPostBodyOptionsFcm
138
+ from pingram.models.sender_post_body_options_fcm_android import SenderPostBodyOptionsFcmAndroid
139
+ from pingram.models.sender_post_body_slack import SenderPostBodySlack
140
+ from pingram.models.sender_post_body_slack_metadata import SenderPostBodySlackMetadata
141
+ from pingram.models.sender_post_body_slack_metadata_entities_inner import SenderPostBodySlackMetadataEntitiesInner
142
+ from pingram.models.sender_post_body_slack_metadata_entities_inner_external_ref import SenderPostBodySlackMetadataEntitiesInnerExternalRef
143
+ from pingram.models.sender_post_body_sms import SenderPostBodySms
144
+ from pingram.models.sender_post_body_sms_auto_reply import SenderPostBodySmsAutoReply
145
+ from pingram.models.sender_post_body_to import SenderPostBodyTo
146
+ from pingram.models.sender_post_body_user import SenderPostBodyUser
147
+ from pingram.models.sender_post_body_web_push import SenderPostBodyWebPush
148
+ from pingram.models.sender_post_response import SenderPostResponse
149
+ from pingram.models.set_default_template_request import SetDefaultTemplateRequest
150
+ from pingram.models.slack_interactivity_response import SlackInteractivityResponse
151
+ from pingram.models.slack_oauth_request import SlackOauthRequest
152
+ from pingram.models.success_response import SuccessResponse
153
+ from pingram.models.supabase_configure_request import SupabaseConfigureRequest
154
+ from pingram.models.supabase_configure_response import SupabaseConfigureResponse
155
+ from pingram.models.supabase_o_auth_request import SupabaseOAuthRequest
156
+ from pingram.models.supabase_o_auth_response import SupabaseOAuthResponse
157
+ from pingram.models.supabase_projects_response import SupabaseProjectsResponse
158
+ from pingram.models.supabase_projects_response_projects_inner import SupabaseProjectsResponseProjectsInner
159
+ from pingram.models.supabase_status_response import SupabaseStatusResponse
160
+ from pingram.models.template import Template
161
+ from pingram.models.template_patch_request import TemplatePatchRequest
162
+ from pingram.models.template_patch_request_any_of import TemplatePatchRequestAnyOf
163
+ from pingram.models.template_patch_request_any_of1 import TemplatePatchRequestAnyOf1
164
+ from pingram.models.template_patch_request_any_of1_batch import TemplatePatchRequestAnyOf1Batch
165
+ from pingram.models.template_patch_request_any_of1_instant import TemplatePatchRequestAnyOf1Instant
166
+ from pingram.models.template_post_request import TemplatePostRequest
167
+ from pingram.models.template_post_request_batch import TemplatePostRequestBatch
168
+ from pingram.models.template_post_request_instant import TemplatePostRequestInstant
169
+ from pingram.models.update_address_request import UpdateAddressRequest
170
+ from pingram.models.user import User
171
+ from pingram.models.user_suppression_delete_response import UserSuppressionDeleteResponse
172
+ from pingram.models.webhook_response import WebhookResponse
173
+
@@ -0,0 +1,95 @@
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
21
+ from typing import Any, ClassVar, Dict, List
22
+ from pingram.models.account_addresses_response_addresses_inner import AccountAddressesResponseAddressesInner
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class AccountAddressesResponse(BaseModel):
27
+ """
28
+ AccountAddressesResponse
29
+ """ # noqa: E501
30
+ addresses: List[AccountAddressesResponseAddressesInner]
31
+ __properties: ClassVar[List[str]] = ["addresses"]
32
+
33
+ model_config = ConfigDict(
34
+ populate_by_name=True,
35
+ validate_assignment=True,
36
+ protected_namespaces=(),
37
+ )
38
+
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.model_dump(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> Optional[Self]:
51
+ """Create an instance of AccountAddressesResponse from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ """Return the dictionary representation of the model using alias.
56
+
57
+ This has the following differences from calling pydantic's
58
+ `self.model_dump(by_alias=True)`:
59
+
60
+ * `None` is only added to the output dict for nullable fields that
61
+ were set at model initialization. Other fields with value `None`
62
+ are ignored.
63
+ """
64
+ excluded_fields: Set[str] = set([
65
+ ])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ # override the default output from pydantic by calling `to_dict()` of each item in addresses (list)
73
+ _items = []
74
+ if self.addresses:
75
+ for _item_addresses in self.addresses:
76
+ if _item_addresses:
77
+ _items.append(_item_addresses.to_dict())
78
+ _dict['addresses'] = _items
79
+ return _dict
80
+
81
+ @classmethod
82
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
83
+ """Create an instance of AccountAddressesResponse from a dict"""
84
+ if obj is None:
85
+ return None
86
+
87
+ if not isinstance(obj, dict):
88
+ return cls.model_validate(obj)
89
+
90
+ _obj = cls.model_validate({
91
+ "addresses": [AccountAddressesResponseAddressesInner.from_dict(_item) for _item in obj["addresses"]] if obj.get("addresses") is not None else None
92
+ })
93
+ return _obj
94
+
95
+
@@ -0,0 +1,104 @@
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, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class AccountAddressesResponseAddressesInner(BaseModel):
26
+ """
27
+ AccountAddressesResponseAddressesInner
28
+ """ # noqa: E501
29
+ full_address: StrictStr = Field(alias="fullAddress")
30
+ prefix: StrictStr
31
+ domain: StrictStr
32
+ type: StrictStr
33
+ display_name: Optional[StrictStr] = Field(default=None, alias="displayName")
34
+ created_at: StrictStr = Field(alias="createdAt")
35
+ __properties: ClassVar[List[str]] = ["fullAddress", "prefix", "domain", "type", "displayName", "createdAt"]
36
+
37
+ @field_validator('type')
38
+ def type_validate_enum(cls, value):
39
+ """Validates the enum"""
40
+ if value not in set(['builtin', 'custom']):
41
+ raise ValueError("must be one of enum values ('builtin', 'custom')")
42
+ return value
43
+
44
+ model_config = ConfigDict(
45
+ populate_by_name=True,
46
+ validate_assignment=True,
47
+ protected_namespaces=(),
48
+ )
49
+
50
+
51
+ def to_str(self) -> str:
52
+ """Returns the string representation of the model using alias"""
53
+ return pprint.pformat(self.model_dump(by_alias=True))
54
+
55
+ def to_json(self) -> str:
56
+ """Returns the JSON representation of the model using alias"""
57
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
58
+ return json.dumps(self.to_dict())
59
+
60
+ @classmethod
61
+ def from_json(cls, json_str: str) -> Optional[Self]:
62
+ """Create an instance of AccountAddressesResponseAddressesInner from a JSON string"""
63
+ return cls.from_dict(json.loads(json_str))
64
+
65
+ def to_dict(self) -> Dict[str, Any]:
66
+ """Return the dictionary representation of the model using alias.
67
+
68
+ This has the following differences from calling pydantic's
69
+ `self.model_dump(by_alias=True)`:
70
+
71
+ * `None` is only added to the output dict for nullable fields that
72
+ were set at model initialization. Other fields with value `None`
73
+ are ignored.
74
+ """
75
+ excluded_fields: Set[str] = set([
76
+ ])
77
+
78
+ _dict = self.model_dump(
79
+ by_alias=True,
80
+ exclude=excluded_fields,
81
+ exclude_none=True,
82
+ )
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
+ """Create an instance of AccountAddressesResponseAddressesInner from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return cls.model_validate(obj)
93
+
94
+ _obj = cls.model_validate({
95
+ "fullAddress": obj.get("fullAddress"),
96
+ "prefix": obj.get("prefix"),
97
+ "domain": obj.get("domain"),
98
+ "type": obj.get("type"),
99
+ "displayName": obj.get("displayName"),
100
+ "createdAt": obj.get("createdAt")
101
+ })
102
+ return _obj
103
+
104
+