pingram-python 1.0.34__tar.gz → 1.0.36__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 (348) hide show
  1. {pingram_python-1.0.34/generated/pingram_python.egg-info → pingram_python-1.0.36}/PKG-INFO +1 -1
  2. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/__init__.py +1 -1
  3. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/account_api.py +20 -3
  4. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/webhooks_api.py +24 -24
  5. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api_client.py +1 -1
  6. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/configuration.py +1 -1
  7. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_account_request_plan.py +2 -2
  8. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_usage_history_query.py +5 -3
  9. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_usage_history_response.py +1 -1
  10. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_usage_history_response_items_inner.py +1 -1
  11. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_email_request.py +6 -2
  12. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options_email.py +6 -2
  13. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/webhook_endpoint.py +3 -3
  14. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/webhook_endpoint_upsert_request.py +2 -2
  15. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/webhook_endpoints_response_endpoints_inner.py +3 -3
  16. {pingram_python-1.0.34 → pingram_python-1.0.36/generated/pingram_python.egg-info}/PKG-INFO +1 -1
  17. {pingram_python-1.0.34 → pingram_python-1.0.36}/pyproject.toml +1 -1
  18. {pingram_python-1.0.34 → pingram_python-1.0.36}/LICENSE +0 -0
  19. {pingram_python-1.0.34 → pingram_python-1.0.36}/MANIFEST.in +0 -0
  20. {pingram_python-1.0.34 → pingram_python-1.0.36}/README.md +0 -0
  21. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/__init__.py +0 -0
  22. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/accounts_api.py +0 -0
  23. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/addresses_api.py +0 -0
  24. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/broadcasts_api.py +0 -0
  25. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/components_api.py +0 -0
  26. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/default_api.py +0 -0
  27. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/domains_api.py +0 -0
  28. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/editor_api.py +0 -0
  29. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/email_api.py +0 -0
  30. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/environments_api.py +0 -0
  31. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/health_api.py +0 -0
  32. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/insights_api.py +0 -0
  33. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/keys_api.py +0 -0
  34. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/library_api.py +0 -0
  35. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/logs_api.py +0 -0
  36. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/members_api.py +0 -0
  37. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/numbers_api.py +0 -0
  38. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/profile_api.py +0 -0
  39. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/registrations_api.py +0 -0
  40. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/sender_api.py +0 -0
  41. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/sms_api.py +0 -0
  42. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/sub_notifications_api.py +0 -0
  43. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/templates_api.py +0 -0
  44. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/types_api.py +0 -0
  45. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/user_api.py +0 -0
  46. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/users_api.py +0 -0
  47. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api/voice_api.py +0 -0
  48. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/api_response.py +0 -0
  49. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/client_wrapper.py +0 -0
  50. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/exceptions.py +0 -0
  51. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/__init__.py +0 -0
  52. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/accept_invite_request.py +0 -0
  53. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/accept_invite_response.py +0 -0
  54. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/account_addresses_response.py +0 -0
  55. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/account_addresses_response_addresses_inner.py +0 -0
  56. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/account_get_response.py +0 -0
  57. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/account_patch_request.py +0 -0
  58. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/address_response.py +0 -0
  59. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/api_error_body.py +0 -0
  60. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/api_error_response.py +0 -0
  61. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/auto_join_get_response.py +0 -0
  62. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/auto_join_post_response.py +0 -0
  63. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/auto_join_request_body.py +0 -0
  64. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bee_token_v2.py +0 -0
  65. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/billing_post_request_body.py +0 -0
  66. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/billing_post_response_body.py +0 -0
  67. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_request.py +0 -0
  68. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response.py +0 -0
  69. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent.py +0 -0
  70. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec.py +0 -0
  71. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec_compliance.py +0 -0
  72. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec_conversation.py +0 -0
  73. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec_inbound.py +0 -0
  74. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec_model.py +0 -0
  75. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec_outbound.py +0 -0
  76. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec_tools_inner.py +0 -0
  77. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/bind_number_response_agent_spec_variables_inner.py +0 -0
  78. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/brand_webhook_response.py +0 -0
  79. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/broadcast_metrics_response.py +0 -0
  80. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/broadcast_response.py +0 -0
  81. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/broadcast_response_audience.py +0 -0
  82. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/campaign_webhook_response.py +0 -0
  83. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/chained.py +0 -0
  84. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/change_email_request.py +0 -0
  85. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/change_phone_request.py +0 -0
  86. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/channels_enum.py +0 -0
  87. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_account_request.py +0 -0
  88. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_account_response.py +0 -0
  89. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_address_request.py +0 -0
  90. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_broadcast_request.py +0 -0
  91. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_key_request.py +0 -0
  92. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_key_response.py +0 -0
  93. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_library_request.py +0 -0
  94. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_library_response.py +0 -0
  95. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_personal_access_token_request.py +0 -0
  96. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_personal_access_token_response.py +0 -0
  97. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_voice_agent_request.py +0 -0
  98. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/create_voice_agent_response.py +0 -0
  99. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/custom.py +0 -0
  100. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/delete_account_request.py +0 -0
  101. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/delete_key_response.py +0 -0
  102. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/delete_user_response.py +0 -0
  103. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/delete_voice_agent_response.py +0 -0
  104. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/domain_dns_check.py +0 -0
  105. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/domain_dns_check_records_inner.py +0 -0
  106. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/dtmf.py +0 -0
  107. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/email_auth_token_post_request.py +0 -0
  108. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/email_component_patch_request.py +0 -0
  109. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/email_component_post_request.py +0 -0
  110. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/email_component_response.py +0 -0
  111. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/email_component_response_referenced_by_inner.py +0 -0
  112. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/environment.py +0 -0
  113. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/environment_patch_request.py +0 -0
  114. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/first_account_request.py +0 -0
  115. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/first_account_response.py +0 -0
  116. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_account_metadata_response.py +0 -0
  117. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_account_metadata_response_user_account_metadata.py +0 -0
  118. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_email_components_response_inner.py +0 -0
  119. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_environments_response_inner.py +0 -0
  120. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response.py +0 -0
  121. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response_notifications_inner.py +0 -0
  122. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options.py +0 -0
  123. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_instant.py +0 -0
  124. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_off.py +0 -0
  125. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_replies_inner.py +0 -0
  126. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_template.py +0 -0
  127. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_template_any_of.py +0 -0
  128. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_keys_response.py +0 -0
  129. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_keys_response_keys_inner.py +0 -0
  130. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_logs_response.py +0 -0
  131. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_logs_response_messages_inner.py +0 -0
  132. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_logs_response_messages_inner_attachments_inner.py +0 -0
  133. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_logs_response_messages_inner_media_inner.py +0 -0
  134. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_members_response_inner.py +0 -0
  135. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_metrics_response_inner.py +0 -0
  136. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_metrics_response_inner_messages_inner.py +0 -0
  137. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner.py +0 -0
  138. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_deduplication.py +0 -0
  139. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_options.py +0 -0
  140. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_options_email.py +0 -0
  141. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_options_email_daily.py +0 -0
  142. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_options_email_monthly.py +0 -0
  143. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_options_email_weekly.py +0 -0
  144. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_templates_inner.py +0 -0
  145. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_notifications_response_inner_throttling.py +0 -0
  146. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_senders_response_inner.py +0 -0
  147. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_senders_response_inner_verification_records.py +0 -0
  148. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_senders_response_inner_verification_records_dkim.py +0 -0
  149. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner.py +0 -0
  150. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of.py +0 -0
  151. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of1.py +0 -0
  152. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of1_instant.py +0 -0
  153. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of2.py +0 -0
  154. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of3.py +0 -0
  155. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of4.py +0 -0
  156. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of5.py +0 -0
  157. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of6.py +0 -0
  158. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata.py +0 -0
  159. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata_entities_inner.py +0 -0
  160. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata_entities_inner_external_ref.py +0 -0
  161. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_templates_response.py +0 -0
  162. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_usage_history_response_items_inner_counts.py +0 -0
  163. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_usage_response.py +0 -0
  164. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_usage_response_costs.py +0 -0
  165. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_usage_response_counts.py +0 -0
  166. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response.py +0 -0
  167. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner.py +0 -0
  168. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_email_suppression_status.py +0 -0
  169. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_properties_value.py +0 -0
  170. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_push_tokens_inner.py +0 -0
  171. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_push_tokens_inner_device.py +0 -0
  172. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_slack_token.py +0 -0
  173. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_slack_token_authed_user.py +0 -0
  174. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_slack_token_enterprise.py +0 -0
  175. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_slack_token_incoming_webhook.py +0 -0
  176. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_slack_token_response_metadata.py +0 -0
  177. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner.py +0 -0
  178. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub.py +0 -0
  179. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub_keys.py +0 -0
  180. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_voice_agent_response.py +0 -0
  181. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_voice_call_response.py +0 -0
  182. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_voice_call_response_call.py +0 -0
  183. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_voice_call_response_call_cost.py +0 -0
  184. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_voice_call_response_call_cost_lines_inner.py +0 -0
  185. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_voice_call_response_call_timeline_inner.py +0 -0
  186. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/get_voice_call_response_call_timeline_inner_latency.py +0 -0
  187. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/in_app_notification_patch_request.py +0 -0
  188. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/in_app_notification_unread_clear_request.py +0 -0
  189. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/inapp_unread_count_response.py +0 -0
  190. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/inbound_request_body.py +0 -0
  191. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/inbound_response_body.py +0 -0
  192. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/inbound_response_body_results_inner.py +0 -0
  193. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ingishts_post_request.py +0 -0
  194. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ingishts_post_request_label_options.py +0 -0
  195. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner.py +0 -0
  196. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat.py +0 -0
  197. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric.py +0 -0
  198. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric_dimensions_inner.py +0 -0
  199. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook.py +0 -0
  200. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook_data.py +0 -0
  201. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook_data_item.py +0 -0
  202. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook_data_item_any_of.py +0 -0
  203. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook_data_item_any_of_contacts.py +0 -0
  204. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook_data_item_any_of_contacts_contacts_inner.py +0 -0
  205. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook_data_item_any_of_source.py +0 -0
  206. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/intercom_webhook_data_item_any_of_source_author.py +0 -0
  207. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/invite_post_response.py +0 -0
  208. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/knowledge.py +0 -0
  209. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/knowledge_documents_inner.py +0 -0
  210. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_accounts_response.py +0 -0
  211. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_accounts_response_accounts_inner.py +0 -0
  212. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_broadcast_recipients_response.py +0 -0
  213. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_broadcast_recipients_response_recipients_inner.py +0 -0
  214. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_broadcasts_response.py +0 -0
  215. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_broadcasts_response_broadcasts_inner.py +0 -0
  216. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_invoices_response.py +0 -0
  217. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_invoices_response_invoices_inner.py +0 -0
  218. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_library_response.py +0 -0
  219. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_library_response_items_inner.py +0 -0
  220. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_personal_access_tokens_response.py +0 -0
  221. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_personal_access_tokens_response_tokens_inner.py +0 -0
  222. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_phone_numbers_response.py +0 -0
  223. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_phone_numbers_response_numbers_inner.py +0 -0
  224. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_released_phone_numbers_response.py +0 -0
  225. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_voice_agents_response.py +0 -0
  226. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_voice_calls_response.py +0 -0
  227. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/list_voice_calls_response_calls_inner.py +0 -0
  228. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/log_query_post_body.py +0 -0
  229. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/logs_bulk_request.py +0 -0
  230. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/logs_get_response.py +0 -0
  231. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/logs_get_response_logs_inner.py +0 -0
  232. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/logs_query_response.py +0 -0
  233. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/logs_query_result_response.py +0 -0
  234. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/logs_retention_response.py +0 -0
  235. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/logs_tail_response.py +0 -0
  236. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/mcp.py +0 -0
  237. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/member_invite_request.py +0 -0
  238. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/member_update_request.py +0 -0
  239. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/message_response.py +0 -0
  240. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/mfa_setup_request.py +0 -0
  241. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/mfa_setup_response.py +0 -0
  242. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/mfa_status_response.py +0 -0
  243. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/mfa_verify_request.py +0 -0
  244. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/notification.py +0 -0
  245. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/notification_create_request.py +0 -0
  246. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/notification_patch_request.py +0 -0
  247. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/notification_patch_request_deduplication.py +0 -0
  248. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/notification_patch_request_throttling.py +0 -0
  249. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/order_phone_number_request.py +0 -0
  250. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/order_phone_number_response.py +0 -0
  251. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/phone_verify_confirm_request.py +0 -0
  252. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/phone_verify_confirm_response.py +0 -0
  253. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/phone_verify_start_request.py +0 -0
  254. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/phone_verify_start_response.py +0 -0
  255. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/post_email_test_request.py +0 -0
  256. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/post_email_test_response.py +0 -0
  257. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/post_senders_request_body.py +0 -0
  258. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/post_user_request.py +0 -0
  259. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/release_phone_number_response.py +0 -0
  260. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/s2s.py +0 -0
  261. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/schedule_broadcast_request.py +0 -0
  262. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/search_available_phone_numbers_response.py +0 -0
  263. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/search_available_phone_numbers_response_numbers_inner.py +0 -0
  264. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_email_api_response.py +0 -0
  265. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_email_api_response_any_of.py +0 -0
  266. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_email_api_response_any_of1.py +0 -0
  267. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_email_api_response_any_of1_error.py +0 -0
  268. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_email_request_attachments_inner.py +0 -0
  269. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_sms_request.py +0 -0
  270. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_sms_response.py +0 -0
  271. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_sms_response_any_of.py +0 -0
  272. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_sms_response_any_of1.py +0 -0
  273. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/send_sms_response_any_of1_error.py +0 -0
  274. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body.py +0 -0
  275. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_call.py +0 -0
  276. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_email.py +0 -0
  277. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_inapp.py +0 -0
  278. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_mobile_push.py +0 -0
  279. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options.py +0 -0
  280. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options_apn.py +0 -0
  281. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options_email_attachments_inner.py +0 -0
  282. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options_email_attachments_inner_any_of.py +0 -0
  283. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options_fcm.py +0 -0
  284. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options_fcm_android.py +0 -0
  285. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_options_push.py +0 -0
  286. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_slack.py +0 -0
  287. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_sms.py +0 -0
  288. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_sms_auto_reply.py +0 -0
  289. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_to.py +0 -0
  290. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_user.py +0 -0
  291. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_body_web_push.py +0 -0
  292. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sender_post_response.py +0 -0
  293. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/set_default_template_request.py +0 -0
  294. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/slack_interactivity_response.py +0 -0
  295. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sub_notification.py +0 -0
  296. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/sub_notification_put_request.py +0 -0
  297. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/success_response.py +0 -0
  298. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/supabase_configure_request.py +0 -0
  299. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/supabase_configure_response.py +0 -0
  300. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/supabase_o_auth_request.py +0 -0
  301. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/supabase_o_auth_response.py +0 -0
  302. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/supabase_projects_response.py +0 -0
  303. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/supabase_projects_response_projects_inner.py +0 -0
  304. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/supabase_status_response.py +0 -0
  305. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/template.py +0 -0
  306. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/template_patch_request.py +0 -0
  307. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/template_patch_request_batch.py +0 -0
  308. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/template_patch_request_instant.py +0 -0
  309. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/template_post_request.py +0 -0
  310. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_brand_admin_update_request.py +0 -0
  311. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_brand_create_request.py +0 -0
  312. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_brand_registration.py +0 -0
  313. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_brand_registration_details.py +0 -0
  314. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_brand_update_request.py +0 -0
  315. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_campaign_admin_update_request.py +0 -0
  316. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_campaign_registration.py +0 -0
  317. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_campaign_registration_details.py +0 -0
  318. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/ten_dlc_campaign_update_request.py +0 -0
  319. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/transfer.py +0 -0
  320. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/unbind_number_response.py +0 -0
  321. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/update_address_request.py +0 -0
  322. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/update_broadcast_request.py +0 -0
  323. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/update_voice_agent_request.py +0 -0
  324. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/update_voice_agent_response.py +0 -0
  325. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user.py +0 -0
  326. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_preferences_get_response.py +0 -0
  327. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_preferences_get_response_notifications_inner.py +0 -0
  328. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_preferences_get_response_preferences_inner.py +0 -0
  329. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_preferences_get_response_sub_notifications_inner.py +0 -0
  330. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_preferences_post_request_inner.py +0 -0
  331. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_preferences_post_response_inner.py +0 -0
  332. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_preferences_post_response_inner_channels_states_inner.py +0 -0
  333. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/user_suppression_delete_response.py +0 -0
  334. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/voice_browser_call_request.py +0 -0
  335. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/voice_browser_call_response.py +0 -0
  336. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/voice_call_request.py +0 -0
  337. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/voice_call_response.py +0 -0
  338. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/webhook_endpoints_response.py +0 -0
  339. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/webhook_event.py +0 -0
  340. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/models/webhook_response.py +0 -0
  341. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/py.typed +0 -0
  342. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/rest.py +0 -0
  343. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram/webhooks.py +0 -0
  344. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram_python.egg-info/SOURCES.txt +0 -0
  345. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram_python.egg-info/dependency_links.txt +0 -0
  346. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram_python.egg-info/requires.txt +0 -0
  347. {pingram_python-1.0.34 → pingram_python-1.0.36}/generated/pingram_python.egg-info/top_level.txt +0 -0
  348. {pingram_python-1.0.34 → pingram_python-1.0.36}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingram-python
