apollo-deploy-signal-sdk 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +5 -0
  3. data/LICENSE +21 -0
  4. data/README.md +79 -0
  5. data/docs/README.md +30 -0
  6. data/docs/domains/api-keys.md +92 -0
  7. data/docs/domains/contact-properties.md +122 -0
  8. data/docs/domains/contacts.md +394 -0
  9. data/docs/domains/emails.md +150 -0
  10. data/docs/domains/metrics.md +131 -0
  11. data/docs/domains/projects.md +127 -0
  12. data/docs/domains/segments.md +116 -0
  13. data/docs/domains/sending-domains.md +160 -0
  14. data/docs/domains/suppressions.md +120 -0
  15. data/docs/domains/topics.md +141 -0
  16. data/docs/domains/webhooks.md +200 -0
  17. data/docs/types.md +1225 -0
  18. data/lib/apollo-deploy-signal-sdk.rb +3 -0
  19. data/lib/apollo_deploy_signal_sdk/client.rb +111 -0
  20. data/lib/apollo_deploy_signal_sdk/errors.rb +150 -0
  21. data/lib/apollo_deploy_signal_sdk/resources/api-keys.rb +86 -0
  22. data/lib/apollo_deploy_signal_sdk/resources/contact-properties.rb +108 -0
  23. data/lib/apollo_deploy_signal_sdk/resources/contacts.rb +356 -0
  24. data/lib/apollo_deploy_signal_sdk/resources/emails.rb +128 -0
  25. data/lib/apollo_deploy_signal_sdk/resources/metrics.rb +122 -0
  26. data/lib/apollo_deploy_signal_sdk/resources/projects.rb +114 -0
  27. data/lib/apollo_deploy_signal_sdk/resources/segments.rb +105 -0
  28. data/lib/apollo_deploy_signal_sdk/resources/sending-domains.rb +144 -0
  29. data/lib/apollo_deploy_signal_sdk/resources/suppressions.rb +104 -0
  30. data/lib/apollo_deploy_signal_sdk/resources/topics.rb +126 -0
  31. data/lib/apollo_deploy_signal_sdk/resources/webhooks.rb +184 -0
  32. data/lib/apollo_deploy_signal_sdk/transport.rb +618 -0
  33. data/lib/apollo_deploy_signal_sdk/types.rb +4917 -0
  34. data/lib/apollo_deploy_signal_sdk/version.rb +5 -0
  35. data/lib/apollo_deploy_signal_sdk.rb +47 -0
  36. metadata +135 -0
