trycourier 4.4.0 → 4.5.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 (160) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +1 -1
  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/device_type.rb +7 -0
  15. data/lib/trycourier/models/discord.rb +16 -0
  16. data/lib/trycourier/models/expo.rb +16 -0
  17. data/lib/trycourier/models/filter.rb +8 -51
  18. data/lib/trycourier/models/filter_config.rb +8 -51
  19. data/lib/trycourier/models/intercom.rb +21 -0
  20. data/lib/trycourier/models/intercom_recipient.rb +15 -0
  21. data/lib/trycourier/models/list_filter.rb +52 -0
  22. data/lib/trycourier/models/list_pattern_recipient.rb +23 -0
  23. data/lib/trycourier/models/list_recipient.rb +29 -0
  24. data/lib/trycourier/models/ms_teams.rb +22 -0
  25. data/lib/trycourier/models/ms_teams_base_properties.rb +21 -0
  26. data/lib/trycourier/models/ms_teams_recipient.rb +17 -0
  27. data/lib/trycourier/models/multiple_tokens.rb +15 -0
  28. data/lib/trycourier/models/nested_filter_config.rb +49 -0
  29. data/lib/trycourier/models/pagerduty.rb +33 -0
  30. data/lib/trycourier/models/pagerduty_recipient.rb +17 -0
  31. data/lib/trycourier/models/send_direct_message.rb +15 -0
  32. data/lib/trycourier/models/send_message_params.rb +24 -7
  33. data/lib/trycourier/models/send_to_channel.rb +15 -0
  34. data/lib/trycourier/models/send_to_ms_teams_channel_id.rb +27 -0
  35. data/lib/trycourier/models/send_to_ms_teams_channel_name.rb +33 -0
  36. data/lib/trycourier/models/send_to_ms_teams_conversation_id.rb +27 -0
  37. data/lib/trycourier/models/send_to_ms_teams_email.rb +27 -0
  38. data/lib/trycourier/models/send_to_ms_teams_user_id.rb +27 -0
  39. data/lib/trycourier/models/send_to_slack_channel.rb +21 -0
  40. data/lib/trycourier/models/send_to_slack_email.rb +21 -0
  41. data/lib/trycourier/models/send_to_slack_user_id.rb +21 -0
  42. data/lib/trycourier/models/single_filter_config.rb +62 -0
  43. data/lib/trycourier/models/slack.rb +18 -0
  44. data/lib/trycourier/models/slack_base_properties.rb +15 -0
  45. data/lib/trycourier/models/slack_recipient.rb +17 -0
  46. data/lib/trycourier/models/token.rb +15 -0
  47. data/lib/trycourier/models/user_profile.rb +274 -0
  48. data/lib/trycourier/models/user_profile_firebase_token.rb +19 -0
  49. data/lib/trycourier/models/webhook_auth_mode.rb +16 -0
  50. data/lib/trycourier/models/webhook_authentication.rb +40 -0
  51. data/lib/trycourier/models/webhook_method.rb +15 -0
  52. data/lib/trycourier/models/webhook_profile.rb +53 -0
  53. data/lib/trycourier/models/webhook_profile_type.rb +15 -0
  54. data/lib/trycourier/models/webhook_recipient.rb +17 -0
  55. data/lib/trycourier/models.rb +84 -2
  56. data/lib/trycourier/resources/audiences.rb +1 -1
  57. data/lib/trycourier/version.rb +1 -1
  58. data/lib/trycourier.rb +42 -1
  59. data/rbi/trycourier/models/airship_profile.rbi +41 -0
  60. data/rbi/trycourier/models/airship_profile_audience.rbi +26 -0
  61. data/rbi/trycourier/models/audience.rbi +8 -7
  62. data/rbi/trycourier/models/audience_filter.rbi +88 -0
  63. data/rbi/trycourier/models/audience_recipient.rbi +52 -0
  64. data/rbi/trycourier/models/audience_update_params.rbi +25 -7
  65. data/rbi/trycourier/models/device_type.rbi +7 -0
  66. data/rbi/trycourier/models/discord.rbi +18 -0
  67. data/rbi/trycourier/models/expo.rbi +16 -0
  68. data/rbi/trycourier/models/filter.rbi +8 -78
  69. data/rbi/trycourier/models/filter_config.rbi +8 -83
  70. data/rbi/trycourier/models/intercom.rbi +35 -0
  71. data/rbi/trycourier/models/intercom_recipient.rbi +23 -0
  72. data/rbi/trycourier/models/list_filter.rbi +86 -0
  73. data/rbi/trycourier/models/list_pattern_recipient.rbi +39 -0
  74. data/rbi/trycourier/models/list_recipient.rbi +44 -0
  75. data/rbi/trycourier/models/ms_teams.rbi +24 -0
  76. data/rbi/trycourier/models/ms_teams_base_properties.rbi +31 -0
  77. data/rbi/trycourier/models/ms_teams_recipient.rbi +58 -0
  78. data/rbi/trycourier/models/multiple_tokens.rbi +27 -0
  79. data/rbi/trycourier/models/nested_filter_config.rbi +104 -0
  80. data/rbi/trycourier/models/pagerduty.rbi +53 -0
  81. data/rbi/trycourier/models/pagerduty_recipient.rbi +31 -0
  82. data/rbi/trycourier/models/send_direct_message.rbi +23 -0
  83. data/rbi/trycourier/models/send_message_params.rbi +34 -10
  84. data/rbi/trycourier/models/send_to_channel.rbi +23 -0
  85. data/rbi/trycourier/models/send_to_ms_teams_channel_id.rbi +42 -0
  86. data/rbi/trycourier/models/send_to_ms_teams_channel_name.rbi +51 -0
  87. data/rbi/trycourier/models/send_to_ms_teams_conversation_id.rbi +42 -0
  88. data/rbi/trycourier/models/send_to_ms_teams_email.rbi +37 -0
  89. data/rbi/trycourier/models/send_to_ms_teams_user_id.rbi +37 -0
  90. data/rbi/trycourier/models/send_to_slack_channel.rbi +28 -0
  91. data/rbi/trycourier/models/send_to_slack_email.rbi +28 -0
  92. data/rbi/trycourier/models/send_to_slack_user_id.rbi +28 -0
  93. data/rbi/trycourier/models/single_filter_config.rbi +116 -0
  94. data/rbi/trycourier/models/slack.rbi +22 -0
  95. data/rbi/trycourier/models/slack_base_properties.rbi +23 -0
  96. data/rbi/trycourier/models/slack_recipient.rbi +52 -0
  97. data/rbi/trycourier/models/token.rbi +21 -0
  98. data/rbi/trycourier/models/user_profile.rbi +377 -0
  99. data/rbi/trycourier/models/user_profile_firebase_token.rbi +25 -0
  100. data/rbi/trycourier/models/webhook_auth_mode.rbi +22 -0
  101. data/rbi/trycourier/models/webhook_authentication.rbi +64 -0
  102. data/rbi/trycourier/models/webhook_method.rbi +21 -0
  103. data/rbi/trycourier/models/webhook_profile.rbi +80 -0
  104. data/rbi/trycourier/models/webhook_profile_type.rbi +22 -0
  105. data/rbi/trycourier/models/webhook_recipient.rbi +31 -0
  106. data/rbi/trycourier/models.rbi +84 -2
  107. data/rbi/trycourier/resources/audiences.rbi +7 -1
  108. data/sig/trycourier/models/airship_profile.rbs +25 -0
  109. data/sig/trycourier/models/airship_profile_audience.rbs +13 -0
  110. data/sig/trycourier/models/audience.rbs +4 -4
  111. data/sig/trycourier/models/audience_filter.rbs +50 -0
  112. data/sig/trycourier/models/audience_recipient.rbs +30 -0
  113. data/sig/trycourier/models/audience_update_params.rbs +8 -4
  114. data/sig/trycourier/models/device_type.rbs +5 -0
  115. data/sig/trycourier/models/discord.rbs +11 -0
  116. data/sig/trycourier/models/expo.rbs +11 -0
  117. data/sig/trycourier/models/filter.rbs +4 -61
  118. data/sig/trycourier/models/filter_config.rbs +4 -61
  119. data/sig/trycourier/models/intercom.rbs +15 -0
  120. data/sig/trycourier/models/intercom_recipient.rbs +13 -0
  121. data/sig/trycourier/models/list_filter.rbs +50 -0
  122. data/sig/trycourier/models/list_pattern_recipient.rbs +19 -0
  123. data/sig/trycourier/models/list_recipient.rbs +30 -0
  124. data/sig/trycourier/models/ms_teams.rbs +16 -0
  125. data/sig/trycourier/models/ms_teams_base_properties.rbs +15 -0
  126. data/sig/trycourier/models/ms_teams_recipient.rbs +13 -0
  127. data/sig/trycourier/models/multiple_tokens.rbs +13 -0
  128. data/sig/trycourier/models/nested_filter_config.rbs +64 -0
  129. data/sig/trycourier/models/pagerduty.rbs +35 -0
  130. data/sig/trycourier/models/pagerduty_recipient.rbs +13 -0
  131. data/sig/trycourier/models/send_direct_message.rbs +13 -0
  132. data/sig/trycourier/models/send_message_params.rbs +9 -3
  133. data/sig/trycourier/models/send_to_channel.rbs +13 -0
  134. data/sig/trycourier/models/send_to_ms_teams_channel_id.rbs +26 -0
  135. data/sig/trycourier/models/send_to_ms_teams_channel_name.rbs +35 -0
  136. data/sig/trycourier/models/send_to_ms_teams_conversation_id.rbs +26 -0
  137. data/sig/trycourier/models/send_to_ms_teams_email.rbs +22 -0
  138. data/sig/trycourier/models/send_to_ms_teams_user_id.rbs +26 -0
  139. data/sig/trycourier/models/send_to_slack_channel.rbs +15 -0
  140. data/sig/trycourier/models/send_to_slack_email.rbs +15 -0
  141. data/sig/trycourier/models/send_to_slack_user_id.rbs +15 -0
  142. data/sig/trycourier/models/single_filter_config.rbs +69 -0
  143. data/sig/trycourier/models/slack.rbs +14 -0
  144. data/sig/trycourier/models/slack_base_properties.rbs +13 -0
  145. data/sig/trycourier/models/slack_recipient.rbs +13 -0
  146. data/sig/trycourier/models/token.rbs +13 -0
  147. data/sig/trycourier/models/user_profile.rbs +212 -0
  148. data/sig/trycourier/models/user_profile_firebase_token.rbs +13 -0
  149. data/sig/trycourier/models/webhook_auth_mode.rbs +15 -0
  150. data/sig/trycourier/models/webhook_authentication.rbs +35 -0
  151. data/sig/trycourier/models/webhook_method.rbs +14 -0
  152. data/sig/trycourier/models/webhook_profile.rbs +40 -0
  153. data/sig/trycourier/models/webhook_profile_type.rbs +14 -0
  154. data/sig/trycourier/models/webhook_recipient.rbs +13 -0
  155. data/sig/trycourier/models.rbs +86 -4
  156. data/sig/trycourier/resources/audiences.rbs +1 -1
  157. metadata +128 -5
  158. data/lib/trycourier/models/recipient.rb +0 -113
  159. data/rbi/trycourier/models/recipient.rbi +0 -161
  160. data/sig/trycourier/models/recipient.rbs +0 -92
