trycourier 4.26.0 → 4.26.2
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 +21 -0
- data/README.md +16 -19
- data/lib/courier/client.rb +4 -0
- data/lib/courier/models/bulk_add_users_params.rb +26 -0
- data/lib/courier/models/bulk_create_job_params.rb +29 -0
- data/lib/courier/models/bulk_create_job_response.rb +16 -0
- data/lib/courier/models/bulk_list_users_params.rb +33 -0
- data/lib/courier/models/bulk_list_users_response.rb +49 -0
- data/lib/courier/models/bulk_retrieve_job_params.rb +20 -0
- data/lib/courier/models/bulk_retrieve_job_response.rb +76 -0
- data/lib/courier/models/bulk_run_job_params.rb +20 -0
- data/lib/courier/models/inbound_bulk_message.rb +91 -0
- data/lib/courier/models/inbound_bulk_message_user.rb +54 -0
- data/lib/courier/models.rb +14 -0
- data/lib/courier/resources/broadcasts.rb +16 -9
- data/lib/courier/resources/bulk.rb +146 -0
- data/lib/courier/resources/send.rb +2 -1
- data/lib/courier/version.rb +1 -1
- data/lib/courier.rb +11 -0
- data/rbi/courier/client.rbi +3 -0
- data/rbi/courier/models/bulk_add_users_params.rbi +43 -0
- data/rbi/courier/models/bulk_create_job_params.rbi +54 -0
- data/rbi/courier/models/bulk_create_job_response.rbi +26 -0
- data/rbi/courier/models/bulk_list_users_params.rbi +51 -0
- data/rbi/courier/models/bulk_list_users_response.rbi +125 -0
- data/rbi/courier/models/bulk_retrieve_job_params.rbi +35 -0
- data/rbi/courier/models/bulk_retrieve_job_response.rbi +157 -0
- data/rbi/courier/models/bulk_run_job_params.rbi +35 -0
- data/rbi/courier/models/inbound_bulk_message.rbi +124 -0
- data/rbi/courier/models/inbound_bulk_message_user.rbi +88 -0
- data/rbi/courier/models.rbi +14 -0
- data/rbi/courier/resources/broadcasts.rbi +26 -4
- data/rbi/courier/resources/bulk.rbi +107 -0
- data/rbi/courier/resources/send.rbi +2 -1
- data/sig/courier/client.rbs +2 -0
- data/sig/courier/models/bulk_add_users_params.rbs +28 -0
- data/sig/courier/models/bulk_create_job_params.rbs +24 -0
- data/sig/courier/models/bulk_create_job_response.rbs +13 -0
- data/sig/courier/models/bulk_list_users_params.rbs +28 -0
- data/sig/courier/models/bulk_list_users_response.rbs +65 -0
- data/sig/courier/models/bulk_retrieve_job_params.rbs +23 -0
- data/sig/courier/models/bulk_retrieve_job_response.rbs +66 -0
- data/sig/courier/models/bulk_run_job_params.rbs +23 -0
- data/sig/courier/models/inbound_bulk_message.rbs +58 -0
- data/sig/courier/models/inbound_bulk_message_user.rbs +42 -0
- data/sig/courier/models.rbs +14 -0
- data/sig/courier/resources/bulk.rbs +34 -0
- metadata +35 -2
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class BulkRetrieveJobResponse < Courier::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
Courier::Models::BulkRetrieveJobResponse,
|
|
10
|
+
Courier::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(Courier::Models::BulkRetrieveJobResponse::Job) }
|
|
15
|
+
attr_reader :job
|
|
16
|
+
|
|
17
|
+
sig do
|
|
18
|
+
params(job: Courier::Models::BulkRetrieveJobResponse::Job::OrHash).void
|
|
19
|
+
end
|
|
20
|
+
attr_writer :job
|
|
21
|
+
|
|
22
|
+
sig do
|
|
23
|
+
params(
|
|
24
|
+
job: Courier::Models::BulkRetrieveJobResponse::Job::OrHash
|
|
25
|
+
).returns(T.attached_class)
|
|
26
|
+
end
|
|
27
|
+
def self.new(job:)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
sig do
|
|
31
|
+
override.returns({ job: Courier::Models::BulkRetrieveJobResponse::Job })
|
|
32
|
+
end
|
|
33
|
+
def to_hash
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class Job < Courier::Internal::Type::BaseModel
|
|
37
|
+
OrHash =
|
|
38
|
+
T.type_alias do
|
|
39
|
+
T.any(
|
|
40
|
+
Courier::Models::BulkRetrieveJobResponse::Job,
|
|
41
|
+
Courier::Internal::AnyHash
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# Bulk message definition. Supports two formats:
|
|
46
|
+
#
|
|
47
|
+
# - V1 format: Requires `event` field (event ID or notification ID)
|
|
48
|
+
# - V2 format: Optionally use `template` (notification ID) or `content` (Elemental
|
|
49
|
+
# content) in addition to `event`
|
|
50
|
+
sig { returns(Courier::InboundBulkMessage) }
|
|
51
|
+
attr_reader :definition
|
|
52
|
+
|
|
53
|
+
sig { params(definition: Courier::InboundBulkMessage::OrHash).void }
|
|
54
|
+
attr_writer :definition
|
|
55
|
+
|
|
56
|
+
sig { returns(Integer) }
|
|
57
|
+
attr_accessor :enqueued
|
|
58
|
+
|
|
59
|
+
sig { returns(Integer) }
|
|
60
|
+
attr_accessor :failures
|
|
61
|
+
|
|
62
|
+
sig { returns(Integer) }
|
|
63
|
+
attr_accessor :received
|
|
64
|
+
|
|
65
|
+
sig do
|
|
66
|
+
returns(
|
|
67
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::TaggedSymbol
|
|
68
|
+
)
|
|
69
|
+
end
|
|
70
|
+
attr_accessor :status
|
|
71
|
+
|
|
72
|
+
sig do
|
|
73
|
+
params(
|
|
74
|
+
definition: Courier::InboundBulkMessage::OrHash,
|
|
75
|
+
enqueued: Integer,
|
|
76
|
+
failures: Integer,
|
|
77
|
+
received: Integer,
|
|
78
|
+
status:
|
|
79
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::OrSymbol
|
|
80
|
+
).returns(T.attached_class)
|
|
81
|
+
end
|
|
82
|
+
def self.new(
|
|
83
|
+
# Bulk message definition. Supports two formats:
|
|
84
|
+
#
|
|
85
|
+
# - V1 format: Requires `event` field (event ID or notification ID)
|
|
86
|
+
# - V2 format: Optionally use `template` (notification ID) or `content` (Elemental
|
|
87
|
+
# content) in addition to `event`
|
|
88
|
+
definition:,
|
|
89
|
+
enqueued:,
|
|
90
|
+
failures:,
|
|
91
|
+
received:,
|
|
92
|
+
status:
|
|
93
|
+
)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
sig do
|
|
97
|
+
override.returns(
|
|
98
|
+
{
|
|
99
|
+
definition: Courier::InboundBulkMessage,
|
|
100
|
+
enqueued: Integer,
|
|
101
|
+
failures: Integer,
|
|
102
|
+
received: Integer,
|
|
103
|
+
status:
|
|
104
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::TaggedSymbol
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
end
|
|
108
|
+
def to_hash
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
module Status
|
|
112
|
+
extend Courier::Internal::Type::Enum
|
|
113
|
+
|
|
114
|
+
TaggedSymbol =
|
|
115
|
+
T.type_alias do
|
|
116
|
+
T.all(
|
|
117
|
+
Symbol,
|
|
118
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status
|
|
119
|
+
)
|
|
120
|
+
end
|
|
121
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
122
|
+
|
|
123
|
+
CREATED =
|
|
124
|
+
T.let(
|
|
125
|
+
:CREATED,
|
|
126
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::TaggedSymbol
|
|
127
|
+
)
|
|
128
|
+
PROCESSING =
|
|
129
|
+
T.let(
|
|
130
|
+
:PROCESSING,
|
|
131
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::TaggedSymbol
|
|
132
|
+
)
|
|
133
|
+
COMPLETED =
|
|
134
|
+
T.let(
|
|
135
|
+
:COMPLETED,
|
|
136
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::TaggedSymbol
|
|
137
|
+
)
|
|
138
|
+
ERROR =
|
|
139
|
+
T.let(
|
|
140
|
+
:ERROR,
|
|
141
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::TaggedSymbol
|
|
142
|
+
)
|
|
143
|
+
|
|
144
|
+
sig do
|
|
145
|
+
override.returns(
|
|
146
|
+
T::Array[
|
|
147
|
+
Courier::Models::BulkRetrieveJobResponse::Job::Status::TaggedSymbol
|
|
148
|
+
]
|
|
149
|
+
)
|
|
150
|
+
end
|
|
151
|
+
def self.values
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class BulkRunJobParams < 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::BulkRunJobParams, Courier::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
attr_accessor :job_id
|
|
16
|
+
|
|
17
|
+
sig do
|
|
18
|
+
params(
|
|
19
|
+
job_id: String,
|
|
20
|
+
request_options: Courier::RequestOptions::OrHash
|
|
21
|
+
).returns(T.attached_class)
|
|
22
|
+
end
|
|
23
|
+
def self.new(job_id:, request_options: {})
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
sig do
|
|
27
|
+
override.returns(
|
|
28
|
+
{ job_id: String, request_options: Courier::RequestOptions }
|
|
29
|
+
)
|
|
30
|
+
end
|
|
31
|
+
def to_hash
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class InboundBulkMessage < Courier::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Courier::InboundBulkMessage, Courier::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Event ID or Notification ID (required). Can be either a Notification ID (e.g.,
|
|
12
|
+
# "FRH3QXM9E34W4RKP7MRC8NZ1T8V8") or a custom Event ID (e.g., "welcome-email")
|
|
13
|
+
# mapped to a notification.
|
|
14
|
+
sig { returns(String) }
|
|
15
|
+
attr_accessor :event
|
|
16
|
+
|
|
17
|
+
sig { returns(T.nilable(String)) }
|
|
18
|
+
attr_accessor :brand
|
|
19
|
+
|
|
20
|
+
# Elemental content (optional, for V2 format). When provided, this will be used
|
|
21
|
+
# instead of the notification associated with the `event` field.
|
|
22
|
+
sig do
|
|
23
|
+
returns(
|
|
24
|
+
T.nilable(
|
|
25
|
+
T.any(Courier::ElementalContentSugar, Courier::ElementalContent)
|
|
26
|
+
)
|
|
27
|
+
)
|
|
28
|
+
end
|
|
29
|
+
attr_accessor :content
|
|
30
|
+
|
|
31
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
32
|
+
attr_accessor :data
|
|
33
|
+
|
|
34
|
+
sig { returns(T.nilable(T::Hash[Symbol, T::Hash[Symbol, T.anything]])) }
|
|
35
|
+
attr_accessor :locale
|
|
36
|
+
|
|
37
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
38
|
+
attr_accessor :override
|
|
39
|
+
|
|
40
|
+
# Notification ID or template ID (optional, for V2 format). When provided, this
|
|
41
|
+
# will be used instead of the notification associated with the `event` field.
|
|
42
|
+
sig { returns(T.nilable(String)) }
|
|
43
|
+
attr_accessor :template
|
|
44
|
+
|
|
45
|
+
# Bulk message definition. Supports two formats:
|
|
46
|
+
#
|
|
47
|
+
# - V1 format: Requires `event` field (event ID or notification ID)
|
|
48
|
+
# - V2 format: Optionally use `template` (notification ID) or `content` (Elemental
|
|
49
|
+
# content) in addition to `event`
|
|
50
|
+
sig do
|
|
51
|
+
params(
|
|
52
|
+
event: String,
|
|
53
|
+
brand: T.nilable(String),
|
|
54
|
+
content:
|
|
55
|
+
T.nilable(
|
|
56
|
+
T.any(
|
|
57
|
+
Courier::ElementalContentSugar::OrHash,
|
|
58
|
+
Courier::ElementalContent::OrHash
|
|
59
|
+
)
|
|
60
|
+
),
|
|
61
|
+
data: T.nilable(T::Hash[Symbol, T.anything]),
|
|
62
|
+
locale: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T.anything]]),
|
|
63
|
+
override: T.nilable(T::Hash[Symbol, T.anything]),
|
|
64
|
+
template: T.nilable(String)
|
|
65
|
+
).returns(T.attached_class)
|
|
66
|
+
end
|
|
67
|
+
def self.new(
|
|
68
|
+
# Event ID or Notification ID (required). Can be either a Notification ID (e.g.,
|
|
69
|
+
# "FRH3QXM9E34W4RKP7MRC8NZ1T8V8") or a custom Event ID (e.g., "welcome-email")
|
|
70
|
+
# mapped to a notification.
|
|
71
|
+
event:,
|
|
72
|
+
brand: nil,
|
|
73
|
+
# Elemental content (optional, for V2 format). When provided, this will be used
|
|
74
|
+
# instead of the notification associated with the `event` field.
|
|
75
|
+
content: nil,
|
|
76
|
+
data: nil,
|
|
77
|
+
locale: nil,
|
|
78
|
+
override: nil,
|
|
79
|
+
# Notification ID or template ID (optional, for V2 format). When provided, this
|
|
80
|
+
# will be used instead of the notification associated with the `event` field.
|
|
81
|
+
template: nil
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
sig do
|
|
86
|
+
override.returns(
|
|
87
|
+
{
|
|
88
|
+
event: String,
|
|
89
|
+
brand: T.nilable(String),
|
|
90
|
+
content:
|
|
91
|
+
T.nilable(
|
|
92
|
+
T.any(Courier::ElementalContentSugar, Courier::ElementalContent)
|
|
93
|
+
),
|
|
94
|
+
data: T.nilable(T::Hash[Symbol, T.anything]),
|
|
95
|
+
locale: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T.anything]]),
|
|
96
|
+
override: T.nilable(T::Hash[Symbol, T.anything]),
|
|
97
|
+
template: T.nilable(String)
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
end
|
|
101
|
+
def to_hash
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Elemental content (optional, for V2 format). When provided, this will be used
|
|
105
|
+
# instead of the notification associated with the `event` field.
|
|
106
|
+
module Content
|
|
107
|
+
extend Courier::Internal::Type::Union
|
|
108
|
+
|
|
109
|
+
Variants =
|
|
110
|
+
T.type_alias do
|
|
111
|
+
T.any(Courier::ElementalContentSugar, Courier::ElementalContent)
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
sig do
|
|
115
|
+
override.returns(
|
|
116
|
+
T::Array[Courier::InboundBulkMessage::Content::Variants]
|
|
117
|
+
)
|
|
118
|
+
end
|
|
119
|
+
def self.variants
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Models
|
|
5
|
+
class InboundBulkMessageUser < Courier::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(Courier::InboundBulkMessageUser, Courier::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# User-specific data that will be merged with message.data
|
|
12
|
+
sig { returns(T.nilable(T.anything)) }
|
|
13
|
+
attr_reader :data
|
|
14
|
+
|
|
15
|
+
sig { params(data: T.anything).void }
|
|
16
|
+
attr_writer :data
|
|
17
|
+
|
|
18
|
+
sig { returns(T.nilable(Courier::RecipientPreferences)) }
|
|
19
|
+
attr_reader :preferences
|
|
20
|
+
|
|
21
|
+
sig do
|
|
22
|
+
params(
|
|
23
|
+
preferences: T.nilable(Courier::RecipientPreferences::OrHash)
|
|
24
|
+
).void
|
|
25
|
+
end
|
|
26
|
+
attr_writer :preferences
|
|
27
|
+
|
|
28
|
+
# User profile information. For email-based bulk jobs, `profile.email` is required
|
|
29
|
+
# for provider routing to determine if the message can be delivered. The email
|
|
30
|
+
# address should be provided here rather than in `to.email`.
|
|
31
|
+
sig { returns(T.nilable(T::Hash[Symbol, T.anything])) }
|
|
32
|
+
attr_accessor :profile
|
|
33
|
+
|
|
34
|
+
# User ID (legacy field, use profile or to.user_id instead)
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_accessor :recipient
|
|
37
|
+
|
|
38
|
+
# Optional recipient information. Note: For email provider routing, use
|
|
39
|
+
# `profile.email` instead of `to.email`. The `to` field is primarily used for
|
|
40
|
+
# recipient identification and data merging.
|
|
41
|
+
sig { returns(T.nilable(Courier::UserRecipient)) }
|
|
42
|
+
attr_reader :to
|
|
43
|
+
|
|
44
|
+
sig { params(to: T.nilable(Courier::UserRecipient::OrHash)).void }
|
|
45
|
+
attr_writer :to
|
|
46
|
+
|
|
47
|
+
sig do
|
|
48
|
+
params(
|
|
49
|
+
data: T.anything,
|
|
50
|
+
preferences: T.nilable(Courier::RecipientPreferences::OrHash),
|
|
51
|
+
profile: T.nilable(T::Hash[Symbol, T.anything]),
|
|
52
|
+
recipient: T.nilable(String),
|
|
53
|
+
to: T.nilable(Courier::UserRecipient::OrHash)
|
|
54
|
+
).returns(T.attached_class)
|
|
55
|
+
end
|
|
56
|
+
def self.new(
|
|
57
|
+
# User-specific data that will be merged with message.data
|
|
58
|
+
data: nil,
|
|
59
|
+
preferences: nil,
|
|
60
|
+
# User profile information. For email-based bulk jobs, `profile.email` is required
|
|
61
|
+
# for provider routing to determine if the message can be delivered. The email
|
|
62
|
+
# address should be provided here rather than in `to.email`.
|
|
63
|
+
profile: nil,
|
|
64
|
+
# User ID (legacy field, use profile or to.user_id instead)
|
|
65
|
+
recipient: nil,
|
|
66
|
+
# Optional recipient information. Note: For email provider routing, use
|
|
67
|
+
# `profile.email` instead of `to.email`. The `to` field is primarily used for
|
|
68
|
+
# recipient identification and data merging.
|
|
69
|
+
to: nil
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
sig do
|
|
74
|
+
override.returns(
|
|
75
|
+
{
|
|
76
|
+
data: T.anything,
|
|
77
|
+
preferences: T.nilable(Courier::RecipientPreferences),
|
|
78
|
+
profile: T.nilable(T::Hash[Symbol, T.anything]),
|
|
79
|
+
recipient: T.nilable(String),
|
|
80
|
+
to: T.nilable(Courier::UserRecipient)
|
|
81
|
+
}
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
def to_hash
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
data/rbi/courier/models.rbi
CHANGED
|
@@ -106,6 +106,16 @@ module Courier
|
|
|
106
106
|
|
|
107
107
|
BroadcastUpdateParams = Courier::Models::BroadcastUpdateParams
|
|
108
108
|
|
|
109
|
+
BulkAddUsersParams = Courier::Models::BulkAddUsersParams
|
|
110
|
+
|
|
111
|
+
BulkCreateJobParams = Courier::Models::BulkCreateJobParams
|
|
112
|
+
|
|
113
|
+
BulkListUsersParams = Courier::Models::BulkListUsersParams
|
|
114
|
+
|
|
115
|
+
BulkRetrieveJobParams = Courier::Models::BulkRetrieveJobParams
|
|
116
|
+
|
|
117
|
+
BulkRunJobParams = Courier::Models::BulkRunJobParams
|
|
118
|
+
|
|
109
119
|
CancelJourneyRequest = Courier::Models::CancelJourneyRequest
|
|
110
120
|
|
|
111
121
|
CancelJourneyResponse = Courier::Models::CancelJourneyResponse
|
|
@@ -178,6 +188,10 @@ module Courier
|
|
|
178
188
|
|
|
179
189
|
Icons = Courier::Models::Icons
|
|
180
190
|
|
|
191
|
+
InboundBulkMessage = Courier::Models::InboundBulkMessage
|
|
192
|
+
|
|
193
|
+
InboundBulkMessageUser = Courier::Models::InboundBulkMessageUser
|
|
194
|
+
|
|
181
195
|
InboundTrackEventParams = Courier::Models::InboundTrackEventParams
|
|
182
196
|
|
|
183
197
|
Intercom = Courier::Models::Intercom
|
|
@@ -31,7 +31,11 @@ module Courier
|
|
|
31
31
|
request_options: Courier::RequestOptions::OrHash
|
|
32
32
|
).returns(Courier::Broadcast)
|
|
33
33
|
end
|
|
34
|
-
def retrieve(
|
|
34
|
+
def retrieve(
|
|
35
|
+
# The broadcast to retrieve, identified by the `id` returned when it was created.
|
|
36
|
+
broadcast_id,
|
|
37
|
+
request_options: {}
|
|
38
|
+
)
|
|
35
39
|
end
|
|
36
40
|
|
|
37
41
|
# Update a broadcast's name. Content is edited via the broadcast's notification
|
|
@@ -44,6 +48,7 @@ module Courier
|
|
|
44
48
|
).returns(Courier::Broadcast)
|
|
45
49
|
end
|
|
46
50
|
def update(
|
|
51
|
+
# The broadcast to rename.
|
|
47
52
|
broadcast_id,
|
|
48
53
|
# New human-readable name.
|
|
49
54
|
name:,
|
|
@@ -77,7 +82,11 @@ module Courier
|
|
|
77
82
|
request_options: Courier::RequestOptions::OrHash
|
|
78
83
|
).returns(Courier::Broadcast)
|
|
79
84
|
end
|
|
80
|
-
def archive(
|
|
85
|
+
def archive(
|
|
86
|
+
# The broadcast to archive.
|
|
87
|
+
broadcast_id,
|
|
88
|
+
request_options: {}
|
|
89
|
+
)
|
|
81
90
|
end
|
|
82
91
|
|
|
83
92
|
# Cancel a broadcast's pending schedule, returning it to the draft state. Only
|
|
@@ -88,7 +97,11 @@ module Courier
|
|
|
88
97
|
request_options: Courier::RequestOptions::OrHash
|
|
89
98
|
).returns(Courier::Broadcast)
|
|
90
99
|
end
|
|
91
|
-
def cancel(
|
|
100
|
+
def cancel(
|
|
101
|
+
# The broadcast to cancel.
|
|
102
|
+
broadcast_id,
|
|
103
|
+
request_options: {}
|
|
104
|
+
)
|
|
92
105
|
end
|
|
93
106
|
|
|
94
107
|
# Duplicate a broadcast (and its template) into a new draft named "{source name}
|
|
@@ -99,7 +112,12 @@ module Courier
|
|
|
99
112
|
request_options: Courier::RequestOptions::OrHash
|
|
100
113
|
).returns(Courier::Broadcast)
|
|
101
114
|
end
|
|
102
|
-
def duplicate(
|
|
115
|
+
def duplicate(
|
|
116
|
+
# The broadcast to copy. The duplicate is created as a new draft and this
|
|
117
|
+
# broadcast is left unchanged.
|
|
118
|
+
broadcast_id,
|
|
119
|
+
request_options: {}
|
|
120
|
+
)
|
|
103
121
|
end
|
|
104
122
|
|
|
105
123
|
# Author the broadcast's content by replacing the draft elemental content of its
|
|
@@ -114,6 +132,7 @@ module Courier
|
|
|
114
132
|
).returns(Courier::NotificationContentMutationResponse)
|
|
115
133
|
end
|
|
116
134
|
def put_content(
|
|
135
|
+
# The broadcast whose content you want to replace.
|
|
117
136
|
broadcast_id,
|
|
118
137
|
# Elemental content payload. The server defaults `version` when omitted.
|
|
119
138
|
content:,
|
|
@@ -134,6 +153,7 @@ module Courier
|
|
|
134
153
|
).returns(Courier::NotificationContentGetResponse)
|
|
135
154
|
end
|
|
136
155
|
def retrieve_content(
|
|
156
|
+
# The broadcast whose content you want to read.
|
|
137
157
|
broadcast_id,
|
|
138
158
|
# Accepts `draft`, `published`, or a version string (e.g. `v001`). Defaults to
|
|
139
159
|
# `draft`.
|
|
@@ -157,6 +177,7 @@ module Courier
|
|
|
157
177
|
).returns(Courier::Broadcast)
|
|
158
178
|
end
|
|
159
179
|
def schedule(
|
|
180
|
+
# The broadcast to schedule.
|
|
160
181
|
broadcast_id,
|
|
161
182
|
# ID of the target list or audience.
|
|
162
183
|
recipient_id:,
|
|
@@ -183,6 +204,7 @@ module Courier
|
|
|
183
204
|
).returns(Courier::Broadcast)
|
|
184
205
|
end
|
|
185
206
|
def send_(
|
|
207
|
+
# The broadcast to send.
|
|
186
208
|
broadcast_id,
|
|
187
209
|
# ID of the target list or audience.
|
|
188
210
|
recipient_id:,
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module Courier
|
|
4
|
+
module Resources
|
|
5
|
+
class Bulk
|
|
6
|
+
# Ingest user data into a Bulk Job.
|
|
7
|
+
#
|
|
8
|
+
# **Important**: For email-based bulk jobs, each user must include `profile.email`
|
|
9
|
+
# for provider routing to work correctly. The `to.email` field is not sufficient
|
|
10
|
+
# for email provider routing.
|
|
11
|
+
sig do
|
|
12
|
+
params(
|
|
13
|
+
job_id: String,
|
|
14
|
+
users: T::Array[Courier::InboundBulkMessageUser::OrHash],
|
|
15
|
+
request_options: Courier::RequestOptions::OrHash
|
|
16
|
+
).void
|
|
17
|
+
end
|
|
18
|
+
def add_users(
|
|
19
|
+
# A unique identifier representing the bulk job
|
|
20
|
+
job_id,
|
|
21
|
+
users:,
|
|
22
|
+
request_options: {}
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Creates a new bulk job for sending messages to multiple recipients.
|
|
27
|
+
#
|
|
28
|
+
# **Required**: `message.event` (event ID or notification ID)
|
|
29
|
+
#
|
|
30
|
+
# **Optional (V2 format)**: `message.template` (notification ID) or
|
|
31
|
+
# `message.content` (Elemental content) can be provided to override the
|
|
32
|
+
# notification associated with the event.
|
|
33
|
+
sig do
|
|
34
|
+
params(
|
|
35
|
+
message: Courier::InboundBulkMessage::OrHash,
|
|
36
|
+
request_options: Courier::RequestOptions::OrHash
|
|
37
|
+
).returns(Courier::Models::BulkCreateJobResponse)
|
|
38
|
+
end
|
|
39
|
+
def create_job(
|
|
40
|
+
# Bulk message definition. Supports two formats:
|
|
41
|
+
#
|
|
42
|
+
# - V1 format: Requires `event` field (event ID or notification ID)
|
|
43
|
+
# - V2 format: Optionally use `template` (notification ID) or `content` (Elemental
|
|
44
|
+
# content) in addition to `event`
|
|
45
|
+
message:,
|
|
46
|
+
request_options: {}
|
|
47
|
+
)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# Returns the users ingested into a bulk job with paging, each carrying the status
|
|
51
|
+
# Courier recorded for it and the id of the message it produced.
|
|
52
|
+
sig do
|
|
53
|
+
params(
|
|
54
|
+
job_id: String,
|
|
55
|
+
cursor: T.nilable(String),
|
|
56
|
+
request_options: Courier::RequestOptions::OrHash
|
|
57
|
+
).returns(Courier::Models::BulkListUsersResponse)
|
|
58
|
+
end
|
|
59
|
+
def list_users(
|
|
60
|
+
# A unique identifier representing the bulk job
|
|
61
|
+
job_id,
|
|
62
|
+
# A unique identifier that allows for fetching the next set of users added to the
|
|
63
|
+
# bulk job
|
|
64
|
+
cursor: nil,
|
|
65
|
+
request_options: {}
|
|
66
|
+
)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Returns a bulk job's message definition, its status — CREATED, PROCESSING,
|
|
70
|
+
# COMPLETED, or ERROR — and running counts of users received, messages enqueued,
|
|
71
|
+
# and failures. Poll it to follow a job through to completion.
|
|
72
|
+
sig do
|
|
73
|
+
params(
|
|
74
|
+
job_id: String,
|
|
75
|
+
request_options: Courier::RequestOptions::OrHash
|
|
76
|
+
).returns(Courier::Models::BulkRetrieveJobResponse)
|
|
77
|
+
end
|
|
78
|
+
def retrieve_job(
|
|
79
|
+
# A unique identifier representing the bulk job
|
|
80
|
+
job_id,
|
|
81
|
+
request_options: {}
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Starts processing a bulk job, sending to every user ingested into it. Returns
|
|
86
|
+
# 204 immediately; the job runs asynchronously, so poll the job to watch its
|
|
87
|
+
# status and counts.
|
|
88
|
+
sig do
|
|
89
|
+
params(
|
|
90
|
+
job_id: String,
|
|
91
|
+
request_options: Courier::RequestOptions::OrHash
|
|
92
|
+
).void
|
|
93
|
+
end
|
|
94
|
+
def run_job(
|
|
95
|
+
# A unique identifier representing the bulk job
|
|
96
|
+
job_id,
|
|
97
|
+
request_options: {}
|
|
98
|
+
)
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
# @api private
|
|
102
|
+
sig { params(client: Courier::Client).returns(T.attached_class) }
|
|
103
|
+
def self.new(client:)
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
@@ -6,7 +6,8 @@ module Courier
|
|
|
6
6
|
# across every channel you have configured.
|
|
7
7
|
class Send
|
|
8
8
|
# Sends a message to one or more recipients and returns a requestId. Courier
|
|
9
|
-
# routes it to email, SMS, push, chat, or in-app based on your rules.
|
|
9
|
+
# routes it to email, SMS, push, chat, or in-app based on your rules. Use the
|
|
10
|
+
# returned requestId to look up delivery status via the Messages API.
|
|
10
11
|
sig do
|
|
11
12
|
params(
|
|
12
13
|
message: Courier::SendMessageParams::Message::OrHash,
|
data/sig/courier/client.rbs
CHANGED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
module Courier
|
|
2
|
+
module Models
|
|
3
|
+
type bulk_add_users_params =
|
|
4
|
+
{ job_id: String, users: ::Array[Courier::InboundBulkMessageUser] }
|
|
5
|
+
& Courier::Internal::Type::request_parameters
|
|
6
|
+
|
|
7
|
+
class BulkAddUsersParams < Courier::Internal::Type::BaseModel
|
|
8
|
+
extend Courier::Internal::Type::RequestParameters::Converter
|
|
9
|
+
include Courier::Internal::Type::RequestParameters
|
|
10
|
+
|
|
11
|
+
attr_accessor job_id: String
|
|
12
|
+
|
|
13
|
+
attr_accessor users: ::Array[Courier::InboundBulkMessageUser]
|
|
14
|
+
|
|
15
|
+
def initialize: (
|
|
16
|
+
job_id: String,
|
|
17
|
+
users: ::Array[Courier::InboundBulkMessageUser],
|
|
18
|
+
?request_options: Courier::request_opts
|
|
19
|
+
) -> void
|
|
20
|
+
|
|
21
|
+
def to_hash: -> {
|
|
22
|
+
job_id: String,
|
|
23
|
+
users: ::Array[Courier::InboundBulkMessageUser],
|
|
24
|
+
request_options: Courier::RequestOptions
|
|
25
|
+
}
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|