pingram-python 1.0.27__tar.gz → 1.0.29__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 (318) hide show
  1. {pingram_python-1.0.27/generated/pingram_python.egg-info → pingram_python-1.0.29}/PKG-INFO +1 -1
  2. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/__init__.py +1 -1
  3. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api_client.py +1 -1
  4. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/configuration.py +1 -1
  5. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/account_get_response.py +19 -5
  6. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/billing_post_response_body.py +18 -4
  7. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_account_response.py +4 -2
  8. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_brand_admin_update_request.py +13 -13
  9. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_brand_create_request.py +14 -12
  10. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_brand_registration.py +13 -13
  11. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_brand_registration_details.py +13 -13
  12. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_brand_update_request.py +13 -13
  13. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_campaign_admin_update_request.py +20 -20
  14. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_campaign_registration.py +20 -20
  15. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_campaign_registration_details.py +20 -20
  16. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ten_dlc_campaign_update_request.py +20 -20
  17. {pingram_python-1.0.27 → pingram_python-1.0.29/generated/pingram_python.egg-info}/PKG-INFO +1 -1
  18. {pingram_python-1.0.27 → pingram_python-1.0.29}/pyproject.toml +1 -1
  19. {pingram_python-1.0.27 → pingram_python-1.0.29}/LICENSE +0 -0
  20. {pingram_python-1.0.27 → pingram_python-1.0.29}/MANIFEST.in +0 -0
  21. {pingram_python-1.0.27 → pingram_python-1.0.29}/README.md +0 -0
  22. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/__init__.py +0 -0
  23. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/account_api.py +0 -0
  24. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/accounts_api.py +0 -0
  25. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/addresses_api.py +0 -0
  26. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/components_api.py +0 -0
  27. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/default_api.py +0 -0
  28. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/domains_api.py +0 -0
  29. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/editor_api.py +0 -0
  30. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/email_api.py +0 -0
  31. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/environments_api.py +0 -0
  32. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/health_api.py +0 -0
  33. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/insights_api.py +0 -0
  34. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/keys_api.py +0 -0
  35. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/logs_api.py +0 -0
  36. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/members_api.py +0 -0
  37. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/numbers_api.py +0 -0
  38. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/profile_api.py +0 -0
  39. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/registrations_api.py +0 -0
  40. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/sender_api.py +0 -0
  41. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/sms_api.py +0 -0
  42. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/templates_api.py +0 -0
  43. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/types_api.py +0 -0
  44. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/user_api.py +0 -0
  45. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/users_api.py +0 -0
  46. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/voice_api.py +0 -0
  47. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api/webhooks_api.py +0 -0
  48. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/api_response.py +0 -0
  49. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/client_wrapper.py +0 -0
  50. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/exceptions.py +0 -0
  51. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/__init__.py +0 -0
  52. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/accept_invite_request.py +0 -0
  53. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/accept_invite_response.py +0 -0
  54. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/account_addresses_response.py +0 -0
  55. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/account_addresses_response_addresses_inner.py +0 -0
  56. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/address_response.py +0 -0
  57. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/api_error_body.py +0 -0
  58. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/api_error_response.py +0 -0
  59. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/auto_join_get_response.py +0 -0
  60. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/auto_join_post_response.py +0 -0
  61. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/auto_join_request_body.py +0 -0
  62. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bee_token_v2.py +0 -0
  63. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/billing_post_request_body.py +0 -0
  64. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_request.py +0 -0
  65. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response.py +0 -0
  66. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent.py +0 -0
  67. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec.py +0 -0
  68. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec_compliance.py +0 -0
  69. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec_conversation.py +0 -0
  70. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec_inbound.py +0 -0
  71. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec_model.py +0 -0
  72. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec_outbound.py +0 -0
  73. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec_tools_inner.py +0 -0
  74. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/bind_number_response_agent_spec_variables_inner.py +0 -0
  75. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/brand_webhook_response.py +0 -0
  76. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/campaign_webhook_response.py +0 -0
  77. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/chained.py +0 -0
  78. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/change_email_request.py +0 -0
  79. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/change_phone_request.py +0 -0
  80. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/channels_enum.py +0 -0
  81. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_account_request.py +0 -0
  82. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_account_request_plan.py +0 -0
  83. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_address_request.py +0 -0
  84. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_key_request.py +0 -0
  85. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_key_response.py +0 -0
  86. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_personal_access_token_request.py +0 -0
  87. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_personal_access_token_response.py +0 -0
  88. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_voice_agent_request.py +0 -0
  89. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/create_voice_agent_response.py +0 -0
  90. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/custom.py +0 -0
  91. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/delete_account_request.py +0 -0
  92. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/delete_key_response.py +0 -0
  93. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/delete_user_response.py +0 -0
  94. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/delete_voice_agent_response.py +0 -0
  95. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/domain_dns_check.py +0 -0
  96. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/domain_dns_check_records_inner.py +0 -0
  97. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/dtmf.py +0 -0
  98. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/email_auth_token_post_request.py +0 -0
  99. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/email_component_patch_request.py +0 -0
  100. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/email_component_post_request.py +0 -0
  101. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/email_component_response.py +0 -0
  102. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/email_component_response_referenced_by_inner.py +0 -0
  103. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/environment.py +0 -0
  104. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/environment_patch_request.py +0 -0
  105. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/events_webhook_response.py +0 -0
  106. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/events_webhook_upsert_request.py +0 -0
  107. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/first_account_request.py +0 -0
  108. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/first_account_response.py +0 -0
  109. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_account_metadata_response.py +0 -0
  110. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_account_metadata_response_user_account_metadata.py +0 -0
  111. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_email_components_response_inner.py +0 -0
  112. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_environments_response_inner.py +0 -0
  113. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response.py +0 -0
  114. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response_notifications_inner.py +0 -0
  115. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options.py +0 -0
  116. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_instant.py +0 -0
  117. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_delivery_options_off.py +0 -0
  118. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_replies_inner.py +0 -0
  119. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_template.py +0 -0
  120. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_inapp_notifications_response_notifications_inner_template_any_of.py +0 -0
  121. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_keys_response.py +0 -0
  122. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_keys_response_keys_inner.py +0 -0
  123. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_logs_response.py +0 -0
  124. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_logs_response_messages_inner.py +0 -0
  125. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_logs_response_messages_inner_attachments_inner.py +0 -0
  126. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_logs_response_messages_inner_media_inner.py +0 -0
  127. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_members_response_inner.py +0 -0
  128. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_metrics_response_inner.py +0 -0
  129. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_metrics_response_inner_messages_inner.py +0 -0
  130. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner.py +0 -0
  131. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_deduplication.py +0 -0
  132. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_options.py +0 -0
  133. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_options_email.py +0 -0
  134. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_options_email_daily.py +0 -0
  135. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_options_email_monthly.py +0 -0
  136. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_options_email_weekly.py +0 -0
  137. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_templates_inner.py +0 -0
  138. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_notifications_response_inner_throttling.py +0 -0
  139. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_senders_response_inner.py +0 -0
  140. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_senders_response_inner_verification_records.py +0 -0
  141. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_senders_response_inner_verification_records_dkim.py +0 -0
  142. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner.py +0 -0
  143. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of.py +0 -0
  144. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of1.py +0 -0
  145. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of1_instant.py +0 -0
  146. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of2.py +0 -0
  147. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of3.py +0 -0
  148. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of4.py +0 -0
  149. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of5.py +0 -0
  150. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of6.py +0 -0
  151. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata.py +0 -0
  152. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata_entities_inner.py +0 -0
  153. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_list_response_inner_any_of6_metadata_entities_inner_external_ref.py +0 -0
  154. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_templates_response.py +0 -0
  155. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_usage_history_query.py +0 -0
  156. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_usage_history_response.py +0 -0
  157. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_usage_history_response_items_inner.py +0 -0
  158. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_usage_history_response_items_inner_counts.py +0 -0
  159. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_usage_response.py +0 -0
  160. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_usage_response_costs.py +0 -0
  161. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_usage_response_counts.py +0 -0
  162. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response.py +0 -0
  163. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner.py +0 -0
  164. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_email_suppression_status.py +0 -0
  165. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_push_tokens_inner.py +0 -0
  166. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_push_tokens_inner_device.py +0 -0
  167. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_slack_token.py +0 -0
  168. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_slack_token_authed_user.py +0 -0
  169. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_slack_token_enterprise.py +0 -0
  170. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_slack_token_incoming_webhook.py +0 -0
  171. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_slack_token_response_metadata.py +0 -0
  172. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner.py +0 -0
  173. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub.py +0 -0
  174. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_users_response_users_inner_web_push_tokens_inner_sub_keys.py +0 -0
  175. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_voice_agent_response.py +0 -0
  176. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_voice_call_response.py +0 -0
  177. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_voice_call_response_call.py +0 -0
  178. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_voice_call_response_call_cost.py +0 -0
  179. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_voice_call_response_call_cost_lines_inner.py +0 -0
  180. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_voice_call_response_call_timeline_inner.py +0 -0
  181. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/get_voice_call_response_call_timeline_inner_latency.py +0 -0
  182. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/in_app_notification_patch_request.py +0 -0
  183. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/in_app_notification_unread_clear_request.py +0 -0
  184. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/inapp_unread_count_response.py +0 -0
  185. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/inbound_request_body.py +0 -0
  186. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/inbound_response_body.py +0 -0
  187. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/inbound_response_body_results_inner.py +0 -0
  188. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ingishts_post_request.py +0 -0
  189. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ingishts_post_request_label_options.py +0 -0
  190. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner.py +0 -0
  191. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat.py +0 -0
  192. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric.py +0 -0
  193. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/ingishts_post_request_metric_data_queries_inner_metric_stat_metric_dimensions_inner.py +0 -0
  194. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook.py +0 -0
  195. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook_data.py +0 -0
  196. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook_data_item.py +0 -0
  197. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook_data_item_any_of.py +0 -0
  198. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook_data_item_any_of_contacts.py +0 -0
  199. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook_data_item_any_of_contacts_contacts_inner.py +0 -0
  200. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook_data_item_any_of_source.py +0 -0
  201. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/intercom_webhook_data_item_any_of_source_author.py +0 -0
  202. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/invite_post_response.py +0 -0
  203. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/knowledge.py +0 -0
  204. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/knowledge_documents_inner.py +0 -0
  205. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_accounts_response.py +0 -0
  206. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_accounts_response_accounts_inner.py +0 -0
  207. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_invoices_response.py +0 -0
  208. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_invoices_response_invoices_inner.py +0 -0
  209. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_personal_access_tokens_response.py +0 -0
  210. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_personal_access_tokens_response_tokens_inner.py +0 -0
  211. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_phone_numbers_response.py +0 -0
  212. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_phone_numbers_response_numbers_inner.py +0 -0
  213. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_released_phone_numbers_response.py +0 -0
  214. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_voice_agents_response.py +0 -0
  215. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_voice_calls_response.py +0 -0
  216. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/list_voice_calls_response_calls_inner.py +0 -0
  217. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/log_query_post_body.py +0 -0
  218. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/logs_bulk_request.py +0 -0
  219. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/logs_get_response.py +0 -0
  220. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/logs_get_response_logs_inner.py +0 -0
  221. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/logs_query_response.py +0 -0
  222. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/logs_query_result_response.py +0 -0
  223. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/logs_retention_response.py +0 -0
  224. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/logs_tail_response.py +0 -0
  225. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/mcp.py +0 -0
  226. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/member_invite_request.py +0 -0
  227. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/member_update_request.py +0 -0
  228. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/message_response.py +0 -0
  229. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/mfa_setup_request.py +0 -0
  230. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/mfa_setup_response.py +0 -0
  231. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/mfa_status_response.py +0 -0
  232. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/mfa_verify_request.py +0 -0
  233. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/notification.py +0 -0
  234. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/notification_create_request.py +0 -0
  235. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/notification_patch_request.py +0 -0
  236. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/notification_patch_request_deduplication.py +0 -0
  237. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/notification_patch_request_throttling.py +0 -0
  238. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/order_phone_number_request.py +0 -0
  239. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/order_phone_number_response.py +0 -0
  240. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/phone_verify_confirm_request.py +0 -0
  241. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/phone_verify_confirm_response.py +0 -0
  242. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/phone_verify_start_request.py +0 -0
  243. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/phone_verify_start_response.py +0 -0
  244. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/post_email_test_request.py +0 -0
  245. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/post_email_test_response.py +0 -0
  246. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/post_senders_request_body.py +0 -0
  247. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/post_user_request.py +0 -0
  248. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/release_phone_number_response.py +0 -0
  249. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/s2s.py +0 -0
  250. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/search_available_phone_numbers_response.py +0 -0
  251. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/search_available_phone_numbers_response_numbers_inner.py +0 -0
  252. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_email_api_response.py +0 -0
  253. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_email_api_response_any_of.py +0 -0
  254. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_email_api_response_any_of1.py +0 -0
  255. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_email_api_response_any_of1_error.py +0 -0
  256. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_email_request.py +0 -0
  257. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_email_request_attachments_inner.py +0 -0
  258. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_sms_request.py +0 -0
  259. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_sms_response.py +0 -0
  260. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_sms_response_any_of.py +0 -0
  261. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_sms_response_any_of1.py +0 -0
  262. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/send_sms_response_any_of1_error.py +0 -0
  263. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body.py +0 -0
  264. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_call.py +0 -0
  265. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_email.py +0 -0
  266. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_inapp.py +0 -0
  267. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_mobile_push.py +0 -0
  268. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options.py +0 -0
  269. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options_apn.py +0 -0
  270. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options_email.py +0 -0
  271. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options_email_attachments_inner.py +0 -0
  272. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options_email_attachments_inner_any_of.py +0 -0
  273. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options_fcm.py +0 -0
  274. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options_fcm_android.py +0 -0
  275. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_options_push.py +0 -0
  276. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_slack.py +0 -0
  277. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_sms.py +0 -0
  278. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_sms_auto_reply.py +0 -0
  279. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_to.py +0 -0
  280. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_user.py +0 -0
  281. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_body_web_push.py +0 -0
  282. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/sender_post_response.py +0 -0
  283. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/set_default_template_request.py +0 -0
  284. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/slack_interactivity_response.py +0 -0
  285. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/success_response.py +0 -0
  286. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/supabase_configure_request.py +0 -0
  287. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/supabase_configure_response.py +0 -0
  288. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/supabase_o_auth_request.py +0 -0
  289. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/supabase_o_auth_response.py +0 -0
  290. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/supabase_projects_response.py +0 -0
  291. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/supabase_projects_response_projects_inner.py +0 -0
  292. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/supabase_status_response.py +0 -0
  293. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/template.py +0 -0
  294. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/template_patch_request.py +0 -0
  295. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/template_patch_request_batch.py +0 -0
  296. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/template_patch_request_instant.py +0 -0
  297. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/template_post_request.py +0 -0
  298. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/transfer.py +0 -0
  299. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/unbind_number_response.py +0 -0
  300. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/update_address_request.py +0 -0
  301. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/update_voice_agent_request.py +0 -0
  302. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/update_voice_agent_response.py +0 -0
  303. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/user.py +0 -0
  304. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/user_suppression_delete_response.py +0 -0
  305. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/voice_browser_call_request.py +0 -0
  306. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/voice_browser_call_response.py +0 -0
  307. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/voice_call_request.py +0 -0
  308. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/voice_call_response.py +0 -0
  309. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/webhook_event.py +0 -0
  310. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/models/webhook_response.py +0 -0
  311. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/py.typed +0 -0
  312. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/rest.py +0 -0
  313. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram/webhooks.py +0 -0
  314. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram_python.egg-info/SOURCES.txt +0 -0
  315. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram_python.egg-info/dependency_links.txt +0 -0
  316. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram_python.egg-info/requires.txt +0 -0
  317. {pingram_python-1.0.27 → pingram_python-1.0.29}/generated/pingram_python.egg-info/top_level.txt +0 -0
  318. {pingram_python-1.0.27 → pingram_python-1.0.29}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingram-python
