trycourier 4.4.0 → 4.6.0

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 (172) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +9 -9
  4. data/lib/trycourier/internal/transport/pooled_net_requester.rb +12 -10
  5. data/lib/trycourier/internal/type/base_model.rb +4 -3
  6. data/lib/trycourier/internal/type/union.rb +7 -9
  7. data/lib/trycourier/internal/util.rb +7 -2
  8. data/lib/trycourier/models/airship_profile.rb +21 -0
  9. data/lib/trycourier/models/airship_profile_audience.rb +15 -0
  10. data/lib/trycourier/models/audience.rb +3 -3
  11. data/lib/trycourier/models/audience_filter.rb +52 -0
  12. data/lib/trycourier/models/audience_recipient.rb +36 -0
  13. data/lib/trycourier/models/audience_update_params.rb +3 -3
  14. data/lib/trycourier/models/automation_list_params.rb +47 -0
  15. data/lib/trycourier/models/automation_template.rb +61 -0
  16. data/lib/trycourier/models/automation_template_list_response.rb +24 -0
  17. data/lib/trycourier/models/device_type.rb +7 -0
  18. data/lib/trycourier/models/discord.rb +16 -0
  19. data/lib/trycourier/models/expo.rb +16 -0
  20. data/lib/trycourier/models/filter.rb +8 -51
  21. data/lib/trycourier/models/filter_config.rb +8 -51
  22. data/lib/trycourier/models/intercom.rb +21 -0
  23. data/lib/trycourier/models/intercom_recipient.rb +15 -0
  24. data/lib/trycourier/models/list_filter.rb +52 -0
  25. data/lib/trycourier/models/list_pattern_recipient.rb +23 -0
  26. data/lib/trycourier/models/list_recipient.rb +29 -0
  27. data/lib/trycourier/models/ms_teams.rb +22 -0
  28. data/lib/trycourier/models/ms_teams_base_properties.rb +21 -0
  29. data/lib/trycourier/models/ms_teams_recipient.rb +17 -0
  30. data/lib/trycourier/models/multiple_tokens.rb +15 -0
  31. data/lib/trycourier/models/nested_filter_config.rb +49 -0
  32. data/lib/trycourier/models/pagerduty.rb +33 -0
  33. data/lib/trycourier/models/pagerduty_recipient.rb +17 -0
  34. data/lib/trycourier/models/send_direct_message.rb +15 -0
  35. data/lib/trycourier/models/send_message_params.rb +24 -7
  36. data/lib/trycourier/models/send_to_channel.rb +15 -0
  37. data/lib/trycourier/models/send_to_ms_teams_channel_id.rb +27 -0
  38. data/lib/trycourier/models/send_to_ms_teams_channel_name.rb +33 -0
  39. data/lib/trycourier/models/send_to_ms_teams_conversation_id.rb +27 -0
  40. data/lib/trycourier/models/send_to_ms_teams_email.rb +27 -0
  41. data/lib/trycourier/models/send_to_ms_teams_user_id.rb +27 -0
  42. data/lib/trycourier/models/send_to_slack_channel.rb +21 -0
  43. data/lib/trycourier/models/send_to_slack_email.rb +21 -0
  44. data/lib/trycourier/models/send_to_slack_user_id.rb +21 -0
  45. data/lib/trycourier/models/single_filter_config.rb +62 -0
  46. data/lib/trycourier/models/slack.rb +18 -0
  47. data/lib/trycourier/models/slack_base_properties.rb +15 -0
  48. data/lib/trycourier/models/slack_recipient.rb +17 -0
  49. data/lib/trycourier/models/token.rb +15 -0
  50. data/lib/trycourier/models/user_profile.rb +274 -0
  51. data/lib/trycourier/models/user_profile_firebase_token.rb +19 -0
  52. data/lib/trycourier/models/webhook_auth_mode.rb +16 -0
  53. data/lib/trycourier/models/webhook_authentication.rb +40 -0
  54. data/lib/trycourier/models/webhook_method.rb +15 -0
  55. data/lib/trycourier/models/webhook_profile.rb +53 -0
  56. data/lib/trycourier/models/webhook_profile_type.rb +15 -0
  57. data/lib/trycourier/models/webhook_recipient.rb +17 -0
  58. data/lib/trycourier/models.rb +90 -2
  59. data/lib/trycourier/resources/audiences.rb +1 -1
  60. data/lib/trycourier/resources/automations.rb +27 -0
  61. data/lib/trycourier/version.rb +1 -1
  62. data/lib/trycourier.rb +45 -1
  63. data/rbi/trycourier/models/airship_profile.rbi +41 -0
  64. data/rbi/trycourier/models/airship_profile_audience.rbi +26 -0
  65. data/rbi/trycourier/models/audience.rbi +8 -7
  66. data/rbi/trycourier/models/audience_filter.rbi +88 -0
  67. data/rbi/trycourier/models/audience_recipient.rbi +52 -0
  68. data/rbi/trycourier/models/audience_update_params.rbi +25 -7
  69. data/rbi/trycourier/models/automation_list_params.rbi +95 -0
  70. data/rbi/trycourier/models/automation_template.rbi +102 -0
  71. data/rbi/trycourier/models/automation_template_list_response.rbi +54 -0
  72. data/rbi/trycourier/models/device_type.rbi +7 -0
  73. data/rbi/trycourier/models/discord.rbi +18 -0
  74. data/rbi/trycourier/models/expo.rbi +16 -0
  75. data/rbi/trycourier/models/filter.rbi +8 -78
  76. data/rbi/trycourier/models/filter_config.rbi +8 -83
  77. data/rbi/trycourier/models/intercom.rbi +35 -0
  78. data/rbi/trycourier/models/intercom_recipient.rbi +23 -0
  79. data/rbi/trycourier/models/list_filter.rbi +86 -0
  80. data/rbi/trycourier/models/list_pattern_recipient.rbi +39 -0
  81. data/rbi/trycourier/models/list_recipient.rbi +44 -0
  82. data/rbi/trycourier/models/ms_teams.rbi +24 -0
  83. data/rbi/trycourier/models/ms_teams_base_properties.rbi +31 -0
  84. data/rbi/trycourier/models/ms_teams_recipient.rbi +58 -0
  85. data/rbi/trycourier/models/multiple_tokens.rbi +27 -0
  86. data/rbi/trycourier/models/nested_filter_config.rbi +104 -0
  87. data/rbi/trycourier/models/pagerduty.rbi +53 -0
  88. data/rbi/trycourier/models/pagerduty_recipient.rbi +31 -0
  89. data/rbi/trycourier/models/send_direct_message.rbi +23 -0
  90. data/rbi/trycourier/models/send_message_params.rbi +34 -10
  91. data/rbi/trycourier/models/send_to_channel.rbi +23 -0
  92. data/rbi/trycourier/models/send_to_ms_teams_channel_id.rbi +42 -0
  93. data/rbi/trycourier/models/send_to_ms_teams_channel_name.rbi +51 -0
  94. data/rbi/trycourier/models/send_to_ms_teams_conversation_id.rbi +42 -0
  95. data/rbi/trycourier/models/send_to_ms_teams_email.rbi +37 -0
  96. data/rbi/trycourier/models/send_to_ms_teams_user_id.rbi +37 -0
  97. data/rbi/trycourier/models/send_to_slack_channel.rbi +28 -0
  98. data/rbi/trycourier/models/send_to_slack_email.rbi +28 -0
  99. data/rbi/trycourier/models/send_to_slack_user_id.rbi +28 -0
  100. data/rbi/trycourier/models/single_filter_config.rbi +116 -0
  101. data/rbi/trycourier/models/slack.rbi +22 -0
  102. data/rbi/trycourier/models/slack_base_properties.rbi +23 -0
  103. data/rbi/trycourier/models/slack_recipient.rbi +52 -0
  104. data/rbi/trycourier/models/token.rbi +21 -0
  105. data/rbi/trycourier/models/user_profile.rbi +377 -0
  106. data/rbi/trycourier/models/user_profile_firebase_token.rbi +25 -0
  107. data/rbi/trycourier/models/webhook_auth_mode.rbi +22 -0
  108. data/rbi/trycourier/models/webhook_authentication.rbi +64 -0
  109. data/rbi/trycourier/models/webhook_method.rbi +21 -0
  110. data/rbi/trycourier/models/webhook_profile.rbi +80 -0
  111. data/rbi/trycourier/models/webhook_profile_type.rbi +22 -0
  112. data/rbi/trycourier/models/webhook_recipient.rbi +31 -0
  113. data/rbi/trycourier/models.rbi +91 -2
  114. data/rbi/trycourier/resources/audiences.rbi +7 -1
  115. data/rbi/trycourier/resources/automations.rbi +19 -0
  116. data/sig/trycourier/models/airship_profile.rbs +25 -0
  117. data/sig/trycourier/models/airship_profile_audience.rbs +13 -0
  118. data/sig/trycourier/models/audience.rbs +4 -4
  119. data/sig/trycourier/models/audience_filter.rbs +50 -0
  120. data/sig/trycourier/models/audience_recipient.rbs +30 -0
  121. data/sig/trycourier/models/audience_update_params.rbs +8 -4
  122. data/sig/trycourier/models/automation_list_params.rbs +48 -0
  123. data/sig/trycourier/models/automation_template.rbs +55 -0
  124. data/sig/trycourier/models/automation_template_list_response.rbs +28 -0
  125. data/sig/trycourier/models/device_type.rbs +5 -0
  126. data/sig/trycourier/models/discord.rbs +11 -0
  127. data/sig/trycourier/models/expo.rbs +11 -0
  128. data/sig/trycourier/models/filter.rbs +4 -61
  129. data/sig/trycourier/models/filter_config.rbs +4 -61
  130. data/sig/trycourier/models/intercom.rbs +15 -0
  131. data/sig/trycourier/models/intercom_recipient.rbs +13 -0
  132. data/sig/trycourier/models/list_filter.rbs +50 -0
  133. data/sig/trycourier/models/list_pattern_recipient.rbs +19 -0
  134. data/sig/trycourier/models/list_recipient.rbs +30 -0
  135. data/sig/trycourier/models/ms_teams.rbs +16 -0
  136. data/sig/trycourier/models/ms_teams_base_properties.rbs +15 -0
  137. data/sig/trycourier/models/ms_teams_recipient.rbs +13 -0
  138. data/sig/trycourier/models/multiple_tokens.rbs +13 -0
  139. data/sig/trycourier/models/nested_filter_config.rbs +64 -0
  140. data/sig/trycourier/models/pagerduty.rbs +35 -0
  141. data/sig/trycourier/models/pagerduty_recipient.rbs +13 -0
  142. data/sig/trycourier/models/send_direct_message.rbs +13 -0
  143. data/sig/trycourier/models/send_message_params.rbs +9 -3
  144. data/sig/trycourier/models/send_to_channel.rbs +13 -0
  145. data/sig/trycourier/models/send_to_ms_teams_channel_id.rbs +26 -0
  146. data/sig/trycourier/models/send_to_ms_teams_channel_name.rbs +35 -0
  147. data/sig/trycourier/models/send_to_ms_teams_conversation_id.rbs +26 -0
  148. data/sig/trycourier/models/send_to_ms_teams_email.rbs +22 -0
  149. data/sig/trycourier/models/send_to_ms_teams_user_id.rbs +26 -0
  150. data/sig/trycourier/models/send_to_slack_channel.rbs +15 -0
  151. data/sig/trycourier/models/send_to_slack_email.rbs +15 -0
  152. data/sig/trycourier/models/send_to_slack_user_id.rbs +15 -0
  153. data/sig/trycourier/models/single_filter_config.rbs +69 -0
  154. data/sig/trycourier/models/slack.rbs +14 -0
  155. data/sig/trycourier/models/slack_base_properties.rbs +13 -0
  156. data/sig/trycourier/models/slack_recipient.rbs +13 -0
  157. data/sig/trycourier/models/token.rbs +13 -0
  158. data/sig/trycourier/models/user_profile.rbs +212 -0
  159. data/sig/trycourier/models/user_profile_firebase_token.rbs +13 -0
  160. data/sig/trycourier/models/webhook_auth_mode.rbs +15 -0
  161. data/sig/trycourier/models/webhook_authentication.rbs +35 -0
  162. data/sig/trycourier/models/webhook_method.rbs +14 -0
  163. data/sig/trycourier/models/webhook_profile.rbs +40 -0
  164. data/sig/trycourier/models/webhook_profile_type.rbs +14 -0
  165. data/sig/trycourier/models/webhook_recipient.rbs +13 -0
  166. data/sig/trycourier/models.rbs +92 -4
  167. data/sig/trycourier/resources/audiences.rbs +1 -1
  168. data/sig/trycourier/resources/automations.rbs +6 -0
  169. metadata +137 -5
  170. data/lib/trycourier/models/recipient.rb +0 -113
  171. data/rbi/trycourier/models/recipient.rbi +0 -161
  172. data/sig/trycourier/models/recipient.rbs +0 -92
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class Intercom < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute from
7
+ #
8
+ # @return [String]
9
+ required :from, String
10
+
11
+ # @!attribute to
12
+ #
13
+ # @return [Trycourier::Models::IntercomRecipient]
14
+ required :to, -> { Trycourier::IntercomRecipient }
15
+
16
+ # @!method initialize(from:, to:)
17
+ # @param from [String]
18
+ # @param to [Trycourier::Models::IntercomRecipient]
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class IntercomRecipient < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute id
7
+ #
8
+ # @return [String]
9
+ required :id, String
10
+
11
+ # @!method initialize(id:)
12
+ # @param id [String]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class ListFilter < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute operator
7
+ # Send to users only if they are member of the account
8
+ #
9
+ # @return [Symbol, Trycourier::Models::ListFilter::Operator]
10
+ required :operator, enum: -> { Trycourier::ListFilter::Operator }
11
+
12
+ # @!attribute path
13
+ #
14
+ # @return [Symbol, Trycourier::Models::ListFilter::Path]
15
+ required :path, enum: -> { Trycourier::ListFilter::Path }
16
+
17
+ # @!attribute value
18
+ #
19
+ # @return [String]
20
+ required :value, String
21
+
22
+ # @!method initialize(operator:, path:, value:)
23
+ # @param operator [Symbol, Trycourier::Models::ListFilter::Operator] Send to users only if they are member of the account
24
+ #
25
+ # @param path [Symbol, Trycourier::Models::ListFilter::Path]
26
+ #
27
+ # @param value [String]
28
+
29
+ # Send to users only if they are member of the account
30
+ #
31
+ # @see Trycourier::Models::ListFilter#operator
32
+ module Operator
33
+ extend Trycourier::Internal::Type::Enum
34
+
35
+ MEMBER_OF = :MEMBER_OF
36
+
37
+ # @!method self.values
38
+ # @return [Array<Symbol>]
39
+ end
40
+
41
+ # @see Trycourier::Models::ListFilter#path
42
+ module Path
43
+ extend Trycourier::Internal::Type::Enum
44
+
45
+ ACCOUNT_ID = :account_id
46
+
47
+ # @!method self.values
48
+ # @return [Array<Symbol>]
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class ListPatternRecipient < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute data
7
+ #
8
+ # @return [Hash{Symbol=>Object}, nil]
9
+ optional :data, Trycourier::Internal::Type::HashOf[Trycourier::Internal::Type::Unknown], nil?: true
10
+
11
+ # @!attribute list_pattern
12
+ #
13
+ # @return [String, nil]
14
+ optional :list_pattern, String, nil?: true
15
+
16
+ # @!method initialize(data: nil, list_pattern: nil)
17
+ # Send to users in lists matching a pattern
18
+ #
19
+ # @param data [Hash{Symbol=>Object}, nil]
20
+ # @param list_pattern [String, nil]
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class ListRecipient < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute data
7
+ #
8
+ # @return [Hash{Symbol=>Object}, nil]
9
+ optional :data, Trycourier::Internal::Type::HashOf[Trycourier::Internal::Type::Unknown], nil?: true
10
+
11
+ # @!attribute filters
12
+ #
13
+ # @return [Array<Trycourier::Models::ListFilter>, nil]
14
+ optional :filters, -> { Trycourier::Internal::Type::ArrayOf[Trycourier::ListFilter] }, nil?: true
15
+
16
+ # @!attribute list_id
17
+ #
18
+ # @return [String, nil]
19
+ optional :list_id, String, nil?: true
20
+
21
+ # @!method initialize(data: nil, filters: nil, list_id: nil)
22
+ # Send to all users in a specific list
23
+ #
24
+ # @param data [Hash{Symbol=>Object}, nil]
25
+ # @param filters [Array<Trycourier::Models::ListFilter>, nil]
26
+ # @param list_id [String, nil]
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ module MsTeams
6
+ extend Trycourier::Internal::Type::Union
7
+
8
+ variant -> { Trycourier::SendToMsTeamsUserID }
9
+
10
+ variant -> { Trycourier::SendToMsTeamsEmail }
11
+
12
+ variant -> { Trycourier::SendToMsTeamsChannelID }
13
+
14
+ variant -> { Trycourier::SendToMsTeamsConversationID }
15
+
16
+ variant -> { Trycourier::SendToMsTeamsChannelName }
17
+
18
+ # @!method self.variants
19
+ # @return [Array(Trycourier::Models::SendToMsTeamsUserID, Trycourier::Models::SendToMsTeamsEmail, Trycourier::Models::SendToMsTeamsChannelID, Trycourier::Models::SendToMsTeamsConversationID, Trycourier::Models::SendToMsTeamsChannelName)]
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class MsTeamsBaseProperties < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute service_url
7
+ #
8
+ # @return [String]
9
+ required :service_url, String
10
+
11
+ # @!attribute tenant_id
12
+ #
13
+ # @return [String]
14
+ required :tenant_id, String
15
+
16
+ # @!method initialize(service_url:, tenant_id:)
17
+ # @param service_url [String]
18
+ # @param tenant_id [String]
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class MsTeamsRecipient < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute ms_teams
7
+ #
8
+ # @return [Trycourier::Models::SendToMsTeamsUserID, Trycourier::Models::SendToMsTeamsEmail, Trycourier::Models::SendToMsTeamsChannelID, Trycourier::Models::SendToMsTeamsConversationID, Trycourier::Models::SendToMsTeamsChannelName]
9
+ required :ms_teams, union: -> { Trycourier::MsTeams }
10
+
11
+ # @!method initialize(ms_teams:)
12
+ # Send via Microsoft Teams
13
+ #
14
+ # @param ms_teams [Trycourier::Models::SendToMsTeamsUserID, Trycourier::Models::SendToMsTeamsEmail, Trycourier::Models::SendToMsTeamsChannelID, Trycourier::Models::SendToMsTeamsConversationID, Trycourier::Models::SendToMsTeamsChannelName]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class MultipleTokens < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute tokens
7
+ #
8
+ # @return [Array<Trycourier::Models::Token>]
9
+ required :tokens, -> { Trycourier::Internal::Type::ArrayOf[Trycourier::Token] }
10
+
11
+ # @!method initialize(tokens:)
12
+ # @param tokens [Array<Trycourier::Models::Token>]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class NestedFilterConfig < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute operator
7
+ # The operator to use for filtering
8
+ #
9
+ # @return [Symbol, Trycourier::Models::NestedFilterConfig::Operator]
10
+ required :operator, enum: -> { Trycourier::NestedFilterConfig::Operator }
11
+
12
+ # @!attribute rules
13
+ #
14
+ # @return [Array<Trycourier::Models::FilterConfig>]
15
+ required :rules, -> { Trycourier::Internal::Type::ArrayOf[union: Trycourier::FilterConfig] }
16
+
17
+ # @!method initialize(operator:, rules:)
18
+ # @param operator [Symbol, Trycourier::Models::NestedFilterConfig::Operator] The operator to use for filtering
19
+ #
20
+ # @param rules [Array<Trycourier::Models::FilterConfig>]
21
+
22
+ # The operator to use for filtering
23
+ #
24
+ # @see Trycourier::Models::NestedFilterConfig#operator
25
+ module Operator
26
+ extend Trycourier::Internal::Type::Enum
27
+
28
+ ENDS_WITH = :ENDS_WITH
29
+ EQ = :EQ
30
+ EXISTS = :EXISTS
31
+ GT = :GT
32
+ GTE = :GTE
33
+ INCLUDES = :INCLUDES
34
+ IS_AFTER = :IS_AFTER
35
+ IS_BEFORE = :IS_BEFORE
36
+ LT = :LT
37
+ LTE = :LTE
38
+ NEQ = :NEQ
39
+ OMIT = :OMIT
40
+ STARTS_WITH = :STARTS_WITH
41
+ AND = :AND
42
+ OR = :OR
43
+
44
+ # @!method self.values
45
+ # @return [Array<Symbol>]
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class Pagerduty < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute event_action
7
+ #
8
+ # @return [String, nil]
9
+ optional :event_action, String, nil?: true
10
+
11
+ # @!attribute routing_key
12
+ #
13
+ # @return [String, nil]
14
+ optional :routing_key, String, nil?: true
15
+
16
+ # @!attribute severity
17
+ #
18
+ # @return [String, nil]
19
+ optional :severity, String, nil?: true
20
+
21
+ # @!attribute source
22
+ #
23
+ # @return [String, nil]
24
+ optional :source, String, nil?: true
25
+
26
+ # @!method initialize(event_action: nil, routing_key: nil, severity: nil, source: nil)
27
+ # @param event_action [String, nil]
28
+ # @param routing_key [String, nil]
29
+ # @param severity [String, nil]
30
+ # @param source [String, nil]
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class PagerdutyRecipient < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute pagerduty
7
+ #
8
+ # @return [Trycourier::Models::Pagerduty]
9
+ required :pagerduty, -> { Trycourier::Pagerduty }
10
+
11
+ # @!method initialize(pagerduty:)
12
+ # Send via PagerDuty
13
+ #
14
+ # @param pagerduty [Trycourier::Models::Pagerduty]
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendDirectMessage < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute user_id
7
+ #
8
+ # @return [String]
9
+ required :user_id, String
10
+
11
+ # @!method initialize(user_id:)
12
+ # @param user_id [String]
13
+ end
14
+ end
15
+ end
@@ -100,7 +100,7 @@ module Trycourier
100
100
  # @!attribute to
