trycourier 2.0.0 → 3.0.0.pre.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. checksums.yaml +4 -4
  2. data/lib/environment.rb +7 -0
  3. data/lib/gemconfig.rb +14 -0
  4. data/lib/requests.rb +121 -0
  5. data/lib/trycourier/audiences/client.rb +235 -0
  6. data/lib/trycourier/audiences/types/audience.rb +86 -0
  7. data/lib/trycourier/audiences/types/audience_list_response.rb +62 -0
  8. data/lib/trycourier/audiences/types/audience_member.rb +74 -0
  9. data/lib/trycourier/audiences/types/audience_member_get_response.rb +53 -0
  10. data/lib/trycourier/audiences/types/audience_member_list_response.rb +62 -0
  11. data/lib/trycourier/audiences/types/audience_update_response.rb +53 -0
  12. data/lib/trycourier/audiences/types/base_filter_config.rb +53 -0
  13. data/lib/trycourier/audiences/types/comparison_operator.rb +21 -0
  14. data/lib/trycourier/audiences/types/filter.rb +50 -0
  15. data/lib/trycourier/audiences/types/filter_config.rb +50 -0
  16. data/lib/trycourier/audiences/types/logical_operator.rb +10 -0
  17. data/lib/trycourier/audiences/types/nested_filter_config.rb +63 -0
  18. data/lib/trycourier/audiences/types/operator.rb +48 -0
  19. data/lib/trycourier/audiences/types/single_filter_config.rb +64 -0
  20. data/lib/trycourier/audit_events/client.rb +104 -0
  21. data/lib/trycourier/audit_events/types/actor.rb +52 -0
  22. data/lib/trycourier/audit_events/types/audit_event.rb +92 -0
  23. data/lib/trycourier/audit_events/types/get_audit_event_params.rb +47 -0
  24. data/lib/trycourier/audit_events/types/list_audit_events_params.rb +47 -0
  25. data/lib/trycourier/audit_events/types/list_audit_events_response.rb +62 -0
  26. data/lib/trycourier/audit_events/types/target.rb +52 -0
  27. data/lib/trycourier/auth_tokens/client.rb +85 -0
  28. data/lib/trycourier/auth_tokens/types/issue_token_response.rb +47 -0
  29. data/lib/trycourier/automations/client.rb +151 -0
  30. data/lib/trycourier/automations/types/automation.rb +56 -0
  31. data/lib/trycourier/automations/types/automation_ad_hoc_invoke_params.rb +88 -0
  32. data/lib/trycourier/automations/types/automation_cancel_step.rb +62 -0
  33. data/lib/trycourier/automations/types/automation_delay_step.rb +62 -0
  34. data/lib/trycourier/automations/types/automation_invoke_params.rb +69 -0
  35. data/lib/trycourier/automations/types/automation_invoke_response.rb +47 -0
  36. data/lib/trycourier/automations/types/automation_invoke_step.rb +62 -0
  37. data/lib/trycourier/automations/types/automation_invoke_template_params.rb +82 -0
  38. data/lib/trycourier/automations/types/automation_run_context.rb +69 -0
  39. data/lib/trycourier/automations/types/automation_send_list_step.rb +93 -0
  40. data/lib/trycourier/automations/types/automation_send_step.rb +99 -0
  41. data/lib/trycourier/automations/types/automation_step.rb +52 -0
  42. data/lib/trycourier/automations/types/automation_step_action.rb +14 -0
  43. data/lib/trycourier/automations/types/automation_step_option.rb +110 -0
  44. data/lib/trycourier/automations/types/automation_update_profile_step.rb +64 -0
  45. data/lib/trycourier/automations/types/automation_v_2_send_step.rb +68 -0
  46. data/lib/trycourier/automations/types/merge_algorithm.rb +12 -0
  47. data/lib/trycourier/automations/types/profile.rb +7 -0
  48. data/lib/trycourier/brands/client.rb +281 -0
  49. data/lib/trycourier/brands/types/brand.rb +105 -0
  50. data/lib/trycourier/brands/types/brand_colors.rb +57 -0
  51. data/lib/trycourier/brands/types/brand_get_all_response.rb +62 -0
  52. data/lib/trycourier/brands/types/brand_parameters.rb +74 -0
  53. data/lib/trycourier/brands/types/brand_settings.rb +69 -0
  54. data/lib/trycourier/brands/types/brand_snippet.rb +57 -0
  55. data/lib/trycourier/brands/types/brand_snippets.rb +51 -0
  56. data/lib/trycourier/brands/types/brands_response.rb +62 -0
  57. data/lib/trycourier/bulk/client.rb +249 -0
  58. data/lib/trycourier/bulk/types/bulk_create_job_response.rb +47 -0
  59. data/lib/trycourier/bulk/types/bulk_get_job_params.rb +47 -0
  60. data/lib/trycourier/bulk/types/bulk_get_job_response.rb +53 -0
  61. data/lib/trycourier/bulk/types/bulk_get_job_users_params.rb +52 -0
  62. data/lib/trycourier/bulk/types/bulk_get_job_users_response.rb +62 -0
  63. data/lib/trycourier/bulk/types/bulk_ingest_error.rb +52 -0
  64. data/lib/trycourier/bulk/types/bulk_ingest_users_params.rb +51 -0
  65. data/lib/trycourier/bulk/types/bulk_ingest_users_response.rb +56 -0
  66. data/lib/trycourier/bulk/types/bulk_job_status.rb +12 -0
  67. data/lib/trycourier/bulk/types/bulk_job_user_status.rb +11 -0
  68. data/lib/trycourier/bulk/types/bulk_message_user_response.rb +100 -0
  69. data/lib/trycourier/bulk/types/inbound_bulk_content_message.rb +165 -0
  70. data/lib/trycourier/bulk/types/inbound_bulk_message.rb +95 -0
  71. data/lib/trycourier/bulk/types/inbound_bulk_message_user.rb +80 -0
  72. data/lib/trycourier/bulk/types/inbound_bulk_message_v_1.rb +75 -0
  73. data/lib/trycourier/bulk/types/inbound_bulk_message_v_2.rb +50 -0
  74. data/lib/trycourier/bulk/types/inbound_bulk_template_message.rb +157 -0
  75. data/lib/trycourier/bulk/types/job_details.rb +81 -0
  76. data/lib/trycourier/commons/types/already_exists.rb +52 -0
  77. data/lib/trycourier/commons/types/bad_request.rb +52 -0
  78. data/lib/trycourier/commons/types/base_error.rb +47 -0
  79. data/lib/trycourier/commons/types/channel_classification.rb +14 -0
  80. data/lib/trycourier/commons/types/channel_preference.rb +48 -0
  81. data/lib/trycourier/commons/types/conflict.rb +52 -0
  82. data/lib/trycourier/commons/types/email.rb +52 -0
  83. data/lib/trycourier/commons/types/message_not_found.rb +52 -0
  84. data/lib/trycourier/commons/types/not_found.rb +52 -0
  85. data/lib/trycourier/commons/types/notification_preference_details.rb +66 -0
  86. data/lib/trycourier/commons/types/notification_preferences.rb +7 -0
  87. data/lib/trycourier/commons/types/paging.rb +52 -0
  88. data/lib/trycourier/commons/types/payment_required.rb +52 -0
  89. data/lib/trycourier/commons/types/preference_status.rb +11 -0
  90. data/lib/trycourier/commons/types/recipient_preferences.rb +53 -0
  91. data/lib/trycourier/commons/types/rule.rb +52 -0
  92. data/lib/trycourier/commons/types/user_tenant_association.rb +62 -0
  93. data/lib/trycourier/lists/client.rb +454 -0
  94. data/lib/trycourier/lists/types/list.rb +62 -0
  95. data/lib/trycourier/lists/types/list_get_all_response.rb +62 -0
  96. data/lib/trycourier/lists/types/list_get_subscriptions_response.rb +62 -0
  97. data/lib/trycourier/lists/types/list_put_params.rb +58 -0
  98. data/lib/trycourier/lists/types/list_subscription_recipient.rb +63 -0
  99. data/lib/trycourier/lists/types/put_subscriptions_recipient.rb +58 -0
  100. data/lib/trycourier/messages/client.rb +300 -0
  101. data/lib/trycourier/messages/types/list_messages_response.rb +62 -0
  102. data/lib/trycourier/messages/types/message_details.rb +120 -0
  103. data/lib/trycourier/messages/types/message_history_response.rb +51 -0
  104. data/lib/trycourier/messages/types/message_status.rb +17 -0
  105. data/lib/trycourier/messages/types/reason.rb +14 -0
  106. data/lib/trycourier/messages/types/render_output.rb +63 -0
  107. data/lib/trycourier/messages/types/render_output_response.rb +51 -0
  108. data/lib/trycourier/messages/types/rendered_message_block.rb +52 -0
  109. data/lib/trycourier/messages/types/rendered_message_content.rb +77 -0
  110. data/lib/trycourier/notifications/client.rb +379 -0
  111. data/lib/trycourier/notifications/types/base_check.rb +58 -0
  112. data/lib/trycourier/notifications/types/block_type.rb +17 -0
  113. data/lib/trycourier/notifications/types/check.rb +63 -0
  114. data/lib/trycourier/notifications/types/check_status.rb +11 -0
  115. data/lib/trycourier/notifications/types/message_routing.rb +57 -0
  116. data/lib/trycourier/notifications/types/message_routing_channel.rb +49 -0
  117. data/lib/trycourier/notifications/types/message_routing_method.rb +10 -0
  118. data/lib/trycourier/notifications/types/notification.rb +63 -0
  119. data/lib/trycourier/notifications/types/notification_block.rb +94 -0
  120. data/lib/trycourier/notifications/types/notification_channel.rb +73 -0
  121. data/lib/trycourier/notifications/types/notification_channel_content.rb +52 -0
  122. data/lib/trycourier/notifications/types/notification_content.rb +49 -0
  123. data/lib/trycourier/notifications/types/notification_content_hierarchy.rb +52 -0
  124. data/lib/trycourier/notifications/types/notification_get_content_response.rb +65 -0
  125. data/lib/trycourier/notifications/types/notification_list_response.rb +62 -0
  126. data/lib/trycourier/notifications/types/submission_checks_get_response.rb +51 -0
  127. data/lib/trycourier/notifications/types/submission_checks_replace_response.rb +51 -0
  128. data/lib/trycourier/profiles/client.rb +325 -0
  129. data/lib/trycourier/profiles/types/address.rb +81 -0
  130. data/lib/trycourier/profiles/types/airship_profile.rb +59 -0
  131. data/lib/trycourier/profiles/types/airship_profile_audience.rb +47 -0
  132. data/lib/trycourier/profiles/types/delete_list_subscription_response.rb +47 -0
  133. data/lib/trycourier/profiles/types/device_type.rb +7 -0
  134. data/lib/trycourier/profiles/types/discord.rb +50 -0
  135. data/lib/trycourier/profiles/types/expo.rb +50 -0
  136. data/lib/trycourier/profiles/types/get_list_subscriptions_list.rb +74 -0
  137. data/lib/trycourier/profiles/types/get_list_subscriptions_response.rb +62 -0
  138. data/lib/trycourier/profiles/types/intercom.rb +58 -0
  139. data/lib/trycourier/profiles/types/intercom_recipient.rb +47 -0
  140. data/lib/trycourier/profiles/types/merge_profile_response.rb +47 -0
  141. data/lib/trycourier/profiles/types/ms_teams.rb +86 -0
  142. data/lib/trycourier/profiles/types/ms_teams_base_properties.rb +52 -0
  143. data/lib/trycourier/profiles/types/multiple_tokens.rb +51 -0
  144. data/lib/trycourier/profiles/types/profile_get_parameters.rb +47 -0
  145. data/lib/trycourier/profiles/types/profile_get_response.rb +58 -0
  146. data/lib/trycourier/profiles/types/replace_profile_response.rb +47 -0
  147. data/lib/trycourier/profiles/types/send_direct_message.rb +47 -0
  148. data/lib/trycourier/profiles/types/send_to_channel.rb +47 -0
  149. data/lib/trycourier/profiles/types/send_to_ms_teams_channel_id.rb +57 -0
  150. data/lib/trycourier/profiles/types/send_to_ms_teams_channel_name.rb +68 -0
  151. data/lib/trycourier/profiles/types/send_to_ms_teams_conversation_id.rb +58 -0
  152. data/lib/trycourier/profiles/types/send_to_ms_teams_email.rb +57 -0
  153. data/lib/trycourier/profiles/types/send_to_ms_teams_user_id.rb +57 -0
  154. data/lib/trycourier/profiles/types/send_to_slack_channel.rb +52 -0
  155. data/lib/trycourier/profiles/types/send_to_slack_email.rb +52 -0
  156. data/lib/trycourier/profiles/types/send_to_slack_user_id.rb +52 -0
  157. data/lib/trycourier/profiles/types/slack.rb +62 -0
  158. data/lib/trycourier/profiles/types/slack_base_properties.rb +47 -0
  159. data/lib/trycourier/profiles/types/snooze_rule.rb +58 -0
  160. data/lib/trycourier/profiles/types/snooze_rule_type.rb +9 -0
  161. data/lib/trycourier/profiles/types/subscribe_to_lists_request.rb +51 -0
  162. data/lib/trycourier/profiles/types/subscribe_to_lists_request_list_object.rb +58 -0
  163. data/lib/trycourier/profiles/types/subscribe_to_lists_response.rb +47 -0
  164. data/lib/trycourier/profiles/types/token.rb +47 -0
  165. data/lib/trycourier/profiles/types/user_profile.rb +274 -0
  166. data/lib/trycourier/send/types/attachment.rb +7 -0
  167. data/lib/trycourier/send/types/audience_filter.rb +57 -0
  168. data/lib/trycourier/send/types/audience_recipient.rb +62 -0
  169. data/lib/trycourier/send/types/base_message.rb +149 -0
  170. data/lib/trycourier/send/types/base_social_presence.rb +47 -0
  171. data/lib/trycourier/send/types/brand_settings_email.rb +87 -0
  172. data/lib/trycourier/send/types/brand_settings_in_app.rb +119 -0
  173. data/lib/trycourier/send/types/brand_settings_social_presence.rb +107 -0
  174. data/lib/trycourier/send/types/brand_template.rb +88 -0
  175. data/lib/trycourier/send/types/brand_template_override.rb +112 -0
  176. data/lib/trycourier/send/types/channel.rb +113 -0
  177. data/lib/trycourier/send/types/channel_metadata.rb +53 -0
  178. data/lib/trycourier/send/types/channel_source.rb +11 -0
  179. data/lib/trycourier/send/types/content.rb +50 -0
  180. data/lib/trycourier/send/types/content_message.rb +177 -0
  181. data/lib/trycourier/send/types/criteria.rb +12 -0
  182. data/lib/trycourier/send/types/delay.rb +47 -0
  183. data/lib/trycourier/send/types/elemental_action_node.rb +116 -0
  184. data/lib/trycourier/send/types/elemental_base_node.rb +62 -0
  185. data/lib/trycourier/send/types/elemental_channel_node.rb +105 -0
  186. data/lib/trycourier/send/types/elemental_content.rb +61 -0
  187. data/lib/trycourier/send/types/elemental_content_sugar.rb +53 -0
  188. data/lib/trycourier/send/types/elemental_divider_node.rb +68 -0
  189. data/lib/trycourier/send/types/elemental_group_node.rb +72 -0
  190. data/lib/trycourier/send/types/elemental_image_node.rb +101 -0
  191. data/lib/trycourier/send/types/elemental_meta_node.rb +70 -0
  192. data/lib/trycourier/send/types/elemental_node.rb +170 -0
  193. data/lib/trycourier/send/types/elemental_quote_node.rb +104 -0
  194. data/lib/trycourier/send/types/elemental_text_node.rb +136 -0
  195. data/lib/trycourier/send/types/email_footer.rb +52 -0
  196. data/lib/trycourier/send/types/email_head.rb +52 -0
  197. data/lib/trycourier/send/types/email_header.rb +63 -0
  198. data/lib/trycourier/send/types/expires_in_type.rb +48 -0
  199. data/lib/trycourier/send/types/expiry.rb +58 -0
  200. data/lib/trycourier/send/types/i_action_button_style.rb +10 -0
  201. data/lib/trycourier/send/types/i_alignment.rb +12 -0
  202. data/lib/trycourier/send/types/i_preferences.rb +7 -0
  203. data/lib/trycourier/send/types/i_profile_preferences.rb +59 -0
  204. data/lib/trycourier/send/types/icons.rb +52 -0
  205. data/lib/trycourier/send/types/in_app_placement.rb +12 -0
  206. data/lib/trycourier/send/types/invalid_list_pattern_recipient.rb +52 -0
  207. data/lib/trycourier/send/types/invalid_list_recipient.rb +52 -0
  208. data/lib/trycourier/send/types/invalid_user_recipient.rb +52 -0
  209. data/lib/trycourier/send/types/list_filter.rb +57 -0
  210. data/lib/trycourier/send/types/list_pattern_recipient.rb +53 -0
  211. data/lib/trycourier/send/types/list_pattern_recipient_type.rb +41 -0
  212. data/lib/trycourier/send/types/list_recipient.rb +62 -0
  213. data/lib/trycourier/send/types/list_recipient_type.rb +41 -0
  214. data/lib/trycourier/send/types/locale.rb +47 -0
  215. data/lib/trycourier/send/types/locales.rb +7 -0
  216. data/lib/trycourier/send/types/logo.rb +52 -0
  217. data/lib/trycourier/send/types/message.rb +50 -0
  218. data/lib/trycourier/send/types/message_channel_email_override.rb +119 -0
  219. data/lib/trycourier/send/types/message_channels.rb +7 -0
  220. data/lib/trycourier/send/types/message_context.rb +49 -0
  221. data/lib/trycourier/send/types/message_data.rb +7 -0
  222. data/lib/trycourier/send/types/message_metadata.rb +68 -0
  223. data/lib/trycourier/send/types/message_providers.rb +7 -0
  224. data/lib/trycourier/send/types/message_providers_type.rb +72 -0
  225. data/lib/trycourier/send/types/message_recipient.rb +54 -0
  226. data/lib/trycourier/send/types/metadata.rb +53 -0
  227. data/lib/trycourier/send/types/ms_teams_recipient.rb +53 -0
  228. data/lib/trycourier/send/types/override.rb +10 -0
  229. data/lib/trycourier/send/types/preference.rb +73 -0
  230. data/lib/trycourier/send/types/preferences.rb +47 -0
  231. data/lib/trycourier/send/types/recipient.rb +98 -0
  232. data/lib/trycourier/send/types/routing.rb +64 -0
  233. data/lib/trycourier/send/types/routing_channel.rb +61 -0
  234. data/lib/trycourier/send/types/routing_method.rb +10 -0
  235. data/lib/trycourier/send/types/routing_strategy_channel.rb +70 -0
  236. data/lib/trycourier/send/types/routing_strategy_provider.rb +68 -0
  237. data/lib/trycourier/send/types/rule_type.rb +11 -0
  238. data/lib/trycourier/send/types/slack_recipient.rb +53 -0
  239. data/lib/trycourier/send/types/template_message.rb +169 -0
  240. data/lib/trycourier/send/types/text_align.rb +11 -0
  241. data/lib/trycourier/send/types/text_style.rb +12 -0
  242. data/lib/trycourier/send/types/timeout.rb +76 -0
  243. data/lib/trycourier/send/types/timeouts.rb +52 -0
  244. data/lib/trycourier/send/types/tracking_override.rb +47 -0
  245. data/lib/trycourier/send/types/user_recipient.rb +115 -0
  246. data/lib/trycourier/send/types/user_recipient_type.rb +41 -0
  247. data/lib/trycourier/send/types/utm.rb +68 -0
  248. data/lib/trycourier/send/types/widget_background.rb +52 -0
  249. data/lib/trycourier/templates/client.rb +67 -0
  250. data/lib/trycourier/templates/types/channel_identifier.rb +7 -0
  251. data/lib/trycourier/templates/types/list_templates_response.rb +62 -0
  252. data/lib/trycourier/templates/types/notification_templates.rb +90 -0
  253. data/lib/trycourier/templates/types/routing_strategy.rb +54 -0
  254. data/lib/trycourier/templates/types/routing_strategy_method.rb +10 -0
  255. data/lib/trycourier/templates/types/tag.rb +51 -0
  256. data/lib/trycourier/templates/types/tag_data.rb +52 -0
  257. data/lib/trycourier/tenants/client.rb +255 -0
  258. data/lib/trycourier/tenants/types/default_preferences.rb +51 -0
  259. data/lib/trycourier/tenants/types/list_users_for_tenant_response.rb +88 -0
  260. data/lib/trycourier/tenants/types/subscription_topic.rb +53 -0
  261. data/lib/trycourier/tenants/types/subscription_topic_status.rb +11 -0
  262. data/lib/trycourier/tenants/types/template_property.rb +7 -0
  263. data/lib/trycourier/tenants/types/tenant.rb +95 -0
  264. data/lib/trycourier/tenants/types/tenant_list_response.rb +86 -0
  265. data/lib/trycourier/translations/client.rb +106 -0
  266. data/lib/trycourier/types/send_message_response.rb +49 -0
  267. data/lib/trycourier/users/client.rb +34 -0
  268. data/lib/trycourier/users/preferences/client.rb +171 -0
  269. data/lib/trycourier/users/preferences/types/topic_preference.rb +86 -0
  270. data/lib/trycourier/users/preferences/types/user_preferences_get_response.rb +55 -0
  271. data/lib/trycourier/users/preferences/types/user_preferences_list_response.rb +64 -0
  272. data/lib/trycourier/users/preferences/types/user_preferences_update_response.rb +49 -0
  273. data/lib/trycourier/users/tenants/client.rb +267 -0
  274. data/lib/trycourier/users/tenants/types/add_user_to_single_tenants_params_profile.rb +76 -0
  275. data/lib/trycourier/users/tenants/types/list_tenants_for_user_response.rb +90 -0
  276. data/lib/trycourier/users/tokens/client.rb +264 -0
  277. data/lib/trycourier/users/tokens/types/delete_user_token_opts.rb +54 -0
  278. data/lib/trycourier/users/tokens/types/device.rb +83 -0
  279. data/lib/trycourier/users/tokens/types/expiry_date.rb +50 -0
  280. data/lib/trycourier/users/tokens/types/get_all_tokens_response.rb +11 -0
  281. data/lib/trycourier/users/tokens/types/get_user_token_opts.rb +54 -0
  282. data/lib/trycourier/users/tokens/types/get_user_token_response.rb +116 -0
  283. data/lib/trycourier/users/tokens/types/get_user_tokens_opts.rb +49 -0
  284. data/lib/trycourier/users/tokens/types/patch_op.rb +16 -0
  285. data/lib/trycourier/users/tokens/types/patch_operation.rb +59 -0
  286. data/lib/trycourier/users/tokens/types/patch_user_token_opts.rb +53 -0
  287. data/lib/trycourier/users/tokens/types/provider_key.rb +14 -0
  288. data/lib/trycourier/users/tokens/types/put_user_token_opts.rb +60 -0
  289. data/lib/trycourier/users/tokens/types/put_user_tokens_opts.rb +58 -0
  290. data/lib/trycourier/users/tokens/types/token_status.rb +14 -0
  291. data/lib/trycourier/users/tokens/types/tracking.rb +64 -0
  292. data/lib/trycourier/users/tokens/types/user_token.rb +102 -0
  293. data/lib/trycourier.rb +114 -138
  294. data/lib/types_export.rb +273 -0
  295. metadata +362 -50
  296. data/.github/ISSUE_TEMPLATE.md +0 -17
  297. data/.github/PULL_REQUEST_TEMPLATE.md +0 -27
  298. data/.github/workflows/gem-push.yml +0 -51
  299. data/.gitignore +0 -67
  300. data/.rspec +0 -3
  301. data/CHANGELOG.md +0 -126
  302. data/CONTRIBUTING.md +0 -28
  303. data/Gemfile +0 -8
  304. data/Gemfile.lock +0 -72
  305. data/LICENSE +0 -21
  306. data/README.md +0 -610
  307. data/Rakefile +0 -7
  308. data/bin/console +0 -14
  309. data/bin/setup +0 -8
  310. data/lib/trycourier/audiences.rb +0 -45
  311. data/lib/trycourier/audit_events.rb +0 -27
  312. data/lib/trycourier/auth_tokens.rb +0 -23
  313. data/lib/trycourier/automations.rb +0 -67
  314. data/lib/trycourier/brands.rb +0 -70
  315. data/lib/trycourier/bulk.rb +0 -79
  316. data/lib/trycourier/events.rb +0 -35
  317. data/lib/trycourier/exceptions.rb +0 -39
  318. data/lib/trycourier/lists.rb +0 -109
  319. data/lib/trycourier/messages.rb +0 -57
  320. data/lib/trycourier/profiles.rb +0 -64
  321. data/lib/trycourier/session.rb +0 -80
  322. data/lib/trycourier/tenants.rb +0 -43
  323. data/lib/trycourier/version.rb +0 -3
  324. data/trycourier.gemspec +0 -32