3
- Version: 1.0.27
3
+ Version: 1.0.29
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.27"
17
+ __version__ = "1.0.29"
18
18
 
19
19
  # Define package exports
20
20
  __all__ = [
@@ -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.27'
94
+ self.user_agent = 'pingram-python/1.0.29'
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.27".\
554
+ "SDK Package Version: 1.0.29".\
555
555
  format(env=sys.platform, pyversion=sys.version)
556
556
 
557
557
  def get_host_settings(self) -> List[HostSetting]:
@@ -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, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
@@ -36,12 +36,14 @@ class AccountGetResponse(BaseModel):
36
36
  call_cap: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="callCap")
37
37
  billing_version: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="When omitted, defaults to LATEST_BILLING_VERSION.", alias="billingVersion")
38
38
  anniversary_date: StrictStr = Field(description="ISO date (YYYY-MM-DD) when the billing cycle resets.", alias="anniversaryDate")
39
- allow_overage: StrictBool = Field(alias="allowOverage")
40
39
  created_at: StrictStr = Field(alias="createdAt")
41
40
  updated_at: StrictStr = Field(alias="updatedAt")
42
41
  status: Optional[StrictStr] = None
43
42
  subscription_status: Optional[StrictStr] = Field(default=None, alias="subscriptionStatus")
