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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/lib/courier/client.rb +4 -0
- data/lib/courier/models/broadcast.rb +132 -0
- data/lib/courier/models/broadcast_archive_params.rb +20 -0
- data/lib/courier/models/broadcast_cancel_params.rb +20 -0
- data/lib/courier/models/broadcast_create_params.rb +14 -0
- data/lib/courier/models/broadcast_duplicate_params.rb +20 -0
- data/lib/courier/models/broadcast_list_params.rb +30 -0
- data/lib/courier/models/broadcast_list_response.rb +24 -0
- data/lib/courier/models/broadcast_put_content_params.rb +20 -0
- data/lib/courier/models/broadcast_retrieve_content_params.rb +33 -0
- data/lib/courier/models/broadcast_retrieve_params.rb +20 -0
- data/lib/courier/models/broadcast_schedule.rb +59 -0
- data/lib/courier/models/broadcast_schedule_params.rb +20 -0
- data/lib/courier/models/broadcast_send_params.rb +20 -0
- data/lib/courier/models/broadcast_update_params.rb +20 -0
- data/lib/courier/models/create_broadcast_request.rb +43 -0
- data/lib/courier/models/schedule_broadcast_request.rb +59 -0
- data/lib/courier/models/send_broadcast_request.rb +39 -0
- data/lib/courier/models/update_broadcast_request.rb +18 -0
- data/lib/courier/models.rb +36 -0
- data/lib/courier/resources/broadcasts.rb +290 -0
- data/lib/courier/version.rb +1 -1
- data/lib/courier.rb +20 -1
- data/rbi/courier/client.rbi +3 -0
- data/rbi/courier/models/broadcast.rbi +164 -0
- data/rbi/courier/models/broadcast_archive_params.rbi +35 -0
- data/rbi/courier/models/broadcast_cancel_params.rbi +35 -0
- data/rbi/courier/models/broadcast_create_params.rbi +27 -0
- data/rbi/courier/models/broadcast_duplicate_params.rbi +35 -0
- data/rbi/courier/models/broadcast_list_params.rbi +54 -0
- data/rbi/courier/models/broadcast_list_response.rbi +39 -0
- data/rbi/courier/models/broadcast_put_content_params.rbi +35 -0
- data/rbi/courier/models/broadcast_retrieve_content_params.rbi +57 -0
- data/rbi/courier/models/broadcast_retrieve_params.rbi +35 -0
- data/rbi/courier/models/broadcast_schedule.rbi +92 -0
- data/rbi/courier/models/broadcast_schedule_params.rbi +35 -0
- data/rbi/courier/models/broadcast_send_params.rbi +35 -0
- data/rbi/courier/models/broadcast_update_params.rbi +35 -0
- data/rbi/courier/models/create_broadcast_request.rbi +81 -0
- data/rbi/courier/models/schedule_broadcast_request.rbi +103 -0
- data/rbi/courier/models/send_broadcast_request.rbi +77 -0
- data/rbi/courier/models/update_broadcast_request.rbi +28 -0
- data/rbi/courier/models.rbi +37 -0
- data/rbi/courier/resources/broadcasts.rbi +199 -0
- data/sig/courier/client.rbs +2 -0
- data/sig/courier/models/broadcast.rbs +98 -0
- data/sig/courier/models/broadcast_archive_params.rbs +23 -0
- data/sig/courier/models/broadcast_cancel_params.rbs +23 -0
- data/sig/courier/models/broadcast_create_params.rbs +15 -0
- data/sig/courier/models/broadcast_duplicate_params.rbs +23 -0
- data/sig/courier/models/broadcast_list_params.rbs +30 -0
- data/sig/courier/models/broadcast_list_response.rbs +22 -0
- data/sig/courier/models/broadcast_put_content_params.rbs +25 -0
- data/sig/courier/models/broadcast_retrieve_content_params.rbs +30 -0
- data/sig/courier/models/broadcast_retrieve_params.rbs +23 -0
- data/sig/courier/models/broadcast_schedule.rbs +46 -0
- data/sig/courier/models/broadcast_schedule_params.rbs +25 -0
- data/sig/courier/models/broadcast_send_params.rbs +25 -0
- data/sig/courier/models/broadcast_update_params.rbs +25 -0
- data/sig/courier/models/create_broadcast_request.rbs +40 -0
- data/sig/courier/models/schedule_broadcast_request.rbs +48 -0
- data/sig/courier/models/send_broadcast_request.rbs +36 -0
- data/sig/courier/models/update_broadcast_request.rbs +13 -0
- data/sig/courier/models.rbs +36 -0
- data/sig/courier/resources/broadcasts.rbs +74 -0
- 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
|