3
- Version: 1.0.34
3
+ Version: 1.0.36
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.34"
17
+ __version__ = "1.0.36"
18
18
 
19
19
  # Define package exports
20
20
  __all__ = [
@@ -1128,6 +1128,7 @@ class AccountApi:
1128
1128
  self,
1129
1129
  start_date: Annotated[StrictStr, Field(description="Start date (YYYY-MM-DD) for the range")],
1130
1130
  end_date: Annotated[StrictStr, Field(description="End date (YYYY-MM-DD) for the range")],
1131
+ group_by: Annotated[Optional[StrictStr], Field(description="calendar (UTC months, default) or billing (account billing cycles)")] = None,
1131
1132
  _request_timeout: Union[
1132
1133
  None,
1133
1134
  Annotated[StrictFloat, Field(gt=0)],
@@ -1141,13 +1142,15 @@ class AccountApi:
1141
1142
  _headers: Optional[Dict[StrictStr, Any]] = None,
1142
1143
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1143
1144
  ) -> GetUsageHistoryResponse:
1144
- """Get historical usage for the authenticated account over a date range.
1145
+ """Get historical usage for the authenticated account over a date range, summed by UTC calendar month or billing cycle from daily counts.
1145
1146
 
1146
1147
 
1147
1148
  :param start_date: Start date (YYYY-MM-DD) for the range (required)
1148
1149
  :type start_date: str
1149
1150
  :param end_date: End date (YYYY-MM-DD) for the range (required)
1150
1151
  :type end_date: str
1152
+ :param group_by: calendar (UTC months, default) or billing (account billing cycles)
1153
+ :type group_by: str
1151
1154
  :param _request_timeout: timeout setting for this request. If one
1152
1155
  number provided, it will be total request
1153
1156
  timeout. It can also be a pair (tuple) of
@@ -1173,6 +1176,7 @@ class AccountApi:
1173
1176
  _param = self._account_get_usage_history_serialize(
1174
1177
  start_date=start_date,
1175
1178
  end_date=end_date,
1179
+ group_by=group_by,
1176
1180
  _request_auth=_request_auth,
1177
1181
  _content_type=_content_type,
1178
1182
  _headers=_headers,
@@ -1203,6 +1207,7 @@ class AccountApi:
1203
1207
  self,
1204
1208
  start_date: Annotated[StrictStr, Field(description="Start date (YYYY-MM-DD) for the range")],
1205
1209
  end_date: Annotated[StrictStr, Field(description="End date (YYYY-MM-DD) for the range")],
1210
+ group_by: Annotated[Optional[StrictStr], Field(description="calendar (UTC months, default) or billing (account billing cycles)")] = None,
1206
1211
  _request_timeout: Union[
1207
1212
  None,
1208
1213
  Annotated[StrictFloat, Field(gt=0)],
@@ -1216,13 +1221,15 @@ class AccountApi:
1216
1221
  _headers: Optional[Dict[StrictStr, Any]] = None,
1217
1222
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1218
1223
  ) -> ApiResponse[GetUsageHistoryResponse]:
1219
- """Get historical usage for the authenticated account over a date range.
1224
+ """Get historical usage for the authenticated account over a date range, summed by UTC calendar month or billing cycle from daily counts.
1220
1225
 
1221
1226
 
1222
1227
  :param start_date: Start date (YYYY-MM-DD) for the range (required)
1223
1228
  :type start_date: str
1224
1229
  :param end_date: End date (YYYY-MM-DD) for the range (required)
1225
1230
  :type end_date: str
1231
+ :param group_by: calendar (UTC months, default) or billing (account billing cycles)
1232
+ :type group_by: str
1226
1233
  :param _request_timeout: timeout setting for this request. If one
1227
1234
  number provided, it will be total request
1228
1235
  timeout. It can also be a pair (tuple) of
@@ -1248,6 +1255,7 @@ class AccountApi:
1248
1255
  _param = self._account_get_usage_history_serialize(
1249
1256
  start_date=start_date,
1250
1257
  end_date=end_date,
1258
+ group_by=group_by,
1251
1259
  _request_auth=_request_auth,
1252
1260
  _content_type=_content_type,
1253
1261
  _headers=_headers,
@@ -1278,6 +1286,7 @@ class AccountApi:
1278
1286
  self,
1279
1287
  start_date: Annotated[StrictStr, Field(description="Start date (YYYY-MM-DD) for the range")],
1280
1288
  end_date: Annotated[StrictStr, Field(description="End date (YYYY-MM-DD) for the range")],
1289
+ group_by: Annotated[Optional[StrictStr], Field(description="calendar (UTC months, default) or billing (account billing cycles)")] = None,
1281
1290
  _request_timeout: Union[
1282
1291
  None,
1283
1292
  Annotated[StrictFloat, Field(gt=0)],
@@ -1291,13 +1300,15 @@ class AccountApi:
1291
1300
  _headers: Optional[Dict[StrictStr, Any]] = None,
1292
1301
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1293
1302
  ) -> RESTResponseType:
1294
- """Get historical usage for the authenticated account over a date range.
1303
+ """Get historical usage for the authenticated account over a date range, summed by UTC calendar month or billing cycle from daily counts.
1295
1304
 
1296
1305
 
1297
1306
  :param start_date: Start date (YYYY-MM-DD) for the range (required)
1298
1307
  :type start_date: str
1299
1308
  :param end_date: End date (YYYY-MM-DD) for the range (required)
1300
1309
  :type end_date: str
1310
+ :param group_by: calendar (UTC months, default) or billing (account billing cycles)
1311
+ :type group_by: str
1301
1312
  :param _request_timeout: timeout setting for this request. If one
1302
1313
  number provided, it will be total request
1303
1314
  timeout. It can also be a pair (tuple) of
@@ -1323,6 +1334,7 @@ class AccountApi:
1323
1334
  _param = self._account_get_usage_history_serialize(
1324
1335
  start_date=start_date,
1325
1336
  end_date=end_date,
1337
+ group_by=group_by,
1326
1338
  _request_auth=_request_auth,
1327
1339
  _content_type=_content_type,
1328
1340
  _headers=_headers,
@@ -1348,6 +1360,7 @@ class AccountApi:
1348
1360
  self,
1349
1361
  start_date,
1350
1362
  end_date,
1363
+ group_by,
1351
1364
  _request_auth,
1352
1365
  _content_type,
1353
1366
  _headers,
@@ -1378,6 +1391,10 @@ class AccountApi:
1378
1391
 
1379
1392
  _query_params.append(('endDate', end_date))
1380
1393
 
1394
+ if group_by is not None:
1395
+
1396
+ _query_params.append(('groupBy', group_by))
1397
+
1381
1398
  # process the header parameters
1382
1399
  # process the form parameters
1383
1400
  # process the body parameter
@@ -57,7 +57,7 @@ class WebhooksApi:
57
57
  _headers: Optional[Dict[StrictStr, Any]] = None,
58
58
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
59
59
  ) -> WebhookEndpoint:
60
- """Create a webhook.
60
+ """Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be http or https and should return 2xx.
61
61
 
62
62
 
63
63
  :param webhook_endpoint_upsert_request: (required)
@@ -128,7 +128,7 @@ class WebhooksApi:
128
128
  _headers: Optional[Dict[StrictStr, Any]] = None,
129
129
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
130
130
  ) -> ApiResponse[WebhookEndpoint]:
131
- """Create a webhook.
131
+ """Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be http or https and should return 2xx.
132
132
 
133
133
 
134
134
  :param webhook_endpoint_upsert_request: (required)
@@ -199,7 +199,7 @@ class WebhooksApi:
199
199
  _headers: Optional[Dict[StrictStr, Any]] = None,
200
200
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
201
201
  ) -> RESTResponseType:
202
- """Create a webhook.
202
+ """Create a webhook endpoint. Pingram POSTs signed JSON to the URL when one of the subscribed events happens. The response includes id and a signing secret starting with pingram_whsecret_. Save it and verify the X-Pingram-Signature header. Updates keep this secret. At most 10 endpoints per account. The URL must be http or https and should return 2xx.
203
203
 
204
204
 
205
205
  :param webhook_endpoint_upsert_request: (required)
@@ -332,7 +332,7 @@ class WebhooksApi:
332
332
  @validate_call
333
333
  async def webhooks_delete_webhook(
334
334
  self,
335
- endpoint_id: Annotated[StrictStr, Field(description="Webhook endpoint id")],
335
+ endpoint_id: Annotated[StrictStr, Field(description="Id of the webhook endpoint, from list or create.")],
336
336
  _request_timeout: Union[
337
337
  None,
338
338
  Annotated[StrictFloat, Field(gt=0)],
@@ -346,10 +346,10 @@ class WebhooksApi:
346
346
  _headers: Optional[Dict[StrictStr, Any]] = None,
347
347
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
348
348
  ) -> None:
349
- """Delete a webhook.
349
+ """Delete one webhook endpoint by id from list or create. That URL stops receiving its events. Other endpoints on the account are left as they are.
350
350
 
351
351
 
352
- :param endpoint_id: Webhook endpoint id (required)
352
+ :param endpoint_id: Id of the webhook endpoint, from list or create. (required)
353
353
  :type endpoint_id: str
354
354
  :param _request_timeout: timeout setting for this request. If one
355
355
  number provided, it will be total request
@@ -403,7 +403,7 @@ class WebhooksApi:
403
403
  @validate_call
404
404
  async def webhooks_delete_webhook_with_http_info(
405
405
  self,
406
- endpoint_id: Annotated[StrictStr, Field(description="Webhook endpoint id")],
406
+ endpoint_id: Annotated[StrictStr, Field(description="Id of the webhook endpoint, from list or create.")],
407
407
  _request_timeout: Union[
408
408
  None,
409
409
  Annotated[StrictFloat, Field(gt=0)],
@@ -417,10 +417,10 @@ class WebhooksApi:
417
417
  _headers: Optional[Dict[StrictStr, Any]] = None,
418
418
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
419
419
  ) -> ApiResponse[None]:
420
- """Delete a webhook.
420
+ """Delete one webhook endpoint by id from list or create. That URL stops receiving its events. Other endpoints on the account are left as they are.
421
421
 
422
422
 
423
- :param endpoint_id: Webhook endpoint id (required)
423
+ :param endpoint_id: Id of the webhook endpoint, from list or create. (required)
424
424
  :type endpoint_id: str
425
425
  :param _request_timeout: timeout setting for this request. If one
426
426
  number provided, it will be total request
@@ -474,7 +474,7 @@ class WebhooksApi:
474
474
  @validate_call
475
475
  async def webhooks_delete_webhook_without_preload_content(
476
476
  self,
477
- endpoint_id: Annotated[StrictStr, Field(description="Webhook endpoint id")],
477
+ endpoint_id: Annotated[StrictStr, Field(description="Id of the webhook endpoint, from list or create.")],
478
478
  _request_timeout: Union[
479
479
  None,
480
480
  Annotated[StrictFloat, Field(gt=0)],
@@ -488,10 +488,10 @@ class WebhooksApi:
488
488
  _headers: Optional[Dict[StrictStr, Any]] = None,
489
489
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
490
490
  ) -> RESTResponseType:
491
- """Delete a webhook.
491
+ """Delete one webhook endpoint by id from list or create. That URL stops receiving its events. Other endpoints on the account are left as they are.
492
492
 
493
493
 
494
- :param endpoint_id: Webhook endpoint id (required)
494
+ :param endpoint_id: Id of the webhook endpoint, from list or create. (required)
495
495
  :type endpoint_id: str
496
496
  :param _request_timeout: timeout setting for this request. If one
497
497
  number provided, it will be total request
@@ -621,7 +621,7 @@ class WebhooksApi:
621
621
  _headers: Optional[Dict[StrictStr, Any]] = None,
622
622
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
623
623
  ) -> WebhookEndpointsResponse:
624
- """List webhooks for the current account.
624
+ """List webhook endpoints on the current account, including each id, URL, subscribed events, and signing secret. Use the id with update or delete.
625
625
 
626
626
 
627
627
  :param _request_timeout: timeout setting for this request. If one
@@ -688,7 +688,7 @@ class WebhooksApi:
688
688
  _headers: Optional[Dict[StrictStr, Any]] = None,
689
689
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
690
690
  ) -> ApiResponse[WebhookEndpointsResponse]:
691
- """List webhooks for the current account.
691
+ """List webhook endpoints on the current account, including each id, URL, subscribed events, and signing secret. Use the id with update or delete.
692
692
 
693
693
 
694
694
  :param _request_timeout: timeout setting for this request. If one
@@ -755,7 +755,7 @@ class WebhooksApi:
755
755
  _headers: Optional[Dict[StrictStr, Any]] = None,
756
756
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
757
757
  ) -> RESTResponseType:
758
- """List webhooks for the current account.
758
+ """List webhook endpoints on the current account, including each id, URL, subscribed events, and signing secret. Use the id with update or delete.
759
759
 
760
760
 
761
761
  :param _request_timeout: timeout setting for this request. If one
@@ -869,7 +869,7 @@ class WebhooksApi:
869
869
  @validate_call
870
870
  async def webhooks_update_webhook(
871
871
  self,
872
- endpoint_id: Annotated[StrictStr, Field(description="Webhook endpoint id")],
872
+ endpoint_id: Annotated[StrictStr, Field(description="Id of the webhook endpoint, from list or create.")],
873
873
  webhook_endpoint_upsert_request: WebhookEndpointUpsertRequest,
874
874
  _request_timeout: Union[
875
875
  None,
@@ -884,10 +884,10 @@ class WebhooksApi:
884
884
  _headers: Optional[Dict[StrictStr, Any]] = None,
885
885
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
886
886
  ) -> WebhookEndpoint:
887
- """Update a webhook. The signing secret is preserved.
887
+ """Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be http or https.
888
888
 
889
889
 
890
- :param endpoint_id: Webhook endpoint id (required)
890
+ :param endpoint_id: Id of the webhook endpoint, from list or create. (required)
891
891
  :type endpoint_id: str
892
892
  :param webhook_endpoint_upsert_request: (required)
893
893
  :type webhook_endpoint_upsert_request: WebhookEndpointUpsertRequest
@@ -944,7 +944,7 @@ class WebhooksApi:
944
944
  @validate_call
945
945
  async def webhooks_update_webhook_with_http_info(
946
946
  self,
947
- endpoint_id: Annotated[StrictStr, Field(description="Webhook endpoint id")],
947
+ endpoint_id: Annotated[StrictStr, Field(description="Id of the webhook endpoint, from list or create.")],
948
948
  webhook_endpoint_upsert_request: WebhookEndpointUpsertRequest,
949
949
  _request_timeout: Union[
950
950
  None,
@@ -959,10 +959,10 @@ class WebhooksApi:
959
959
  _headers: Optional[Dict[StrictStr, Any]] = None,
960
960
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
961
961
  ) -> ApiResponse[WebhookEndpoint]:
962
- """Update a webhook. The signing secret is preserved.
962
+ """Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be http or https.
963
963
 
964
964
 
965
- :param endpoint_id: Webhook endpoint id (required)
965
+ :param endpoint_id: Id of the webhook endpoint, from list or create. (required)
966
966
  :type endpoint_id: str
967
967
  :param webhook_endpoint_upsert_request: (required)
968
968
  :type webhook_endpoint_upsert_request: WebhookEndpointUpsertRequest
@@ -1019,7 +1019,7 @@ class WebhooksApi:
1019
1019
  @validate_call
1020
1020
  async def webhooks_update_webhook_without_preload_content(
1021
1021
  self,
1022
- endpoint_id: Annotated[StrictStr, Field(description="Webhook endpoint id")],
1022
+ endpoint_id: Annotated[StrictStr, Field(description="Id of the webhook endpoint, from list or create.")],
1023
1023
  webhook_endpoint_upsert_request: WebhookEndpointUpsertRequest,
1024
1024
  _request_timeout: Union[
1025
1025
  None,
@@ -1034,10 +1034,10 @@ class WebhooksApi:
1034
1034
  _headers: Optional[Dict[StrictStr, Any]] = None,
1035
1035
  _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1036
1036
  ) -> RESTResponseType:
1037
- """Update a webhook. The signing secret is preserved.
1037
+ """Replace one webhook endpoint's URL and its full event subscription. endpointId comes from list or create. The signing secret stays the same. events is the complete set; omitting an event unsubscribes it. The URL must be http or https.
1038
1038
 
1039
1039
 
1040
- :param endpoint_id: Webhook endpoint id (required)
1040
+ :param endpoint_id: Id of the webhook endpoint, from list or create. (required)
1041
1041
  :type endpoint_id: str
1042
1042
  :param webhook_endpoint_upsert_request: (required)
1043
1043
  :type webhook_endpoint_upsert_request: WebhookEndpointUpsertRequest
@@ -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.34'
94
+ self.user_agent = 'pingram-python/1.0.36'
95
95
  self.client_side_validation = configuration.client_side_validation
96
96
 
97
97
  async def __aenter__(self):
@@ -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.34".\
554
+ "SDK Package Version: 1.0.36".\
555
555
  format(env=sys.platform, pyversion=sys.version)
556
556
 
557
557
  def get_host_settings(self) -> List[HostSetting]:
@@ -33,8 +33,8 @@ class CreateAccountRequestPlan(BaseModel):
33
33
  @field_validator('tier')
34
34
  def tier_validate_enum(cls, value):
35
35
  """Validates the enum"""
36
- if value not in set(['budget_20', 'budget_50', 'budget_100', 'budget_250', 'budget_500', 'budget_1000', 'budget_2000', 'budget_5000']):
37
- raise ValueError("must be one of enum values ('budget_20', 'budget_50', 'budget_100', 'budget_250', 'budget_500', 'budget_1000', 'budget_2000', 'budget_5000')")
36
+ if value not in set(['budget_20', 'budget_50', 'budget_100', 'budget_250', 'budget_500', 'budget_1000']):
37
+ raise ValueError("must be one of enum values ('budget_20', 'budget_50', 'budget_100', 'budget_250', 'budget_500', 'budget_1000')")
38
38
  return value
39
39
 
40
40
  model_config = ConfigDict(
@@ -18,7 +18,7 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
- from typing import Any, ClassVar, Dict, List
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
24
24
 
@@ -28,7 +28,8 @@ class GetUsageHistoryQuery(BaseModel):
28
28
  """ # noqa: E501
29
29
  start_date: StrictStr = Field(description="Start date (YYYY-MM-DD) for the range", alias="startDate")
30
30
  end_date: StrictStr = Field(description="End date (YYYY-MM-DD) for the range", alias="endDate")
31
- __properties: ClassVar[List[str]] = ["startDate", "endDate"]
31
+ group_by: Optional[StrictStr] = Field(default=None, description="calendar = UTC calendar months (YYYY-MM). billing = account billing cycles (YYYY-MM-DD period start). Defaults to calendar.", alias="groupBy")
32
+ __properties: ClassVar[List[str]] = ["startDate", "endDate", "groupBy"]
32
33
 
33
34
  model_config = ConfigDict(
34
35
  populate_by_name=True,
@@ -82,7 +83,8 @@ class GetUsageHistoryQuery(BaseModel):
82
83
 
83
84
  _obj = cls.model_validate({
84
85
  "startDate": obj.get("startDate"),
85
- "endDate": obj.get("endDate")
86
+ "endDate": obj.get("endDate"),
87
+ "groupBy": obj.get("groupBy")
86
88
  })
87
89
  return _obj
88
90
 
@@ -27,7 +27,7 @@ class GetUsageHistoryResponse(BaseModel):
27
27
  """
28
28
  Response for GET /account/usage/history
29
29
  """ # noqa: E501
30
- items: List[GetUsageHistoryResponseItemsInner] = Field(description="Array of usage items, one per month in the requested range")
30
+ items: List[GetUsageHistoryResponseItemsInner] = Field(description="Array of usage items, one per calendar month or billing cycle in the range")
31
31
  __properties: ClassVar[List[str]] = ["items"]
32
32
 
33
33
  model_config = ConfigDict(
@@ -27,7 +27,7 @@ class GetUsageHistoryResponseItemsInner(BaseModel):
27
27
  """
28
28
  Single usage item in historical response
29
29
  """ # noqa: E501
30
- year_month: StrictStr = Field(description="Year-month (YYYY-MM) for this usage period", alias="yearMonth")
30
+ year_month: StrictStr = Field(description="YYYY-MM for calendar months, or YYYY-MM-DD billing-period start.", alias="yearMonth")
31
31
  counts: GetUsageHistoryResponseItemsInnerCounts
32
32
  __properties: ClassVar[List[str]] = ["yearMonth", "counts"]
33
33
 
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from pingram.models.send_email_request_attachments_inner import SendEmailRequestAttachmentsInner
23
23
  from typing import Optional, Set
@@ -37,9 +37,11 @@ class SendEmailRequest(BaseModel):
37
37
  reply_to_addresses: Optional[List[StrictStr]] = Field(default=None, description="The reply-to addresses of the email.", alias="replyToAddresses")
38
38
  cc_addresses: Optional[List[StrictStr]] = Field(default=None, description="The CC addresses of the email.", alias="ccAddresses")
39
39
  bcc_addresses: Optional[List[StrictStr]] = Field(default=None, description="The BCC addresses of the email.", alias="bccAddresses")
40
+ open_tracking: Optional[StrictBool] = Field(default=None, description="When false, this send does not record opens and no open pixel is added. Delivery, bounce, and complaint events are unchanged. Defaults to true.", alias="openTracking")
41
+ click_tracking: Optional[StrictBool] = Field(default=None, description="When false, links are left as written and clicks are not recorded. Delivery, bounce, and complaint events are unchanged. Defaults to true.", alias="clickTracking")
40
42
  attachments: Optional[List[SendEmailRequestAttachmentsInner]] = Field(default=None, description="URL-based file attachments. Up to 20 MB per file.")
41
43
  schedule: Optional[StrictStr] = Field(default=None, description="The ISO 8601 datetime to schedule the email.")
42
- __properties: ClassVar[List[str]] = ["type", "to", "subject", "html", "fromName", "fromAddress", "previewText", "replyToAddresses", "ccAddresses", "bccAddresses", "attachments", "schedule"]
44
+ __properties: ClassVar[List[str]] = ["type", "to", "subject", "html", "fromName", "fromAddress", "previewText", "replyToAddresses", "ccAddresses", "bccAddresses", "openTracking", "clickTracking", "attachments", "schedule"]
43
45
 
44
46
  model_config = ConfigDict(
45
47
  populate_by_name=True,
@@ -109,6 +111,8 @@ class SendEmailRequest(BaseModel):
109
111
  "replyToAddresses": obj.get("replyToAddresses"),
110
112
  "ccAddresses": obj.get("ccAddresses"),
111
113
  "bccAddresses": obj.get("bccAddresses"),
114
+ "openTracking": obj.get("openTracking"),
115
+ "clickTracking": obj.get("clickTracking"),
112
116
  "attachments": [SendEmailRequestAttachmentsInner.from_dict(_item) for _item in obj["attachments"]] if obj.get("attachments") is not None else None,
113
117
  "schedule": obj.get("schedule")
114
118
  })
@@ -17,7 +17,7 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, Field, StrictStr
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from pingram.models.sender_post_body_options_email_attachments_inner import SenderPostBodyOptionsEmailAttachmentsInner
23
23
  from typing import Optional, Set
@@ -32,8 +32,10 @@ class SenderPostBodyOptionsEmail(BaseModel):
32
32
  bcc_addresses: Optional[List[StrictStr]] = Field(default=None, description="BCC recipients.", alias="bccAddresses")
33
33
  from_address: Optional[StrictStr] = Field(default=None, description="Override sender email address.", alias="fromAddress")
34
34
  from_name: Optional[StrictStr] = Field(default=None, description="Override sender display name.", alias="fromName")
35
+ open_tracking: Optional[StrictBool] = Field(default=None, description="When false, this send does not record opens and no open pixel is added. Delivery, bounce, and complaint events are unchanged. Defaults to true.", alias="openTracking")
36
+ click_tracking: Optional[StrictBool] = Field(default=None, description="When false, links are left as written and clicks are not recorded. Delivery, bounce, and complaint events are unchanged. Defaults to true.", alias="clickTracking")
35
37
  attachments: Optional[List[SenderPostBodyOptionsEmailAttachmentsInner]] = Field(default=None, description="File attachments (by URL or inline base64 content). Inline `content`: ~4 MB raw per file (413 if exceeded). URL `url`: up to 20 MB per file.")
36
- __properties: ClassVar[List[str]] = ["replyToAddresses", "ccAddresses", "bccAddresses", "fromAddress", "fromName", "attachments"]
38
+ __properties: ClassVar[List[str]] = ["replyToAddresses", "ccAddresses", "bccAddresses", "fromAddress", "fromName", "openTracking", "clickTracking", "attachments"]
37
39
 
38
40
  model_config = ConfigDict(
39
41
  populate_by_name=True,
@@ -98,6 +100,8 @@ class SenderPostBodyOptionsEmail(BaseModel):
98
100
  "bccAddresses": obj.get("bccAddresses"),
99
101
  "fromAddress": obj.get("fromAddress"),
100
102
  "fromName": obj.get("fromName"),
103
+ "openTracking": obj.get("openTracking"),
104
+ "clickTracking": obj.get("clickTracking"),
101
105
  "attachments": [SenderPostBodyOptionsEmailAttachmentsInner.from_dict(_item) for _item in obj["attachments"]] if obj.get("attachments") is not None else None
102
106
  })
103
107
  return _obj
@@ -27,9 +27,9 @@ class WebhookEndpoint(BaseModel):
27
27
  Destination URL that receives signed event payloads for a set of subscribed events.
28
28
  """ # noqa: E501
29
29
  id: StrictStr = Field(description="Unique identifier for this endpoint within the account.")
30
- webhook: StrictStr = Field(description="Destination URL that receives webhook event payloads.")
31
- events: List[StrictStr] = Field(description="List of subscribed event types for this endpoint.")
32
- secret: StrictStr = Field(description="HMAC secret for verifying webhook signatures. Use this with your X-Pingram-Signature verification.")
30
+ webhook: StrictStr = Field(description="Destination URL that receives signed JSON event payloads.")
31
+ events: List[StrictStr] = Field(description="Subscribed event types for this endpoint.")
32
+ secret: StrictStr = Field(description="HMAC secret for verifying X-Pingram-Signature. Returned on create and list; updates keep the same secret. Format: pingram_whsecret_...")
33
33
  __properties: ClassVar[List[str]] = ["id", "webhook", "events", "secret"]
34
34
 
35
35
  @field_validator('events')
@@ -26,8 +26,8 @@ class WebhookEndpointUpsertRequest(BaseModel):
26
26
  """
27
27
  Request body for creating or updating an events webhook endpoint.
28
28
  """ # noqa: E501
29
- webhook: StrictStr = Field(description="Destination URL that receives webhook event payloads. Must be a valid http(s) URL.")
30
- events: List[StrictStr] = Field(description="List of event types that should be forwarded to the webhook URL.")
29
+ webhook: StrictStr = Field(description="Public http or https URL that accepts POST with a JSON event body. Return 2xx to acknowledge. Requests include X-Pingram-Id, X-Pingram-Signature (v1 HMAC-SHA256), and X-Pingram-Timestamp.")
30
+ events: List[StrictStr] = Field(description="Full set of event types to deliver to this URL. Omitting an event on update unsubscribes it. Inbound SMS to the free shared number only works when that person has already received a text from this number. Inbound SMS to a dedicated number works normally.")
31
31
  __properties: ClassVar[List[str]] = ["webhook", "events"]
32
32
 
33
33
  @field_validator('events')
@@ -27,9 +27,9 @@ class WebhookEndpointsResponseEndpointsInner(BaseModel):
27
27
  Destination URL that receives signed event payloads for a set of subscribed events.
28
28
  """ # noqa: E501
29
29
  id: StrictStr = Field(description="Unique identifier for this endpoint within the account.")
30
- webhook: StrictStr = Field(description="Destination URL that receives webhook event payloads.")
31
- events: List[StrictStr] = Field(description="List of subscribed event types for this endpoint.")
32
- secret: StrictStr = Field(description="HMAC secret for verifying webhook signatures. Use this with your X-Pingram-Signature verification.")
30
+ webhook: StrictStr = Field(description="Destination URL that receives signed JSON event payloads.")
31
+ events: List[StrictStr] = Field(description="Subscribed event types for this endpoint.")
32
+ secret: StrictStr = Field(description="HMAC secret for verifying X-Pingram-Signature. Returned on create and list; updates keep the same secret. Format: pingram_whsecret_...")
33
33
  __properties: ClassVar[List[str]] = ["id", "webhook", "events", "secret"]
34
34
 
35
35
  @field_validator('events')
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingram-python
3
- Version: 1.0.34
3
+ Version: 1.0.36
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
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pingram-python"
7
- version = "1.0.34"
7
+ version = "1.0.36"
8
8
  description = "Official Python SDK for Pingram - Send notifications via Email, SMS, Push, In-App, and more"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
File without changes