44
- __properties: ClassVar[List[str]] = ["accountId", "accountType", "creator", "name", "messagesCap", "costCap", "smsCap", "callCap", "billingVersion", "anniversaryDate", "allowOverage", "createdAt", "updatedAt", "status", "subscriptionStatus"]
43
+ pending_downgrade_effective_date: Optional[StrictStr] = Field(default=None, alias="pendingDowngradeEffectiveDate")
44
+ pending_downgrade_cost_cap: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="pendingDowngradeCostCap")
45
+ pending_downgrade_account_type: Optional[StrictStr] = Field(default=None, alias="pendingDowngradeAccountType")
46
+ __properties: ClassVar[List[str]] = ["accountId", "accountType", "creator", "name", "messagesCap", "costCap", "smsCap", "callCap", "billingVersion", "anniversaryDate", "createdAt", "updatedAt", "status", "subscriptionStatus", "pendingDowngradeEffectiveDate", "pendingDowngradeCostCap", "pendingDowngradeAccountType"]
45
47
 
46
48
  @field_validator('account_type')
47
49
  def account_type_validate_enum(cls, value):
@@ -80,6 +82,16 @@ class AccountGetResponse(BaseModel):
80
82
  raise ValueError("must be one of enum values ('active', 'canceled', 'past_due', 'paused')")
81
83
  return value
82
84
 
85
+ @field_validator('pending_downgrade_account_type')
86
+ def pending_downgrade_account_type_validate_enum(cls, value):
87
+ """Validates the enum"""
88
+ if value is None:
89
+ return value
90
+
91
+ if value not in set(['free']):
92
+ raise ValueError("must be one of enum values ('free')")
93
+ return value
94
+
83
95
  model_config = ConfigDict(
84
96
  populate_by_name=True,
85
97
  validate_assignment=True,
@@ -146,11 +158,13 @@ class AccountGetResponse(BaseModel):
146
158
  "callCap": obj.get("callCap"),
147
159
  "billingVersion": obj.get("billingVersion"),
148
160
  "anniversaryDate": obj.get("anniversaryDate"),
149
- "allowOverage": obj.get("allowOverage"),
150
161
  "createdAt": obj.get("createdAt"),
151
162
  "updatedAt": obj.get("updatedAt"),
152
163
  "status": obj.get("status"),
153
- "subscriptionStatus": obj.get("subscriptionStatus")
164
+ "subscriptionStatus": obj.get("subscriptionStatus"),
165
+ "pendingDowngradeEffectiveDate": obj.get("pendingDowngradeEffectiveDate"),
166
+ "pendingDowngradeCostCap": obj.get("pendingDowngradeCostCap"),
167
+ "pendingDowngradeAccountType": obj.get("pendingDowngradeAccountType")
154
168
  })
155
169
  return _obj
156
170
 
@@ -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, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
@@ -36,14 +36,16 @@ class BillingPostResponseBody(BaseModel):
36
36
  call_cap: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="callCap")
37
37
  billing_version: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, description="When omitted, defaults to LATEST_BILLING_VERSION.", alias="billingVersion")
38
38
  anniversary_date: StrictStr = Field(description="ISO date (YYYY-MM-DD) when the billing cycle resets.", alias="anniversaryDate")
39
- allow_overage: StrictBool = Field(alias="allowOverage")
40
39
  created_at: StrictStr = Field(alias="createdAt")
41
40
  updated_at: StrictStr = Field(alias="updatedAt")
42
41
  status: Optional[StrictStr] = None
43
42
  subscription_status: Optional[StrictStr] = Field(default=None, alias="subscriptionStatus")
43
+ pending_downgrade_effective_date: Optional[StrictStr] = Field(default=None, alias="pendingDowngradeEffectiveDate")
44
+ pending_downgrade_cost_cap: Optional[Union[StrictFloat, StrictInt]] = Field(default=None, alias="pendingDowngradeCostCap")
45
+ pending_downgrade_account_type: Optional[StrictStr] = Field(default=None, alias="pendingDowngradeAccountType")
44
46
  session_id: Optional[StrictStr] = Field(default=None, alias="sessionId")
45
47
  url: Optional[StrictStr] = None
46
- __properties: ClassVar[List[str]] = ["accountId", "accountType", "creator", "name", "messagesCap", "costCap", "smsCap", "callCap", "billingVersion", "anniversaryDate", "allowOverage", "createdAt", "updatedAt", "status", "subscriptionStatus", "sessionId", "url"]
48
+ __properties: ClassVar[List[str]] = ["accountId", "accountType", "creator", "name", "messagesCap", "costCap", "smsCap", "callCap", "billingVersion", "anniversaryDate", "createdAt", "updatedAt", "status", "subscriptionStatus", "pendingDowngradeEffectiveDate", "pendingDowngradeCostCap", "pendingDowngradeAccountType", "sessionId", "url"]
47
49
 
48
50
  @field_validator('account_type')
49
51
  def account_type_validate_enum(cls, value):
@@ -82,6 +84,16 @@ class BillingPostResponseBody(BaseModel):
82
84
  raise ValueError("must be one of enum values ('active', 'canceled', 'past_due', 'paused')")
83
85
  return value
84
86
 
87
+ @field_validator('pending_downgrade_account_type')
88
+ def pending_downgrade_account_type_validate_enum(cls, value):
89
+ """Validates the enum"""
90
+ if value is None:
91
+ return value
92
+
93
+ if value not in set(['free']):
94
+ raise ValueError("must be one of enum values ('free')")
95
+ return value
96
+
85
97
  model_config = ConfigDict(
86
98
  populate_by_name=True,
87
99
  validate_assignment=True,
@@ -148,11 +160,13 @@ class BillingPostResponseBody(BaseModel):
148
160
  "callCap": obj.get("callCap"),
149
161
  "billingVersion": obj.get("billingVersion"),
150
162
  "anniversaryDate": obj.get("anniversaryDate"),
151
- "allowOverage": obj.get("allowOverage"),
152
163
  "createdAt": obj.get("createdAt"),
153
164
  "updatedAt": obj.get("updatedAt"),
154
165
  "status": obj.get("status"),
155
166
  "subscriptionStatus": obj.get("subscriptionStatus"),
167
+ "pendingDowngradeEffectiveDate": obj.get("pendingDowngradeEffectiveDate"),
168
+ "pendingDowngradeCostCap": obj.get("pendingDowngradeCostCap"),
169
+ "pendingDowngradeAccountType": obj.get("pendingDowngradeAccountType"),
156
170
  "sessionId": obj.get("sessionId"),
157
171
  "url": obj.get("url")
158
172
  })
@@ -30,7 +30,8 @@ class CreateAccountResponse(BaseModel):
30
30
  name: StrictStr
31
31
  status: StrictStr
32
32
  subscription_status: Optional[StrictStr] = Field(default=None, alias="subscriptionStatus")
33
- __properties: ClassVar[List[str]] = ["accountId", "name", "status", "subscriptionStatus"]
33
+ api_key: StrictStr = Field(description="Default secret API key for the new account (`pingram_sk_…`).", alias="apiKey")
34
+ __properties: ClassVar[List[str]] = ["accountId", "name", "status", "subscriptionStatus", "apiKey"]
34
35
 
35
36
  @field_validator('status')
36
37
  def status_validate_enum(cls, value):
@@ -108,7 +109,8 @@ class CreateAccountResponse(BaseModel):
108
109
  "accountId": obj.get("accountId"),
109
110
  "name": obj.get("name"),
110
111
  "status": obj.get("status"),
