pingram-python 1.0.10__tar.gz → 1.0.11__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 (251) hide show
  1. {pingram_python-1.0.10/generated/pingram_python.egg-info → pingram_python-1.0.11}/PKG-INFO +1 -1
  2. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/__init__.py +9 -1
  3. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api_client.py +1 -1
  4. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/client_wrapper.py +3 -0
  5. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/configuration.py +1 -1
  6. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/__init__.py +4 -0
  7. pingram_python-1.0.11/generated/pingram/models/a2p_registration.py +127 -0
  8. pingram_python-1.0.11/generated/pingram/models/a2p_registration_create_request.py +103 -0
  9. pingram_python-1.0.11/generated/pingram/models/a2p_registration_update_request.py +103 -0
  10. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/events_webhook_response.py +6 -4
  11. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/events_webhook_upsert_request.py +2 -2
  12. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/logs_get_response_logs_inner.py +21 -1
  13. pingram_python-1.0.11/generated/pingram/models/webhook_event.py +109 -0
  14. pingram_python-1.0.11/generated/pingram/webhooks.py +120 -0
  15. {pingram_python-1.0.10 → pingram_python-1.0.11/generated/pingram_python.egg-info}/PKG-INFO +1 -1
  16. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram_python.egg-info/SOURCES.txt +5 -0
  17. {pingram_python-1.0.10 → pingram_python-1.0.11}/pyproject.toml +1 -1
  18. {pingram_python-1.0.10 → pingram_python-1.0.11}/LICENSE +0 -0
  19. {pingram_python-1.0.10 → pingram_python-1.0.11}/MANIFEST.in +0 -0
  20. {pingram_python-1.0.10 → pingram_python-1.0.11}/README.md +0 -0
  21. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/__init__.py +0 -0
  22. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/account_api.py +0 -0
  23. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/addresses_api.py +0 -0
  24. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/components_api.py +0 -0
  25. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/default_api.py +0 -0
  26. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/domains_api.py +0 -0
  27. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/editor_api.py +0 -0
  28. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/email_api.py +0 -0
  29. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/environments_api.py +0 -0
  30. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/health_api.py +0 -0
  31. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/insights_api.py +0 -0
  32. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/keys_api.py +0 -0
  33. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/logs_api.py +0 -0
  34. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/members_api.py +0 -0
  35. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/numbers_api.py +0 -0
  36. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/organization_api.py +0 -0
  37. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/profile_api.py +0 -0
  38. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/push_settings_api.py +0 -0
  39. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/sender_api.py +0 -0
  40. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/sms_api.py +0 -0
  41. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/templates_api.py +0 -0
  42. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/types_api.py +0 -0
  43. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/user_api.py +0 -0
  44. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/users_api.py +0 -0
  45. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api/webhooks_api.py +0 -0
  46. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/api_response.py +0 -0
  47. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/exceptions.py +0 -0
  48. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/accept_invite_request.py +0 -0
  49. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/accept_invite_response.py +0 -0
  50. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/account_addresses_response.py +0 -0
  51. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/account_addresses_response_addresses_inner.py +0 -0
  52. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/account_get_response.py +0 -0
  53. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/address_response.py +0 -0
  54. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/api_error_body.py +0 -0
  55. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/api_error_response.py +0 -0
  56. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/apn_config.py +0 -0
  57. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/auto_join_get_response.py +0 -0
  58. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/auto_join_post_response.py +0 -0
  59. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/auto_join_request_body.py +0 -0
  60. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/bee_token_v2.py +0 -0
  61. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/billing_post_request_body.py +0 -0
  62. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/billing_post_response_body.py +0 -0
  63. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/change_email_request.py +0 -0
  64. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/change_phone_request.py +0 -0
  65. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/channels_enum.py +0 -0
  66. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/create_account_request_body.py +0 -0
  67. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/create_account_response.py +0 -0
  68. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/create_address_request.py +0 -0
  69. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/create_key_request.py +0 -0
  70. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/create_key_response.py +0 -0
  71. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/delete_key_response.py +0 -0
  72. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/delete_user_response.py +0 -0
  73. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/email_auth_token_post_request.py +0 -0
  74. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/email_component_patch_request.py +0 -0
  75. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/email_component_post_request.py +0 -0
  76. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/email_component_response.py +0 -0
  77. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/email_component_response_referenced_by_inner.py +0 -0
  78. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/environment.py +0 -0
  79. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/environment_create_request.py +0 -0
  80. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/environment_patch_request.py +0 -0
  81. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_account_metadata_response.py +0 -0
  82. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_account_metadata_response_user_account_metadata.py +0 -0
  83. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_email_components_response_inner.py +0 -0
  84. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_environments_response_inner.py +0 -0
  85. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response.py +0 -0
  86. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response_notifications_inner.py +0 -0
  87. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options.py +0 -0
  88. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_instant.py +0 -0
  89. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_off.py +0 -0
  90. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_replies_inner.py +0 -0
  91. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_template.py +0 -0
  92. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_template_any_of.py +0 -0
  93. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_keys_response.py +0 -0
  94. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_keys_response_keys_inner.py +0 -0
  95. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_logs_response.py +0 -0
  96. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_logs_response_messages_inner.py +0 -0
  97. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_logs_response_messages_inner_attachments_inner.py +0 -0
  98. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_logs_response_messages_inner_media_inner.py +0 -0
  99. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_members_response_inner.py +0 -0
  100. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_metrics_response_inner.py +0 -0
  101. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_metrics_response_inner_messages_inner.py +0 -0
  102. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner.py +0 -0
  103. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_deduplication.py +0 -0
  104. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_options.py +0 -0
  105. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_options_email.py +0 -0
  106. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_options_email_daily.py +0 -0
  107. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_options_email_monthly.py +0 -0
  108. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_options_email_weekly.py +0 -0
  109. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_templates_inner.py +0 -0
  110. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_notifications_response_inner_throttling.py +0 -0
  111. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_senders_response_inner.py +0 -0
  112. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner.py +0 -0
  113. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of.py +0 -0
  114. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of1.py +0 -0
  115. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of1_instant.py +0 -0
  116. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of2.py +0 -0
  117. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of3.py +0 -0
  118. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of4.py +0 -0
  119. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of5.py +0 -0
  120. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of6.py +0 -0
  121. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata.py +0 -0
  122. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata_entities_inner.py +0 -0
  123. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata_entities_inner_external_ref.py +0 -0
  124. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_templates_response.py +0 -0
  125. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_usage_history_query.py +0 -0
  126. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response.py +0 -0
  127. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner.py +0 -0
  128. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_email_suppression_status.py +0 -0
  129. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_push_tokens_inner.py +0 -0
  130. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_push_tokens_inner_device.py +0 -0
  131. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_slack_token.py +0 -0
  132. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_slack_token_authed_user.py +0 -0
  133. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_slack_token_enterprise.py +0 -0
  134. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_slack_token_incoming_webhook.py +0 -0
  135. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_slack_token_response_metadata.py +0 -0
  136. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner.py +0 -0
  137. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub.py +0 -0
  138. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub_keys.py +0 -0
  139. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/in_app_notification_patch_request.py +0 -0
  140. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/in_app_notification_unread_clear_request.py +0 -0
  141. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/inapp_unread_count_response.py +0 -0
  142. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/inbound_request_body.py +0 -0
  143. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/inbound_response_body.py +0 -0
  144. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/inbound_response_body_results_inner.py +0 -0
  145. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/ingishts_post_request.py +0 -0
  146. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/ingishts_post_request_label_options.py +0 -0
  147. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner.py +0 -0
  148. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat.py +0 -0
  149. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric.py +0 -0
  150. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric_dimensions_inner.py +0 -0
  151. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook.py +0 -0
  152. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook_data.py +0 -0
  153. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook_data_item.py +0 -0
  154. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook_data_item_any_of.py +0 -0
  155. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook_data_item_any_of_contacts.py +0 -0
  156. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook_data_item_any_of_contacts_contacts_inner.py +0 -0
  157. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook_data_item_any_of_source.py +0 -0
  158. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/intercom_webhook_data_item_any_of_source_author.py +0 -0
  159. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/invite_post_response.py +0 -0
  160. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/list_phone_numbers_response.py +0 -0
  161. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/list_phone_numbers_response_numbers_inner.py +0 -0
  162. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/log_query_post_body.py +0 -0
  163. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/logs_bulk_request.py +0 -0
  164. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/logs_get_response.py +0 -0
  165. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/logs_query_response.py +0 -0
  166. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/logs_query_result_response.py +0 -0
  167. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/logs_retention_response.py +0 -0
  168. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/logs_tail_response.py +0 -0
  169. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/member_invite_request.py +0 -0
  170. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/member_update_request.py +0 -0
  171. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/message_response.py +0 -0
  172. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/notification.py +0 -0
  173. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/notification_create_request.py +0 -0
  174. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/notification_patch_request.py +0 -0
  175. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/notification_patch_request_deduplication.py +0 -0
  176. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/notification_patch_request_throttling.py +0 -0
  177. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/order_phone_number_request.py +0 -0
  178. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/order_phone_number_response.py +0 -0
  179. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/organization.py +0 -0
  180. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/organization_usage.py +0 -0
  181. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/organization_usage_history.py +0 -0
  182. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/organization_usage_history_items_inner.py +0 -0
  183. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/phone_verify_confirm_request.py +0 -0
  184. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/phone_verify_confirm_response.py +0 -0
  185. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/phone_verify_start_request.py +0 -0
  186. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/phone_verify_start_response.py +0 -0
  187. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/post_email_test_request.py +0 -0
  188. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/post_email_test_response.py +0 -0
  189. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/post_senders_request_body.py +0 -0
  190. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/post_user_request.py +0 -0
  191. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/push_settings_fcm_put_request.py +0 -0
  192. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/push_settings_fcm_response.py +0 -0
  193. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/search_available_phone_numbers_response.py +0 -0
  194. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/search_available_phone_numbers_response_numbers_inner.py +0 -0
  195. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_email_api_response.py +0 -0
  196. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_email_api_response_any_of.py +0 -0
  197. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_email_api_response_any_of1.py +0 -0
  198. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_email_api_response_any_of1_error.py +0 -0
  199. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_email_request.py +0 -0
  200. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_email_request_attachments_inner.py +0 -0
  201. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_sms_request.py +0 -0
  202. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_sms_response.py +0 -0
  203. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_sms_response_any_of.py +0 -0
  204. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_sms_response_any_of1.py +0 -0
  205. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/send_sms_response_any_of1_error.py +0 -0
  206. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body.py +0 -0
  207. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_call.py +0 -0
  208. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_email.py +0 -0
  209. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_inapp.py +0 -0
  210. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_mobile_push.py +0 -0
  211. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options.py +0 -0
  212. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options_apn.py +0 -0
  213. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options_email.py +0 -0
  214. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options_email_attachments_inner.py +0 -0
  215. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options_email_attachments_inner_any_of.py +0 -0
  216. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options_fcm.py +0 -0
  217. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options_fcm_android.py +0 -0
  218. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_options_push.py +0 -0
  219. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_slack.py +0 -0
  220. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_sms.py +0 -0
  221. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_sms_auto_reply.py +0 -0
  222. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_to.py +0 -0
  223. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_user.py +0 -0
  224. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_body_web_push.py +0 -0
  225. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/sender_post_response.py +0 -0
  226. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/set_default_template_request.py +0 -0
  227. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/slack_interactivity_response.py +0 -0
  228. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/slack_oauth_request.py +0 -0
  229. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/success_response.py +0 -0
  230. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/supabase_configure_request.py +0 -0
  231. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/supabase_configure_response.py +0 -0
  232. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/supabase_o_auth_request.py +0 -0
  233. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/supabase_o_auth_response.py +0 -0
  234. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/supabase_projects_response.py +0 -0
  235. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/supabase_projects_response_projects_inner.py +0 -0
  236. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/supabase_status_response.py +0 -0
  237. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/template.py +0 -0
  238. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/template_patch_request.py +0 -0
  239. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/template_patch_request_batch.py +0 -0
  240. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/template_patch_request_instant.py +0 -0
  241. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/template_post_request.py +0 -0
  242. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/update_address_request.py +0 -0
  243. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/user.py +0 -0
  244. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/user_suppression_delete_response.py +0 -0
  245. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/models/webhook_response.py +0 -0
  246. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/py.typed +0 -0
  247. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram/rest.py +0 -0
  248. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram_python.egg-info/dependency_links.txt +0 -0
  249. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram_python.egg-info/requires.txt +0 -0
  250. {pingram_python-1.0.10 → pingram_python-1.0.11}/generated/pingram_python.egg-info/top_level.txt +0 -0
  251. {pingram_python-1.0.10 → pingram_python-1.0.11}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingram-python