101
101
  # The recipient or a list of recipients of the message
102
102
  #
103
- # @return [Trycourier::Models::UserRecipient, Array<Trycourier::Models::Recipient>, nil]
103
+ # @return [Trycourier::Models::UserRecipient, Trycourier::Models::AudienceRecipient, Trycourier::Models::ListRecipient, Trycourier::Models::ListPatternRecipient, Trycourier::Models::SlackRecipient, Trycourier::Models::MsTeamsRecipient, Trycourier::Models::PagerdutyRecipient, Trycourier::Models::WebhookRecipient, nil]
104
104
  optional :to, union: -> { Trycourier::SendMessageParams::Message::To }, nil?: true
105
105
 
106
106
  # @!method initialize(brand_id: nil, channels: nil, content: nil, context: nil, data: nil, delay: nil, expiry: nil, metadata: nil, preferences: nil, providers: nil, routing: nil, template: nil, timeout: nil, to: nil)
@@ -136,7 +136,7 @@ module Trycourier
136
136
  #
137
137
  # @param timeout [Trycourier::Models::SendMessageParams::Message::Timeout, nil]
138
138
  #
139
- # @param to [Trycourier::Models::UserRecipient, Array<Trycourier::Models::Recipient>, nil] The recipient or a list of recipients of the message
139
+ # @param to [Trycourier::Models::UserRecipient, Trycourier::Models::AudienceRecipient, Trycourier::Models::ListRecipient, Trycourier::Models::ListPatternRecipient, Trycourier::Models::SlackRecipient, Trycourier::Models::MsTeamsRecipient, Trycourier::Models::PagerdutyRecipient, Trycourier::Models::WebhookRecipient, nil] The recipient or a list of recipients of the message
140
140
 