111
- "subscriptionStatus": obj.get("subscriptionStatus")
112
+ "subscriptionStatus": obj.get("subscriptionStatus"),
113
+ "apiKey": obj.get("apiKey")
112
114
  })
113
115
  return _obj
114
116
 
@@ -28,19 +28,19 @@ class TenDlcBrandAdminUpdateRequest(BaseModel):
28
28
  """ # noqa: E501
29
29
  scenario_id: Optional[StrictStr] = Field(default=None, description="Who the 10DLC brand is registered for. - own_brand: personal or company project - client_brand: agency or contractor", alias="scenarioId")
30
30
  business_type: Optional[StrictStr] = Field(default=None, description="Legal entity type for a 10DLC brand. - PRIVATE_PROFIT: private for-profit (LLC, corp, etc.) - SOLE_PROPRIETOR: sole proprietorship - PUBLIC_PROFIT: publicly traded for-profit - NON_PROFIT: non-profit - GOVERNMENT: government", alias="businessType")
31
- legal_name: Optional[StrictStr] = Field(default=None, alias="legalName")
32
- display_name: Optional[StrictStr] = Field(default=None, description="Brand display name (marketing/DBA); defaults to legalName when omitted on legalName-only updates.", alias="displayName")
33
- first_name: Optional[StrictStr] = Field(default=None, alias="firstName")
34
- last_name: Optional[StrictStr] = Field(default=None, alias="lastName")
35
- tax_id: Optional[StrictStr] = Field(default=None, description="For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier.", alias="taxId")
36
- website: Optional[StrictStr] = None
37
- country: Optional[StrictStr] = None
38
- street: Optional[StrictStr] = None
39
- city: Optional[StrictStr] = None
40
- state: Optional[StrictStr] = None
41
- postal_code: Optional[StrictStr] = Field(default=None, alias="postalCode")
42
- compliance_contact_email: Optional[StrictStr] = Field(default=None, alias="complianceContactEmail")
43
- compliance_contact_phone: Optional[StrictStr] = Field(default=None, alias="complianceContactPhone")
31
+ legal_name: Optional[StrictStr] = Field(default=None, description="Official registered legal business name. For SOLE_PROPRIETOR, optional DBA or trade name (defaults to firstName and lastName).", alias="legalName")
32
+ display_name: Optional[StrictStr] = Field(default=None, description="Public brand name shown to recipients and carriers. Use the name customers recognize (your DBA or trade name). For SOLE_PROPRIETOR, this is the brand you send as — not the individual's legal name. Omit to keep the existing value. If you change legalName and omit displayName, displayName is reset to the new legalName.", alias="displayName")
33
+ first_name: Optional[StrictStr] = Field(default=None, description="Legal first name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR.", alias="firstName")
34
+ last_name: Optional[StrictStr] = Field(default=None, description="Legal last name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR.", alias="lastName")
35
+ tax_id: Optional[StrictStr] = Field(default=None, description="For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier. Required except when businessType is SOLE_PROPRIETOR.", alias="taxId")
36
+ website: Optional[StrictStr] = Field(default=None, description="Public website for the brand. Include a scheme (https://) or a domain; https:// is prepended when omitted. Carriers expect a working site with privacy policy and terms.")
37
+ country: Optional[StrictStr] = Field(default=None, description="ISO 3166-1 alpha-2 country of incorporation (for example US or CA).")
38
+ street: Optional[StrictStr] = Field(default=None, description="Street address that matches official tax registration.")
39
+ city: Optional[StrictStr] = Field(default=None, description="City that matches official tax registration.")
40
+ state: Optional[StrictStr] = Field(default=None, description="State (US) or province (CA) that matches official tax registration.")
41
+ postal_code: Optional[StrictStr] = Field(default=None, description="ZIP code (US) or postal code (CA) that matches official tax registration.", alias="postalCode")
42
+ compliance_contact_email: Optional[StrictStr] = Field(default=None, description="Email for the 10DLC compliance contact. Used for carrier and registration follow-up.", alias="complianceContactEmail")
43
+ compliance_contact_phone: Optional[StrictStr] = Field(default=None, description="Phone number for the 10DLC compliance contact. E.164 preferred; national numbers are normalized using country.", alias="complianceContactPhone")
44
44
  vertical: Optional[StrictStr] = Field(default=None, description="Industry vertical required before Pingram submits the brand to carriers.")
45
45
  entity_type: Optional[StrictStr] = Field(default=None, description="Legacy only when businessType is Other.", alias="entityType")
46
46
  brand_status: Optional[StrictStr] = Field(default=None, description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="brandStatus")
@@ -28,19 +28,20 @@ class TenDlcBrandCreateRequest(BaseModel):
28
28
  """ # noqa: E501
29
29
  scenario_id: StrictStr = Field(description="Who the 10DLC brand is registered for. - own_brand: personal or company project - client_brand: agency or contractor", alias="scenarioId")
30
30
  business_type: StrictStr = Field(description="Legal entity type for a 10DLC brand. - PRIVATE_PROFIT: private for-profit (LLC, corp, etc.) - SOLE_PROPRIETOR: sole proprietorship - PUBLIC_PROFIT: publicly traded for-profit - NON_PROFIT: non-profit - GOVERNMENT: government", alias="businessType")
31
- legal_name: StrictStr = Field(alias="legalName")
32
- first_name: Optional[StrictStr] = Field(default=None, description="Required when businessType is SOLE_PROPRIETOR.", alias="firstName")
33
- last_name: Optional[StrictStr] = Field(default=None, description="Required when businessType is SOLE_PROPRIETOR.", alias="lastName")
31
+ legal_name: Optional[StrictStr] = Field(default=None, description="Official registered legal business name. For SOLE_PROPRIETOR, optional DBA or trade name (defaults to firstName and lastName).", alias="legalName")
32
+ display_name: StrictStr = Field(description="Public brand name shown to recipients and carriers. Use the name customers recognize (your DBA or trade name). For companies with no DBA, use the same value as legalName. For SOLE_PROPRIETOR, this is the brand you send as — not the individual's legal name (set firstName and lastName for that). If the sole proprietor has no DBA, use first and last name.", alias="displayName")
33
+ first_name: Optional[StrictStr] = Field(default=None, description="Legal first name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR.", alias="firstName")
34
+ last_name: Optional[StrictStr] = Field(default=None, description="Legal last name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR.", alias="lastName")
34
35
  tax_id: Optional[StrictStr] = Field(default=None, description="For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier. Required except when businessType is SOLE_PROPRIETOR.", alias="taxId")
35
- website: StrictStr
36
- country: StrictStr
37
- street: Optional[StrictStr] = None
38
- city: Optional[StrictStr] = None
39
- state: Optional[StrictStr] = None
40
- postal_code: Optional[StrictStr] = Field(default=None, alias="postalCode")
41
- compliance_contact_email: StrictStr = Field(alias="complianceContactEmail")
42
- compliance_contact_phone: StrictStr = Field(alias="complianceContactPhone")
43
- __properties: ClassVar[List[str]] = ["scenarioId", "businessType", "legalName", "firstName", "lastName", "taxId", "website", "country", "street", "city", "state", "postalCode", "complianceContactEmail", "complianceContactPhone"]
36
+ website: StrictStr = Field(description="Public website for the brand. Include a scheme (https://) or a domain; https:// is prepended when omitted. Carriers expect a working site with privacy policy and terms.")
37
+ country: StrictStr = Field(description="ISO 3166-1 alpha-2 country of incorporation (for example US or CA).")
38
+ street: StrictStr = Field(description="Street address that matches official tax registration.")
39
+ city: StrictStr = Field(description="City that matches official tax registration.")
40
+ state: StrictStr = Field(description="State (US) or province (CA) that matches official tax registration.")
41
+ postal_code: StrictStr = Field(description="ZIP code (US) or postal code (CA) that matches official tax registration.", alias="postalCode")
42
+ compliance_contact_email: StrictStr = Field(description="Email for the 10DLC compliance contact. Used for carrier and registration follow-up.", alias="complianceContactEmail")
43
+ compliance_contact_phone: StrictStr = Field(description="Phone number for the 10DLC compliance contact. E.164 preferred; national numbers are normalized using country.", alias="complianceContactPhone")
44
+ __properties: ClassVar[List[str]] = ["scenarioId", "businessType", "legalName", "displayName", "firstName", "lastName", "taxId", "website", "country", "street", "city", "state", "postalCode", "complianceContactEmail", "complianceContactPhone"]
44
45
 
