trycourier 4.3.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -0
- data/README.md +1 -1
- data/lib/trycourier/internal/transport/pooled_net_requester.rb +12 -10
- data/lib/trycourier/internal/type/base_model.rb +4 -3
- data/lib/trycourier/internal/type/union.rb +7 -9
- data/lib/trycourier/internal/util.rb +7 -2
- data/lib/trycourier/models/airship_profile.rb +21 -0
- data/lib/trycourier/models/airship_profile_audience.rb +15 -0
- data/lib/trycourier/models/audience.rb +3 -3
- data/lib/trycourier/models/audience_filter.rb +52 -0
- data/lib/trycourier/models/audience_recipient.rb +36 -0
- data/lib/trycourier/models/audience_update_params.rb +3 -3
- data/lib/trycourier/models/bulk_create_job_params.rb +12 -3
- data/lib/trycourier/models/bulk_retrieve_job_response.rb +15 -3
- data/lib/trycourier/models/device_type.rb +7 -0
- data/lib/trycourier/models/discord.rb +16 -0
- data/lib/trycourier/models/expo.rb +16 -0
- data/lib/trycourier/models/filter.rb +8 -51
- data/lib/trycourier/models/filter_config.rb +8 -51
- data/lib/trycourier/models/inbound_bulk_message.rb +79 -113
- data/lib/trycourier/models/inbound_bulk_message_user.rb +21 -6
- data/lib/trycourier/models/intercom.rb +21 -0
- data/lib/trycourier/models/intercom_recipient.rb +15 -0
- data/lib/trycourier/models/list_filter.rb +52 -0
- data/lib/trycourier/models/list_pattern_recipient.rb +23 -0
- data/lib/trycourier/models/list_recipient.rb +29 -0
- data/lib/trycourier/models/ms_teams.rb +22 -0
- data/lib/trycourier/models/ms_teams_base_properties.rb +21 -0
- data/lib/trycourier/models/ms_teams_recipient.rb +17 -0
- data/lib/trycourier/models/multiple_tokens.rb +15 -0
- data/lib/trycourier/models/nested_filter_config.rb +49 -0
- data/lib/trycourier/models/pagerduty.rb +33 -0
- data/lib/trycourier/models/pagerduty_recipient.rb +17 -0
- data/lib/trycourier/models/send_direct_message.rb +15 -0
- data/lib/trycourier/models/send_message_params.rb +38 -8
- data/lib/trycourier/models/send_to_channel.rb +15 -0
- data/lib/trycourier/models/send_to_ms_teams_channel_id.rb +27 -0
- data/lib/trycourier/models/send_to_ms_teams_channel_name.rb +33 -0
- data/lib/trycourier/models/send_to_ms_teams_conversation_id.rb +27 -0
- data/lib/trycourier/models/send_to_ms_teams_email.rb +27 -0
- data/lib/trycourier/models/send_to_ms_teams_user_id.rb +27 -0
- data/lib/trycourier/models/send_to_slack_channel.rb +21 -0
- data/lib/trycourier/models/send_to_slack_email.rb +21 -0
- data/lib/trycourier/models/send_to_slack_user_id.rb +21 -0
- data/lib/trycourier/models/single_filter_config.rb +62 -0
- data/lib/trycourier/models/slack.rb +18 -0
- data/lib/trycourier/models/slack_base_properties.rb +15 -0
- data/lib/trycourier/models/slack_recipient.rb +17 -0
- data/lib/trycourier/models/token.rb +15 -0
- data/lib/trycourier/models/user_profile.rb +274 -0
- data/lib/trycourier/models/user_profile_firebase_token.rb +19 -0
- data/lib/trycourier/models/webhook_auth_mode.rb +16 -0
- data/lib/trycourier/models/webhook_authentication.rb +40 -0
- data/lib/trycourier/models/webhook_method.rb +15 -0
- data/lib/trycourier/models/webhook_profile.rb +53 -0
- data/lib/trycourier/models/webhook_profile_type.rb +15 -0
- data/lib/trycourier/models/webhook_recipient.rb +17 -0
- data/lib/trycourier/models.rb +84 -2
- data/lib/trycourier/resources/audiences.rb +1 -1
- data/lib/trycourier/resources/bulk.rb +17 -3
- data/lib/trycourier/version.rb +1 -1
- data/lib/trycourier.rb +42 -1
- data/rbi/trycourier/models/airship_profile.rbi +41 -0
- data/rbi/trycourier/models/airship_profile_audience.rbi +26 -0
- data/rbi/trycourier/models/audience.rbi +8 -7
- data/rbi/trycourier/models/audience_filter.rbi +88 -0
- data/rbi/trycourier/models/audience_recipient.rbi +52 -0
- data/rbi/trycourier/models/audience_update_params.rbi +25 -7
- data/rbi/trycourier/models/bulk_create_job_params.rbi +21 -20
- data/rbi/trycourier/models/bulk_retrieve_job_response.rbi +24 -9
- data/rbi/trycourier/models/device_type.rbi +7 -0
- data/rbi/trycourier/models/discord.rbi +18 -0
- data/rbi/trycourier/models/expo.rbi +16 -0
- data/rbi/trycourier/models/filter.rbi +8 -78
- data/rbi/trycourier/models/filter_config.rbi +8 -83
- data/rbi/trycourier/models/inbound_bulk_message.rbi +97 -153
- data/rbi/trycourier/models/inbound_bulk_message_user.rbi +20 -7
- data/rbi/trycourier/models/intercom.rbi +35 -0
- data/rbi/trycourier/models/intercom_recipient.rbi +23 -0
- data/rbi/trycourier/models/list_filter.rbi +86 -0
- data/rbi/trycourier/models/list_pattern_recipient.rbi +39 -0
- data/rbi/trycourier/models/list_recipient.rbi +44 -0
- data/rbi/trycourier/models/ms_teams.rbi +24 -0
- data/rbi/trycourier/models/ms_teams_base_properties.rbi +31 -0
- data/rbi/trycourier/models/ms_teams_recipient.rbi +58 -0
- data/rbi/trycourier/models/multiple_tokens.rbi +27 -0
- data/rbi/trycourier/models/nested_filter_config.rbi +104 -0
- data/rbi/trycourier/models/pagerduty.rbi +53 -0
- data/rbi/trycourier/models/pagerduty_recipient.rbi +31 -0
- data/rbi/trycourier/models/send_direct_message.rbi +23 -0
- data/rbi/trycourier/models/send_message_params.rbi +50 -11
- data/rbi/trycourier/models/send_to_channel.rbi +23 -0
- data/rbi/trycourier/models/send_to_ms_teams_channel_id.rbi +42 -0
- data/rbi/trycourier/models/send_to_ms_teams_channel_name.rbi +51 -0
- data/rbi/trycourier/models/send_to_ms_teams_conversation_id.rbi +42 -0
- data/rbi/trycourier/models/send_to_ms_teams_email.rbi +37 -0
- data/rbi/trycourier/models/send_to_ms_teams_user_id.rbi +37 -0
- data/rbi/trycourier/models/send_to_slack_channel.rbi +28 -0
- data/rbi/trycourier/models/send_to_slack_email.rbi +28 -0
- data/rbi/trycourier/models/send_to_slack_user_id.rbi +28 -0
- data/rbi/trycourier/models/single_filter_config.rbi +116 -0
- data/rbi/trycourier/models/slack.rbi +22 -0
- data/rbi/trycourier/models/slack_base_properties.rbi +23 -0
- data/rbi/trycourier/models/slack_recipient.rbi +52 -0
- data/rbi/trycourier/models/token.rbi +21 -0
- data/rbi/trycourier/models/user_profile.rbi +377 -0
- data/rbi/trycourier/models/user_profile_firebase_token.rbi +25 -0
- data/rbi/trycourier/models/webhook_auth_mode.rbi +22 -0
- data/rbi/trycourier/models/webhook_authentication.rbi +64 -0
- data/rbi/trycourier/models/webhook_method.rbi +21 -0
- data/rbi/trycourier/models/webhook_profile.rbi +80 -0
- data/rbi/trycourier/models/webhook_profile_type.rbi +22 -0
- data/rbi/trycourier/models/webhook_recipient.rbi +31 -0
- data/rbi/trycourier/models.rbi +84 -2
- data/rbi/trycourier/resources/audiences.rbi +7 -1
- data/rbi/trycourier/resources/bulk.rbi +22 -8
- data/sig/trycourier/models/airship_profile.rbs +25 -0
- data/sig/trycourier/models/airship_profile_audience.rbs +13 -0
- data/sig/trycourier/models/audience.rbs +4 -4
- data/sig/trycourier/models/audience_filter.rbs +50 -0
- data/sig/trycourier/models/audience_recipient.rbs +30 -0
- data/sig/trycourier/models/audience_update_params.rbs +8 -4
- data/sig/trycourier/models/bulk_create_job_params.rbs +4 -4
- data/sig/trycourier/models/bulk_retrieve_job_response.rbs +4 -4
- data/sig/trycourier/models/device_type.rbs +5 -0
- data/sig/trycourier/models/discord.rbs +11 -0
- data/sig/trycourier/models/expo.rbs +11 -0
- data/sig/trycourier/models/filter.rbs +4 -61
- data/sig/trycourier/models/filter_config.rbs +4 -61
- data/sig/trycourier/models/inbound_bulk_message.rbs +52 -99
- data/sig/trycourier/models/inbound_bulk_message_user.rbs +4 -6
- data/sig/trycourier/models/intercom.rbs +15 -0
- data/sig/trycourier/models/intercom_recipient.rbs +13 -0
- data/sig/trycourier/models/list_filter.rbs +50 -0
- data/sig/trycourier/models/list_pattern_recipient.rbs +19 -0
- data/sig/trycourier/models/list_recipient.rbs +30 -0
- data/sig/trycourier/models/ms_teams.rbs +16 -0
- data/sig/trycourier/models/ms_teams_base_properties.rbs +15 -0
- data/sig/trycourier/models/ms_teams_recipient.rbs +13 -0
- data/sig/trycourier/models/multiple_tokens.rbs +13 -0
- data/sig/trycourier/models/nested_filter_config.rbs +64 -0
- data/sig/trycourier/models/pagerduty.rbs +35 -0
- data/sig/trycourier/models/pagerduty_recipient.rbs +13 -0
- data/sig/trycourier/models/send_direct_message.rbs +13 -0
- data/sig/trycourier/models/send_message_params.rbs +22 -6
- data/sig/trycourier/models/send_to_channel.rbs +13 -0
- data/sig/trycourier/models/send_to_ms_teams_channel_id.rbs +26 -0
- data/sig/trycourier/models/send_to_ms_teams_channel_name.rbs +35 -0
- data/sig/trycourier/models/send_to_ms_teams_conversation_id.rbs +26 -0
- data/sig/trycourier/models/send_to_ms_teams_email.rbs +22 -0
- data/sig/trycourier/models/send_to_ms_teams_user_id.rbs +26 -0
- data/sig/trycourier/models/send_to_slack_channel.rbs +15 -0
- data/sig/trycourier/models/send_to_slack_email.rbs +15 -0
- data/sig/trycourier/models/send_to_slack_user_id.rbs +15 -0
- data/sig/trycourier/models/single_filter_config.rbs +69 -0
- data/sig/trycourier/models/slack.rbs +14 -0
- data/sig/trycourier/models/slack_base_properties.rbs +13 -0
- data/sig/trycourier/models/slack_recipient.rbs +13 -0
- data/sig/trycourier/models/token.rbs +13 -0
- data/sig/trycourier/models/user_profile.rbs +212 -0
- data/sig/trycourier/models/user_profile_firebase_token.rbs +13 -0
- data/sig/trycourier/models/webhook_auth_mode.rbs +15 -0
- data/sig/trycourier/models/webhook_authentication.rbs +35 -0
- data/sig/trycourier/models/webhook_method.rbs +14 -0
- data/sig/trycourier/models/webhook_profile.rbs +40 -0
- data/sig/trycourier/models/webhook_profile_type.rbs +14 -0
- data/sig/trycourier/models/webhook_recipient.rbs +13 -0
- data/sig/trycourier/models.rbs +87 -5
- data/sig/trycourier/resources/audiences.rbs +1 -1
- data/sig/trycourier/resources/bulk.rbs +1 -1
- metadata +128 -5
- data/lib/trycourier/models/recipient.rb +0 -113
- data/rbi/trycourier/models/recipient.rbi +0 -161
- data/sig/trycourier/models/recipient.rbs +0 -92
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 50b24baf1344688ba29d949d04f66b3841f3272ab0db0e353d9364a3441d39b6
|
|
4
|
+
data.tar.gz: a0b247a913ade31c0aa104718b3607a5546367a3f69febb9a2d377d68e6dbe0b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4549c791b9b0c8b1f26cca857c6ea4fccacb889d13fce5a75976f4436c987d52ef43e31c1085f79eb645f325f31263c239f1a5d2dc88c79275483137805e0928
|
|
7
|
+
data.tar.gz: dfc09375e3facc38b137ed1da33b7b3624751c8e10727d333f00d27fe9efddcf34a83e337aa4dfcfc0cc988f04a48f393b74437e00fb992544bc43710a6ba5ca
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 4.5.0 (2025-12-29)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v4.4.0...v4.5.0](https://github.com/trycourier/courier-ruby/compare/v4.4.0...v4.5.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** add slack/msteams/pagerduty/webhook/audience/list recipient types ([56278ef](https://github.com/trycourier/courier-ruby/commit/56278ef7d0582bfba2e2122f9682c1282f25109d))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* calling `break` out of streams should be instantaneous ([7af6435](https://github.com/trycourier/courier-ruby/commit/7af6435d8426c69cb9c07d263d3363526508be7d))
|
|
15
|
+
* issue where json.parse errors when receiving HTTP 204 with nobody ([6288d57](https://github.com/trycourier/courier-ruby/commit/6288d578db512479a70098e529a26a0e29139918))
|
|
16
|
+
|
|
17
|
+
## 4.4.0 (2025-12-16)
|
|
18
|
+
|
|
19
|
+
Full Changelog: [v4.3.0...v4.4.0](https://github.com/trycourier/courier-ruby/compare/v4.3.0...v4.4.0)
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* Add timezone field to Delay schema ([980df61](https://github.com/trycourier/courier-ruby/commit/980df617cffc47a231bac77a4250ef4e409cb57c))
|
|
24
|
+
* Update bulk API spec: make event required, document profile.email req… ([73718b3](https://github.com/trycourier/courier-ruby/commit/73718b3e6c13e0a3ac1bc5487eb07953f435a956))
|
|
25
|
+
|
|
3
26
|
## 4.3.0 (2025-12-08)
|
|
4
27
|
|
|
5
28
|
Full Changelog: [v4.2.0...v4.3.0](https://github.com/trycourier/courier-ruby/compare/v4.2.0...v4.3.0)
|
data/README.md
CHANGED
|
@@ -153,17 +153,19 @@ module Trycourier
|
|
|
153
153
|
end
|
|
154
154
|
|
|
155
155
|
self.class.calibrate_socket_timeout(conn, deadline)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
156
|
+
::Kernel.catch(:jump) do
|
|
157
|
+
conn.request(req) do |rsp|
|
|
158
|
+
y << [req, rsp]
|
|
159
|
+
::Kernel.throw(:jump) if finished
|
|
160
|
+
|
|
161
|
+
rsp.read_body do |bytes|
|
|
162
|
+
y << bytes.force_encoding(Encoding::BINARY)
|
|
163
|
+
::Kernel.throw(:jump) if finished
|
|
164
|
+
|
|
165
|
+
self.class.calibrate_socket_timeout(conn, deadline)
|
|
166
|
+
end
|
|
167
|
+
eof = true
|
|
165
168
|
end
|
|
166
|
-
eof = true
|
|
167
169
|
end
|
|
168
170
|
end
|
|
169
171
|
ensure
|
|
@@ -438,9 +438,10 @@ module Trycourier
|
|
|
438
438
|
# @return [Hash{Symbol=>Object}]
|
|
439
439
|
#
|
|
440
440
|
# @example
|
|
441
|
-
# # `
|
|
442
|
-
#
|
|
443
|
-
#
|
|
441
|
+
# # `airship_profile` is a `Trycourier::AirshipProfile`
|
|
442
|
+
# airship_profile => {
|
|
443
|
+
# audience: audience,
|
|
444
|
+
# device_types: device_types
|
|
444
445
|
# }
|
|
445
446
|
def deconstruct_keys(keys)
|
|
446
447
|
(keys || self.class.known_fields.keys)
|
|
@@ -6,16 +6,14 @@ module Trycourier
|
|
|
6
6
|
# @api private
|
|
7
7
|
#
|
|
8
8
|
# @example
|
|
9
|
-
# # `
|
|
10
|
-
# case
|
|
11
|
-
# when Trycourier::
|
|
12
|
-
#
|
|
13
|
-
# when Trycourier::
|
|
14
|
-
#
|
|
15
|
-
# when Trycourier::ElementalChannelNodeWithType
|
|
16
|
-
# # ...
|
|
9
|
+
# # `discord` is a `Trycourier::Discord`
|
|
10
|
+
# case discord
|
|
11
|
+
# when Trycourier::SendToChannel
|
|
12
|
+
# puts(discord.channel_id)
|
|
13
|
+
# when Trycourier::SendDirectMessage
|
|
14
|
+
# puts(discord.user_id)
|
|
17
15
|
# else
|
|
18
|
-
# puts(
|
|
16
|
+
# puts(discord)
|
|
19
17
|
# end
|
|
20
18
|
module Union
|
|
21
19
|
include Trycourier::Internal::Type::Converter
|
|
@@ -657,7 +657,8 @@ module Trycourier
|
|
|
657
657
|
def decode_content(headers, stream:, suppress_error: false)
|
|
658
658
|
case (content_type = headers["content-type"])
|
|
659
659
|
in Trycourier::Internal::Util::JSON_CONTENT
|
|
660
|
-
json = stream.to_a.join
|
|
660
|
+
return nil if (json = stream.to_a.join).empty?
|
|
661
|
+
|
|
661
662
|
begin
|
|
662
663
|
JSON.parse(json, symbolize_names: true)
|
|
663
664
|
rescue JSON::ParserError => e
|
|
@@ -667,7 +668,11 @@ module Trycourier
|
|
|
667
668
|
in Trycourier::Internal::Util::JSONL_CONTENT
|
|
668
669
|
lines = decode_lines(stream)
|
|
669
670
|
chain_fused(lines) do |y|
|
|
670
|
-
lines.each
|
|
671
|
+
lines.each do
|
|
672
|
+
next if _1.empty?
|
|
673
|
+
|
|
674
|
+
y << JSON.parse(_1, symbolize_names: true)
|
|
675
|
+
end
|
|
671
676
|
end
|
|
672
677
|
in %r{^text/event-stream}
|
|
673
678
|
lines = decode_lines(stream)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Trycourier
|
|
4
|
+
module Models
|
|
5
|
+
class AirshipProfile < Trycourier::Internal::Type::BaseModel
|
|
6
|
+
# @!attribute audience
|
|
7
|
+
#
|
|
8
|
+
# @return [Trycourier::Models::AirshipProfileAudience]
|
|
9
|
+
required :audience, -> { Trycourier::AirshipProfileAudience }
|
|
10
|
+
|
|
11
|
+
# @!attribute device_types
|
|
12
|
+
#
|
|
13
|
+
# @return [Array<String>]
|
|
14
|
+
required :device_types, Trycourier::Internal::Type::ArrayOf[String]
|
|
15
|
+
|
|
16
|
+
# @!method initialize(audience:, device_types:)
|
|
17
|
+
# @param audience [Trycourier::Models::AirshipProfileAudience]
|
|
18
|
+
# @param device_types [Array<String>]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Trycourier
|
|
4
|
+
module Models
|
|
5
|
+
class AirshipProfileAudience < Trycourier::Internal::Type::BaseModel
|
|
6
|
+
# @!attribute named_user
|
|
7
|
+
#
|
|
8
|
+
# @return [String]
|
|
9
|
+
required :named_user, String
|
|
10
|
+
|
|
11
|
+
# @!method initialize(named_user:)
|
|
12
|
+
# @param named_user [String]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -24,8 +24,8 @@ module Trycourier
|
|
|
24
24
|
# @!attribute filter
|
|
25
25
|
# A single filter to use for filtering
|
|
26
26
|
#
|
|
27
|
-
# @return [Trycourier::Models::
|
|
28
|
-
required :filter, -> { Trycourier::Filter }
|
|
27
|
+
# @return [Trycourier::Models::SingleFilterConfig, Trycourier::Models::NestedFilterConfig]
|
|
28
|
+
required :filter, union: -> { Trycourier::Filter }
|
|
29
29
|
|
|
30
30
|
# @!attribute name
|
|
31
31
|
# The name of the audience
|
|
@@ -45,7 +45,7 @@ module Trycourier
|
|
|
45
45
|
#
|
|
46
46
|
# @param description [String] A description of the audience
|
|
47
47
|
#
|
|
48
|
-
# @param filter [Trycourier::Models::
|
|
48
|
+
# @param filter [Trycourier::Models::SingleFilterConfig, Trycourier::Models::NestedFilterConfig] A single filter to use for filtering
|
|
49
49
|
#
|
|
50
50
|
# @param name [String] The name of the audience
|
|
51
51
|
#
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Trycourier
|
|
4
|
+
module Models
|
|
5
|
+
class AudienceFilter < 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::AudienceFilter::Operator]
|
|
10
|
+
required :operator, enum: -> { Trycourier::AudienceFilter::Operator }
|
|
11
|
+
|
|
12
|
+
# @!attribute path
|
|
13
|
+
#
|
|
14
|
+
# @return [Symbol, Trycourier::Models::AudienceFilter::Path]
|
|
15
|
+
required :path, enum: -> { Trycourier::AudienceFilter::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::AudienceFilter::Operator] Send to users only if they are member of the account
|
|
24
|
+
#
|
|
25
|
+
# @param path [Symbol, Trycourier::Models::AudienceFilter::Path]
|
|
26
|
+
#
|
|
27
|
+
# @param value [String]
|
|
28
|
+
|
|
29
|
+
# Send to users only if they are member of the account
|
|
30
|
+
#
|
|
31
|
+
# @see Trycourier::Models::AudienceFilter#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::AudienceFilter#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,36 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Trycourier
|
|
4
|
+
module Models
|
|
5
|
+
class AudienceRecipient < Trycourier::Internal::Type::BaseModel
|
|
6
|
+
# @!attribute audience_id
|
|
7
|
+
# A unique identifier associated with an Audience. A message will be sent to each
|
|
8
|
+
# user in the audience.
|
|
9
|
+
#
|
|
10
|
+
# @return [String]
|
|
11
|
+
required :audience_id, String
|
|
12
|
+
|
|
13
|
+
# @!attribute data
|
|
14
|
+
#
|
|
15
|
+
# @return [Hash{Symbol=>Object}, nil]
|
|
16
|
+
optional :data, Trycourier::Internal::Type::HashOf[Trycourier::Internal::Type::Unknown], nil?: true
|
|
17
|
+
|
|
18
|
+
# @!attribute filters
|
|
19
|
+
#
|
|
20
|
+
# @return [Array<Trycourier::Models::AudienceFilter>, nil]
|
|
21
|
+
optional :filters, -> { Trycourier::Internal::Type::ArrayOf[Trycourier::AudienceFilter] }, nil?: true
|
|
22
|
+
|
|
23
|
+
# @!method initialize(audience_id:, data: nil, filters: nil)
|
|
24
|
+
# Some parameter documentations has been truncated, see
|
|
25
|
+
# {Trycourier::Models::AudienceRecipient} for more details.
|
|
26
|
+
#
|
|
27
|
+
# Send to all users in an audience
|
|
28
|
+
#
|
|
29
|
+
# @param audience_id [String] A unique identifier associated with an Audience. A message will be sent to each
|
|
30
|
+
#
|
|
31
|
+
# @param data [Hash{Symbol=>Object}, nil]
|
|
32
|
+
#
|
|
33
|
+
# @param filters [Array<Trycourier::Models::AudienceFilter>, nil]
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -16,8 +16,8 @@ module Trycourier
|
|
|
16
16
|
# @!attribute filter
|
|
17
17
|
# A single filter to use for filtering
|
|
18
18
|
#
|
|
19
|
-
# @return [Trycourier::Models::
|
|
20
|
-
optional :filter, -> { Trycourier::Filter }, nil?: true
|
|
19
|
+
# @return [Trycourier::Models::SingleFilterConfig, Trycourier::Models::NestedFilterConfig, nil]
|
|
20
|
+
optional :filter, union: -> { Trycourier::Filter }, nil?: true
|
|
21
21
|
|
|
22
22
|
# @!attribute name
|
|
23
23
|
# The name of the audience
|
|
@@ -28,7 +28,7 @@ module Trycourier
|
|
|
28
28
|
# @!method initialize(description: nil, filter: nil, name: nil, request_options: {})
|
|
29
29
|
# @param description [String, nil] A description of the audience
|
|
30
30
|
#
|
|
31
|
-
# @param filter [Trycourier::Models::
|
|
31
|
+
# @param filter [Trycourier::Models::SingleFilterConfig, Trycourier::Models::NestedFilterConfig, nil] A single filter to use for filtering
|
|
32
32
|
#
|
|
33
33
|
# @param name [String, nil] The name of the audience
|
|
34
34
|
#
|
|
@@ -8,12 +8,21 @@ module Trycourier
|
|
|
8
8
|
include Trycourier::Internal::Type::RequestParameters
|
|
9
9
|
|
|
10
10
|
# @!attribute message
|
|
11
|
+
# Bulk message definition. Supports two formats:
|
|
11
12
|
#
|
|
12
|
-
#
|
|
13
|
-
|
|
13
|
+
# - V1 format: Requires `event` field (event ID or notification ID)
|
|
14
|
+
# - V2 format: Optionally use `template` (notification ID) or `content` (Elemental
|
|
15
|
+
# content) in addition to `event`
|
|
16
|
+
#
|
|
17
|
+
# @return [Trycourier::Models::InboundBulkMessage]
|
|
18
|
+
required :message, -> { Trycourier::InboundBulkMessage }
|
|
14
19
|
|
|
15
20
|
# @!method initialize(message:, request_options: {})
|
|
16
|
-
#
|
|
21
|
+
# Some parameter documentations has been truncated, see
|
|
22
|
+
# {Trycourier::Models::BulkCreateJobParams} for more details.
|
|
23
|
+
#
|
|
24
|
+
# @param message [Trycourier::Models::InboundBulkMessage] Bulk message definition. Supports two formats:
|
|
25
|
+
#
|
|
17
26
|
# @param request_options [Trycourier::RequestOptions, Hash{Symbol=>Object}]
|
|
18
27
|
end
|
|
19
28
|
end
|
|
@@ -15,9 +15,14 @@ module Trycourier
|
|
|
15
15
|
# @see Trycourier::Models::BulkRetrieveJobResponse#job
|
|
16
16
|
class Job < Trycourier::Internal::Type::BaseModel
|
|
17
17
|
# @!attribute definition
|
|
18
|
+
# Bulk message definition. Supports two formats:
|
|
18
19
|
#
|
|
19
|
-
#
|
|
20
|
-
|
|
20
|
+
# - V1 format: Requires `event` field (event ID or notification ID)
|
|
21
|
+
# - V2 format: Optionally use `template` (notification ID) or `content` (Elemental
|
|
22
|
+
# content) in addition to `event`
|
|
23
|
+
#
|
|
24
|
+
# @return [Trycourier::Models::InboundBulkMessage]
|
|
25
|
+
required :definition, -> { Trycourier::InboundBulkMessage }
|
|
21
26
|
|
|
22
27
|
# @!attribute enqueued
|
|
23
28
|
#
|
|
@@ -40,10 +45,17 @@ module Trycourier
|
|
|
40
45
|
required :status, enum: -> { Trycourier::Models::BulkRetrieveJobResponse::Job::Status }
|
|
41
46
|
|
|
42
47
|
# @!method initialize(definition:, enqueued:, failures:, received:, status:)
|
|
43
|
-
#
|
|
48
|
+
# Some parameter documentations has been truncated, see
|
|
49
|
+
# {Trycourier::Models::BulkRetrieveJobResponse::Job} for more details.
|
|
50
|
+
#
|
|
51
|
+
# @param definition [Trycourier::Models::InboundBulkMessage] Bulk message definition. Supports two formats:
|
|
52
|
+
#
|
|
44
53
|
# @param enqueued [Integer]
|
|
54
|
+
#
|
|
45
55
|
# @param failures [Integer]
|
|
56
|
+
#
|
|
46
57
|
# @param received [Integer]
|
|
58
|
+
#
|
|
47
59
|
# @param status [Symbol, Trycourier::Models::BulkRetrieveJobResponse::Job::Status]
|
|
48
60
|
|
|
49
61
|
# @see Trycourier::Models::BulkRetrieveJobResponse::Job#status
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Trycourier
|
|
4
|
+
module Models
|
|
5
|
+
module Discord
|
|
6
|
+
extend Trycourier::Internal::Type::Union
|
|
7
|
+
|
|
8
|
+
variant -> { Trycourier::SendToChannel }
|
|
9
|
+
|
|
10
|
+
variant -> { Trycourier::SendDirectMessage }
|
|
11
|
+
|
|
12
|
+
# @!method self.variants
|
|
13
|
+
# @return [Array(Trycourier::Models::SendToChannel, Trycourier::Models::SendDirectMessage)]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Trycourier
|
|
4
|
+
module Models
|
|
5
|
+
module Expo
|
|
6
|
+
extend Trycourier::Internal::Type::Union
|
|
7
|
+
|
|
8
|
+
variant -> { Trycourier::Token }
|
|
9
|
+
|
|
10
|
+
variant -> { Trycourier::MultipleTokens }
|
|
11
|
+
|
|
12
|
+
# @!method self.variants
|
|
13
|
+
# @return [Array(Trycourier::Models::Token, Trycourier::Models::MultipleTokens)]
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -2,61 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
module Trycourier
|
|
4
4
|
module Models
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
# @return [Symbol, Trycourier::Models::Filter::Operator]
|
|
10
|
-
required :operator, enum: -> { Trycourier::Filter::Operator }
|
|
5
|
+
# A single filter to use for filtering
|
|
6
|
+
module Filter
|
|
7
|
+
extend Trycourier::Internal::Type::Union
|
|
11
8
|
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
# value
|
|
15
|
-
#
|
|
16
|
-
# @return [String]
|
|
17
|
-
required :path, String
|
|
18
|
-
|
|
19
|
-
# @!attribute value
|
|
20
|
-
# The value to use for filtering
|
|
21
|
-
#
|
|
22
|
-
# @return [String]
|
|
23
|
-
required :value, String
|
|
24
|
-
|
|
25
|
-
# @!method initialize(operator:, path:, value:)
|
|
26
|
-
# Some parameter documentations has been truncated, see
|
|
27
|
-
# {Trycourier::Models::Filter} for more details.
|
|
28
|
-
#
|
|
29
|
-
# @param operator [Symbol, Trycourier::Models::Filter::Operator] The operator to use for filtering
|
|
30
|
-
#
|
|
31
|
-
# @param path [String] The attribe name from profile whose value will be operated against the filter va
|
|
32
|
-
#
|
|
33
|
-
# @param value [String] The value to use for filtering
|
|
9
|
+
# A single filter to use for filtering
|
|
10
|
+
variant -> { Trycourier::SingleFilterConfig }
|
|
34
11
|
|
|
35
12
|
# The operator to use for filtering
|
|
36
|
-
|
|
37
|
-
# @see Trycourier::Models::Filter#operator
|
|
38
|
-
module Operator
|
|
39
|
-
extend Trycourier::Internal::Type::Enum
|
|
40
|
-
|
|
41
|
-
ENDS_WITH = :ENDS_WITH
|
|
42
|
-
EQ = :EQ
|
|
43
|
-
EXISTS = :EXISTS
|
|
44
|
-
GT = :GT
|
|
45
|
-
GTE = :GTE
|
|
46
|
-
INCLUDES = :INCLUDES
|
|
47
|
-
IS_AFTER = :IS_AFTER
|
|
48
|
-
IS_BEFORE = :IS_BEFORE
|
|
49
|
-
LT = :LT
|
|
50
|
-
LTE = :LTE
|
|
51
|
-
NEQ = :NEQ
|
|
52
|
-
OMIT = :OMIT
|
|
53
|
-
STARTS_WITH = :STARTS_WITH
|
|
54
|
-
AND = :AND
|
|
55
|
-
OR = :OR
|
|
13
|
+
variant -> { Trycourier::NestedFilterConfig }
|
|
56
14
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
end
|
|
15
|
+
# @!method self.variants
|
|
16
|
+
# @return [Array(Trycourier::Models::SingleFilterConfig, Trycourier::Models::NestedFilterConfig)]
|
|
60
17
|
end
|
|
61
18
|
end
|
|
62
19
|
end
|
|
@@ -2,61 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
module Trycourier
|
|
4
4
|
module Models
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
#
|
|
9
|
-
# @return [Symbol, Trycourier::Models::FilterConfig::Operator]
|
|
10
|
-
required :operator, enum: -> { Trycourier::FilterConfig::Operator }
|
|
5
|
+
# A single filter to use for filtering
|
|
6
|
+
module FilterConfig
|
|
7
|
+
extend Trycourier::Internal::Type::Union
|
|
11
8
|
|
|
12
|
-
#
|
|
13
|
-
|
|
14
|
-
# value
|
|
15
|
-
#
|
|
16
|
-
# @return [String]
|
|
17
|
-
required :path, String
|
|
18
|
-
|
|
19
|
-
# @!attribute value
|
|
20
|
-
# The value to use for filtering
|
|
21
|
-
#
|
|
22
|
-
# @return [String]
|
|
23
|
-
required :value, String
|
|
24
|
-
|
|
25
|
-
# @!method initialize(operator:, path:, value:)
|
|
26
|
-
# Some parameter documentations has been truncated, see
|
|
27
|
-
# {Trycourier::Models::FilterConfig} for more details.
|
|
28
|
-
#
|
|
29
|
-
# @param operator [Symbol, Trycourier::Models::FilterConfig::Operator] The operator to use for filtering
|
|
30
|
-
#
|
|
31
|
-
# @param path [String] The attribe name from profile whose value will be operated against the filter va
|
|
32
|
-
#
|
|
33
|
-
# @param value [String] The value to use for filtering
|
|
9
|
+
# A single filter to use for filtering
|
|
10
|
+
variant -> { Trycourier::SingleFilterConfig }
|
|
34
11
|
|
|
35
12
|
# The operator to use for filtering
|
|
36
|
-
|
|
37
|
-
# @see Trycourier::Models::FilterConfig#operator
|
|
38
|
-
module Operator
|
|
39
|
-
extend Trycourier::Internal::Type::Enum
|
|
40
|
-
|
|
41
|
-
ENDS_WITH = :ENDS_WITH
|
|
42
|
-
EQ = :EQ
|
|
43
|
-
EXISTS = :EXISTS
|
|
44
|
-
GT = :GT
|
|
45
|
-
GTE = :GTE
|
|
46
|
-
INCLUDES = :INCLUDES
|
|
47
|
-
IS_AFTER = :IS_AFTER
|
|
48
|
-
IS_BEFORE = :IS_BEFORE
|
|
49
|
-
LT = :LT
|
|
50
|
-
LTE = :LTE
|
|
51
|
-
NEQ = :NEQ
|
|
52
|
-
OMIT = :OMIT
|
|
53
|
-
STARTS_WITH = :STARTS_WITH
|
|
54
|
-
AND = :AND
|
|
55
|
-
OR = :OR
|
|
13
|
+
variant -> { Trycourier::NestedFilterConfig }
|
|
56
14
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
end
|
|
15
|
+
# @!method self.variants
|
|
16
|
+
# @return [Array(Trycourier::Models::SingleFilterConfig, Trycourier::Models::NestedFilterConfig)]
|
|
60
17
|
end
|
|
61
18
|
end
|
|
62
19
|
end
|