141
141
  class Channel < Trycourier::Internal::Type::BaseModel
142
142
  # @!attribute brand_id
@@ -504,15 +504,32 @@ module Trycourier
504
504
  module To
505
505
  extend Trycourier::Internal::Type::Union
506
506
 
507
+ # Send to a specific user by user_id, email, phone_number, or list_id
507
508
  variant -> { Trycourier::UserRecipient }
508
509
 
509
- variant -> { Trycourier::Models::SendMessageParams::Message::To::RecipientArray }
510
+ # Send to all users in an audience
511
+ variant -> { Trycourier::AudienceRecipient }
510
512
 
511
- # @!method self.variants
512
- # @return [Array(Trycourier::Models::UserRecipient, Array<Trycourier::Models::Recipient>)]
513
+ # Send to all users in a specific list
514
+ variant -> { Trycourier::ListRecipient }
515
+
516
+ # Send to users in lists matching a pattern
517
+ variant -> { Trycourier::ListPatternRecipient }
518
+
519
+ # Send via Slack (channel, email, or user_id)
520
+ variant -> { Trycourier::SlackRecipient }
521
+
522
+ # Send via Microsoft Teams
523
+ variant -> { Trycourier::MsTeamsRecipient }
513
524
 
514
- # @type [Trycourier::Internal::Type::Converter]
515
- RecipientArray = Trycourier::Internal::Type::ArrayOf[-> { Trycourier::Recipient }]
525
+ # Send via PagerDuty
526
+ variant -> { Trycourier::PagerdutyRecipient }
527
+
528
+ # Send via webhook
529
+ variant -> { Trycourier::WebhookRecipient }
530
+
531
+ # @!method self.variants
532
+ # @return [Array(Trycourier::Models::UserRecipient, Trycourier::Models::AudienceRecipient, Trycourier::Models::ListRecipient, Trycourier::Models::ListPatternRecipient, Trycourier::Models::SlackRecipient, Trycourier::Models::MsTeamsRecipient, Trycourier::Models::PagerdutyRecipient, Trycourier::Models::WebhookRecipient)]
516
533
  end
