@kudo.io/artworker-grpc-client-ts 3.0.23 → 3.0.25

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.
@@ -0,0 +1,983 @@
1
+ // @generated by protoc-gen-es v2.10.1 with parameter "target=ts,import_extension=js"
2
+ // @generated from file notification/v2/notification.proto (package notification.v2, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import type { Timestamp } from "@bufbuild/protobuf/wkt";
8
+ import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
9
+ import type { Message } from "@bufbuild/protobuf";
10
+
11
+ /**
12
+ * Describes the file notification/v2/notification.proto.
13
+ */
14
+ export const file_notification_v2_notification: GenFile = /*@__PURE__*/
15
+ fileDesc("CiJub3RpZmljYXRpb24vdjIvbm90aWZpY2F0aW9uLnByb3RvEg9ub3RpZmljYXRpb24udjIi6QMKDE5vdGlmaWNhdGlvbhIKCgJpZBgBIAEoCRIUCgxhcnR3b3JrZXJfaWQYAiABKAMSDgoGam9iX2lkGAMgASgJEhAKCGpvYl90eXBlGAQgASgJEhIKCmV2ZW50X3R5cGUYBSABKAkSFwoPcmVjaXBpZW50X2VtYWlsGAYgASgJEhYKDnJlY2lwaWVudF9uYW1lGAcgASgJEjMKBnN0YXR1cxgIIAEoDjIjLm5vdGlmaWNhdGlvbi52Mi5Ob3RpZmljYXRpb25TdGF0dXMSFQoNY2hhc2VfZW5hYmxlZBgJIAEoCBIaChJjaGFzZV9pbnRlcnZhbF9taW4YCiABKAUSEgoKbWF4X2NoYXNlcxgLIAEoBRITCgtjaGFzZXNfc2VudBgMIAEoBRI0ChBuZXh0X2NoYXNlX2FmdGVyGA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgpjcmVhdGVkX2F0GA4gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIuCgp1cGRhdGVkX2F0GA8gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIpCgVzZW5kcxgQIAMoCzIaLm5vdGlmaWNhdGlvbi52Mi5FbWFpbFNlbmQizQQKCUVtYWlsU2VuZBIKCgJpZBgBIAEoCRIXCg9ub3RpZmljYXRpb25faWQYAiABKAkSEQoJZW1haWxfcmVmGAMgASgJEhUKDXRlbXBsYXRlX25hbWUYBCABKAkSEgoKZXZlbnRfdHlwZRgFIAEoCRIXCg9yZWNpcGllbnRfZW1haWwYBiABKAkSFgoOcmVjaXBpZW50X25hbWUYByABKAkSFAoMc2VuZGVyX2VtYWlsGAggASgJEhQKDGFydHdvcmtlcl9pZBgJIAEoAxIOCgZqb2JfaWQYCiABKAkSEAoIam9iX3R5cGUYCyABKAkSEAoIaXNfY2hhc2UYDCABKAgSFgoOY2hhc2Vfc2VxdWVuY2UYDSABKAUSLwoGc3RhdHVzGA4gASgOMh8ubm90aWZpY2F0aW9uLnYyLkRlbGl2ZXJ5U3RhdHVzEisKB3NlbnRfYXQYDyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGRlbGl2ZXJlZF9hdBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJb3BlbmVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBItCglmYWlsZWRfYXQYEiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhYKDmZhaWx1cmVfcmVhc29uGBMgASgJEi4KCmNyZWF0ZWRfYXQYFCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIj4KE1NlbmRSZW1pbmRlclJlcXVlc3QSFwoPbm90aWZpY2F0aW9uX2lkGAIgASgJEg4KBmpvYl9pZBgDIAEoCSIiChRTZW5kUmVtaW5kZXJSZXNwb25zZRIKCgJvaxgBIAEoCCJEChdTZW5kQnVsa1JlbWluZGVyUmVxdWVzdBIYChBub3RpZmljYXRpb25faWRzGAIgAygJEg8KB2pvYl9pZHMYAyADKAkiqAEKGFNlbmRCdWxrUmVtaW5kZXJSZXNwb25zZRIKCgJvaxgBIAEoCBI/CgZlcnJvcnMYAiADKAsyLy5ub3RpZmljYXRpb24udjIuU2VuZEJ1bGtSZW1pbmRlclJlc3BvbnNlLkVycm9yGj8KBUVycm9yEhcKD25vdGlmaWNhdGlvbl9pZBgBIAEoCRINCgVlcnJvchgCIAEoCRIOCgZqb2JfaWQYAyABKAkiKgoVU2V0RW1haWxPcGVuZWRSZXF1ZXN0EhEKCWVtYWlsX3JlZhgBIAEoCSIYChZTZXRFbWFpbE9wZW5lZFJlc3BvbnNlIlgKFkdldE5vdGlmaWNhdGlvblJlcXVlc3QSFwoPbm90aWZpY2F0aW9uX2lkGAIgASgJEhUKDWluY2x1ZGVfc2VuZHMYAyABKAgSDgoGam9iX2lkGAQgASgJIk4KF0dldE5vdGlmaWNhdGlvblJlc3BvbnNlEjMKDG5vdGlmaWNhdGlvbhgBIAEoCzIdLm5vdGlmaWNhdGlvbi52Mi5Ob3RpZmljYXRpb24iJgoUR2V0RW1haWxTZW5kc1JlcXVlc3QSDgoGam9iX2lkGAIgASgJIkgKFUdldEVtYWlsU2VuZHNSZXNwb25zZRIvCgtlbWFpbF9zZW5kcxgBIAMoCzIaLm5vdGlmaWNhdGlvbi52Mi5FbWFpbFNlbmQiOwoaU2VuZENvbnNvbGlkYXRlZE5vd1JlcXVlc3QSHQoVY29uc29saWRhdGVkX2VtYWlsX2lkGAEgASgJIh0KG1NlbmRDb25zb2xpZGF0ZWROb3dSZXNwb25zZSJbCh5FeHRlbmRDb25zb2xpZGF0ZWRUaW1lclJlcXVlc3QSHQoVY29uc29saWRhdGVkX2VtYWlsX2lkGAEgASgJEhoKEmFkZGl0aW9uYWxfc2Vjb25kcxgCIAEoBSJVCh9FeHRlbmRDb25zb2xpZGF0ZWRUaW1lclJlc3BvbnNlEjIKDm5ld19zZW5kX2FmdGVyGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJGChtHZXRDb25zb2xpZGF0ZWRFbWFpbFJlcXVlc3QSDgoGam9iX2lkGAEgASgJEhcKD2NvbnNvbGlkYXRlX2tleRgCIAEoCSJeChxHZXRDb25zb2xpZGF0ZWRFbWFpbFJlc3BvbnNlEj4KEmNvbnNvbGlkYXRlZF9lbWFpbBgBIAEoCzIiLm5vdGlmaWNhdGlvbi52Mi5Db25zb2xpZGF0ZWRFbWFpbCKBAgoRQ29uc29saWRhdGVkRW1haWwSCgoCaWQYASABKAkSDgoGam9iX2lkGAIgASgJEg4KBnN0YXR1cxgDIAEoCRIuCgpzZW5kX2FmdGVyGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIVCg1kZWxheV9zZWNvbmRzGAUgASgFEhIKCml0ZW1fY291bnQYBiABKAUSNQoFaXRlbXMYByADKAsyJi5ub3RpZmljYXRpb24udjIuQ29uc29saWRhdGVkRW1haWxJdGVtEi4KCmNyZWF0ZWRfYXQYCCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIpQBChVDb25zb2xpZGF0ZWRFbWFpbEl0ZW0SCgoCaWQYASABKAkSEwoLam9iX2l0ZW1faWQYAiABKAkSEgoKZXZlbnRfdHlwZRgDIAEoCRIWCg5hY3Rpb25fc3VtbWFyeRgEIAEoCRIuCgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJ6ChlSZW5kZXJFbWFpbFByZXZpZXdSZXF1ZXN0EhcKD25vdGlmaWNhdGlvbl9pZBgCIAEoCRIOCgZqb2JfaWQYAyABKAkSHQoVY29uc29saWRhdGVkX2VtYWlsX2lkGAQgASgJEhUKDWVtYWlsX3NlbmRfaWQYBSABKAkiqwEKGlJlbmRlckVtYWlsUHJldmlld1Jlc3BvbnNlEg8KB3N1YmplY3QYASABKAkSDAoEaHRtbBgCIAEoCRISCgpwbGFpbl90ZXh0GAMgASgJEhUKDXRlbXBsYXRlX25hbWUYBCABKAkSEgoKZXZlbnRfdHlwZRgFIAEoCRIXCg9yZWNpcGllbnRfZW1haWwYBiABKAkSFgoOcmVjaXBpZW50X25hbWUYByABKAkiFgoUVHJpZ2dlckNoYXNlc1JlcXVlc3QiTAoVVHJpZ2dlckNoYXNlc1Jlc3BvbnNlEhMKC2NoYXNlc19zZW50GAEgASgFEh4KFmFjdGlvbl9zZXRfY2hhc2VzX3NlbnQYAiABKAUiOQoeR2V0Sm9iR3JvdXBFbWFpbEhpc3RvcnlSZXF1ZXN0EhcKD2NvbnNvbGlkYXRlX2tleRgBIAEoCSJXCh9HZXRKb2JHcm91cEVtYWlsSGlzdG9yeVJlc3BvbnNlEjQKB2VudHJpZXMYASADKAsyIy5ub3RpZmljYXRpb24udjIuRW1haWxUaW1lbGluZUVudHJ5IksKIEdldEpvYkVtYWlsSGlzdG9yeUluR3JvdXBSZXF1ZXN0EhcKD2NvbnNvbGlkYXRlX2tleRgBIAEoCRIOCgZqb2JfaWQYAiABKAkiWQohR2V0Sm9iRW1haWxIaXN0b3J5SW5Hcm91cFJlc3BvbnNlEjQKB2VudHJpZXMYASADKAsyIy5ub3RpZmljYXRpb24udjIuRW1haWxUaW1lbGluZUVudHJ5IqoDChJFbWFpbFRpbWVsaW5lRW50cnkSFQoNZW1haWxfc2VuZF9pZBgBIAEoCRIRCgllbWFpbF9yZWYYAiABKAkSFQoNdGVtcGxhdGVfbmFtZRgDIAEoCRISCgpldmVudF90eXBlGAQgASgJEhAKCGlzX2NoYXNlGAUgASgIEhYKDmNoYXNlX3NlcXVlbmNlGAYgASgFEi8KBnN0YXR1cxgHIAEoDjIfLm5vdGlmaWNhdGlvbi52Mi5EZWxpdmVyeVN0YXR1cxIrCgdzZW50X2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxkZWxpdmVyZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCW9wZW5lZF9hdBgKIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJZmFpbGVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5mYWlsdXJlX3JlYXNvbhgMIAEoCRIPCgdqb2JfaWRzGA0gAygJKp8BChJOb3RpZmljYXRpb25TdGF0dXMSIwofTk9USUZJQ0FUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEh4KGk5PVElGSUNBVElPTl9TVEFUVVNfQUNUSVZFEAESIQodTk9USUZJQ0FUSU9OX1NUQVRVU19DT01QTEVURUQQAhIhCh1OT1RJRklDQVRJT05fU1RBVFVTX0NBTkNFTExFRBADKr8BCg5EZWxpdmVyeVN0YXR1cxIfChtERUxJVkVSWV9TVEFUVVNfVU5TUEVDSUZJRUQQABIbChdERUxJVkVSWV9TVEFUVVNfUEVORElORxABEhgKFERFTElWRVJZX1NUQVRVU19TRU5UEAISHQoZREVMSVZFUllfU1RBVFVTX0RFTElWRVJFRBADEhoKFkRFTElWRVJZX1NUQVRVU19PUEVORUQQBBIaChZERUxJVkVSWV9TVEFUVVNfRkFJTEVEEAVCVFpSYml0YnVja2V0Lm9yZy9rdWRvdWsvYXJ0d29ya2VyLWJhY2tlbmQvcHJvdG8vZ2VuL2dvL25vdGlmaWNhdGlvbi92Mjtub3RpZmljYXRpb252MmIGcHJvdG8z", [file_google_protobuf_timestamp]);
16
+
17
+ /**
18
+ * @generated from message notification.v2.Notification
19
+ */
20
+ export type Notification = Message<"notification.v2.Notification"> & {
21
+ /**
22
+ * @generated from field: string id = 1;
23
+ */
24
+ id: string;
25
+
26
+ /**
27
+ * @generated from field: int64 artworker_id = 2;
28
+ */
29
+ artworkerId: bigint;
30
+
31
+ /**
32
+ * @generated from field: string job_id = 3;
33
+ */
34
+ jobId: string;
35
+
36
+ /**
37
+ * @generated from field: string job_type = 4;
38
+ */
39
+ jobType: string;
40
+
41
+ /**
42
+ * @generated from field: string event_type = 5;
43
+ */
44
+ eventType: string;
45
+
46
+ /**
47
+ * @generated from field: string recipient_email = 6;
48
+ */
49
+ recipientEmail: string;
50
+
51
+ /**
52
+ * @generated from field: string recipient_name = 7;
53
+ */
54
+ recipientName: string;
55
+
56
+ /**
57
+ * @generated from field: notification.v2.NotificationStatus status = 8;
58
+ */
59
+ status: NotificationStatus;
60
+
61
+ /**
62
+ * @generated from field: bool chase_enabled = 9;
63
+ */
64
+ chaseEnabled: boolean;
65
+
66
+ /**
67
+ * @generated from field: int32 chase_interval_min = 10;
68
+ */
69
+ chaseIntervalMin: number;
70
+
71
+ /**
72
+ * @generated from field: int32 max_chases = 11;
73
+ */
74
+ maxChases: number;
75
+
76
+ /**
77
+ * @generated from field: int32 chases_sent = 12;
78
+ */
79
+ chasesSent: number;
80
+
81
+ /**
82
+ * @generated from field: google.protobuf.Timestamp next_chase_after = 13;
83
+ */
84
+ nextChaseAfter?: Timestamp;
85
+
86
+ /**
87
+ * @generated from field: google.protobuf.Timestamp created_at = 14;
88
+ */
89
+ createdAt?: Timestamp;
90
+
91
+ /**
92
+ * @generated from field: google.protobuf.Timestamp updated_at = 15;
93
+ */
94
+ updatedAt?: Timestamp;
95
+
96
+ /**
97
+ * @generated from field: repeated notification.v2.EmailSend sends = 16;
98
+ */
99
+ sends: EmailSend[];
100
+ };
101
+
102
+ /**
103
+ * Describes the message notification.v2.Notification.
104
+ * Use `create(NotificationSchema)` to create a new message.
105
+ */
106
+ export const NotificationSchema: GenMessage<Notification> = /*@__PURE__*/
107
+ messageDesc(file_notification_v2_notification, 0);
108
+
109
+ /**
110
+ * @generated from message notification.v2.EmailSend
111
+ */
112
+ export type EmailSend = Message<"notification.v2.EmailSend"> & {
113
+ /**
114
+ * @generated from field: string id = 1;
115
+ */
116
+ id: string;
117
+
118
+ /**
119
+ * @generated from field: string notification_id = 2;
120
+ */
121
+ notificationId: string;
122
+
123
+ /**
124
+ * @generated from field: string email_ref = 3;
125
+ */
126
+ emailRef: string;
127
+
128
+ /**
129
+ * @generated from field: string template_name = 4;
130
+ */
131
+ templateName: string;
132
+
133
+ /**
134
+ * @generated from field: string event_type = 5;
135
+ */
136
+ eventType: string;
137
+
138
+ /**
139
+ * @generated from field: string recipient_email = 6;
140
+ */
141
+ recipientEmail: string;
142
+
143
+ /**
144
+ * @generated from field: string recipient_name = 7;
145
+ */
146
+ recipientName: string;
147
+
148
+ /**
149
+ * @generated from field: string sender_email = 8;
150
+ */
151
+ senderEmail: string;
152
+
153
+ /**
154
+ * @generated from field: int64 artworker_id = 9;
155
+ */
156
+ artworkerId: bigint;
157
+
158
+ /**
159
+ * @generated from field: string job_id = 10;
160
+ */
161
+ jobId: string;
162
+
163
+ /**
164
+ * @generated from field: string job_type = 11;
165
+ */
166
+ jobType: string;
167
+
168
+ /**
169
+ * @generated from field: bool is_chase = 12;
170
+ */
171
+ isChase: boolean;
172
+
173
+ /**
174
+ * @generated from field: int32 chase_sequence = 13;
175
+ */
176
+ chaseSequence: number;
177
+
178
+ /**
179
+ * @generated from field: notification.v2.DeliveryStatus status = 14;
180
+ */
181
+ status: DeliveryStatus;
182
+
183
+ /**
184
+ * @generated from field: google.protobuf.Timestamp sent_at = 15;
185
+ */
186
+ sentAt?: Timestamp;
187
+
188
+ /**
189
+ * @generated from field: google.protobuf.Timestamp delivered_at = 16;
190
+ */
191
+ deliveredAt?: Timestamp;
192
+
193
+ /**
194
+ * @generated from field: google.protobuf.Timestamp opened_at = 17;
195
+ */
196
+ openedAt?: Timestamp;
197
+
198
+ /**
199
+ * @generated from field: google.protobuf.Timestamp failed_at = 18;
200
+ */
201
+ failedAt?: Timestamp;
202
+
203
+ /**
204
+ * @generated from field: string failure_reason = 19;
205
+ */
206
+ failureReason: string;
207
+
208
+ /**
209
+ * @generated from field: google.protobuf.Timestamp created_at = 20;
210
+ */
211
+ createdAt?: Timestamp;
212
+ };
213
+
214
+ /**
215
+ * Describes the message notification.v2.EmailSend.
216
+ * Use `create(EmailSendSchema)` to create a new message.
217
+ */
218
+ export const EmailSendSchema: GenMessage<EmailSend> = /*@__PURE__*/
219
+ messageDesc(file_notification_v2_notification, 1);
220
+
221
+ /**
222
+ * @generated from message notification.v2.SendReminderRequest
223
+ */
224
+ export type SendReminderRequest = Message<"notification.v2.SendReminderRequest"> & {
225
+ /**
226
+ * @generated from field: string notification_id = 2;
227
+ */
228
+ notificationId: string;
229
+
230
+ /**
231
+ * alternative to notification_id — looks up the active notification for this job
232
+ *
233
+ * @generated from field: string job_id = 3;
234
+ */
235
+ jobId: string;
236
+ };
237
+
238
+ /**
239
+ * Describes the message notification.v2.SendReminderRequest.
240
+ * Use `create(SendReminderRequestSchema)` to create a new message.
241
+ */
242
+ export const SendReminderRequestSchema: GenMessage<SendReminderRequest> = /*@__PURE__*/
243
+ messageDesc(file_notification_v2_notification, 2);
244
+
245
+ /**
246
+ * @generated from message notification.v2.SendReminderResponse
247
+ */
248
+ export type SendReminderResponse = Message<"notification.v2.SendReminderResponse"> & {
249
+ /**
250
+ * @generated from field: bool ok = 1;
251
+ */
252
+ ok: boolean;
253
+ };
254
+
255
+ /**
256
+ * Describes the message notification.v2.SendReminderResponse.
257
+ * Use `create(SendReminderResponseSchema)` to create a new message.
258
+ */
259
+ export const SendReminderResponseSchema: GenMessage<SendReminderResponse> = /*@__PURE__*/
260
+ messageDesc(file_notification_v2_notification, 3);
261
+
262
+ /**
263
+ * @generated from message notification.v2.SendBulkReminderRequest
264
+ */
265
+ export type SendBulkReminderRequest = Message<"notification.v2.SendBulkReminderRequest"> & {
266
+ /**
267
+ * @generated from field: repeated string notification_ids = 2;
268
+ */
269
+ notificationIds: string[];
270
+
271
+ /**
272
+ * alternative to notification_ids — each resolved to its active notification
273
+ *
274
+ * @generated from field: repeated string job_ids = 3;
275
+ */
276
+ jobIds: string[];
277
+ };
278
+
279
+ /**
280
+ * Describes the message notification.v2.SendBulkReminderRequest.
281
+ * Use `create(SendBulkReminderRequestSchema)` to create a new message.
282
+ */
283
+ export const SendBulkReminderRequestSchema: GenMessage<SendBulkReminderRequest> = /*@__PURE__*/
284
+ messageDesc(file_notification_v2_notification, 4);
285
+
286
+ /**
287
+ * @generated from message notification.v2.SendBulkReminderResponse
288
+ */
289
+ export type SendBulkReminderResponse = Message<"notification.v2.SendBulkReminderResponse"> & {
290
+ /**
291
+ * @generated from field: bool ok = 1;
292
+ */
293
+ ok: boolean;
294
+
295
+ /**
296
+ * @generated from field: repeated notification.v2.SendBulkReminderResponse.Error errors = 2;
297
+ */
298
+ errors: SendBulkReminderResponse_Error[];
299
+ };
300
+
301
+ /**
302
+ * Describes the message notification.v2.SendBulkReminderResponse.
303
+ * Use `create(SendBulkReminderResponseSchema)` to create a new message.
304
+ */
305
+ export const SendBulkReminderResponseSchema: GenMessage<SendBulkReminderResponse> = /*@__PURE__*/
306
+ messageDesc(file_notification_v2_notification, 5);
307
+
308
+ /**
309
+ * @generated from message notification.v2.SendBulkReminderResponse.Error
310
+ */
311
+ export type SendBulkReminderResponse_Error = Message<"notification.v2.SendBulkReminderResponse.Error"> & {
312
+ /**
313
+ * @generated from field: string notification_id = 1;
314
+ */
315
+ notificationId: string;
316
+
317
+ /**
318
+ * @generated from field: string error = 2;
319
+ */
320
+ error: string;
321
+
322
+ /**
323
+ * populated when the request used job_ids
324
+ *
325
+ * @generated from field: string job_id = 3;
326
+ */
327
+ jobId: string;
328
+ };
329
+
330
+ /**
331
+ * Describes the message notification.v2.SendBulkReminderResponse.Error.
332
+ * Use `create(SendBulkReminderResponse_ErrorSchema)` to create a new message.
333
+ */
334
+ export const SendBulkReminderResponse_ErrorSchema: GenMessage<SendBulkReminderResponse_Error> = /*@__PURE__*/
335
+ messageDesc(file_notification_v2_notification, 5, 0);
336
+
337
+ /**
338
+ * @generated from message notification.v2.SetEmailOpenedRequest
339
+ */
340
+ export type SetEmailOpenedRequest = Message<"notification.v2.SetEmailOpenedRequest"> & {
341
+ /**
342
+ * @generated from field: string email_ref = 1;
343
+ */
344
+ emailRef: string;
345
+ };
346
+
347
+ /**
348
+ * Describes the message notification.v2.SetEmailOpenedRequest.
349
+ * Use `create(SetEmailOpenedRequestSchema)` to create a new message.
350
+ */
351
+ export const SetEmailOpenedRequestSchema: GenMessage<SetEmailOpenedRequest> = /*@__PURE__*/
352
+ messageDesc(file_notification_v2_notification, 6);
353
+
354
+ /**
355
+ * @generated from message notification.v2.SetEmailOpenedResponse
356
+ */
357
+ export type SetEmailOpenedResponse = Message<"notification.v2.SetEmailOpenedResponse"> & {
358
+ };
359
+
360
+ /**
361
+ * Describes the message notification.v2.SetEmailOpenedResponse.
362
+ * Use `create(SetEmailOpenedResponseSchema)` to create a new message.
363
+ */
364
+ export const SetEmailOpenedResponseSchema: GenMessage<SetEmailOpenedResponse> = /*@__PURE__*/
365
+ messageDesc(file_notification_v2_notification, 7);
366
+
367
+ /**
368
+ * @generated from message notification.v2.GetNotificationRequest
369
+ */
370
+ export type GetNotificationRequest = Message<"notification.v2.GetNotificationRequest"> & {
371
+ /**
372
+ * @generated from field: string notification_id = 2;
373
+ */
374
+ notificationId: string;
375
+
376
+ /**
377
+ * @generated from field: bool include_sends = 3;
378
+ */
379
+ includeSends: boolean;
380
+
381
+ /**
382
+ * alternative to notification_id — looks up the active notification for this job
383
+ *
384
+ * @generated from field: string job_id = 4;
385
+ */
386
+ jobId: string;
387
+ };
388
+
389
+ /**
390
+ * Describes the message notification.v2.GetNotificationRequest.
391
+ * Use `create(GetNotificationRequestSchema)` to create a new message.
392
+ */
393
+ export const GetNotificationRequestSchema: GenMessage<GetNotificationRequest> = /*@__PURE__*/
394
+ messageDesc(file_notification_v2_notification, 8);
395
+
396
+ /**
397
+ * @generated from message notification.v2.GetNotificationResponse
398
+ */
399
+ export type GetNotificationResponse = Message<"notification.v2.GetNotificationResponse"> & {
400
+ /**
401
+ * @generated from field: notification.v2.Notification notification = 1;
402
+ */
403
+ notification?: Notification;
404
+ };
405
+
406
+ /**
407
+ * Describes the message notification.v2.GetNotificationResponse.
408
+ * Use `create(GetNotificationResponseSchema)` to create a new message.
409
+ */
410
+ export const GetNotificationResponseSchema: GenMessage<GetNotificationResponse> = /*@__PURE__*/
411
+ messageDesc(file_notification_v2_notification, 9);
412
+
413
+ /**
414
+ * @generated from message notification.v2.GetEmailSendsRequest
415
+ */
416
+ export type GetEmailSendsRequest = Message<"notification.v2.GetEmailSendsRequest"> & {
417
+ /**
418
+ * @generated from field: string job_id = 2;
419
+ */
420
+ jobId: string;
421
+ };
422
+
423
+ /**
424
+ * Describes the message notification.v2.GetEmailSendsRequest.
425
+ * Use `create(GetEmailSendsRequestSchema)` to create a new message.
426
+ */
427
+ export const GetEmailSendsRequestSchema: GenMessage<GetEmailSendsRequest> = /*@__PURE__*/
428
+ messageDesc(file_notification_v2_notification, 10);
429
+
430
+ /**
431
+ * @generated from message notification.v2.GetEmailSendsResponse
432
+ */
433
+ export type GetEmailSendsResponse = Message<"notification.v2.GetEmailSendsResponse"> & {
434
+ /**
435
+ * @generated from field: repeated notification.v2.EmailSend email_sends = 1;
436
+ */
437
+ emailSends: EmailSend[];
438
+ };
439
+
440
+ /**
441
+ * Describes the message notification.v2.GetEmailSendsResponse.
442
+ * Use `create(GetEmailSendsResponseSchema)` to create a new message.
443
+ */
444
+ export const GetEmailSendsResponseSchema: GenMessage<GetEmailSendsResponse> = /*@__PURE__*/
445
+ messageDesc(file_notification_v2_notification, 11);
446
+
447
+ /**
448
+ * @generated from message notification.v2.SendConsolidatedNowRequest
449
+ */
450
+ export type SendConsolidatedNowRequest = Message<"notification.v2.SendConsolidatedNowRequest"> & {
451
+ /**
452
+ * @generated from field: string consolidated_email_id = 1;
453
+ */
454
+ consolidatedEmailId: string;
455
+ };
456
+
457
+ /**
458
+ * Describes the message notification.v2.SendConsolidatedNowRequest.
459
+ * Use `create(SendConsolidatedNowRequestSchema)` to create a new message.
460
+ */
461
+ export const SendConsolidatedNowRequestSchema: GenMessage<SendConsolidatedNowRequest> = /*@__PURE__*/
462
+ messageDesc(file_notification_v2_notification, 12);
463
+
464
+ /**
465
+ * @generated from message notification.v2.SendConsolidatedNowResponse
466
+ */
467
+ export type SendConsolidatedNowResponse = Message<"notification.v2.SendConsolidatedNowResponse"> & {
468
+ };
469
+
470
+ /**
471
+ * Describes the message notification.v2.SendConsolidatedNowResponse.
472
+ * Use `create(SendConsolidatedNowResponseSchema)` to create a new message.
473
+ */
474
+ export const SendConsolidatedNowResponseSchema: GenMessage<SendConsolidatedNowResponse> = /*@__PURE__*/
475
+ messageDesc(file_notification_v2_notification, 13);
476
+
477
+ /**
478
+ * @generated from message notification.v2.ExtendConsolidatedTimerRequest
479
+ */
480
+ export type ExtendConsolidatedTimerRequest = Message<"notification.v2.ExtendConsolidatedTimerRequest"> & {
481
+ /**
482
+ * @generated from field: string consolidated_email_id = 1;
483
+ */
484
+ consolidatedEmailId: string;
485
+
486
+ /**
487
+ * @generated from field: int32 additional_seconds = 2;
488
+ */
489
+ additionalSeconds: number;
490
+ };
491
+
492
+ /**
493
+ * Describes the message notification.v2.ExtendConsolidatedTimerRequest.
494
+ * Use `create(ExtendConsolidatedTimerRequestSchema)` to create a new message.
495
+ */
496
+ export const ExtendConsolidatedTimerRequestSchema: GenMessage<ExtendConsolidatedTimerRequest> = /*@__PURE__*/
497
+ messageDesc(file_notification_v2_notification, 14);
498
+
499
+ /**
500
+ * @generated from message notification.v2.ExtendConsolidatedTimerResponse
501
+ */
502
+ export type ExtendConsolidatedTimerResponse = Message<"notification.v2.ExtendConsolidatedTimerResponse"> & {
503
+ /**
504
+ * @generated from field: google.protobuf.Timestamp new_send_after = 1;
505
+ */
506
+ newSendAfter?: Timestamp;
507
+ };
508
+
509
+ /**
510
+ * Describes the message notification.v2.ExtendConsolidatedTimerResponse.
511
+ * Use `create(ExtendConsolidatedTimerResponseSchema)` to create a new message.
512
+ */
513
+ export const ExtendConsolidatedTimerResponseSchema: GenMessage<ExtendConsolidatedTimerResponse> = /*@__PURE__*/
514
+ messageDesc(file_notification_v2_notification, 15);
515
+
516
+ /**
517
+ * @generated from message notification.v2.GetConsolidatedEmailRequest
518
+ */
519
+ export type GetConsolidatedEmailRequest = Message<"notification.v2.GetConsolidatedEmailRequest"> & {
520
+ /**
521
+ * backward compat: used as lookup key when consolidate_key empty
522
+ *
523
+ * @generated from field: string job_id = 1;
524
+ */
525
+ jobId: string;
526
+
527
+ /**
528
+ * when set, used for lookup; else job_id is used
529
+ *
530
+ * @generated from field: string consolidate_key = 2;
531
+ */
532
+ consolidateKey: string;
533
+ };
534
+
535
+ /**
536
+ * Describes the message notification.v2.GetConsolidatedEmailRequest.
537
+ * Use `create(GetConsolidatedEmailRequestSchema)` to create a new message.
538
+ */
539
+ export const GetConsolidatedEmailRequestSchema: GenMessage<GetConsolidatedEmailRequest> = /*@__PURE__*/
540
+ messageDesc(file_notification_v2_notification, 16);
541
+
542
+ /**
543
+ * @generated from message notification.v2.GetConsolidatedEmailResponse
544
+ */
545
+ export type GetConsolidatedEmailResponse = Message<"notification.v2.GetConsolidatedEmailResponse"> & {
546
+ /**
547
+ * @generated from field: notification.v2.ConsolidatedEmail consolidated_email = 1;
548
+ */
549
+ consolidatedEmail?: ConsolidatedEmail;
550
+ };
551
+
552
+ /**
553
+ * Describes the message notification.v2.GetConsolidatedEmailResponse.
554
+ * Use `create(GetConsolidatedEmailResponseSchema)` to create a new message.
555
+ */
556
+ export const GetConsolidatedEmailResponseSchema: GenMessage<GetConsolidatedEmailResponse> = /*@__PURE__*/
557
+ messageDesc(file_notification_v2_notification, 17);
558
+
559
+ /**
560
+ * @generated from message notification.v2.ConsolidatedEmail
561
+ */
562
+ export type ConsolidatedEmail = Message<"notification.v2.ConsolidatedEmail"> & {
563
+ /**
564
+ * @generated from field: string id = 1;
565
+ */
566
+ id: string;
567
+
568
+ /**
569
+ * @generated from field: string job_id = 2;
570
+ */
571
+ jobId: string;
572
+
573
+ /**
574
+ * @generated from field: string status = 3;
575
+ */
576
+ status: string;
577
+
578
+ /**
579
+ * @generated from field: google.protobuf.Timestamp send_after = 4;
580
+ */
581
+ sendAfter?: Timestamp;
582
+
583
+ /**
584
+ * @generated from field: int32 delay_seconds = 5;
585
+ */
586
+ delaySeconds: number;
587
+
588
+ /**
589
+ * @generated from field: int32 item_count = 6;
590
+ */
591
+ itemCount: number;
592
+
593
+ /**
594
+ * @generated from field: repeated notification.v2.ConsolidatedEmailItem items = 7;
595
+ */
596
+ items: ConsolidatedEmailItem[];
597
+
598
+ /**
599
+ * @generated from field: google.protobuf.Timestamp created_at = 8;
600
+ */
601
+ createdAt?: Timestamp;
602
+ };
603
+
604
+ /**
605
+ * Describes the message notification.v2.ConsolidatedEmail.
606
+ * Use `create(ConsolidatedEmailSchema)` to create a new message.
607
+ */
608
+ export const ConsolidatedEmailSchema: GenMessage<ConsolidatedEmail> = /*@__PURE__*/
609
+ messageDesc(file_notification_v2_notification, 18);
610
+
611
+ /**
612
+ * @generated from message notification.v2.ConsolidatedEmailItem
613
+ */
614
+ export type ConsolidatedEmailItem = Message<"notification.v2.ConsolidatedEmailItem"> & {
615
+ /**
616
+ * @generated from field: string id = 1;
617
+ */
618
+ id: string;
619
+
620
+ /**
621
+ * @generated from field: string job_item_id = 2;
622
+ */
623
+ jobItemId: string;
624
+
625
+ /**
626
+ * @generated from field: string event_type = 3;
627
+ */
628
+ eventType: string;
629
+
630
+ /**
631
+ * @generated from field: string action_summary = 4;
632
+ */
633
+ actionSummary: string;
634
+
635
+ /**
636
+ * @generated from field: google.protobuf.Timestamp created_at = 5;
637
+ */
638
+ createdAt?: Timestamp;
639
+ };
640
+
641
+ /**
642
+ * Describes the message notification.v2.ConsolidatedEmailItem.
643
+ * Use `create(ConsolidatedEmailItemSchema)` to create a new message.
644
+ */
645
+ export const ConsolidatedEmailItemSchema: GenMessage<ConsolidatedEmailItem> = /*@__PURE__*/
646
+ messageDesc(file_notification_v2_notification, 19);
647
+
648
+ /**
649
+ * @generated from message notification.v2.RenderEmailPreviewRequest
650
+ */
651
+ export type RenderEmailPreviewRequest = Message<"notification.v2.RenderEmailPreviewRequest"> & {
652
+ /**
653
+ * @generated from field: string notification_id = 2;
654
+ */
655
+ notificationId: string;
656
+
657
+ /**
658
+ * @generated from field: string job_id = 3;
659
+ */
660
+ jobId: string;
661
+
662
+ /**
663
+ * @generated from field: string consolidated_email_id = 4;
664
+ */
665
+ consolidatedEmailId: string;
666
+
667
+ /**
668
+ * @generated from field: string email_send_id = 5;
669
+ */
670
+ emailSendId: string;
671
+ };
672
+
673
+ /**
674
+ * Describes the message notification.v2.RenderEmailPreviewRequest.
675
+ * Use `create(RenderEmailPreviewRequestSchema)` to create a new message.
676
+ */
677
+ export const RenderEmailPreviewRequestSchema: GenMessage<RenderEmailPreviewRequest> = /*@__PURE__*/
678
+ messageDesc(file_notification_v2_notification, 20);
679
+
680
+ /**
681
+ * @generated from message notification.v2.RenderEmailPreviewResponse
682
+ */
683
+ export type RenderEmailPreviewResponse = Message<"notification.v2.RenderEmailPreviewResponse"> & {
684
+ /**
685
+ * @generated from field: string subject = 1;
686
+ */
687
+ subject: string;
688
+
689
+ /**
690
+ * @generated from field: string html = 2;
691
+ */
692
+ html: string;
693
+
694
+ /**
695
+ * @generated from field: string plain_text = 3;
696
+ */
697
+ plainText: string;
698
+
699
+ /**
700
+ * @generated from field: string template_name = 4;
701
+ */
702
+ templateName: string;
703
+
704
+ /**
705
+ * @generated from field: string event_type = 5;
706
+ */
707
+ eventType: string;
708
+
709
+ /**
710
+ * @generated from field: string recipient_email = 6;
711
+ */
712
+ recipientEmail: string;
713
+
714
+ /**
715
+ * @generated from field: string recipient_name = 7;
716
+ */
717
+ recipientName: string;
718
+ };
719
+
720
+ /**
721
+ * Describes the message notification.v2.RenderEmailPreviewResponse.
722
+ * Use `create(RenderEmailPreviewResponseSchema)` to create a new message.
723
+ */
724
+ export const RenderEmailPreviewResponseSchema: GenMessage<RenderEmailPreviewResponse> = /*@__PURE__*/
725
+ messageDesc(file_notification_v2_notification, 21);
726
+
727
+ /**
728
+ * @generated from message notification.v2.TriggerChasesRequest
729
+ */
730
+ export type TriggerChasesRequest = Message<"notification.v2.TriggerChasesRequest"> & {
731
+ };
732
+
733
+ /**
734
+ * Describes the message notification.v2.TriggerChasesRequest.
735
+ * Use `create(TriggerChasesRequestSchema)` to create a new message.
736
+ */
737
+ export const TriggerChasesRequestSchema: GenMessage<TriggerChasesRequest> = /*@__PURE__*/
738
+ messageDesc(file_notification_v2_notification, 22);
739
+
740
+ /**
741
+ * @generated from message notification.v2.TriggerChasesResponse
742
+ */
743
+ export type TriggerChasesResponse = Message<"notification.v2.TriggerChasesResponse"> & {
744
+ /**
745
+ * @generated from field: int32 chases_sent = 1;
746
+ */
747
+ chasesSent: number;
748
+
749
+ /**
750
+ * @generated from field: int32 action_set_chases_sent = 2;
751
+ */
752
+ actionSetChasesSent: number;
753
+ };
754
+
755
+ /**
756
+ * Describes the message notification.v2.TriggerChasesResponse.
757
+ * Use `create(TriggerChasesResponseSchema)` to create a new message.
758
+ */
759
+ export const TriggerChasesResponseSchema: GenMessage<TriggerChasesResponse> = /*@__PURE__*/
760
+ messageDesc(file_notification_v2_notification, 23);
761
+
762
+ /**
763
+ * @generated from message notification.v2.GetJobGroupEmailHistoryRequest
764
+ */
765
+ export type GetJobGroupEmailHistoryRequest = Message<"notification.v2.GetJobGroupEmailHistoryRequest"> & {
766
+ /**
767
+ * @generated from field: string consolidate_key = 1;
768
+ */
769
+ consolidateKey: string;
770
+ };
771
+
772
+ /**
773
+ * Describes the message notification.v2.GetJobGroupEmailHistoryRequest.
774
+ * Use `create(GetJobGroupEmailHistoryRequestSchema)` to create a new message.
775
+ */
776
+ export const GetJobGroupEmailHistoryRequestSchema: GenMessage<GetJobGroupEmailHistoryRequest> = /*@__PURE__*/
777
+ messageDesc(file_notification_v2_notification, 24);
778
+
779
+ /**
780
+ * @generated from message notification.v2.GetJobGroupEmailHistoryResponse
781
+ */
782
+ export type GetJobGroupEmailHistoryResponse = Message<"notification.v2.GetJobGroupEmailHistoryResponse"> & {
783
+ /**
784
+ * @generated from field: repeated notification.v2.EmailTimelineEntry entries = 1;
785
+ */
786
+ entries: EmailTimelineEntry[];
787
+ };
788
+
789
+ /**
790
+ * Describes the message notification.v2.GetJobGroupEmailHistoryResponse.
791
+ * Use `create(GetJobGroupEmailHistoryResponseSchema)` to create a new message.
792
+ */
793
+ export const GetJobGroupEmailHistoryResponseSchema: GenMessage<GetJobGroupEmailHistoryResponse> = /*@__PURE__*/
794
+ messageDesc(file_notification_v2_notification, 25);
795
+
796
+ /**
797
+ * @generated from message notification.v2.GetJobEmailHistoryInGroupRequest
798
+ */
799
+ export type GetJobEmailHistoryInGroupRequest = Message<"notification.v2.GetJobEmailHistoryInGroupRequest"> & {
800
+ /**
801
+ * @generated from field: string consolidate_key = 1;
802
+ */
803
+ consolidateKey: string;
804
+
805
+ /**
806
+ * @generated from field: string job_id = 2;
807
+ */
808
+ jobId: string;
809
+ };
810
+
811
+ /**
812
+ * Describes the message notification.v2.GetJobEmailHistoryInGroupRequest.
813
+ * Use `create(GetJobEmailHistoryInGroupRequestSchema)` to create a new message.
814
+ */
815
+ export const GetJobEmailHistoryInGroupRequestSchema: GenMessage<GetJobEmailHistoryInGroupRequest> = /*@__PURE__*/
816
+ messageDesc(file_notification_v2_notification, 26);
817
+
818
+ /**
819
+ * @generated from message notification.v2.GetJobEmailHistoryInGroupResponse
820
+ */
821
+ export type GetJobEmailHistoryInGroupResponse = Message<"notification.v2.GetJobEmailHistoryInGroupResponse"> & {
822
+ /**
823
+ * @generated from field: repeated notification.v2.EmailTimelineEntry entries = 1;
824
+ */
825
+ entries: EmailTimelineEntry[];
826
+ };
827
+
828
+ /**
829
+ * Describes the message notification.v2.GetJobEmailHistoryInGroupResponse.
830
+ * Use `create(GetJobEmailHistoryInGroupResponseSchema)` to create a new message.
831
+ */
832
+ export const GetJobEmailHistoryInGroupResponseSchema: GenMessage<GetJobEmailHistoryInGroupResponse> = /*@__PURE__*/
833
+ messageDesc(file_notification_v2_notification, 27);
834
+
835
+ /**
836
+ * @generated from message notification.v2.EmailTimelineEntry
837
+ */
838
+ export type EmailTimelineEntry = Message<"notification.v2.EmailTimelineEntry"> & {
839
+ /**
840
+ * @generated from field: string email_send_id = 1;
841
+ */
842
+ emailSendId: string;
843
+
844
+ /**
845
+ * @generated from field: string email_ref = 2;
846
+ */
847
+ emailRef: string;
848
+
849
+ /**
850
+ * @generated from field: string template_name = 3;
851
+ */
852
+ templateName: string;
853
+
854
+ /**
855
+ * @generated from field: string event_type = 4;
856
+ */
857
+ eventType: string;
858
+
859
+ /**
860
+ * @generated from field: bool is_chase = 5;
861
+ */
862
+ isChase: boolean;
863
+
864
+ /**
865
+ * @generated from field: int32 chase_sequence = 6;
866
+ */
867
+ chaseSequence: number;
868
+
869
+ /**
870
+ * @generated from field: notification.v2.DeliveryStatus status = 7;
871
+ */
872
+ status: DeliveryStatus;
873
+
874
+ /**
875
+ * @generated from field: google.protobuf.Timestamp sent_at = 8;
876
+ */
877
+ sentAt?: Timestamp;
878
+
879
+ /**
880
+ * @generated from field: google.protobuf.Timestamp delivered_at = 9;
881
+ */
882
+ deliveredAt?: Timestamp;
883
+
884
+ /**
885
+ * @generated from field: google.protobuf.Timestamp opened_at = 10;
886
+ */
887
+ openedAt?: Timestamp;
888
+
889
+ /**
890
+ * @generated from field: google.protobuf.Timestamp failed_at = 11;
891
+ */
892
+ failedAt?: Timestamp;
893
+
894
+ /**
895
+ * @generated from field: string failure_reason = 12;
896
+ */
897
+ failureReason: string;
898
+
899
+ /**
900
+ * @generated from field: repeated string job_ids = 13;
901
+ */
902
+ jobIds: string[];
903
+ };
904
+
905
+ /**
906
+ * Describes the message notification.v2.EmailTimelineEntry.
907
+ * Use `create(EmailTimelineEntrySchema)` to create a new message.
908
+ */
909
+ export const EmailTimelineEntrySchema: GenMessage<EmailTimelineEntry> = /*@__PURE__*/
910
+ messageDesc(file_notification_v2_notification, 28);
911
+
912
+ /**
913
+ * @generated from enum notification.v2.NotificationStatus
914
+ */
915
+ export enum NotificationStatus {
916
+ /**
917
+ * @generated from enum value: NOTIFICATION_STATUS_UNSPECIFIED = 0;
918
+ */
919
+ UNSPECIFIED = 0,
920
+
921
+ /**
922
+ * @generated from enum value: NOTIFICATION_STATUS_ACTIVE = 1;
923
+ */
924
+ ACTIVE = 1,
925
+
926
+ /**
927
+ * @generated from enum value: NOTIFICATION_STATUS_COMPLETED = 2;
928
+ */
929
+ COMPLETED = 2,
930
+
931
+ /**
932
+ * @generated from enum value: NOTIFICATION_STATUS_CANCELLED = 3;
933
+ */
934
+ CANCELLED = 3,
935
+ }
936
+
937
+ /**
938
+ * Describes the enum notification.v2.NotificationStatus.
939
+ */
940
+ export const NotificationStatusSchema: GenEnum<NotificationStatus> = /*@__PURE__*/
941
+ enumDesc(file_notification_v2_notification, 0);
942
+
943
+ /**
944
+ * @generated from enum notification.v2.DeliveryStatus
945
+ */
946
+ export enum DeliveryStatus {
947
+ /**
948
+ * @generated from enum value: DELIVERY_STATUS_UNSPECIFIED = 0;
949
+ */
950
+ UNSPECIFIED = 0,
951
+
952
+ /**
953
+ * @generated from enum value: DELIVERY_STATUS_PENDING = 1;
954
+ */
955
+ PENDING = 1,
956
+
957
+ /**
958
+ * @generated from enum value: DELIVERY_STATUS_SENT = 2;
959
+ */
960
+ SENT = 2,
961
+
962
+ /**
963
+ * @generated from enum value: DELIVERY_STATUS_DELIVERED = 3;
964
+ */
965
+ DELIVERED = 3,
966
+
967
+ /**
968
+ * @generated from enum value: DELIVERY_STATUS_OPENED = 4;
969
+ */
970
+ OPENED = 4,
971
+
972
+ /**
973
+ * @generated from enum value: DELIVERY_STATUS_FAILED = 5;
974
+ */
975
+ FAILED = 5,
976
+ }
977
+
978
+ /**
979
+ * Describes the enum notification.v2.DeliveryStatus.
980
+ */
981
+ export const DeliveryStatusSchema: GenEnum<DeliveryStatus> = /*@__PURE__*/
982
+ enumDesc(file_notification_v2_notification, 1);
983
+