3
- Version: 1.0.10
3
+ Version: 1.0.11
4
4
  Summary: Official Python SDK for Pingram - Send notifications via Email, SMS, Push, In-App, and more
5
5
  Author: Pingram
6
6
  License: MIT
@@ -14,7 +14,7 @@
14
14
  """ # noqa: E501
15
15
 
16
16
 
17
- __version__ = "1.0.10"
17
+ __version__ = "1.0.11"
18
18
 
19
19
  # Define package exports
20
20
  __all__ = [
@@ -51,6 +51,9 @@ __all__ = [
51
51
  "ApiKeyError",
52
52
  "ApiAttributeError",
53
53
  "ApiException",
54
+ "A2pRegistration",
55
+ "A2pRegistrationCreateRequest",
56
+ "A2pRegistrationUpdateRequest",
54
57
  "APNConfig",
55
58
  "AcceptInviteRequest",
56
59
  "AcceptInviteResponse",
@@ -251,6 +254,7 @@ __all__ = [
251
254
  "UpdateAddressRequest",
252
255
  "User",
253
256
  "UserSuppressionDeleteResponse",
257
+ "WebhookEvent",
254
258
  "WebhookResponse",
255
259
  ]
256
260
 
@@ -292,6 +296,9 @@ from pingram.exceptions import ApiAttributeError as ApiAttributeError
292
296
  from pingram.exceptions import ApiException as ApiException
293
297
 
294
298
  # import models into sdk package
299
+ from pingram.models.a2p_registration import A2pRegistration as A2pRegistration
300
+ from pingram.models.a2p_registration_create_request import A2pRegistrationCreateRequest as A2pRegistrationCreateRequest
301
+ from pingram.models.a2p_registration_update_request import A2pRegistrationUpdateRequest as A2pRegistrationUpdateRequest
295
302
  from pingram.models.apn_config import APNConfig as APNConfig
296
303
  from pingram.models.accept_invite_request import AcceptInviteRequest as AcceptInviteRequest
297
304
  from pingram.models.accept_invite_response import AcceptInviteResponse as AcceptInviteResponse
@@ -492,6 +499,7 @@ from pingram.models.template_post_request import TemplatePostRequest as Template
492
499
  from pingram.models.update_address_request import UpdateAddressRequest as UpdateAddressRequest
493
500
  from pingram.models.user import User as User
494
501
  from pingram.models.user_suppression_delete_response import UserSuppressionDeleteResponse as UserSuppressionDeleteResponse
502
+ from pingram.models.webhook_event import WebhookEvent as WebhookEvent
495
503
  from pingram.models.webhook_response import WebhookResponse as WebhookResponse
496
504
  from pingram.client_wrapper import Pingram, PingramConfig, PingramRegion
497
505
  __all__.extend(["Pingram", "PingramConfig", "PingramRegion"])
@@ -91,7 +91,7 @@ class ApiClient:
91
91
  self.default_headers[header_name] = header_value
92
92
  self.cookie = cookie
93
93
  # Set default User-Agent.
94
- self.user_agent = 'pingram-python/1.0.10'
94
+ self.user_agent = 'pingram-python/1.0.11'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  async def __aenter__(self):
@@ -59,6 +59,7 @@ from .api_client import ApiClient
59
59
  from .configuration import Configuration
60
60
  from .models.sender_post_body import SenderPostBody
61
61
  from .models.sender_post_response import SenderPostResponse
62
+ from .webhooks import Webhooks as _PingramWebhookSigning
62
63
 
63
64
  PingramRegion = Literal["us", "eu", "ca"]
64
65
 
@@ -94,6 +95,8 @@ class Pingram:
94
95
  user = await client.user.user_get_user(account_id="...", user_id="...")
95
96
  """
