trycourier 4.22.0 → 4.23.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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +8 -0
  3. data/lib/courier/client.rb +4 -0
  4. data/lib/courier/models/broadcast.rb +132 -0
  5. data/lib/courier/models/broadcast_archive_params.rb +20 -0
  6. data/lib/courier/models/broadcast_cancel_params.rb +20 -0
  7. data/lib/courier/models/broadcast_create_params.rb +14 -0
  8. data/lib/courier/models/broadcast_duplicate_params.rb +20 -0
  9. data/lib/courier/models/broadcast_list_params.rb +30 -0
  10. data/lib/courier/models/broadcast_list_response.rb +24 -0
  11. data/lib/courier/models/broadcast_put_content_params.rb +20 -0
  12. data/lib/courier/models/broadcast_retrieve_content_params.rb +33 -0
  13. data/lib/courier/models/broadcast_retrieve_params.rb +20 -0
  14. data/lib/courier/models/broadcast_schedule.rb +59 -0
  15. data/lib/courier/models/broadcast_schedule_params.rb +20 -0
  16. data/lib/courier/models/broadcast_send_params.rb +20 -0
  17. data/lib/courier/models/broadcast_update_params.rb +20 -0
  18. data/lib/courier/models/create_broadcast_request.rb +43 -0
  19. data/lib/courier/models/schedule_broadcast_request.rb +59 -0
  20. data/lib/courier/models/send_broadcast_request.rb +39 -0
  21. data/lib/courier/models/update_broadcast_request.rb +18 -0
  22. data/lib/courier/models.rb +36 -0
  23. data/lib/courier/resources/broadcasts.rb +290 -0
  24. data/lib/courier/version.rb +1 -1
  25. data/lib/courier.rb +20 -1
  26. data/rbi/courier/client.rbi +3 -0
  27. data/rbi/courier/models/broadcast.rbi +164 -0
  28. data/rbi/courier/models/broadcast_archive_params.rbi +35 -0
  29. data/rbi/courier/models/broadcast_cancel_params.rbi +35 -0
  30. data/rbi/courier/models/broadcast_create_params.rbi +27 -0
  31. data/rbi/courier/models/broadcast_duplicate_params.rbi +35 -0
  32. data/rbi/courier/models/broadcast_list_params.rbi +54 -0
  33. data/rbi/courier/models/broadcast_list_response.rbi +39 -0
  34. data/rbi/courier/models/broadcast_put_content_params.rbi +35 -0
  35. data/rbi/courier/models/broadcast_retrieve_content_params.rbi +57 -0
  36. data/rbi/courier/models/broadcast_retrieve_params.rbi +35 -0
  37. data/rbi/courier/models/broadcast_schedule.rbi +92 -0
  38. data/rbi/courier/models/broadcast_schedule_params.rbi +35 -0
  39. data/rbi/courier/models/broadcast_send_params.rbi +35 -0
  40. data/rbi/courier/models/broadcast_update_params.rbi +35 -0
  41. data/rbi/courier/models/create_broadcast_request.rbi +81 -0
  42. data/rbi/courier/models/schedule_broadcast_request.rbi +103 -0
  43. data/rbi/courier/models/send_broadcast_request.rbi +77 -0
  44. data/rbi/courier/models/update_broadcast_request.rbi +28 -0
  45. data/rbi/courier/models.rbi +37 -0
  46. data/rbi/courier/resources/broadcasts.rbi +199 -0
  47. data/sig/courier/client.rbs +2 -0
  48. data/sig/courier/models/broadcast.rbs +98 -0
  49. data/sig/courier/models/broadcast_archive_params.rbs +23 -0
  50. data/sig/courier/models/broadcast_cancel_params.rbs +23 -0
  51. data/sig/courier/models/broadcast_create_params.rbs +15 -0
  52. data/sig/courier/models/broadcast_duplicate_params.rbs +23 -0
  53. data/sig/courier/models/broadcast_list_params.rbs +30 -0
  54. data/sig/courier/models/broadcast_list_response.rbs +22 -0
  55. data/sig/courier/models/broadcast_put_content_params.rbs +25 -0
  56. data/sig/courier/models/broadcast_retrieve_content_params.rbs +30 -0
  57. data/sig/courier/models/broadcast_retrieve_params.rbs +23 -0
  58. data/sig/courier/models/broadcast_schedule.rbs +46 -0
  59. data/sig/courier/models/broadcast_schedule_params.rbs +25 -0
  60. data/sig/courier/models/broadcast_send_params.rbs +25 -0
  61. data/sig/courier/models/broadcast_update_params.rbs +25 -0
  62. data/sig/courier/models/create_broadcast_request.rbs +40 -0
  63. data/sig/courier/models/schedule_broadcast_request.rbs +48 -0
  64. data/sig/courier/models/send_broadcast_request.rbs +36 -0
  65. data/sig/courier/models/update_broadcast_request.rbs +13 -0
  66. data/sig/courier/models.rbs +36 -0
  67. data/sig/courier/resources/broadcasts.rbs +74 -0
  68. metadata +58 -1
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastDuplicateParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::BroadcastDuplicateParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,54 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastListParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::BroadcastListParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ # Opaque pagination cursor from a previous response. Omit for the first page.
15
+ sig { returns(T.nilable(String)) }
16
+ attr_accessor :cursor
17
+
18
+ # Maximum number of results per page.
19
+ sig { returns(T.nilable(Integer)) }
20
+ attr_reader :limit
21
+
22
+ sig { params(limit: Integer).void }
23
+ attr_writer :limit
24
+
25
+ sig do
26
+ params(
27
+ cursor: T.nilable(String),
28
+ limit: Integer,
29
+ request_options: Courier::RequestOptions::OrHash
30
+ ).returns(T.attached_class)
31
+ end
32
+ def self.new(
33
+ # Opaque pagination cursor from a previous response. Omit for the first page.
34
+ cursor: nil,
35
+ # Maximum number of results per page.
36
+ limit: nil,
37
+ request_options: {}
38
+ )
39
+ end
40
+
41
+ sig do
42
+ override.returns(
43
+ {
44
+ cursor: T.nilable(String),
45
+ limit: Integer,
46
+ request_options: Courier::RequestOptions
47
+ }
48
+ )
49
+ end
50
+ def to_hash
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,39 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastListResponse < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::BroadcastListResponse, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ sig { returns(Courier::Paging) }
12
+ attr_reader :paging
13
+
14
+ sig { params(paging: Courier::Paging::OrHash).void }
15
+ attr_writer :paging
16
+
17
+ sig { returns(T::Array[Courier::Broadcast]) }
18
+ attr_accessor :results
19
+
20
+ # Paginated list of broadcasts.
21
+ sig do
22
+ params(
23
+ paging: Courier::Paging::OrHash,
24
+ results: T::Array[Courier::Broadcast::OrHash]
25
+ ).returns(T.attached_class)
26
+ end
27
+ def self.new(paging:, results:)
28
+ end
29
+
30
+ sig do
31
+ override.returns(
32
+ { paging: Courier::Paging, results: T::Array[Courier::Broadcast] }
33
+ )
34
+ end
35
+ def to_hash
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastPutContentParams < Courier::Models::NotificationContentPutRequest
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::BroadcastPutContentParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,57 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastRetrieveContentParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(
12
+ Courier::BroadcastRetrieveContentParams,
13
+ Courier::Internal::AnyHash
14
+ )
15
+ end
16
+
17
+ sig { returns(String) }
18
+ attr_accessor :broadcast_id
19
+
20
+ # Accepts `draft`, `published`, or a version string (e.g. `v001`). Defaults to
21
+ # `draft`.
22
+ sig { returns(T.nilable(String)) }
23
+ attr_reader :version
24
+
25
+ sig { params(version: String).void }
26
+ attr_writer :version
27
+
28
+ sig do
29
+ params(
30
+ broadcast_id: String,
31
+ version: String,
32
+ request_options: Courier::RequestOptions::OrHash
33
+ ).returns(T.attached_class)
34
+ end
35
+ def self.new(
36
+ broadcast_id:,
37
+ # Accepts `draft`, `published`, or a version string (e.g. `v001`). Defaults to
38
+ # `draft`.
39
+ version: nil,
40
+ request_options: {}
41
+ )
42
+ end
43
+
44
+ sig do
45
+ override.returns(
46
+ {
47
+ broadcast_id: String,
48
+ version: String,
49
+ request_options: Courier::RequestOptions
50
+ }
51
+ )
52
+ end
53
+ def to_hash
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastRetrieveParams < Courier::Internal::Type::BaseModel
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::BroadcastRetrieveParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,92 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastSchedule < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::BroadcastSchedule, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # ID of the target list or audience.
12
+ sig { returns(String) }
13
+ attr_accessor :recipient_id
14
+
15
+ # Whether the broadcast targets a list or an audience.
16
+ sig { returns(Courier::BroadcastSchedule::RecipientType::TaggedSymbol) }
17
+ attr_accessor :recipient_type
18
+
19
+ # Wall-clock timestamp of the scheduled send, no timezone offset (e.g.
20
+ # "2026-07-21T20:00:00").
21
+ sig { returns(T.nilable(String)) }
22
+ attr_accessor :scheduled_to
23
+
24
+ # IANA timezone for the scheduled send (e.g. America/New_York).
25
+ sig { returns(T.nilable(String)) }
26
+ attr_accessor :timezone
27
+
28
+ # The delivery schedule and recipient targeting for a broadcast.
29
+ sig do
30
+ params(
31
+ recipient_id: String,
32
+ recipient_type: Courier::BroadcastSchedule::RecipientType::OrSymbol,
33
+ scheduled_to: T.nilable(String),
34
+ timezone: T.nilable(String)
35
+ ).returns(T.attached_class)
36
+ end
37
+ def self.new(
38
+ # ID of the target list or audience.
39
+ recipient_id:,
40
+ # Whether the broadcast targets a list or an audience.
41
+ recipient_type:,
42
+ # Wall-clock timestamp of the scheduled send, no timezone offset (e.g.
43
+ # "2026-07-21T20:00:00").
44
+ scheduled_to: nil,
45
+ # IANA timezone for the scheduled send (e.g. America/New_York).
46
+ timezone: nil
47
+ )
48
+ end
49
+
50
+ sig do
51
+ override.returns(
52
+ {
53
+ recipient_id: String,
54
+ recipient_type:
55
+ Courier::BroadcastSchedule::RecipientType::TaggedSymbol,
56
+ scheduled_to: T.nilable(String),
57
+ timezone: T.nilable(String)
58
+ }
59
+ )
60
+ end
61
+ def to_hash
62
+ end
63
+
64
+ # Whether the broadcast targets a list or an audience.
65
+ module RecipientType
66
+ extend Courier::Internal::Type::Enum
67
+
68
+ TaggedSymbol =
69
+ T.type_alias do
70
+ T.all(Symbol, Courier::BroadcastSchedule::RecipientType)
71
+ end
72
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
73
+
74
+ LIST =
75
+ T.let(:list, Courier::BroadcastSchedule::RecipientType::TaggedSymbol)
76
+ AUDIENCE =
77
+ T.let(
78
+ :audience,
79
+ Courier::BroadcastSchedule::RecipientType::TaggedSymbol
80
+ )
81
+
82
+ sig do
83
+ override.returns(
84
+ T::Array[Courier::BroadcastSchedule::RecipientType::TaggedSymbol]
85
+ )
86
+ end
87
+ def self.values
88
+ end
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastScheduleParams < Courier::Models::ScheduleBroadcastRequest
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::BroadcastScheduleParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastSendParams < Courier::Models::SendBroadcastRequest
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::BroadcastSendParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class BroadcastUpdateParams < Courier::Models::UpdateBroadcastRequest
6
+ extend Courier::Internal::Type::RequestParameters::Converter
7
+ include Courier::Internal::Type::RequestParameters
8
+
9
+ OrHash =
10
+ T.type_alias do
11
+ T.any(Courier::BroadcastUpdateParams, Courier::Internal::AnyHash)
12
+ end
13
+
14
+ sig { returns(String) }
15
+ attr_accessor :broadcast_id
16
+
17
+ sig do
18
+ params(
19
+ broadcast_id: String,
20
+ request_options: Courier::RequestOptions::OrHash
21
+ ).returns(T.attached_class)
22
+ end
23
+ def self.new(broadcast_id:, request_options: {})
24
+ end
25
+
26
+ sig do
27
+ override.returns(
28
+ { broadcast_id: String, request_options: Courier::RequestOptions }
29
+ )
30
+ end
31
+ def to_hash
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,81 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class CreateBroadcastRequest < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::CreateBroadcastRequest, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # The single delivery channel for this broadcast.
12
+ sig { returns(Courier::CreateBroadcastRequest::Channel::OrSymbol) }
13
+ attr_accessor :channel
14
+
15
+ # Human-readable name.
16
+ sig { returns(String) }
17
+ attr_accessor :name
18
+
19
+ # Request body for creating a broadcast.
20
+ sig do
21
+ params(
22
+ channel: Courier::CreateBroadcastRequest::Channel::OrSymbol,
23
+ name: String
24
+ ).returns(T.attached_class)
25
+ end
26
+ def self.new(
27
+ # The single delivery channel for this broadcast.
28
+ channel:,
29
+ # Human-readable name.
30
+ name:
31
+ )
32
+ end
33
+
34
+ sig do
35
+ override.returns(
36
+ {
37
+ channel: Courier::CreateBroadcastRequest::Channel::OrSymbol,
38
+ name: String
39
+ }
40
+ )
41
+ end
42
+ def to_hash
43
+ end
44
+
45
+ # The single delivery channel for this broadcast.
46
+ module Channel
47
+ extend Courier::Internal::Type::Enum
48
+
49
+ TaggedSymbol =
50
+ T.type_alias do
51
+ T.all(Symbol, Courier::CreateBroadcastRequest::Channel)
52
+ end
53
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
54
+
55
+ EMAIL =
56
+ T.let(:email, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
57
+ SMS =
58
+ T.let(:sms, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
59
+ PUSH =
60
+ T.let(:push, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
61
+ INBOX =
62
+ T.let(:inbox, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
63
+ SLACK =
64
+ T.let(:slack, Courier::CreateBroadcastRequest::Channel::TaggedSymbol)
65
+ MSTEAMS =
66
+ T.let(
67
+ :msteams,
68
+ Courier::CreateBroadcastRequest::Channel::TaggedSymbol
69
+ )
70
+
71
+ sig do
72
+ override.returns(
73
+ T::Array[Courier::CreateBroadcastRequest::Channel::TaggedSymbol]
74
+ )
75
+ end
76
+ def self.values
77
+ end
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,103 @@
1
+ # typed: strong
2
+
3
+ module Courier
4
+ module Models
5
+ class ScheduleBroadcastRequest < Courier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Courier::ScheduleBroadcastRequest, Courier::Internal::AnyHash)
9
+ end
10
+
11
+ # ID of the target list or audience.
12
+ sig { returns(String) }
13
+ attr_accessor :recipient_id
14
+
15
+ # Whether the broadcast targets a list or an audience.
16
+ sig do
17
+ returns(Courier::ScheduleBroadcastRequest::RecipientType::OrSymbol)
18
+ end
19
+ attr_accessor :recipient_type
20
+
21
+ # Wall-clock timestamp of the future send, no timezone offset (e.g.
22
+ # "2026-07-21T20:00:00"). The zone is given by `timezone`.
23
+ sig { returns(String) }
24
+ attr_accessor :scheduled_to
25
+
26
+ # IANA timezone for the scheduled send (e.g. America/New_York).
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :timezone
29
+
30
+ sig { params(timezone: String).void }
31
+ attr_writer :timezone
32
+
33
+ # Request body for scheduling a broadcast for a future send.
34
+ sig do
35
+ params(
36
+ recipient_id: String,
37
+ recipient_type:
38
+ Courier::ScheduleBroadcastRequest::RecipientType::OrSymbol,
39
+ scheduled_to: String,
40
+ timezone: String
41
+ ).returns(T.attached_class)
42
+ end
43
+ def self.new(
44
+ # ID of the target list or audience.
45
+ recipient_id:,
46
+ # Whether the broadcast targets a list or an audience.
47
+ recipient_type:,
48
+ # Wall-clock timestamp of the future send, no timezone offset (e.g.
49
+ # "2026-07-21T20:00:00"). The zone is given by `timezone`.
50
+ scheduled_to:,
51
+ # IANA timezone for the scheduled send (e.g. America/New_York).
52
+ timezone: nil
53
+ )
54
+ end
55
+
56
+ sig do
57
+ override.returns(
58
+ {
59
+ recipient_id: String,
60
+ recipient_type:
61
+ Courier::ScheduleBroadcastRequest::RecipientType::OrSymbol,
62
+ scheduled_to: String,
63
+ timezone: String
64
+ }
65
+ )
66
+ end
67
+ def to_hash
68
+ end
69
+
70
+ # Whether the broadcast targets a list or an audience.
71
+ module RecipientType
72
+ extend Courier::Internal::Type::Enum
73
+
74
+ TaggedSymbol =
75
+ T.type_alias do
76
+ T.all(Symbol, Courier::ScheduleBroadcastRequest::RecipientType)
77
+ end
78
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
79
+
80
+ LIST =
81
+ T.let(
82
+ :list,
83
+ Courier::ScheduleBroadcastRequest::RecipientType::TaggedSymbol
84
+ )
85
+ AUDIENCE =
86
+ T.let(
87
+ :audience,
88
+ Courier::ScheduleBroadcastRequest::RecipientType::TaggedSymbol
89
+ )
90
+
91
+ sig do
92
+ override.returns(
93
+ T::Array[
94
+ Courier::ScheduleBroadcastRequest::RecipientType::TaggedSymbol
95
+ ]
96
+ )
97
+ end
98
+ def self.values
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end