@@ -0,0 +1,42 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsChannelID < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Trycourier::SendToMsTeamsChannelID,
10
+ Trycourier::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :channel_id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :service_url
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :tenant_id
22
+
23
+ sig do
24
+ params(
25
+ channel_id: String,
26
+ service_url: String,
27
+ tenant_id: String
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(channel_id:, service_url:, tenant_id:)
31
+ end
32
+
33
+ sig do
34
+ override.returns(
35
+ { channel_id: String, service_url: String, tenant_id: String }
36
+ )
37
+ end
38
+ def to_hash
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,51 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsChannelName < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Trycourier::SendToMsTeamsChannelName,
10
+ Trycourier::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :channel_name
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :service_url
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :team_id
22
+
23
+ sig { returns(String) }
24
+ attr_accessor :tenant_id
25
+
26
+ sig do
27
+ params(
28
+ channel_name: String,
29
+ service_url: String,
30
+ team_id: String,
31
+ tenant_id: String
32
+ ).returns(T.attached_class)
33
+ end
34
+ def self.new(channel_name:, service_url:, team_id:, tenant_id:)
35
+ end
36
+
37
+ sig do
38
+ override.returns(
39
+ {
40
+ channel_name: String,
41
+ service_url: String,
42
+ team_id: String,
43
+ tenant_id: String
44
+ }
45
+ )
46
+ end
47
+ def to_hash
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,42 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsConversationID < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(
9
+ Trycourier::SendToMsTeamsConversationID,
10
+ Trycourier::Internal::AnyHash
11
+ )
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :conversation_id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :service_url
19
+
20
+ sig { returns(String) }
21
+ attr_accessor :tenant_id
22
+
23
+ sig do
24
+ params(
25
+ conversation_id: String,
26
+ service_url: String,
27
+ tenant_id: String
28
+ ).returns(T.attached_class)
29
+ end
30
+ def self.new(conversation_id:, service_url:, tenant_id:)
31
+ end
32
+
33
+ sig do
34
+ override.returns(
35
+ { conversation_id: String, service_url: String, tenant_id: String }
36
+ )
37
+ end
38
+ def to_hash
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsEmail < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SendToMsTeamsEmail, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :email
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :service_url
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :tenant_id
19
+
20
+ sig do
21
+ params(email: String, service_url: String, tenant_id: String).returns(
22
+ T.attached_class
23
+ )
24
+ end
25
+ def self.new(email:, service_url:, tenant_id:)
26
+ end
27
+
28
+ sig do
29
+ override.returns(
30
+ { email: String, service_url: String, tenant_id: String }
31
+ )
32
+ end
33
+ def to_hash
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,37 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToMsTeamsUserID < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SendToMsTeamsUserID, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :service_url
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :tenant_id
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :user_id
19
+
20
+ sig do
21
+ params(service_url: String, tenant_id: String, user_id: String).returns(
22
+ T.attached_class
23
+ )
24
+ end
25
+ def self.new(service_url:, tenant_id:, user_id:)
26
+ end
27
+
28
+ sig do
29
+ override.returns(
30
+ { service_url: String, tenant_id: String, user_id: String }
31
+ )
32
+ end
33
+ def to_hash
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,28 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToSlackChannel < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SendToSlackChannel, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :access_token
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :channel
16
+
17
+ sig do
18
+ params(access_token: String, channel: String).returns(T.attached_class)
19
+ end
20
+ def self.new(access_token:, channel:)
21
+ end
22
+
23
+ sig { override.returns({ access_token: String, channel: String }) }
24
+ def to_hash
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToSlackEmail < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SendToSlackEmail, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :access_token
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :email
16
+
17
+ sig do
18
+ params(access_token: String, email: String).returns(T.attached_class)
19
+ end
20
+ def self.new(access_token:, email:)
21
+ end
22
+
23
+ sig { override.returns({ access_token: String, email: String }) }
24
+ def to_hash
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SendToSlackUserID < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SendToSlackUserID, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :access_token
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :user_id
16
+
17
+ sig do
18
+ params(access_token: String, user_id: String).returns(T.attached_class)
19
+ end
20
+ def self.new(access_token:, user_id:)
21
+ end
22
+
23
+ sig { override.returns({ access_token: String, user_id: String }) }
24
+ def to_hash
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,116 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SingleFilterConfig < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SingleFilterConfig, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ # The operator to use for filtering
12
+ sig { returns(Trycourier::SingleFilterConfig::Operator::OrSymbol) }
13
+ attr_accessor :operator
14
+
15
+ # The attribe name from profile whose value will be operated against the filter
16
+ # value
17
+ sig { returns(String) }
18
+ attr_accessor :path
19
+
20
+ # The value to use for filtering
21
+ sig { returns(String) }
22
+ attr_accessor :value
23
+
24
+ sig do
25
+ params(
26
+ operator: Trycourier::SingleFilterConfig::Operator::OrSymbol,
27
+ path: String,
28
+ value: String
29
+ ).returns(T.attached_class)
30
+ end
31
+ def self.new(
32
+ # The operator to use for filtering
33
+ operator:,
34
+ # The attribe name from profile whose value will be operated against the filter
35
+ # value
36
+ path:,
37
+ # The value to use for filtering
38
+ value:
39
+ )
40
+ end
41
+
42
+ sig do
43
+ override.returns(
44
+ {
45
+ operator: Trycourier::SingleFilterConfig::Operator::OrSymbol,
46
+ path: String,
47
+ value: String
48
+ }
49
+ )
50
+ end
51
+ def to_hash
52
+ end
53
+
54
+ # The operator to use for filtering
55
+ module Operator
56
+ extend Trycourier::Internal::Type::Enum
57
+
58
+ TaggedSymbol =
59
+ T.type_alias do
60
+ T.all(Symbol, Trycourier::SingleFilterConfig::Operator)
61
+ end
62
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
63
+
64
+ ENDS_WITH =
65
+ T.let(
66
+ :ENDS_WITH,
67
+ Trycourier::SingleFilterConfig::Operator::TaggedSymbol
68
+ )
69
+ EQ = T.let(:EQ, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
70
+ EXISTS =
71
+ T.let(:EXISTS, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
72
+ GT = T.let(:GT, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
73
+ GTE =
74
+ T.let(:GTE, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
75
+ INCLUDES =
76
+ T.let(
77
+ :INCLUDES,
78
+ Trycourier::SingleFilterConfig::Operator::TaggedSymbol
79
+ )
80
+ IS_AFTER =
81
+ T.let(
82
+ :IS_AFTER,
83
+ Trycourier::SingleFilterConfig::Operator::TaggedSymbol
84
+ )
85
+ IS_BEFORE =
86
+ T.let(
87
+ :IS_BEFORE,
88
+ Trycourier::SingleFilterConfig::Operator::TaggedSymbol
89
+ )
90
+ LT = T.let(:LT, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
91
+ LTE =
92
+ T.let(:LTE, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
93
+ NEQ =
94
+ T.let(:NEQ, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
95
+ OMIT =
96
+ T.let(:OMIT, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
97
+ STARTS_WITH =
98
+ T.let(
99
+ :STARTS_WITH,
100
+ Trycourier::SingleFilterConfig::Operator::TaggedSymbol
101
+ )
102
+ AND =
103
+ T.let(:AND, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
104
+ OR = T.let(:OR, Trycourier::SingleFilterConfig::Operator::TaggedSymbol)
105
+
106
+ sig do
107
+ override.returns(
108
+ T::Array[Trycourier::SingleFilterConfig::Operator::TaggedSymbol]
109
+ )
110
+ end
111
+ def self.values
112
+ end
113
+ end
114
+ end
115
+ end
116
+ end
@@ -0,0 +1,22 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ module Slack
6
+ extend Trycourier::Internal::Type::Union
7
+
8
+ Variants =
9
+ T.type_alias do
10
+ T.any(
11
+ Trycourier::SendToSlackChannel,
12
+ Trycourier::SendToSlackEmail,
13
+ Trycourier::SendToSlackUserID
14
+ )
15
+ end
16
+
17
+ sig { override.returns(T::Array[Trycourier::Slack::Variants]) }
18
+ def self.variants
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SlackBaseProperties < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SlackBaseProperties, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(String) }
12
+ attr_accessor :access_token
13
+
14
+ sig { params(access_token: String).returns(T.attached_class) }
15
+ def self.new(access_token:)
16
+ end
17
+
18
+ sig { override.returns({ access_token: String }) }
19
+ def to_hash
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,52 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class SlackRecipient < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::SlackRecipient, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ sig do
12
+ returns(
13
+ T.any(
14
+ Trycourier::SendToSlackChannel,
15
+ Trycourier::SendToSlackEmail,
16
+ Trycourier::SendToSlackUserID
17
+ )
18
+ )
19
+ end
20
+ attr_accessor :slack
21
+
22
+ # Send via Slack (channel, email, or user_id)
23
+ sig do
24
+ params(
25
+ slack:
26
+ T.any(
27
+ Trycourier::SendToSlackChannel::OrHash,
28
+ Trycourier::SendToSlackEmail::OrHash,
29
+ Trycourier::SendToSlackUserID::OrHash
30
+ )
31
+ ).returns(T.attached_class)
32
+ end
33
+ def self.new(slack:)
34
+ end
35
+
36
+ sig do
37
+ override.returns(
38
+ {
39
+ slack:
40
+ T.any(
41
+ Trycourier::SendToSlackChannel,
42
+ Trycourier::SendToSlackEmail,
43
+ Trycourier::SendToSlackUserID
44
+ )
45
+ }
46
+ )
47
+ end
48
+ def to_hash
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,21 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class Token < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias { T.any(Trycourier::Token, Trycourier::Internal::AnyHash) }
8
+
9
+ sig { returns(String) }
10
+ attr_accessor :token
11
+
12
+ sig { params(token: String).returns(T.attached_class) }
13
+ def self.new(token:)
14
+ end
15
+
16
+ sig { override.returns({ token: String }) }
17
+ def to_hash
18
+ end
19
+ end
20
+ end
21
+ end