45
46
  @field_validator('scenario_id')
46
47
  def scenario_id_validate_enum(cls, value):
@@ -110,6 +111,7 @@ class TenDlcBrandCreateRequest(BaseModel):
110
111
  "scenarioId": obj.get("scenarioId"),
111
112
  "businessType": obj.get("businessType"),
112
113
  "legalName": obj.get("legalName"),
114
+ "displayName": obj.get("displayName"),
113
115
  "firstName": obj.get("firstName"),
114
116
  "lastName": obj.get("lastName"),
115
117
  "taxId": obj.get("taxId"),
@@ -29,20 +29,20 @@ class TenDlcBrandRegistration(BaseModel):
29
29
  account_id: StrictStr = Field(alias="accountId")
30
30
  scenario_id: StrictStr = Field(alias="scenarioId")
31
31
  business_type: StrictStr = Field(alias="businessType")
32
- legal_name: StrictStr = Field(alias="legalName")
33
- display_name: Optional[StrictStr] = Field(default=None, description="Brand display name (marketing/DBA); defaults to legalName on customer submit.", alias="displayName")
34
- first_name: Optional[StrictStr] = Field(default=None, alias="firstName")
35
- last_name: Optional[StrictStr] = Field(default=None, alias="lastName")
36
- tax_id: Optional[StrictStr] = Field(default=None, alias="taxId")
37
- website: StrictStr
38
- country: StrictStr
39
- street: Optional[StrictStr] = None
40
- city: Optional[StrictStr] = None
41
- state: Optional[StrictStr] = None
42
- postal_code: Optional[StrictStr] = Field(default=None, alias="postalCode")
32
+ legal_name: StrictStr = Field(description="Official registered legal business name. For SOLE_PROPRIETOR, may be a DBA or trade name.", alias="legalName")
33
+ display_name: Optional[StrictStr] = Field(default=None, description="Public brand name shown to recipients and carriers.", alias="displayName")
34
+ first_name: Optional[StrictStr] = Field(default=None, description="Legal first name of the sole proprietor. Present when businessType is SOLE_PROPRIETOR.", alias="firstName")
35
+ last_name: Optional[StrictStr] = Field(default=None, description="Legal last name of the sole proprietor. Present when businessType is SOLE_PROPRIETOR.", alias="lastName")
36
+ tax_id: Optional[StrictStr] = Field(default=None, description="For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier. Omitted when businessType is SOLE_PROPRIETOR.", alias="taxId")
37
+ website: StrictStr = Field(description="Public website for the brand.")
38
+ country: StrictStr = Field(description="ISO 3166-1 alpha-2 country of incorporation (for example US or CA).")
39
+ street: Optional[StrictStr] = Field(default=None, description="Street address that matches official tax registration.")
40
+ city: Optional[StrictStr] = Field(default=None, description="City that matches official tax registration.")
41
+ state: Optional[StrictStr] = Field(default=None, description="State (US) or province (CA) that matches official tax registration.")
42
+ postal_code: Optional[StrictStr] = Field(default=None, description="ZIP code (US) or postal code (CA) that matches official tax registration.", alias="postalCode")
43
43
  full_address: Optional[StrictStr] = Field(default=None, description="Legacy records only; new submissions use structured address fields.", alias="fullAddress")
44
- compliance_contact_email: StrictStr = Field(alias="complianceContactEmail")
45
- compliance_contact_phone: StrictStr = Field(alias="complianceContactPhone")
44
+ compliance_contact_email: StrictStr = Field(description="Email for the 10DLC compliance contact.", alias="complianceContactEmail")
45
+ compliance_contact_phone: StrictStr = Field(description="Phone number for the 10DLC compliance contact.", alias="complianceContactPhone")
46
46
  brand_status: StrictStr = Field(description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="brandStatus")
47
47
  campaign_status: StrictStr = Field(description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="campaignStatus")
48
48
  created_at: StrictStr = Field(alias="createdAt")
@@ -29,20 +29,20 @@ class TenDlcBrandRegistrationDetails(BaseModel):
29
29
  account_id: StrictStr = Field(alias="accountId")
30
30
  scenario_id: StrictStr = Field(alias="scenarioId")
31
31
  business_type: StrictStr = Field(alias="businessType")
32
- legal_name: StrictStr = Field(alias="legalName")
33
- display_name: Optional[StrictStr] = Field(default=None, description="Brand display name (marketing/DBA); defaults to legalName on customer submit.", alias="displayName")
34
- first_name: Optional[StrictStr] = Field(default=None, alias="firstName")
35
- last_name: Optional[StrictStr] = Field(default=None, alias="lastName")
36
- tax_id: Optional[StrictStr] = Field(default=None, alias="taxId")
37
- website: StrictStr
38
- country: StrictStr
39
- street: Optional[StrictStr] = None
40
- city: Optional[StrictStr] = None
41
- state: Optional[StrictStr] = None
42
- postal_code: Optional[StrictStr] = Field(default=None, alias="postalCode")
32
+ legal_name: StrictStr = Field(description="Official registered legal business name. For SOLE_PROPRIETOR, may be a DBA or trade name.", alias="legalName")
33
+ display_name: Optional[StrictStr] = Field(default=None, description="Public brand name shown to recipients and carriers.", alias="displayName")
34
+ first_name: Optional[StrictStr] = Field(default=None, description="Legal first name of the sole proprietor. Present when businessType is SOLE_PROPRIETOR.", alias="firstName")
35
+ last_name: Optional[StrictStr] = Field(default=None, description="Legal last name of the sole proprietor. Present when businessType is SOLE_PROPRIETOR.", alias="lastName")
36
+ tax_id: Optional[StrictStr] = Field(default=None, description="For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier. Omitted when businessType is SOLE_PROPRIETOR.", alias="taxId")
37
+ website: StrictStr = Field(description="Public website for the brand.")
38
+ country: StrictStr = Field(description="ISO 3166-1 alpha-2 country of incorporation (for example US or CA).")
39
+ street: Optional[StrictStr] = Field(default=None, description="Street address that matches official tax registration.")
40
+ city: Optional[StrictStr] = Field(default=None, description="City that matches official tax registration.")
41
+ state: Optional[StrictStr] = Field(default=None, description="State (US) or province (CA) that matches official tax registration.")
42
+ postal_code: Optional[StrictStr] = Field(default=None, description="ZIP code (US) or postal code (CA) that matches official tax registration.", alias="postalCode")
43
43
  full_address: Optional[StrictStr] = Field(default=None, description="Legacy records only; new submissions use structured address fields.", alias="fullAddress")
44
- compliance_contact_email: StrictStr = Field(alias="complianceContactEmail")
45
- compliance_contact_phone: StrictStr = Field(alias="complianceContactPhone")
44
+ compliance_contact_email: StrictStr = Field(description="Email for the 10DLC compliance contact.", alias="complianceContactEmail")
45
+ compliance_contact_phone: StrictStr = Field(description="Phone number for the 10DLC compliance contact.", alias="complianceContactPhone")
46
46
  brand_status: StrictStr = Field(description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="brandStatus")
47
47
  campaign_status: StrictStr = Field(description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="campaignStatus")
48
48
  created_at: StrictStr = Field(alias="createdAt")