data/README.md DELETED
@@ -1,610 +0,0 @@
1
- # `trycourier`
2
-
3
- This Gem helps you send notifications through [Courier](https://www.trycourier.com/), the smartest way to design & deliver notifications. Design your notifications once using our drag & drop editor, then deliver to any channel through one API. Email, mobile push, SMS, Slack — you name it!
4
-
5
- ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- ```ruby
10
- gem 'trycourier'
11
- ```
12
-
13
- And then execute:
14
-
15
- $ bundle install
16
-
17
- Or install it yourself as:
18
-
19
- $ gem install trycourier
20
-
21
- ## Usage
22
-
23
- After installing, make sure to include this line at the top of your ruby file:
24
-
25
- ```ruby
26
- require "trycourier"
27
- ```
28
-
29
- To create a Courier Ruby client, all you need to do is pass in your authentication information. Then, you can start sending!
30
-
31
- ### Using token authentication (most secure)
32
-
33
- ```ruby
34
- client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var (recommended)
35
- ```
36
-
37
- ### Using basic authentication
38
-
39
- ```ruby
40
- client = Courier::Client.new(username: "USERNAME", password: "PASSWORD") # or set via COURIER_AUTH_USERNAME and COURIER_AUTH_PASSWORD env vars
41
- ```
42
-
43
- ### Sending a message to an individual recipient
44
-
45
- ```ruby
46
- client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
47
- res = client.send_message({
48
- "message" => {
49
- "to" => {
50
- "email" => "foo@bar.com"
51
- }
52
- "content" => {
53
- "title" => "hello {{name}}",
54
- "body" => "Welcome to Courier!"
55
- },
56
- "data" => {
57
- "name" => "Ruby"
58
- }
59
- }
60
- })
61
- puts res.code # the HTTP response code
62
- puts res.request_id # if the code is 202, this will be the Courier request ID for this message
63
- rescue Courier::CourierAPIError => re #error sent from from the API
64
- puts re.message
65
- end
66
- ```
67
-
68
- ```ruby
69
- client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
70
- res = client.send({
71
- "event" => "your-event-id",
72
- "recipient" => "your-recipient-id",
73
-
74
- "profile" => { #optional (include any key-value pairs required by your chosen integrations. This information can also be stored in the recipient's profile in Courier)
75
- "email": "example@example.com",
76
- "phone_number": "555-867-5309"
77
- },
78
-
79
- "data" => { #any data you want to pass to a message template
80
- "world" => "Ruby!"
81
- }
82
- })
83
- puts res.code # the HTTP response code
84
- puts res.message_id # if the code is 200, this will be the Courier message ID for this notification
85
- rescue Courier::CourierAPIError => re #error sent from from the API
86
- puts re.message
87
- end
88
- ```
89
-
90
- ### Sending a message to an individual with metadata
91
-
92
- ```ruby
93
- client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
94
- res = client.send_message({
95
- "message" => {
96
- "to" => {
97
- "email" => "foo@bar.com"
98
- }
99
- "content" => {
100
- "title" => "hello {{name}}",
101
- "body" => "Welcome to Courier!"
102
- },
103
- "data" => {
104
- "name" => "Ruby"
105
- },
106
- "metadata" => {
107
- "utm" => {
108
- "source" => "Ruby"
109
- },
110
- "tags" => ["tag-1", "tag-2"],
111
- "trace_id" => "feed-me-hungry"
112
- }
113
- }
114
- })
115
- puts res.code # the HTTP response code
116
- puts res.request_id # if the code is 202, this will be the Courier request ID for this message
117
- rescue Courier::CourierAPIError => re #error sent from from the API
118
- puts re.message
119
- end
120
- ```
121
-
122
- ### Sending a message to an individual with granular metadata
123
-
124
- ```ruby
125
- client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
126
- res = client.send_message({
127
- "message" => {
128
- "to" => {
129
- "email" => "foo@bar.com"
130
- },
131
- "content" => {
132
- "version" => "2020-01-01",
133
- "elements" => [
134
- {
135
- "type" => "text",
136
- "content" => "Thanks for signing up, {{name}}"
137
- },
138
- {
139
- "type" => "action",
140
- "content" => "Click Me!",
141
- "href" => "https://www.example.com"
142
- }
143
- ]
144
- },
145
- "routing" => {
146
- "method" => "all",
147
- "channels" => [
148
- "email"
149
- ]
150
- },
151
- "data" => {
152
- "name" => "Ruby"
153
- },
154
- "metadata" => {
155
- "utm" => {
156
- "source" => "Ruby"
157
- },
158
- },
159
- "channels" => {
160
- "email" => {
161
- "routing_method" => "all",
162
- "providers" => [
163
- "sendgrid",
164
- "mailjet"
165
- ],
166
- "metadata" => {
167
- "utm" => {
168
- "medium" => "email"
169
- }
170
- }
171
- }
172
- },
173
- "providers" => {
174
- "sendgrid" => {
175
- "metadata" => {
176
- "utm" => {
177
- "source" => "sendgrid"
178
- }
179
- }
180
- }
181
- }
182
- }
183
- })
184
- puts res.code # the HTTP response code
185
- puts res.request_id # if the code is 202, this will be the Courier request ID for this message
186
- rescue Courier::CourierAPIError => re #error sent from from the API
187
- puts re.message
188
- end
189
- ```
190
-
191
- ## Advanced Usage
192
-
193
- ### Lists
194
-
195
- ```ruby
196
- require "trycourier"
197
- client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
198
-
199
- """
200
- Creating a List
201
- """
202
- res = client.lists.put(list_id, name)
203
- puts res
204
-
205
- """
206
- Example: send a message to a list
207
- """
208
- resp = client.lists.send(
209
- event: "your-event-id",
210
- list: "your.list.id",
211
- brand: "your-brand-id", # optional
212
- data: {}, # optional
213
- override: {} # optional
214
- )
215
- puts resp['messageId'])
216
-
217
- """
218
- Example: send a message to a list pattern
219
- """
220
- resp = client.lists.send(
221
- event: "your-event-id",
222
- pattern: "your.list.*", #PATTERN (will send to all list ids that start with "your.list.")
223
- brand: "your-brand-id", # optional
224
- data: {}, # optional
225
- override: {} # optional
226
- )
227
- puts resp['messageId'])
228
-
229
- """
230
- Example: get all lists
231
- """
232
- resp = client.lists.list(
233
- cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
234
- )
235
- puts resp
236
-
237
- """
238
- Example: get a specific list
239
- """
240
- resp = client.lists.get(list_id: "your-list-id")
241
- puts resp
242
-
243
-
244
- """
245
- Example: delete a list
246
- """
247
- client.lists.delete(list_id: "your-list-id")
248
-
249
- """
250
- Example: restore a list
251
- """
252
- client.lists.restore(list_id: "your-list-id")
253
-
254
- """
255
- Example: get a list's subscribptions
256
- """
257
- resp = client.lists.get_subscriptions(list_id: "your-list-id",
258
- cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
259
- )
260
- puts resp
261
-
262
- """
263
- Example: replace many recipients to a new or existing list
264
- """
265
- client.lists.put_subscriptions(list_id: "your-list-id", recipients: [
266
- "RECIPIENT_ID_1",
267
- "RECIPIENT_ID_2"
268
- ])
269
-
270
- """
271
- Example: Example: subscribe single recipient to a new or existing list
272
- """
273
- client.lists.subscribe(list_id: "your-list-id", recipient_id: "your-recipient-id")
274
-
275
- """
276
- Example: unsubscribe recipient from list
277
- """
278
- client.lists.unsubscribe(list_id: "your-list-id", recipient_id: "your-recipient-id")
279
- ```
280
-
281
- ### Profiles
282
-
283
- ```Ruby
284
- """
285
- Example: create a recipient's profile
286
- """
287
- resp = client.profiles.add(
288
- recipient_id: "your-recipient-id",
289
- profile: {
290
- "email" => "example@example.com",
291
- "name" => "Example Name"
292
- }
293
- )
294
-
295
- """
296
- Example: replace or create a recipient's profile
297
- """
298
- resp = client.profiles.replace(
299
- recipient_id: "your-recipient-id",
300
- profile: {
301
- "email" => "example@example.com"
302
- }
303
- )
304
- puts resp['status']
305
-
306
- """
307
- Example: merge or create a recipient's profile
308
- """
309
- resp = client.profiles.merge(
310
- recipient_id: "your-recipient-id",
311
- profile: {
312
- "phone_number" => "+15555555555"
313
- }
314
- )
315
- puts resp['status']
316
-
317
- """
318
- Example: get the subscribed lists of a recipient
319
- """
320
- resp = client.profiles.get_subscriptions(
321
- recipient_id: "your-recipient-id",
322
- cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA" #optional
323
- )
324
- puts resp
325
-
326
- """
327
- Example: edit the contents of a recipient's profile with a patch operation
328
- (follows JSON Patch conventions: RFC 6902).
329
- """
330
- resp = client.profiles.patch(
331
- recipient_id: "your-recipient-id",
332
- operations: [
333
- {
334
- "op" => "add", #operation 1: add this email to profile
335
- "path" => "/parent",
336
- "value" => "example@example.com"
337
- }
338
- {
339
- "op" => "replace", #operation 2: update with new email
340
- "path" => "/parent",
341
- "value" => "jane@doe.com"
342
- }
343
- {
344
- "op" => "copy", #operation 3: copy that email to /emergency_contact
345
- "from" => "/parent",
346
- "path" => "/emergency_contact"
347
- }
348
- ...
349
- ]
350
- )
351
- puts resp
352
-
353
-
354
- """
355
- Example: get a recipient's profile
356
- """
357
- resp = client.profiles.get(recipient_id: "your-recipient-id")
358
- puts resp
359
- ```
360
-
361
- ### Messages
362
-
363
- ```Ruby
364
- """
365
- Example: fetch the statuses of messages you've previously sent.
366
- """
367
- resp = client.messages.list(
368
- cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
369
- event: "your-event-id", # optional
370
- list: "your-list-id", #optional
371
- message_id: "your-message-id" #optional
372
- notification: ["message-status-1", "message-status-2",...] #optional
373
- recipient: "recipient-id" # optional
374
- )
375
- puts resp
376
-
377
- """
378
- Example: fetch the status of a message you've previously sent
379
- """
380
- resp = client.messages.get(message_id: "your-message-id")
381
- puts resp
382
-
383
- """
384
- Example: fetch the array of events of a message you've previously sent.
385
- """
386
- resp = client.messages.get_history(
387
- message_id: "your-message-id",
388
- type: "list-type" #optional ("FILTERED", "RENDERED", "MAPPED", "PROFILE_LOADED")
389
- )
390
- puts resp
391
- ```
392
-
393
- ### Events
394
-
395
- ```Ruby
396
- """
397
- Example: fetch the list of events
398
- """
399
- resp = client.events.list
400
- puts resp
401
-
402
- """
403
- Example: fetch a specific event by event ID
404
- """
405
- resp = client.events.get(event_id: "your-event-id")
406
- puts resp
407
-
408
- """
409
- Example: create or replace an event
410
- """
411
- resp = client.events.replace(
412
- event_id: "your-event-id",
413
- notification_id: "notification_id",
414
- type: "notificaton" ## optional, defaults to notification
415
- )
416
- puts resp
417
-
418
- """
419
- Example: get all brands
420
- """
421
- resp = client.brands.list(
422
- cursor: "MTU4OTQ5NTI1ODY4NywxLTVlYmRjNWRhLTEwODZlYWFjMWRmMjEwMTNjM2I0ZjVhMA", # optional
423
- )
424
- puts resp
425
-
426
- """
427
- Example: get a specific brand
428
- """
429
- resp = client.brands.get(brand_id: "brand_id")
430
- puts resp
431
-
432
- """
433
- Example: create a brand
434
- """
435
- resp = client.brands.create(
436
- name: "brand-name",
437
- settings: {
438
- "color" => {
439
- "primary" => "#0000FF",
440
- "secondary" => "#FF0000",
441
- "tertiary" => "#00FF00"
442
- }
443
- },
444
- id: "my-brand-id", #optional
445
- snippets: {}, #optional
446
- idempotency_key: "my-idemp-key", #optional
447
- )
448
- puts resp
449
-
450
- """
451
- Example: replace a brand
452
- """
453
- resp = client.brands.replace(
454
- brand_id: "your-brand-id",
455
- name: "brand-name",
456
- settings: {}
457
- "color" => {
458
- "primary" => "#FF0000",
459
- "secondary" => "#00FF00",
460
- "tertiary" => "#0000FF"
461
- }
462
- },
463
- snippets: {} #optional
464
- )
465
- puts resp
466
-
467
- """
468
- Example: delete a brand
469
- """
470
- resp = client.brands.delete(brand_id: "your-brand-id")
471
- puts resp
472
- ```
473
-
474
- ### Automations
475
-
476
- ````Ruby
477
- """
478
- Example: invoke ad-hoc automation
479
- """
480
- steps = [
481
- {
482
- "action" => "send"
483
- }
484
- ]
485
- automation = {
486
- "steps" => steps
487
- }
488
-
489
- resp = client.automations.invoke(
490
- automation: automation,
491
- brand: "your-brand-id", # optional
492
- data: {}, # optional
493
- profile: {
494
- "email" => "example@example.com",
495
- }, # optional
496
- recipient: "your-recipient-id", # optional
497
- template: "your-notification-template-id" # optional
498
- )
499
- puts resp['runId']
500
-
501
- """
502
- Example: invoke automation template
503
- """
504
- resp = client.automations.invoke_template(
505
- template_id: "your-automation-template-id",
506
- brand: "your-brand-id", # optional
507
- data: {}, # optional
508
- profile: {
509
- "email" => "example@example.com",
510
- }, # optional
511
- recipient: "your-recipient-id", # optional
512
- template: "your-notification-template-id" # optional
513
- )
514
- puts resp['runId']
515
-
516
- ### Notes on input and errors
517
- With the exception of passing an auth token to create a client, and ```client.send(body)```, every parameter (optional or required) is sent using keyword arguments.
518
- In the case of ```client.send(body)```, if the hash does not have the required components, it will throw an InputError exception, which can be caught with rescue blocks:
519
- ```ruby
520
- rescue InputError
521
- ````
522
-
523
- Any other errors from the API are thrown as a CourierAPIError. Catch these errors by putting this after your method calls:
524
-
525
- ```ruby
526
- rescue CourierAPIError
527
- ```
528
-
529
- ### Audiences
530
-
531
- List of supported operators for audience filtering: https://www.courier.com/docs/reference/audieces/operators
532
-
533
- ```Ruby
534
- """
535
- Example: create or update an Audience
536
- """
537
- resp = client.audiences.put(
538
- audience_id: "your-audience-id",
539
- filter: {
540
- "operator": "EQ",
541
- "value": "en-US",
542
- "path": "locale"
543
- }
544
- )
545
-
546
- """
547
- Example: Get all members of an Audience
548
- """
549
- resp = client.audiences.get_audience_members(
550
- audience_id: "your-audience-id",
551
- cursor: nil
552
- )
553
- puts resp['status']
554
-
555
- """
556
- Example: Send to an Audience
557
- """
558
- client = Courier::Client.new "your-auth-token" # or set via COURIER_AUTH_TOKEN env var
559
- res = client.send_message({
560
- "message" => {
561
- "to" => {
562
- "audience_id" => "your-audience-id"
563
- }
564
- "content" => {
565
- "title" => "hello {{name}}",
566
- "body" => "Welcome to Courier!"
567
- },
568
- "data" => {
569
- "name" => "Ruby"
570
- }
571
- }
572
- })
573
- puts res.code # the HTTP response code
574
- puts res.request_id # if the code is 202, this will be the Courier request ID for this message
575
- rescue Courier::CourierAPIError => re #error sent from from the API
576
- puts re.message
577
- end
578
- ```
579
-
580
- ### Audit Events
581
-
582
- ```Ruby
583
- """
584
- Example: List audit events
585
- """
586
- resp = client.audit_events.list()
587
-
588
- """
589
- Example: Get a specific audit event
590
- """
591
- resp = client.audit_events.get(audit_event_id: "audit-event-id")
592
- ```
593
-
594
- ## Development
595
-
596
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
597
-
598
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
599
-
600
- ## Contributing
601
-
602
- Bug reports and pull requests are welcome on GitHub at https://github.com/trycourier/courier-ruby.
603
-
604
- ## License
605
-
606
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
607
-
608
- ```
609
-
610
- ```
data/Rakefile DELETED
@@ -1,7 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
- require "standard/rake"
4
-
5
- RSpec::Core::RakeTask.new(:spec)
6
-
7
- task default: %i[spec standard]
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "trycourier"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
@@ -1,45 +0,0 @@
1
- module Courier
2
- class Audiences
3
- KEY = "/audiences"
4
-
5
- def initialize(session)
6
- @session = session
7
- end
8
-
9
- def get_audience(audience_id:)
10
- path = "#{KEY}/#{audience_id}"
11
- res = @session.send(path, "GET")
12
- ErrorHandler.check_err(res)
13
- end
14
-
15
- def get_audiences(cursor: nil)
16
- params = {}
17
- if cursor
18
- params["cursor"] = cursor
19
- end
20
-
21
- res = @session.send(KEY, "GET", params: params)
22
- ErrorHandler.check_err(res)
23
- end
24
-
25
- def get_audience_members(audience_id:, cursor: nil)
26
- path = "#{KEY}/#{audience_id}/members"
27
-
28
- params = {}
29
- if cursor
30
- params["cursor"] = cursor
31
- end
32
-
33
- res = @session.send(path, "GET", params: params)
34
- ErrorHandler.check_err(res)
35
- end
36
-
37
- def put(audience_id:, payload:)
38
- path = "#{KEY}/#{audience_id}"
39
-
40
- res = @session.send(path, "PUT", body: payload)
41
- ErrorHandler.check_err(res)
42
- end
43
-
44
- end
45
- end
@@ -1,27 +0,0 @@
1
- module Courier
2
- class AuditEvents
3
- KEY = "/audit-events"
4
-
5
- def initialize(session)
6
- @session = session
7
- end
8
-
9
- def get(audit_event_id:)
10
- path = "#{KEY}/#{audit_event_id}"
11
- res = @session.send(path, "GET")
12
- ErrorHandler.check_err(res)
13
- end
14
-
15
- def list(cursor: nil)
16
- path = "#{KEY}"
17
-
18
- params = {}
19
- if cursor
20
- params["cursor"] = cursor
21
- end
22
-
23
- res = @session.send(path, "GET", params: params)
24
- ErrorHandler.check_err(res)
25
- end
26
- end
27
- end