96
97
 
98
+ webhook_verification = _PingramWebhookSigning()
99
+
97
100
  def __init__(
98
101
  self,
99
102
  config_or_api_key: Optional[Union[PingramConfig, str]] = None,
@@ -551,7 +551,7 @@ conf = pingram.Configuration(
551
551
  "OS: {env}\n"\
552
552
  "Python Version: {pyversion}\n"\
553
553
  "Version of the API: 1.0.0\n"\
554
- "SDK Package Version: 1.0.10".\
554
+ "SDK Package Version: 1.0.11".\
555
555
  format(env=sys.platform, pyversion=sys.version)
556
556
 
557
557
  def get_host_settings(self) -> List[HostSetting]:
@@ -13,6 +13,9 @@
13
13
  """ # noqa: E501
14
14
 
15
15
  # import models into model package
16
+ from pingram.models.a2p_registration import A2pRegistration
17
+ from pingram.models.a2p_registration_create_request import A2pRegistrationCreateRequest
18
+ from pingram.models.a2p_registration_update_request import A2pRegistrationUpdateRequest
16
19
  from pingram.models.apn_config import APNConfig
17
20
  from pingram.models.accept_invite_request import AcceptInviteRequest
18
21
  from pingram.models.accept_invite_response import AcceptInviteResponse
@@ -213,5 +216,6 @@ from pingram.models.template_post_request import TemplatePostRequest
213
216
  from pingram.models.update_address_request import UpdateAddressRequest
214
217
  from pingram.models.user import User
215
218
  from pingram.models.user_suppression_delete_response import UserSuppressionDeleteResponse
219
+ from pingram.models.webhook_event import WebhookEvent
216
220
  from pingram.models.webhook_response import WebhookResponse
217
221
 
@@ -0,0 +1,127 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pingram
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 A2pRegistration(BaseModel):
26
+ """
27
+ Public response type for A2P registration - excludes internal Telnyx IDs
28
+ """ # noqa: E501
29
+ account_id: StrictStr = Field(alias="accountId")
30
+ scenario_id: StrictStr = Field(alias="scenarioId")
31
+ business_type: StrictStr = Field(alias="businessType")
32
+ legal_name: StrictStr = Field(alias="legalName")
33
+ tax_id: Optional[StrictStr] = Field(default=None, alias="taxId")
34
+ website: StrictStr
35
+ country: StrictStr
36
+ full_address: StrictStr = Field(alias="fullAddress")
37
+ compliance_contact_email: StrictStr = Field(alias="complianceContactEmail")
38
+ compliance_contact_phone: StrictStr = Field(alias="complianceContactPhone")
39
+ brand_status: StrictStr = Field(alias="brandStatus")
40
+ campaign_status: StrictStr = Field(alias="campaignStatus")
41
+ created_at: StrictStr = Field(alias="createdAt")
42
+ updated_at: StrictStr = Field(alias="updatedAt")
43
+ __properties: ClassVar[List[str]] = ["accountId", "scenarioId", "businessType", "legalName", "taxId", "website", "country", "fullAddress", "complianceContactEmail", "complianceContactPhone", "brandStatus", "campaignStatus", "createdAt", "updatedAt"]
44
+
45
+ @field_validator('brand_status')
46
+ def brand_status_validate_enum(cls, value):
47
+ """Validates the enum"""
48
+ if value not in set(['not_started', 'in_progress', 'pending_review', 'approved', 'rejected', 'info_needed']):
49
+ raise ValueError("must be one of enum values ('not_started', 'in_progress', 'pending_review', 'approved', 'rejected', 'info_needed')")
50
+ return value
51
+
52
+ @field_validator('campaign_status')
53
+ def campaign_status_validate_enum(cls, value):
54
+ """Validates the enum"""
55
+ if value not in set(['not_started', 'in_progress', 'pending_review', 'approved', 'rejected', 'info_needed']):
56
+ raise ValueError("must be one of enum values ('not_started', 'in_progress', 'pending_review', 'approved', 'rejected', 'info_needed')")
57
+ return value
58
+
59
+ model_config = ConfigDict(
60
+ populate_by_name=True,
61
+ validate_assignment=True,
62
+ protected_namespaces=(),
63
+ )
64
+
65
+
66
+ def to_str(self) -> str:
67
+ """Returns the string representation of the model using alias"""
68
+ return pprint.pformat(self.model_dump(by_alias=True))
69
+
70
+ def to_json(self) -> str:
71
+ """Returns the JSON representation of the model using alias"""
72
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
73
+ return json.dumps(self.to_dict())
74
+
75
+ @classmethod
76
+ def from_json(cls, json_str: str) -> Optional[Self]:
77
+ """Create an instance of A2pRegistration from a JSON string"""
78
+ return cls.from_dict(json.loads(json_str))
79
+
80
+ def to_dict(self) -> Dict[str, Any]:
81
+ """Return the dictionary representation of the model using alias.
82
+
83
+ This has the following differences from calling pydantic's
84
+ `self.model_dump(by_alias=True)`:
85
+
86
+ * `None` is only added to the output dict for nullable fields that
87
+ were set at model initialization. Other fields with value `None`
88
+ are ignored.
89
+ """
90
+ excluded_fields: Set[str] = set([
91
+ ])
92
+
93
+ _dict = self.model_dump(
94
+ by_alias=True,
95
+ exclude=excluded_fields,
96
+ exclude_none=True,
97
+ )
98
+ return _dict
99
+
100
+ @classmethod
101
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
102
+ """Create an instance of A2pRegistration from a dict"""
103
+ if obj is None:
104
+ return None
105
+
106
+ if not isinstance(obj, dict):
107
+ return cls.model_validate(obj)
108
+
109
+ _obj = cls.model_validate({
110
+ "accountId": obj.get("accountId"),
111
+ "scenarioId": obj.get("scenarioId"),
112
+ "businessType": obj.get("businessType"),
113
+ "legalName": obj.get("legalName"),
114
+ "taxId": obj.get("taxId"),
115
+ "website": obj.get("website"),
116
+ "country": obj.get("country"),
117
+ "fullAddress": obj.get("fullAddress"),
118
+ "complianceContactEmail": obj.get("complianceContactEmail"),
119
+ "complianceContactPhone": obj.get("complianceContactPhone"),
120
+ "brandStatus": obj.get("brandStatus"),
121
+ "campaignStatus": obj.get("campaignStatus"),
122
+ "createdAt": obj.get("createdAt"),
123
+ "updatedAt": obj.get("updatedAt")
124
+ })
125
+ return _obj
126
+
127
+
@@ -0,0 +1,103 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pingram
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
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class A2pRegistrationCreateRequest(BaseModel):
26
+ """
27
+ Request body for POST /registrations/a2p
28
+ """ # noqa: E501
29
+ scenario_id: StrictStr = Field(alias="scenarioId")
30
+ business_type: StrictStr = Field(alias="businessType")
31
+ legal_name: StrictStr = Field(alias="legalName")
32
+ tax_id: Optional[StrictStr] = Field(default=None, alias="taxId")
33
+ website: StrictStr
34
+ country: StrictStr
35
+ full_address: StrictStr = Field(alias="fullAddress")
36
+ compliance_contact_email: StrictStr = Field(alias="complianceContactEmail")
37
+ compliance_contact_phone: StrictStr = Field(alias="complianceContactPhone")
38
+ __properties: ClassVar[List[str]] = ["scenarioId", "businessType", "legalName", "taxId", "website", "country", "fullAddress", "complianceContactEmail", "complianceContactPhone"]
39
+
40
+ model_config = ConfigDict(
41
+ populate_by_name=True,
42
+ validate_assignment=True,
43
+ protected_namespaces=(),
44
+ )
45
+
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.model_dump(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
54
+ return json.dumps(self.to_dict())
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> Optional[Self]:
58
+ """Create an instance of A2pRegistrationCreateRequest from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self) -> Dict[str, Any]:
62
+ """Return the dictionary representation of the model using alias.
63
+
64
+ This has the following differences from calling pydantic's
65
+ `self.model_dump(by_alias=True)`:
66
+
67
+ * `None` is only added to the output dict for nullable fields that
68
+ were set at model initialization. Other fields with value `None`
69
+ are ignored.
70
+ """
71
+ excluded_fields: Set[str] = set([
72
+ ])
73
+
74
+ _dict = self.model_dump(
75
+ by_alias=True,
76
+ exclude=excluded_fields,
77
+ exclude_none=True,
78
+ )
79
+ return _dict
80
+
81
+ @classmethod
82
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
83
+ """Create an instance of A2pRegistrationCreateRequest 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
+ "scenarioId": obj.get("scenarioId"),
92
+ "businessType": obj.get("businessType"),
93
+ "legalName": obj.get("legalName"),
94
+ "taxId": obj.get("taxId"),
95
+ "website": obj.get("website"),
96
+ "country": obj.get("country"),
97
+ "fullAddress": obj.get("fullAddress"),
98
+ "complianceContactEmail": obj.get("complianceContactEmail"),
99
+ "complianceContactPhone": obj.get("complianceContactPhone")
100
+ })
101
+ return _obj
102
+
103
+
@@ -0,0 +1,103 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Pingram
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
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class A2pRegistrationUpdateRequest(BaseModel):
26
+ """
27
+ Request body for PUT /registrations/a2p
28
+ """ # noqa: E501
29
+ scenario_id: Optional[StrictStr] = Field(default=None, alias="scenarioId")
30
+ business_type: Optional[StrictStr] = Field(default=None, alias="businessType")
31
+ legal_name: Optional[StrictStr] = Field(default=None, alias="legalName")
32
+ tax_id: Optional[StrictStr] = Field(default=None, alias="taxId")
33
+ website: Optional[StrictStr] = None
34
+ country: Optional[StrictStr] = None
35
+ full_address: Optional[StrictStr] = Field(default=None, alias="fullAddress")
36
+ compliance_contact_email: Optional[StrictStr] = Field(default=None, alias="complianceContactEmail")
37
+ compliance_contact_phone: Optional[StrictStr] = Field(default=None, alias="complianceContactPhone")
38
+ __properties: ClassVar[List[str]] = ["scenarioId", "businessType", "legalName", "taxId", "website", "country", "fullAddress", "complianceContactEmail", "complianceContactPhone"]
39
+
40
+ model_config = ConfigDict(
41
+ populate_by_name=True,
42
+ validate_assignment=True,
43
+ protected_namespaces=(),
44
+ )
45
+
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.model_dump(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
54
+ return json.dumps(self.to_dict())
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> Optional[Self]:
58
+ """Create an instance of A2pRegistrationUpdateRequest from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self) -> Dict[str, Any]:
62
+ """Return the dictionary representation of the model using alias.
63
+
64
+ This has the following differences from calling pydantic's
65
+ `self.model_dump(by_alias=True)`:
66
+
67
+ * `None` is only added to the output dict for nullable fields that
68
+ were set at model initialization. Other fields with value `None`
69
+ are ignored.
70
+ """
71
+ excluded_fields: Set[str] = set([
72
+ ])
73
+
74
+ _dict = self.model_dump(
75
+ by_alias=True,
76
+ exclude=excluded_fields,
77
+ exclude_none=True,
78
+ )
79
+ return _dict
80
+
81
+ @classmethod
82
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
83
+ """Create an instance of A2pRegistrationUpdateRequest 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
+ "scenarioId": obj.get("scenarioId"),
92
+ "businessType": obj.get("businessType"),
93
+ "legalName": obj.get("legalName"),
94
+ "taxId": obj.get("taxId"),
95
+ "website": obj.get("website"),
96
+ "country": obj.get("country"),
97
+ "fullAddress": obj.get("fullAddress"),
98
+ "complianceContactEmail": obj.get("complianceContactEmail"),
99
+ "complianceContactPhone": obj.get("complianceContactPhone")
100
+ })
101
+ return _obj
102
+
103
+
@@ -29,14 +29,15 @@ class EventsWebhookResponse(BaseModel):
29
29
  webhook_id: StrictStr = Field(description="Storage key in the format accountId:envId (currently accountId:accountId for account-scoped usage).", alias="webhookId")
30
30
  webhook: StrictStr = Field(description="Destination URL that receives webhook event payloads.")
31
31
  events: List[StrictStr] = Field(description="List of subscribed event types for this webhook configuration.")
32
- __properties: ClassVar[List[str]] = ["webhookId", "webhook", "events"]
32
+ secret: StrictStr = Field(description="HMAC secret for verifying webhook signatures. Use this with your X-Pingram-Signature verification.")
33
+ __properties: ClassVar[List[str]] = ["webhookId", "webhook", "events", "secret"]
33
34
 
34
35
  @field_validator('events')
35
36
  def events_validate_enum(cls, value):
36
37
  """Validates the enum"""
37
38
  for i in value:
38
- if i not in set(['EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND']):
39
- raise ValueError("each list item must be one of ('EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND')")
39
+ if i not in set(['EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_SUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND']):
40
+ raise ValueError("each list item must be one of ('EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_SUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND')")
40
41
  return value
41
42
 
42
43
  model_config = ConfigDict(
@@ -92,7 +93,8 @@ class EventsWebhookResponse(BaseModel):
92
93
  _obj = cls.model_validate({
93
94
  "webhookId": obj.get("webhookId"),
94
95
  "webhook": obj.get("webhook"),
95
- "events": obj.get("events")
96
+ "events": obj.get("events"),
97
+ "secret": obj.get("secret")
96
98
  })
97
99
  return _obj
98
100
 
@@ -34,8 +34,8 @@ class EventsWebhookUpsertRequest(BaseModel):
34
34
  def events_validate_enum(cls, value):
35
35
  """Validates the enum"""
36
36
  for i in value:
37
- if i not in set(['EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND']):
38
- raise ValueError("each list item must be one of ('EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND')")
37
+ if i not in set(['EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_SUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND']):
38
+ raise ValueError("each list item must be one of ('EMAIL_OPEN', 'EMAIL_CLICK', 'EMAIL_FAILED', 'EMAIL_DELIVERED', 'EMAIL_UNSUBSCRIBE', 'EMAIL_INBOUND', 'INAPP_WEB_FAILED', 'INAPP_WEB_UNSUBSCRIBE', 'SMS_DELIVERED', 'SMS_FAILED', 'SMS_UNSUBSCRIBE', 'SMS_SUBSCRIBE', 'SMS_INBOUND', 'PUSH_FAILED', 'PUSH_UNSUBSCRIBE', 'CALL_FAILED', 'CALL_UNSUBSCRIBE', 'WEB_PUSH_FAILED', 'WEB_PUSH_UNSUBSCRIBE', 'SLACK_FAILED', 'SLACK_UNSUBSCRIBE', 'VOICE_INBOUND')")
39
39
  return value
40
40
 
41
41
  model_config = ConfigDict(
@@ -110,6 +110,16 @@ class LogsGetResponseLogsInner(BaseModel):
110
110
  sms_replied_text: Optional[StrictStr] = None
111
111
  sms_replied_segments: Optional[Union[StrictFloat, StrictInt]] = None
112
112
  sms_replied_encoding: Optional[StrictStr] = None
113
+ sms_unsubscribe_at: Optional[StrictStr] = None
114
+ sms_unsubscribe_from: Optional[StrictStr] = None
115
+ sms_unsubscribe_keyword: Optional[StrictStr] = None
116
+ sms_unsubscribe_webhook_delivered: Optional[StrictBool] = None
117
+ sms_unsubscribe_webhook_res: Optional[StrictStr] = None
118
+ sms_subscribe_at: Optional[StrictStr] = None
119
+ sms_subscribe_from: Optional[StrictStr] = None
120
+ sms_subscribe_keyword: Optional[StrictStr] = None
121
+ sms_subscribe_webhook_delivered: Optional[StrictBool] = None
122
+ sms_subscribe_webhook_res: Optional[StrictStr] = None
113
123
  web_push_sent_token: Optional[StrictStr] = None
114
124
  web_push_sent_at: Optional[StrictStr] = None
115
125
  web_push_sent_after: Optional[Union[StrictFloat, StrictInt]] = None
@@ -190,7 +200,7 @@ class LogsGetResponseLogsInner(BaseModel):
190
200
  schedule_updated_at: Optional[StrictStr] = None
191
201
  schedule_updated_to: Optional[StrictStr] = None
192
202
  schedule_deleted_at: Optional[StrictStr] = None
193
- __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_preview", "email_delivered_at", "email_delivered_recipients", "email_delivered_after", "email_delivered_webhook_res", "email_failed_at", "email_failed_code", "email_failed_recipient", "email_failed_diagnostic_code", "email_failed_internal", "email_failed_webhook_res", "email_opened_at", "email_opened_user_agent", "email_opened_ip", "email_opened_webhook_res", "email_clicked_at", "email_clicked_user_agent", "email_clicked_ip", "email_clicked_link", "email_clicked_link_tags", "email_clicked_webhook_res", "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_webhook_res", "email_inbound_resolution_type", "sms_inbound_at", "sms_inbound_from", "sms_inbound_to", "sms_inbound_text", "sms_inbound_webhook_delivered", "sms_inbound_webhook_res", "sms_inbound_media", "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", "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_delivered_cost_internal", "call_delivered_cost", "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_sent_cost", "sms_sent_country", "sms_sent_messageId", "sms_sent_mms", "sms_carrier_cost_internal", "sms_carrier_fee_internal", "sms_rate_internal", "sms_delivered_at", "sms_delivered_after", "sms_delivered_cost_internal", "schedule_updated_at", "schedule_updated_to", "schedule_deleted_at"]
203
+ __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_preview", "email_delivered_at", "email_delivered_recipients", "email_delivered_after", "email_delivered_webhook_res", "email_failed_at", "email_failed_code", "email_failed_recipient", "email_failed_diagnostic_code", "email_failed_internal", "email_failed_webhook_res", "email_opened_at", "email_opened_user_agent", "email_opened_ip", "email_opened_webhook_res", "email_clicked_at", "email_clicked_user_agent", "email_clicked_ip", "email_clicked_link", "email_clicked_link_tags", "email_clicked_webhook_res", "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_webhook_res", "email_inbound_resolution_type", "sms_inbound_at", "sms_inbound_from", "sms_inbound_to", "sms_inbound_text", "sms_inbound_webhook_delivered", "sms_inbound_webhook_res", "sms_inbound_media", "sms_replied_at", "sms_replied_to", "sms_replied_text", "sms_replied_segments", "sms_replied_encoding", "sms_unsubscribe_at", "sms_unsubscribe_from", "sms_unsubscribe_keyword", "sms_unsubscribe_webhook_delivered", "sms_unsubscribe_webhook_res", "sms_subscribe_at", "sms_subscribe_from", "sms_subscribe_keyword", "sms_subscribe_webhook_delivered", "sms_subscribe_webhook_res", "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", "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_delivered_cost_internal", "call_delivered_cost", "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_sent_cost", "sms_sent_country", "sms_sent_messageId", "sms_sent_mms", "sms_carrier_cost_internal", "sms_carrier_fee_internal", "sms_rate_internal", "sms_delivered_at", "sms_delivered_after", "sms_delivered_cost_internal", "schedule_updated_at", "schedule_updated_to", "schedule_deleted_at"]
194
204
 
195
205
  @field_validator('failed_code')
196
206
  def failed_code_validate_enum(cls, value):
@@ -577,6 +587,16 @@ class LogsGetResponseLogsInner(BaseModel):
577
587
  "sms_replied_text": obj.get("sms_replied_text"),
578
588
  "sms_replied_segments": obj.get("sms_replied_segments"),
579
589
  "sms_replied_encoding": obj.get("sms_replied_encoding"),
590
+ "sms_unsubscribe_at": obj.get("sms_unsubscribe_at"),
591
+ "sms_unsubscribe_from": obj.get("sms_unsubscribe_from"),
592
+ "sms_unsubscribe_keyword": obj.get("sms_unsubscribe_keyword"),
593
+ "sms_unsubscribe_webhook_delivered": obj.get("sms_unsubscribe_webhook_delivered"),
594
+ "sms_unsubscribe_webhook_res": obj.get("sms_unsubscribe_webhook_res"),
595
+ "sms_subscribe_at": obj.get("sms_subscribe_at"),
596
+ "sms_subscribe_from": obj.get("sms_subscribe_from"),
597
+ "sms_subscribe_keyword": obj.get("sms_subscribe_keyword"),
598
+ "sms_subscribe_webhook_delivered": obj.get("sms_subscribe_webhook_delivered"),
599
+ "sms_subscribe_webhook_res": obj.get("sms_subscribe_webhook_res"),
580
600
  "web_push_sent_token": obj.get("web_push_sent_token"),
581
601
  "web_push_sent_at": obj.get("web_push_sent_at"),
582
602
  "web_push_sent_after": obj.get("web_push_sent_after"),