@@ -28,19 +28,19 @@ class TenDlcBrandUpdateRequest(BaseModel):
28
28
  """ # noqa: E501
29
29
  scenario_id: Optional[StrictStr] = Field(default=None, description="Who the 10DLC brand is registered for. - own_brand: personal or company project - client_brand: agency or contractor", alias="scenarioId")
30
30
  business_type: Optional[StrictStr] = Field(default=None, description="Legal entity type for a 10DLC brand. - PRIVATE_PROFIT: private for-profit (LLC, corp, etc.) - SOLE_PROPRIETOR: sole proprietorship - PUBLIC_PROFIT: publicly traded for-profit - NON_PROFIT: non-profit - GOVERNMENT: government", alias="businessType")
31
- legal_name: Optional[StrictStr] = Field(default=None, alias="legalName")
32
- display_name: Optional[StrictStr] = Field(default=None, description="Brand display name (marketing/DBA); defaults to legalName when omitted on legalName-only updates.", alias="displayName")
33
- first_name: Optional[StrictStr] = Field(default=None, alias="firstName")
34
- last_name: Optional[StrictStr] = Field(default=None, alias="lastName")
35
- tax_id: Optional[StrictStr] = Field(default=None, description="For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier.", alias="taxId")
36
- website: Optional[StrictStr] = None
37
- country: Optional[StrictStr] = None
38
- street: Optional[StrictStr] = None
39
- city: Optional[StrictStr] = None
40
- state: Optional[StrictStr] = None
41
- postal_code: Optional[StrictStr] = Field(default=None, alias="postalCode")
42
- compliance_contact_email: Optional[StrictStr] = Field(default=None, alias="complianceContactEmail")
43
- compliance_contact_phone: Optional[StrictStr] = Field(default=None, alias="complianceContactPhone")
31
+ legal_name: Optional[StrictStr] = Field(default=None, description="Official registered legal business name. For SOLE_PROPRIETOR, optional DBA or trade name (defaults to firstName and lastName).", alias="legalName")
32
+ display_name: Optional[StrictStr] = Field(default=None, description="Public brand name shown to recipients and carriers. Use the name customers recognize (your DBA or trade name). For SOLE_PROPRIETOR, this is the brand you send as — not the individual's legal name. Omit to keep the existing value. If you change legalName and omit displayName, displayName is reset to the new legalName.", alias="displayName")
33
+ first_name: Optional[StrictStr] = Field(default=None, description="Legal first name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR.", alias="firstName")
34
+ last_name: Optional[StrictStr] = Field(default=None, description="Legal last name of the sole proprietor. Required when businessType is SOLE_PROPRIETOR.", alias="lastName")
35
+ tax_id: Optional[StrictStr] = Field(default=None, description="For US companies (country US): 9-digit EIN (Employer Identification Number). For Canada (country CA): 9-digit BN (Business Number). For other countries: national business tax identifier. Required except when businessType is SOLE_PROPRIETOR.", alias="taxId")
36
+ website: Optional[StrictStr] = Field(default=None, description="Public website for the brand. Include a scheme (https://) or a domain; https:// is prepended when omitted. Carriers expect a working site with privacy policy and terms.")
37
+ country: Optional[StrictStr] = Field(default=None, description="ISO 3166-1 alpha-2 country of incorporation (for example US or CA).")
38
+ street: Optional[StrictStr] = Field(default=None, description="Street address that matches official tax registration.")
39
+ city: Optional[StrictStr] = Field(default=None, description="City that matches official tax registration.")
40
+ state: Optional[StrictStr] = Field(default=None, description="State (US) or province (CA) that matches official tax registration.")
41
+ postal_code: Optional[StrictStr] = Field(default=None, description="ZIP code (US) or postal code (CA) that matches official tax registration.", alias="postalCode")
42
+ compliance_contact_email: Optional[StrictStr] = Field(default=None, description="Email for the 10DLC compliance contact. Used for carrier and registration follow-up.", alias="complianceContactEmail")
43
+ compliance_contact_phone: Optional[StrictStr] = Field(default=None, description="Phone number for the 10DLC compliance contact. E.164 preferred; national numbers are normalized using country.", alias="complianceContactPhone")
44
44
  __properties: ClassVar[List[str]] = ["scenarioId", "businessType", "legalName", "displayName", "firstName", "lastName", "taxId", "website", "country", "street", "city", "state", "postalCode", "complianceContactEmail", "complianceContactPhone"]
45
45
 
46
46
  @field_validator('scenario_id')
@@ -26,26 +26,26 @@ class TenDlcCampaignAdminUpdateRequest(BaseModel):
26
26
  """
27
27
  Request body for PATCH /registrations/us/10dlc/campaign/admin
28
28
  """ # noqa: E501
29
- campaign_description: Optional[StrictStr] = Field(default=None, alias="campaignDescription")
30
- campaign_sample1: Optional[StrictStr] = Field(default=None, alias="campaignSample1")
31
- campaign_sample2: Optional[StrictStr] = Field(default=None, alias="campaignSample2")
32
- campaign_sample3: Optional[StrictStr] = Field(default=None, alias="campaignSample3")
33
- campaign_sample4: Optional[StrictStr] = Field(default=None, alias="campaignSample4")
34
- campaign_message_flow: Optional[StrictStr] = Field(default=None, alias="campaignMessageFlow")
35
- campaign_optin_keywords: Optional[StrictStr] = Field(default=None, alias="campaignOptinKeywords")
36
- campaign_optin_message: Optional[StrictStr] = Field(default=None, alias="campaignOptinMessage")
37
- campaign_optout_keywords: Optional[StrictStr] = Field(default=None, alias="campaignOptoutKeywords")
38
- campaign_optout_message: Optional[StrictStr] = Field(default=None, alias="campaignOptoutMessage")
39
- campaign_help_keywords: Optional[StrictStr] = Field(default=None, alias="campaignHelpKeywords")
40
- campaign_help_message: Optional[StrictStr] = Field(default=None, alias="campaignHelpMessage")
41
- campaign_embedded_link: Optional[StrictBool] = Field(default=None, alias="campaignEmbeddedLink")
42
- campaign_embedded_link_url: Optional[StrictStr] = Field(default=None, alias="campaignEmbeddedLinkUrl")
43
- campaign_embedded_phone: Optional[StrictBool] = Field(default=None, alias="campaignEmbeddedPhone")
44
- campaign_age_gated: Optional[StrictBool] = Field(default=None, alias="campaignAgeGated")
45
- campaign_direct_lending: Optional[StrictBool] = Field(default=None, alias="campaignDirectLending")
46
- campaign_privacy_policy_link: Optional[StrictStr] = Field(default=None, alias="campaignPrivacyPolicyLink")
47
- campaign_terms_and_conditions_link: Optional[StrictStr] = Field(default=None, alias="campaignTermsAndConditionsLink")
48
- campaign_usecase: Optional[StrictStr] = Field(default=None, alias="campaignUsecase")
29
+ campaign_description: Optional[StrictStr] = Field(default=None, description="Summary of what this campaign sends and why, including audience and typical message content. Required before carrier submission.", alias="campaignDescription")
30
+ campaign_sample1: Optional[StrictStr] = Field(default=None, description="Example SMS that represents actual campaign traffic. Required before carrier submission. Should match the use case and typically identify the brand and include STOP/HELP language.", alias="campaignSample1")
31
+ campaign_sample2: Optional[StrictStr] = Field(default=None, description="Second example SMS. Required before carrier submission. Required for MARKETING and MIXED use cases.", alias="campaignSample2")
32
+ campaign_sample3: Optional[StrictStr] = Field(default=None, description="Optional third example SMS.", alias="campaignSample3")
33
+ campaign_sample4: Optional[StrictStr] = Field(default=None, description="Optional fourth example SMS.", alias="campaignSample4")
34
+ campaign_message_flow: Optional[StrictStr] = Field(default=None, description="How recipients opt in (for example website form, checkout, or keyword). Describe the call-to-action and where consent is collected. Required before carrier submission.", alias="campaignMessageFlow")
35
+ campaign_optin_keywords: Optional[StrictStr] = Field(default=None, description="Extra opt-in keywords as a comma-separated list. START is always included.", alias="campaignOptinKeywords")
36
+ campaign_optin_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient opts in. Required before carrier submission. Should confirm the subscription, mention message frequency, and include STOP and HELP instructions.", alias="campaignOptinMessage")
37
+ campaign_optout_keywords: Optional[StrictStr] = Field(default=None, description="Extra opt-out keywords as a comma-separated list. STOP is always included.", alias="campaignOptoutKeywords")
38
+ campaign_optout_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient opts out. Required before carrier submission. Should confirm they will receive no further messages.", alias="campaignOptoutMessage")
39
+ campaign_help_keywords: Optional[StrictStr] = Field(default=None, description="Extra help keywords as a comma-separated list. HELP is always included.", alias="campaignHelpKeywords")
40
+ campaign_help_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient texts a help keyword. Required before carrier submission. Should include a support contact (email and/or phone).", alias="campaignHelpMessage")
41
+ campaign_embedded_link: Optional[StrictBool] = Field(default=None, description="Whether campaign messages include URLs.", alias="campaignEmbeddedLink")
42
+ campaign_embedded_link_url: Optional[StrictStr] = Field(default=None, description="Sample URL that appears in messages. Provide when campaignEmbeddedLink is true.", alias="campaignEmbeddedLinkUrl")
43
+ campaign_embedded_phone: Optional[StrictBool] = Field(default=None, description="Whether campaign messages include phone numbers.", alias="campaignEmbeddedPhone")
44
+ campaign_age_gated: Optional[StrictBool] = Field(default=None, description="Whether campaign content is age-restricted (18+).", alias="campaignAgeGated")
45
+ campaign_direct_lending: Optional[StrictBool] = Field(default=None, description="Whether the campaign relates to direct lending or loan products.", alias="campaignDirectLending")
46
+ campaign_privacy_policy_link: Optional[StrictStr] = Field(default=None, description="Public URL of the privacy policy that covers this SMS program.", alias="campaignPrivacyPolicyLink")
47
+ campaign_terms_and_conditions_link: Optional[StrictStr] = Field(default=None, description="Public URL of the terms and conditions that cover this SMS program.", alias="campaignTermsAndConditionsLink")
48
+ campaign_usecase: Optional[StrictStr] = Field(default=None, description="10DLC campaign use case submitted to carriers. Required before carrier submission. One of 2FA, ACCOUNT_NOTIFICATION, CUSTOMER_CARE, DELIVERY_NOTIFICATION, FRAUD_ALERT, MARKETING, MIXED, POLLING_VOTING, PUBLIC_SERVICE_ANNOUNCEMENT, or SECURITY_ALERT. For MIXED, append comma-separated sub-use cases after MIXED (sub-use cases cannot include MIXED), for example MIXED,2FA,ACCOUNT_NOTIFICATION.", alias="campaignUsecase")
49
49
  campaign_status: Optional[StrictStr] = Field(default=None, description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="campaignStatus")
50
50
  __properties: ClassVar[List[str]] = ["campaignDescription", "campaignSample1", "campaignSample2", "campaignSample3", "campaignSample4", "campaignMessageFlow", "campaignOptinKeywords", "campaignOptinMessage", "campaignOptoutKeywords", "campaignOptoutMessage", "campaignHelpKeywords", "campaignHelpMessage", "campaignEmbeddedLink", "campaignEmbeddedLinkUrl", "campaignEmbeddedPhone", "campaignAgeGated", "campaignDirectLending", "campaignPrivacyPolicyLink", "campaignTermsAndConditionsLink", "campaignUsecase", "campaignStatus"]
51
51
 
@@ -28,26 +28,26 @@ class TenDlcCampaignRegistration(BaseModel):
28
28
  """ # noqa: E501