517
534
  end
518
535
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToChannel < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute channel_id
7
+ #
8
+ # @return [String]
9
+ required :channel_id, String
10
+
11
+ # @!method initialize(channel_id:)
12
+ # @param channel_id [String]
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsChannelID < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute channel_id
7
+ #
8
+ # @return [String]
9
+ required :channel_id, String
10
+
11
+ # @!attribute service_url
12
+ #
13
+ # @return [String]
14
+ required :service_url, String
15
+
16
+ # @!attribute tenant_id
17
+ #
18
+ # @return [String]
19
+ required :tenant_id, String
20
+
21
+ # @!method initialize(channel_id:, service_url:, tenant_id:)
22
+ # @param channel_id [String]
23
+ # @param service_url [String]
24
+ # @param tenant_id [String]
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsChannelName < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute channel_name
7
+ #
8
+ # @return [String]
9
+ required :channel_name, String
10
+
11
+ # @!attribute service_url
12
+ #
13
+ # @return [String]
14
+ required :service_url, String
15
+
16
+ # @!attribute team_id
17
+ #
18
+ # @return [String]
19
+ required :team_id, String
20
+
21
+ # @!attribute tenant_id
22
+ #
23
+ # @return [String]
24
+ required :tenant_id, String
25
+
26
+ # @!method initialize(channel_name:, service_url:, team_id:, tenant_id:)
27
+ # @param channel_name [String]
28
+ # @param service_url [String]
29
+ # @param team_id [String]
30
+ # @param tenant_id [String]
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsConversationID < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute conversation_id
7
+ #
8
+ # @return [String]
9
+ required :conversation_id, String
10
+
11
+ # @!attribute service_url
12
+ #
13
+ # @return [String]
14
+ required :service_url, String
15
+
16
+ # @!attribute tenant_id
17
+ #
18
+ # @return [String]
19
+ required :tenant_id, String
20
+
21
+ # @!method initialize(conversation_id:, service_url:, tenant_id:)
22
+ # @param conversation_id [String]
23
+ # @param service_url [String]
24
+ # @param tenant_id [String]
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsEmail < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute email
7
+ #
8
+ # @return [String]
9
+ required :email, String
10
+
11
+ # @!attribute service_url
12
+ #
13
+ # @return [String]
14
+ required :service_url, String
15
+
16
+ # @!attribute tenant_id
17
+ #
18
+ # @return [String]
19
+ required :tenant_id, String
20
+
21
+ # @!method initialize(email:, service_url:, tenant_id:)
22
+ # @param email [String]
23
+ # @param service_url [String]
24
+ # @param tenant_id [String]
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsUserID < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute service_url
7
+ #
8
+ # @return [String]
9
+ required :service_url, String
10
+
11
+ # @!attribute tenant_id
12
+ #
13
+ # @return [String]
14
+ required :tenant_id, String
15
+
16
+ # @!attribute user_id
17
+ #
18
+ # @return [String]
19
+ required :user_id, String
20
+
21
+ # @!method initialize(service_url:, tenant_id:, user_id:)
22
+ # @param service_url [String]
23
+ # @param tenant_id [String]
24
+ # @param user_id [String]
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToSlackChannel < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute access_token
7
+ #
8
+ # @return [String]
9
+ required :access_token, String
10
+
11
+ # @!attribute channel
12
+ #
13
+ # @return [String]
14
+ required :channel, String
15
+
16
+ # @!method initialize(access_token:, channel:)
17
+ # @param access_token [String]
18
+ # @param channel [String]
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToSlackEmail < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute access_token
7
+ #
8
+ # @return [String]
9
+ required :access_token, String
10
+
11
+ # @!attribute email
12
+ #
13
+ # @return [String]
14
+ required :email, String
15
+
16
+ # @!method initialize(access_token:, email:)
17
+ # @param access_token [String]
18
+ # @param email [String]
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToSlackUserID < Trycourier::Internal::Type::BaseModel
6
+ # @!attribute access_token
7
+ #
8
+ # @return [String]
9
+ required :access_token, String
10
+
11
+ # @!attribute user_id
12
+ #
13
+ # @return [String]
14
+ required :user_id, String
15
+
16
+ # @!method initialize(access_token:, user_id:)
17
+ # @param access_token [String]
18
+ # @param user_id [String]
19
+ end
20
+ end
21
+ end