@@ -0,0 +1,356 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../transport"
4
+ require_relative "../errors"
5
+
6
+ module ApolloDeploySignalSdk
7
+ # contacts API domain
8
+ class Contacts
9
+ attr_reader :transport
10
+
11
+ def initialize(transport)
12
+ @transport = transport
13
+ end
14
+
15
+ # @param project_id [String]
16
+ # @raise [ApolloDeploySignalSdk::SDKError]
17
+ # @return [ContactPageResponse]
18
+ def list_contacts(project_id:)
19
+ path_params = {
20
+ "projectId" => project_id,
21
+ }
22
+
23
+ transport.request(
24
+ method: :get,
25
+ path: "/v1/projects/${projectId}/contacts",
26
+ path_params: path_params,
27
+ timeout_ms: nil,
28
+ )
29
+ end
30
+
31
+ # @param project_id [String]
32
+ # @param contact_id [String]
33
+ # @raise [ApolloDeploySignalSdk::SDKError]
34
+ # @return [ContactResponse]
35
+ def get_contact(project_id:, contact_id:)
36
+ path_params = {
37
+ "projectId" => project_id,
38
+ "contactId" => contact_id,
39
+ }
40
+
41
+ transport.request(
42
+ method: :get,
43
+ path: "/v1/projects/${projectId}/contacts/${contactId}",
44
+ path_params: path_params,
45
+ timeout_ms: nil,
46
+ )
47
+ end
48
+
49
+ # @param project_id [String]
50
+ # @param contact_id [String]
51
+ # @raise [ApolloDeploySignalSdk::SDKError]
52
+ # @return [ListContactSegmentsResponse]
53
+ def list_contact_segments(project_id:, contact_id:)
54
+ path_params = {
55
+ "projectId" => project_id,
56
+ "contactId" => contact_id,
57
+ }
58
+
59
+ transport.request(
60
+ method: :get,
61
+ path: "/v1/projects/${projectId}/contacts/${contactId}/segments",
62
+ path_params: path_params,
63
+ timeout_ms: nil,
64
+ )
65
+ end
66
+
67
+ # @param project_id [String]
68
+ # @param contact_id [String]
69
+ # @raise [ApolloDeploySignalSdk::SDKError]
70
+ # @return [GetContactTopicsResponse]
71
+ def get_contact_topics(project_id:, contact_id:)
72
+ path_params = {
73
+ "projectId" => project_id,
74
+ "contactId" => contact_id,
75
+ }
76
+
77
+ transport.request(
78
+ method: :get,
79
+ path: "/v1/projects/${projectId}/contacts/${contactId}/topics",
80
+ path_params: path_params,
81
+ timeout_ms: nil,
82
+ )
83
+ end
84
+
85
+ # @param project_id [String]
86
+ # @param body [CreateContactBody] request body
87
+ # @raise [ApolloDeploySignalSdk::SDKError]
88
+ # @return [ContactResponse]
89
+ def create_contact(project_id:, body:)
90
+ path_params = {
91
+ "projectId" => project_id,
92
+ }
93
+
94
+ transport.request(
95
+ method: :post,
96
+ path: "/v1/projects/${projectId}/contacts",
97
+ path_params: path_params,
98
+ body: body,
99
+ content_type: "application/json",
100
+ timeout_ms: nil,
101
+ )
102
+ end
103
+
104
+ # @param project_id [String]
105
+ # @param contact_id [String]
106
+ # @param body [UpdateContactBody] request body
107
+ # @raise [ApolloDeploySignalSdk::SDKError]
108
+ # @return [ContactResponse]
109
+ def update_contact(project_id:, contact_id:, body:)
110
+ path_params = {
111
+ "projectId" => project_id,
112
+ "contactId" => contact_id,
113
+ }
114
+
115
+ transport.request(
116
+ method: :patch,
117
+ path: "/v1/projects/${projectId}/contacts/${contactId}",
118
+ path_params: path_params,
119
+ body: body,
120
+ content_type: "application/json",
121
+ timeout_ms: nil,
122
+ )
123
+ end
124
+
125
+ # @param project_id [String]
126
+ # @param contact_id [String]
127
+ # @raise [ApolloDeploySignalSdk::SDKError]
128
+ # @return [nil]
129
+ def delete_contact(project_id:, contact_id:)
130
+ path_params = {
131
+ "projectId" => project_id,
132
+ "contactId" => contact_id,
133
+ }
134
+
135
+ transport.request(
136
+ method: :delete,
137
+ path: "/v1/projects/${projectId}/contacts/${contactId}",
138
+ path_params: path_params,
139
+ timeout_ms: nil,
140
+ )
141
+ end
142
+
143
+ # @param project_id [String]
144
+ # @param contact_id [String]
145
+ # @raise [ApolloDeploySignalSdk::SDKError]
146
+ # @return [ContactResponse]
147
+ def upload_contact_image(project_id:, contact_id:)
148
+ path_params = {
149
+ "projectId" => project_id,
150
+ "contactId" => contact_id,
151
+ }
152
+
153
+ transport.request(
154
+ method: :post,
155
+ path: "/v1/projects/${projectId}/contacts/${contactId}/image",
156
+ path_params: path_params,
157
+ timeout_ms: nil,
158
+ )
159
+ end
160
+
161
+ # @param project_id [String]
162
+ # @param contact_id [String]
163
+ # @param body [SetImageUrlBody] request body
164
+ # @raise [ApolloDeploySignalSdk::SDKError]
165
+ # @return [ContactResponse]
166
+ def set_contact_image_url(project_id:, contact_id:, body:)
167
+ path_params = {
168
+ "projectId" => project_id,
169
+ "contactId" => contact_id,
170
+ }
171
+
172
+ transport.request(
173
+ method: :put,
174
+ path: "/v1/projects/${projectId}/contacts/${contactId}/image",
175
+ path_params: path_params,
176
+ body: body,
177
+ content_type: "application/json",
178
+ timeout_ms: nil,
179
+ )
180
+ end
181
+
182
+ # @param project_id [String]
183
+ # @param contact_id [String]
184
+ # @raise [ApolloDeploySignalSdk::SDKError]
185
+ # @return [nil]
186
+ def delete_contact_image(project_id:, contact_id:)
187
+ path_params = {
188
+ "projectId" => project_id,
189
+ "contactId" => contact_id,
190
+ }
191
+
192
+ transport.request(
193
+ method: :delete,
194
+ path: "/v1/projects/${projectId}/contacts/${contactId}/image",
195
+ path_params: path_params,
196
+ timeout_ms: nil,
197
+ )
198
+ end
199
+
200
+ # @param project_id [String]
201
+ # @param contact_id [String]
202
+ # @param body [AddToSegmentBody] request body
203
+ # @raise [ApolloDeploySignalSdk::SDKError]
204
+ # @return [nil]
205
+ def add_contact_to_segment(project_id:, contact_id:, body:)
206
+ path_params = {
207
+ "projectId" => project_id,
208
+ "contactId" => contact_id,
209
+ }
210
+
211
+ transport.request(
212
+ method: :post,
213
+ path: "/v1/projects/${projectId}/contacts/${contactId}/segments",
214
+ path_params: path_params,
215
+ body: body,
216
+ content_type: "application/json",
217
+ timeout_ms: nil,
218
+ )
219
+ end
220
+
221
+ # @param project_id [String]
222
+ # @param contact_id [String]
223
+ # @param segment_id [String]
224
+ # @raise [ApolloDeploySignalSdk::SDKError]
225
+ # @return [nil]
226
+ def remove_contact_from_segment(project_id:, contact_id:, segment_id:)
227
+ path_params = {
228
+ "projectId" => project_id,
229
+ "contactId" => contact_id,
230
+ "segmentId" => segment_id,
231
+ }
232
+
233
+ transport.request(
234
+ method: :delete,
235
+ path: "/v1/projects/${projectId}/contacts/${contactId}/segments/${segmentId}",
236
+ path_params: path_params,
237
+ timeout_ms: nil,
238
+ )
239
+ end
240
+
241
+ # @param project_id [String]
242
+ # @param contact_id [String]
243
+ # @param body [UpdateTopicsBody] request body
244
+ # @raise [ApolloDeploySignalSdk::SDKError]
245
+ # @return [nil]
246
+ def update_contact_topics(project_id:, contact_id:, body:)
247
+ path_params = {
248
+ "projectId" => project_id,
249
+ "contactId" => contact_id,
250
+ }
251
+
252
+ transport.request(
253
+ method: :patch,
254
+ path: "/v1/projects/${projectId}/contacts/${contactId}/topics",
255
+ path_params: path_params,
256
+ body: body,
257
+ content_type: "application/json",
258
+ timeout_ms: nil,
259
+ )
260
+ end
261
+
262
+ # @param project_id [String]
263
+ # @param contact_id [String]
264
+ # @raise [ApolloDeploySignalSdk::SDKError]
265
+ # @return [GetContactActivityResponse]
266
+ def get_contact_activity(project_id:, contact_id:)
267
+ path_params = {
268
+ "projectId" => project_id,
269
+ "contactId" => contact_id,
270
+ }
271
+
272
+ transport.request(
273
+ method: :get,
274
+ path: "/v1/projects/${projectId}/contacts/${contactId}/activity",
275
+ path_params: path_params,
276
+ timeout_ms: nil,
277
+ )
278
+ end
279
+
280
+ # @param project_id [String]
281
+ # @param contact_id [String]
282
+ # @raise [ApolloDeploySignalSdk::SDKError]
283
+ # @return [EngagementScoreResponse]
284
+ def get_contact_engagement_score(project_id:, contact_id:)
285
+ path_params = {
286
+ "projectId" => project_id,
287
+ "contactId" => contact_id,
288
+ }
289
+
290
+ transport.request(
291
+ method: :get,
292
+ path: "/v1/projects/${projectId}/contacts/${contactId}/engagement",
293
+ path_params: path_params,
294
+ timeout_ms: nil,
295
+ )
296
+ end
297
+
298
+ # @param project_id [String]
299
+ # @param contact_id [String]
300
+ # @raise [ApolloDeploySignalSdk::SDKError]
301
+ # @return [EmailValidationStatusResponse]
302
+ def get_contact_email_validation_status(project_id:, contact_id:)
303
+ path_params = {
304
+ "projectId" => project_id,
305
+ "contactId" => contact_id,
306
+ }
307
+
308
+ transport.request(
309
+ method: :get,
310
+ path: "/v1/projects/${projectId}/contacts/${contactId}/email-validation",
311
+ path_params: path_params,
312
+ timeout_ms: nil,
313
+ )
314
+ end
315
+
316
+ # @param project_id [String]
317
+ # @param contact_id [String]
318
+ # @raise [ApolloDeploySignalSdk::SDKError]
319
+ # @return [EngagementScoreResponse]
320
+ def refresh_contact_engagement_score(project_id:, contact_id:)
321
+ path_params = {
322
+ "projectId" => project_id,
323
+ "contactId" => contact_id,
324
+ }
325
+
326
+ transport.request(
327
+ method: :post,
328
+ path: "/v1/projects/${projectId}/contacts/${contactId}/engagement/refresh",
329
+ path_params: path_params,
330
+ timeout_ms: nil,
331
+ )
332
+ end
333
+
334
+ # @param project_id [String]
335
+ # @param contact_id [String]
336
+ # @param body [RecordValidationBody] request body
337
+ # @raise [ApolloDeploySignalSdk::SDKError]
338
+ # @return [nil]
339
+ def record_contact_email_validation(project_id:, contact_id:, body:)
340
+ path_params = {
341
+ "projectId" => project_id,
342
+ "contactId" => contact_id,
343
+ }
344
+
345
+ transport.request(
346
+ method: :post,
347
+ path: "/v1/projects/${projectId}/contacts/${contactId}/email-validation",
348
+ path_params: path_params,
349
+ body: body,
350
+ content_type: "application/json",
351
+ timeout_ms: nil,
352
+ )
353
+ end
354
+
355
+ end
356
+ end
@@ -0,0 +1,128 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../transport"
4
+ require_relative "../errors"
5
+
6
+ module ApolloDeploySignalSdk
7
+ # emails API domain
8
+ class Emails
9
+ attr_reader :transport
10
+
11
+ def initialize(transport)
12
+ @transport = transport
13
+ end
14
+
15
+ # @param body [SendEmailRequest] request body
16
+ # @raise [ApolloDeploySignalSdk::SDKError]
17
+ # @return [SendEmailResponse]
18
+ def send_email(body:)
19
+
20
+ transport.request(
21
+ method: :post,
22
+ path: "/v1/emails",
23
+ body: body,
24
+ content_type: "application/json",
25
+ timeout_ms: nil,
26
+ )
27
+ end
28
+
29
+ # @param email_id [String]
30
+ # @raise [ApolloDeploySignalSdk::SDKError]
31
+ # @return [EmailDetailResponse]
32
+ def get_email(email_id:)
33
+ path_params = {
34
+ "emailId" => email_id,
35
+ }
36
+
37
+ transport.request(
38
+ method: :get,
39
+ path: "/v1/emails/${emailId}",
40
+ path_params: path_params,
41
+ timeout_ms: nil,
42
+ )
43
+ end
44
+
45
+ # @param body [BatchSendRequest] request body
46
+ # @raise [ApolloDeploySignalSdk::SDKError]
47
+ # @return [BatchSendResponse]
48
+ def batch_send_emails(body:)
49
+
50
+ transport.request(
51
+ method: :post,
52
+ path: "/v1/emails/batch",
53
+ body: body,
54
+ content_type: "application/json",
55
+ timeout_ms: nil,
56
+ )
57
+ end
58
+
59
+ # @param email_id [String]
60
+ # @raise [ApolloDeploySignalSdk::SDKError]
61
+ # @return [CancelResponse]
62
+ def cancel_email(email_id:)
63
+ path_params = {
64
+ "emailId" => email_id,
65
+ }
66
+
67
+ transport.request(
68
+ method: :delete,
69
+ path: "/v1/emails/${emailId}",
70
+ path_params: path_params,
71
+ timeout_ms: nil,
72
+ )
73
+ end
74
+
75
+ # @raise [ApolloDeploySignalSdk::SDKError]
76
+ # @return [BulkCancelResponse]
77
+ def bulk_cancel_emails()
78
+
79
+ transport.request(
80
+ method: :delete,
81
+ path: "/v1/emails",
82
+ timeout_ms: nil,
83
+ )
84
+ end
85
+
86
+ # @param project_id [String]
87
+ # @raise [ApolloDeploySignalSdk::SDKError]
88
+ # @return [StreamTokenResponse]
89
+ def issue_stream_token(project_id:)
90
+ path_params = {
91
+ "projectId" => project_id,
92
+ }
93
+
94
+ transport.request(
95
+ method: :post,
96
+ path: "/v1/emails/${projectId}/stream/token",
97
+ path_params: path_params,
98
+ timeout_ms: nil,
99
+ )
100
+ end
101
+
102
+ # @raise [ApolloDeploySignalSdk::SDKError]
103
+ # @return [Enumerator<SSEEvent>]
104
+ def stream_email_events()
105
+
106
+ transport.stream(
107
+ method: :get,
108
+ path: "/v1/emails/stream",
109
+ timeout_ms: nil,
110
+ )
111
+ end
112
+
113
+ # @param body [ValidateLinksRequest] request body
114
+ # @raise [ApolloDeploySignalSdk::SDKError]
115
+ # @return [ValidateLinksResponse]
116
+ def validate_links(body:)
117
+
118
+ transport.request(
119
+ method: :post,
120
+ path: "/v1/emails/validate",
121
+ body: body,
122
+ content_type: "application/json",
123
+ timeout_ms: nil,
124
+ )
125
+ end
126
+
127
+ end
128
+ end
@@ -0,0 +1,122 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../transport"
4
+ require_relative "../errors"
5
+
6
+ module ApolloDeploySignalSdk
7
+ # metrics API domain
8
+ class Metrics
9
+ attr_reader :transport
10
+
11
+ def initialize(transport)
12
+ @transport = transport
13
+ end
14
+
15
+ # @param id [String]
16
+ # @param query [Hash, nil] query parameters
17
+ # @raise [ApolloDeploySignalSdk::SDKError]
18
+ # @return [TopicPerformanceResponse]
19
+ def get_topic_performance(id:, query: nil)
20
+ path_params = {
21
+ "id" => id,
22
+ }
23
+ query_params = {}
24
+ query_params["window"] = query[:window] if query && query.key?(:window)
25
+ query_params["projectId"] = query[:project_id] if query && query.key?(:project_id)
26
+ query_params = nil if query_params.empty?
27
+
28
+ transport.request(
29
+ method: :get,
30
+ path: "/v1/metrics/topics/${id}",
31
+ path_params: path_params,
32
+ query: query_params,
33
+ timeout_ms: nil,
34
+ )
35
+ end
36
+
37
+ # @param id [String]
38
+ # @raise [ApolloDeploySignalSdk::SDKError]
39
+ # @return [EmailPerformanceResponse]
40
+ def get_email_performance(id:)
41
+ path_params = {
42
+ "id" => id,
43
+ }
44
+
45
+ transport.request(
46
+ method: :get,
47
+ path: "/v1/metrics/emails/${id}",
48
+ path_params: path_params,
49
+ timeout_ms: nil,
50
+ )
51
+ end
52
+
53
+ # @param id [String]
54
+ # @raise [ApolloDeploySignalSdk::SDKError]
55
+ # @return [EmailReadScrollAnalyticsResponse]
56
+ def get_email_engagement(id:)
57
+ path_params = {
58
+ "id" => id,
59
+ }
60
+
61
+ transport.request(
62
+ method: :get,
63
+ path: "/v1/metrics/emails/${id}/engagement",
64
+ path_params: path_params,
65
+ timeout_ms: nil,
66
+ )
67
+ end
68
+
69
+ # @param query [Hash, nil] query parameters
70
+ # @raise [ApolloDeploySignalSdk::SDKError]
71
+ # @return [ProjectMetricsSummaryResponse]
72
+ def get_project_metrics_summary(query: nil)
73
+ query_params = {}
74
+ query_params["window"] = query[:window] if query && query.key?(:window)
75
+ query_params["projectId"] = query[:project_id] if query && query.key?(:project_id)
76
+ query_params = nil if query_params.empty?
77
+
78
+ transport.request(
79
+ method: :get,
80
+ path: "/v1/metrics/summary",
81
+ query: query_params,
82
+ timeout_ms: nil,
83
+ )
84
+ end
85
+
86
+ # @param query [Hash, nil] query parameters
87
+ # @raise [ApolloDeploySignalSdk::SDKError]
88
+ # @return [ProjectMetricsTimelineResponse]
89
+ def get_project_metrics_timeline(query: nil)
90
+ query_params = {}
91
+ query_params["window"] = query[:window] if query && query.key?(:window)
92
+ query_params["granularity"] = query[:granularity] if query && query.key?(:granularity)
93
+ query_params["format"] = query[:format] if query && query.key?(:format)
94
+ query_params["projectId"] = query[:project_id] if query && query.key?(:project_id)
95
+ query_params = nil if query_params.empty?
96
+
97
+ transport.request(
98
+ method: :get,
99
+ path: "/v1/metrics/timeline",
100
+ query: query_params,
101
+ timeout_ms: nil,
102
+ )
103
+ end
104
+
105
+ # @param query [Hash, nil] query parameters
106
+ # @raise [ApolloDeploySignalSdk::SDKError]
107
+ # @return [AdvisorReportResponse]
108
+ def get_metrics_advisor(query: nil)
109
+ query_params = {}
110
+ query_params["projectId"] = query[:project_id] if query && query.key?(:project_id)
111
+ query_params = nil if query_params.empty?
112
+
113
+ transport.request(
114
+ method: :get,
115
+ path: "/v1/metrics/advisor",
116
+ query: query_params,
117
+ timeout_ms: nil,
118
+ )
119
+ end
120
+
121
+ end
122
+ end
@@ -0,0 +1,114 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../transport"
4
+ require_relative "../errors"
5
+
6
+ module ApolloDeploySignalSdk
7
+ # projects API domain
8
+ class Projects
9
+ attr_reader :transport
10
+
11
+ def initialize(transport)
12
+ @transport = transport
13
+ end
14
+
15
+ # @raise [ApolloDeploySignalSdk::SDKError]
16
+ # @return [ProjectPageResponse]
17
+ def list_projects()
18
+
19
+ transport.request(
20
+ method: :get,
21
+ path: "/v1/projects",
22
+ timeout_ms: nil,
23
+ )
24
+ end
25
+
26
+ # @param project_id [String]
27
+ # @raise [ApolloDeploySignalSdk::SDKError]
28
+ # @return [ProjectResponse]
29
+ def get_project(project_id:)
30
+ path_params = {
31
+ "projectId" => project_id,
32
+ }
33
+
34
+ transport.request(
35
+ method: :get,
36
+ path: "/v1/projects/${projectId}",
37
+ path_params: path_params,
38
+ timeout_ms: nil,
39
+ )
40
+ end
41
+
42
+ # @param project_id [String]
43
+ # @param body [UpdateProjectRequest] request body
44
+ # @raise [ApolloDeploySignalSdk::SDKError]
45
+ # @return [ProjectResponse]
46
+ def update_project(project_id:, body:)
47
+ path_params = {
48
+ "projectId" => project_id,
49
+ }
50
+
51
+ transport.request(
52
+ method: :patch,
53
+ path: "/v1/projects/${projectId}",
54
+ path_params: path_params,
55
+ body: body,
56
+ content_type: "application/json",
57
+ timeout_ms: nil,
58
+ )
59
+ end
60
+
61
+ # @param project_id [String]
62
+ # @raise [ApolloDeploySignalSdk::SDKError]
63
+ # @return [EmailPageResponse]
64
+ def list_emails(project_id:)
65
+ path_params = {
66
+ "projectId" => project_id,
67
+ }
68
+
69
+ transport.request(
70
+ method: :get,
71
+ path: "/v1/projects/${projectId}/emails",
72
+ path_params: path_params,
73
+ timeout_ms: nil,
74
+ )
75
+ end
76
+
77
+ # @param project_id [String]
78
+ # @param email_id [String]
79
+ # @raise [ApolloDeploySignalSdk::SDKError]
80
+ # @return [EmailDetailResponse]
81
+ def get_project_email(project_id:, email_id:)
82
+ path_params = {
83
+ "projectId" => project_id,
84
+ "emailId" => email_id,
85
+ }
86
+
87
+ transport.request(
88
+ method: :get,
89
+ path: "/v1/projects/${projectId}/emails/${emailId}",
90
+ path_params: path_params,
91
+ timeout_ms: nil,
92
+ )
93
+ end
94
+
95
+ # @param project_id [String]
96
+ # @param email_id [String]
97
+ # @raise [ApolloDeploySignalSdk::SDKError]
98
+ # @return [EmailTimelineResponse]
99
+ def get_email_timeline(project_id:, email_id:)
100
+ path_params = {
101
+ "projectId" => project_id,
102
+ "emailId" => email_id,
103
+ }
104
+
105
+ transport.request(
106
+ method: :get,
107
+ path: "/v1/projects/${projectId}/emails/${emailId}/events",
108
+ path_params: path_params,
109
+ timeout_ms: nil,
110
+ )
111
+ end
112
+
113
+ end
114
+ end