29
29
  account_id: StrictStr = Field(alias="accountId")
30
30
  campaign_status: StrictStr = Field(description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="campaignStatus")
31
- campaign_description: Optional[StrictStr] = Field(default=None, alias="campaignDescription")
32
- campaign_sample1: Optional[StrictStr] = Field(default=None, alias="campaignSample1")
33
- campaign_sample2: Optional[StrictStr] = Field(default=None, alias="campaignSample2")
34
- campaign_sample3: Optional[StrictStr] = Field(default=None, alias="campaignSample3")
35
- campaign_sample4: Optional[StrictStr] = Field(default=None, alias="campaignSample4")
36
- campaign_message_flow: Optional[StrictStr] = Field(default=None, alias="campaignMessageFlow")
37
- campaign_optin_keywords: Optional[StrictStr] = Field(default=None, alias="campaignOptinKeywords")
38
- campaign_optin_message: Optional[StrictStr] = Field(default=None, alias="campaignOptinMessage")
39
- campaign_optout_keywords: Optional[StrictStr] = Field(default=None, alias="campaignOptoutKeywords")
40
- campaign_optout_message: Optional[StrictStr] = Field(default=None, alias="campaignOptoutMessage")
41
- campaign_help_keywords: Optional[StrictStr] = Field(default=None, alias="campaignHelpKeywords")
42
- campaign_help_message: Optional[StrictStr] = Field(default=None, alias="campaignHelpMessage")
43
- campaign_embedded_link: Optional[StrictBool] = Field(default=None, alias="campaignEmbeddedLink")
44
- campaign_embedded_link_url: Optional[StrictStr] = Field(default=None, alias="campaignEmbeddedLinkUrl")
45
- campaign_embedded_phone: Optional[StrictBool] = Field(default=None, alias="campaignEmbeddedPhone")
46
- campaign_age_gated: Optional[StrictBool] = Field(default=None, alias="campaignAgeGated")
47
- campaign_direct_lending: Optional[StrictBool] = Field(default=None, alias="campaignDirectLending")
48
- campaign_privacy_policy_link: Optional[StrictStr] = Field(default=None, alias="campaignPrivacyPolicyLink")
49
- campaign_terms_and_conditions_link: Optional[StrictStr] = Field(default=None, alias="campaignTermsAndConditionsLink")
50
- campaign_usecase: Optional[StrictStr] = Field(default=None, alias="campaignUsecase")
31
+ campaign_description: Optional[StrictStr] = Field(default=None, description="Summary of what this campaign sends and why, including audience and typical message content. Required before carrier submission.", alias="campaignDescription")
32
+ campaign_sample1: Optional[StrictStr] = Field(default=None, description="Example SMS that represents actual campaign traffic. Required before carrier submission. Should match the use case and typically identify the brand and include STOP/HELP language.", alias="campaignSample1")
33
+ campaign_sample2: Optional[StrictStr] = Field(default=None, description="Second example SMS. Required before carrier submission. Required for MARKETING and MIXED use cases.", alias="campaignSample2")
34
+ campaign_sample3: Optional[StrictStr] = Field(default=None, description="Optional third example SMS.", alias="campaignSample3")
35
+ campaign_sample4: Optional[StrictStr] = Field(default=None, description="Optional fourth example SMS.", alias="campaignSample4")
36
+ campaign_message_flow: Optional[StrictStr] = Field(default=None, description="How recipients opt in (for example website form, checkout, or keyword). Describe the call-to-action and where consent is collected. Required before carrier submission.", alias="campaignMessageFlow")
37
+ campaign_optin_keywords: Optional[StrictStr] = Field(default=None, description="Extra opt-in keywords as a comma-separated list. START is always included.", alias="campaignOptinKeywords")
38
+ campaign_optin_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient opts in. Required before carrier submission. Should confirm the subscription, mention message frequency, and include STOP and HELP instructions.", alias="campaignOptinMessage")
39
+ campaign_optout_keywords: Optional[StrictStr] = Field(default=None, description="Extra opt-out keywords as a comma-separated list. STOP is always included.", alias="campaignOptoutKeywords")
40
+ campaign_optout_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient opts out. Required before carrier submission. Should confirm they will receive no further messages.", alias="campaignOptoutMessage")
41
+ campaign_help_keywords: Optional[StrictStr] = Field(default=None, description="Extra help keywords as a comma-separated list. HELP is always included.", alias="campaignHelpKeywords")
42
+ campaign_help_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient texts a help keyword. Required before carrier submission. Should include a support contact (email and/or phone).", alias="campaignHelpMessage")
43
+ campaign_embedded_link: Optional[StrictBool] = Field(default=None, description="Whether campaign messages include URLs.", alias="campaignEmbeddedLink")
44
+ campaign_embedded_link_url: Optional[StrictStr] = Field(default=None, description="Sample URL that appears in messages. Provide when campaignEmbeddedLink is true.", alias="campaignEmbeddedLinkUrl")
45
+ campaign_embedded_phone: Optional[StrictBool] = Field(default=None, description="Whether campaign messages include phone numbers.", alias="campaignEmbeddedPhone")
46
+ campaign_age_gated: Optional[StrictBool] = Field(default=None, description="Whether campaign content is age-restricted (18+).", alias="campaignAgeGated")
47
+ campaign_direct_lending: Optional[StrictBool] = Field(default=None, description="Whether the campaign relates to direct lending or loan products.", alias="campaignDirectLending")
48
+ campaign_privacy_policy_link: Optional[StrictStr] = Field(default=None, description="Public URL of the privacy policy that covers this SMS program.", alias="campaignPrivacyPolicyLink")
49
+ campaign_terms_and_conditions_link: Optional[StrictStr] = Field(default=None, description="Public URL of the terms and conditions that cover this SMS program.", alias="campaignTermsAndConditionsLink")
50
+ campaign_usecase: Optional[StrictStr] = Field(default=None, description="10DLC campaign use case submitted to carriers. Required before carrier submission. One of 2FA, ACCOUNT_NOTIFICATION, CUSTOMER_CARE, DELIVERY_NOTIFICATION, FRAUD_ALERT, MARKETING, MIXED, POLLING_VOTING, PUBLIC_SERVICE_ANNOUNCEMENT, or SECURITY_ALERT. For MIXED, append comma-separated sub-use cases after MIXED (sub-use cases cannot include MIXED), for example MIXED,2FA,ACCOUNT_NOTIFICATION.", alias="campaignUsecase")
51
51
  created_at: StrictStr = Field(alias="createdAt")
