-
Notifications
You must be signed in to change notification settings - Fork 10
/
types.ts
209 lines (193 loc) · 5.32 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
import type { ServerResponse } from '../common/request'
import type { ConnectedAudienceObject, UserAlias } from '../common/types'
export * from './schedule/types'
/**
* Request body for sending messages immediately via API only.
*
* {@link https://www.braze.com/docs/api/endpoints/messaging/send_messages/post_send_messages/#request-parameters}
*/
export interface MessagesSendObject {
broadcast?: boolean
external_user_ids?: string[]
user_aliases?: UserAlias[]
segment_id?: string
audience?: ConnectedAudienceObject
campaign_id?: string
send_id?: string
override_frequency_capping?: boolean
recipient_subscription_state?: string
messages?: MessagesObject
}
/**
* Messaging objects.
*
* {@link https://www.braze.com/docs/api/objects_filters/#messaging-objects}
*/
export interface MessagesObject {
apple_push?: ApplePushObject
android_push?: AndroidPushObject
windows_phone8_push?: object
windows_universal_push?: object
kindle_push?: object
web_push?: object
email?: EmailObjectWithBody | EmailObjectWithEmailTemplateId
webhook?: object
content_card?: object
sms?: object
}
/**
* Apple push object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/apple_object}
*/
export interface ApplePushObject {
badge?: number
alert?: string | ApplePushAlertObject
sound?: string
extra?: Record<string, string>
'content-available'?: boolean
interruption_level?: 'passive' | 'active' | 'time-sensitive' | 'critical'
relevance_score?: number
expiry?: string
custom_uri?: string
message_variation_id?: string
notification_group_thread_id?: string
asset_url?: string
asset_file_type?: 'aif' | 'gif' | 'jpg' | 'm4a' | 'mp3' | 'mp4' | 'png' | 'wav'
collapse_id?: string
mutable_content?: boolean
send_to_most_recent_device_only?: boolean
category?: string
buttons?: ApplePushActionButtonObject[]
}
/**
* Apple push alert object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/apple_object/#apple-push-alert-object}
*/
export interface ApplePushAlertObject {
body: string
title?: string
title_loc_key?: string
title_loc_args?: string[]
action_loc_key?: string
loc_key?: string
loc_args?: string[]
sound?: string
}
/**
* Apple push action button object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/apple_object/#apple-push-action-button-object}
*/
export interface ApplePushActionButtonObject {
action_id: string
action?: 'OPEN_APP' | 'URI' | 'DEEP_LINK' | 'CLOSE'
uri?: string
use_webview?: boolean
}
/**
* Android push object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/android_object}
*/
export interface AndroidPushObject {
alert: string
title: string
extra?: Record<string, string>
message_variation_id?: string
notification_channel_id?: string
priority?: number
send_to_sync?: boolean
collapse_key?: string
sound?: string
custom_uri?: string
summary_text?: string
time_to_live?: number
notification_id?: number
push_icon_image_url?: string
accent_color?: number
send_to_most_recent_device_only?: boolean
buttons?: AndroidPushActionButtonObject[]
conversation_data?: AndroidConversationPushObject
}
/**
* Android push action button object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/android_object/#android-push-action-button-object}
*/
export interface AndroidPushActionButtonObject {
text: string
action?: 'OPEN_APP' | 'URI' | 'DEEP_LINK' | 'CLOSE'
uri?: string
use_webview?: boolean
}
/**
* Android conversation push object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/android_object/#android-conversation-push-object}
*/
export interface AndroidConversationPushObject {
shortcut_id: string
reply_person_id: string
messages: AndroidConversationPushMessageObject[]
persons: AndroidConversationPushPersonObject[]
}
/**
* Android conversation push message object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/android_object/#android-conversation-push-message-object}
*/
export interface AndroidConversationPushMessageObject {
text: string
timestamp: number
person_id: string
}
/**
* Android conversation push person object
*
* {@link https://www.braze.com/docs/api/objects_filters/messaging/android_object/#android-conversation-push-person-object}
*/
export interface AndroidConversationPushPersonObject {
id: string
name: string
}
/**
* {@link https://www.braze.com/docs/api/objects_filters/messaging/email_object/}
*/
interface EmailObject {
app_id: string
subject?: string
from: string
reply_to?: string
bcc?: string
plaintext_body?: string
preheader?: string
message_variation_id?: string
extras?: Record<string, string>
headers?: Record<string, string>
should_inline_css?: boolean
attachments?: {
file_name: string
url: string
}[]
}
interface EmailObjectWithBody extends EmailObject {
body: string
}
interface EmailObjectWithEmailTemplateId extends EmailObject {
email_template_id: string
}
export interface ScheduledBroadcastsObject {
end_time: string
}
export interface ScheduledBroadcastsResponse extends ServerResponse {
scheduled_broadcasts: {
name: string
id: string
type: 'Canvas' | 'Campaign'
tags: string[]
next_send_time: string
schedule_type: 'local_time_zones' | 'intelligent_delivery' | string
}[]
}