52
52
  updated_at: StrictStr = Field(alias="updatedAt")
53
53
  __properties: ClassVar[List[str]] = ["accountId", "campaignStatus", "campaignDescription", "campaignSample1", "campaignSample2", "campaignSample3", "campaignSample4", "campaignMessageFlow", "campaignOptinKeywords", "campaignOptinMessage", "campaignOptoutKeywords", "campaignOptoutMessage", "campaignHelpKeywords", "campaignHelpMessage", "campaignEmbeddedLink", "campaignEmbeddedLinkUrl", "campaignEmbeddedPhone", "campaignAgeGated", "campaignDirectLending", "campaignPrivacyPolicyLink", "campaignTermsAndConditionsLink", "campaignUsecase", "createdAt", "updatedAt"]
@@ -28,26 +28,26 @@ class TenDlcCampaignRegistrationDetails(BaseModel):
28
28
  """ # noqa: E501
29
29
  account_id: StrictStr = Field(alias="accountId")
30
30
  campaign_status: StrictStr = Field(description="Pingram-side 10DLC registration workflow status (brand or campaign). - not_started: no customer submission yet - pending_review: customer submitted; Pingram has not submitted to carriers - in_progress: submitted for carrier review - approved | rejected | info_needed: review outcome", alias="campaignStatus")
31
- campaign_description: Optional[StrictStr] = Field(default=None, alias="campaignDescription")
32
- campaign_sample1: Optional[StrictStr] = Field(default=None, alias="campaignSample1")
33
- campaign_sample2: Optional[StrictStr] = Field(default=None, alias="campaignSample2")
34
- campaign_sample3: Optional[StrictStr] = Field(default=None, alias="campaignSample3")
35
- campaign_sample4: Optional[StrictStr] = Field(default=None, alias="campaignSample4")
36
- campaign_message_flow: Optional[StrictStr] = Field(default=None, alias="campaignMessageFlow")
37
- campaign_optin_keywords: Optional[StrictStr] = Field(default=None, alias="campaignOptinKeywords")
38
- campaign_optin_message: Optional[StrictStr] = Field(default=None, alias="campaignOptinMessage")
39
- campaign_optout_keywords: Optional[StrictStr] = Field(default=None, alias="campaignOptoutKeywords")
40
- campaign_optout_message: Optional[StrictStr] = Field(default=None, alias="campaignOptoutMessage")
41
- campaign_help_keywords: Optional[StrictStr] = Field(default=None, alias="campaignHelpKeywords")
42
- campaign_help_message: Optional[StrictStr] = Field(default=None, alias="campaignHelpMessage")
43
- campaign_embedded_link: Optional[StrictBool] = Field(default=None, alias="campaignEmbeddedLink")
44
- campaign_embedded_link_url: Optional[StrictStr] = Field(default=None, alias="campaignEmbeddedLinkUrl")
45
- campaign_embedded_phone: Optional[StrictBool] = Field(default=None, alias="campaignEmbeddedPhone")
46
- campaign_age_gated: Optional[StrictBool] = Field(default=None, alias="campaignAgeGated")
47
- campaign_direct_lending: Optional[StrictBool] = Field(default=None, alias="campaignDirectLending")
48
- campaign_privacy_policy_link: Optional[StrictStr] = Field(default=None, alias="campaignPrivacyPolicyLink")
49
- campaign_terms_and_conditions_link: Optional[StrictStr] = Field(default=None, alias="campaignTermsAndConditionsLink")
50
- campaign_usecase: Optional[StrictStr] = Field(default=None, alias="campaignUsecase")
31
+ campaign_description: Optional[StrictStr] = Field(default=None, description="Summary of what this campaign sends and why, including audience and typical message content. Required before carrier submission.", alias="campaignDescription")
32
+ campaign_sample1: Optional[StrictStr] = Field(default=None, description="Example SMS that represents actual campaign traffic. Required before carrier submission. Should match the use case and typically identify the brand and include STOP/HELP language.", alias="campaignSample1")
33
+ campaign_sample2: Optional[StrictStr] = Field(default=None, description="Second example SMS. Required before carrier submission. Required for MARKETING and MIXED use cases.", alias="campaignSample2")
34
+ campaign_sample3: Optional[StrictStr] = Field(default=None, description="Optional third example SMS.", alias="campaignSample3")
35
+ campaign_sample4: Optional[StrictStr] = Field(default=None, description="Optional fourth example SMS.", alias="campaignSample4")
36
+ campaign_message_flow: Optional[StrictStr] = Field(default=None, description="How recipients opt in (for example website form, checkout, or keyword). Describe the call-to-action and where consent is collected. Required before carrier submission.", alias="campaignMessageFlow")
37
+ campaign_optin_keywords: Optional[StrictStr] = Field(default=None, description="Extra opt-in keywords as a comma-separated list. START is always included.", alias="campaignOptinKeywords")
38
+ campaign_optin_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient opts in. Required before carrier submission. Should confirm the subscription, mention message frequency, and include STOP and HELP instructions.", alias="campaignOptinMessage")
39
+ campaign_optout_keywords: Optional[StrictStr] = Field(default=None, description="Extra opt-out keywords as a comma-separated list. STOP is always included.", alias="campaignOptoutKeywords")
40
+ campaign_optout_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient opts out. Required before carrier submission. Should confirm they will receive no further messages.", alias="campaignOptoutMessage")
41
+ campaign_help_keywords: Optional[StrictStr] = Field(default=None, description="Extra help keywords as a comma-separated list. HELP is always included.", alias="campaignHelpKeywords")
42
+ campaign_help_message: Optional[StrictStr] = Field(default=None, description="Auto-reply sent when a recipient texts a help keyword. Required before carrier submission. Should include a support contact (email and/or phone).", alias="campaignHelpMessage")
43
+ campaign_embedded_link: Optional[StrictBool] = Field(default=None, description="Whether campaign messages include URLs.", alias="campaignEmbeddedLink")
44
+ campaign_embedded_link_url: Optional[StrictStr] = Field(default=None, description="Sample URL that appears in messages. Provide when campaignEmbeddedLink is true.", alias="campaignEmbeddedLinkUrl")
45
+ campaign_embedded_phone: Optional[StrictBool] = Field(default=None, description="Whether campaign messages include phone numbers.", alias="campaignEmbeddedPhone")
46
+ campaign_age_gated: Optional[StrictBool] = Field(default=None, description="Whether campaign content is age-restricted (18+).", alias="campaignAgeGated")
47
+ campaign_direct_lending: Optional[StrictBool] = Field(default=None, description="Whether the campaign relates to direct lending or loan products.", alias="campaignDirectLending")
48
+ campaign_privacy_policy_link: Optional[StrictStr] = Field(default=None, description="Public URL of the privacy policy that covers this SMS program.", alias="campaignPrivacyPolicyLink")
49
+ campaign_terms_and_conditions_link: Optional[StrictStr] = Field(default=None, description="Public URL of the terms and conditions that cover this SMS program.", alias="campaignTermsAndConditionsLink")
50
+ campaign_usecase: Optional[StrictStr] = Field(default=None, description="10DLC campaign use case submitted to carriers. Required before carrier submission. One of 2FA, ACCOUNT_NOTIFICATION, CUSTOMER_CARE, DELIVERY_NOTIFICATION, FRAUD_ALERT, MARKETING, MIXED, POLLING_VOTING, PUBLIC_SERVICE_ANNOUNCEMENT, or SECURITY_ALERT. For MIXED, append comma-separated sub-use cases after MIXED (sub-use cases cannot include MIXED), for example MIXED,2FA,ACCOUNT_NOTIFICATION.", alias="campaignUsecase")
51
51
  created_at: StrictStr = Field(alias="createdAt")
52
52
  updated_at: StrictStr = Field(alias="updatedAt")
53
53
  campaign_id: Optional[StrictStr] = Field(default=None, alias="campaignId")