sendpost_ruby_sdk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +79 -0
  4. data/Rakefile +10 -0
  5. data/config-ruby.json +11 -0
  6. data/docs/Attachment.md +20 -0
  7. data/docs/City.md +26 -0
  8. data/docs/CopyTo.md +22 -0
  9. data/docs/Device.md +18 -0
  10. data/docs/EmailApi.md +145 -0
  11. data/docs/EmailMessage.md +46 -0
  12. data/docs/EmailResponse.md +26 -0
  13. data/docs/EventMetadata.md +30 -0
  14. data/docs/From.md +20 -0
  15. data/docs/Os.md +26 -0
  16. data/docs/QEmailMessage.md +70 -0
  17. data/docs/QEvent.md +42 -0
  18. data/docs/ReplyTo.md +20 -0
  19. data/docs/To.md +26 -0
  20. data/docs/UserAgent.md +24 -0
  21. data/docs/WebhookEvent.md +20 -0
  22. data/generate-libs.bash +1 -0
  23. data/git_push.sh +57 -0
  24. data/lib/sendpost_ruby_sdk/api/email_api.rb +160 -0
  25. data/lib/sendpost_ruby_sdk/api_client.rb +391 -0
  26. data/lib/sendpost_ruby_sdk/api_error.rb +58 -0
  27. data/lib/sendpost_ruby_sdk/configuration.rb +288 -0
  28. data/lib/sendpost_ruby_sdk/models/attachment.rb +228 -0
  29. data/lib/sendpost_ruby_sdk/models/city.rb +255 -0
  30. data/lib/sendpost_ruby_sdk/models/copy_to.rb +237 -0
  31. data/lib/sendpost_ruby_sdk/models/device.rb +219 -0
  32. data/lib/sendpost_ruby_sdk/models/email_message.rb +351 -0
  33. data/lib/sendpost_ruby_sdk/models/email_response.rb +255 -0
  34. data/lib/sendpost_ruby_sdk/models/event_metadata.rb +273 -0
  35. data/lib/sendpost_ruby_sdk/models/from.rb +228 -0
  36. data/lib/sendpost_ruby_sdk/models/os.rb +255 -0
  37. data/lib/sendpost_ruby_sdk/models/q_email_message.rb +461 -0
  38. data/lib/sendpost_ruby_sdk/models/q_event.rb +329 -0
  39. data/lib/sendpost_ruby_sdk/models/reply_to.rb +228 -0
  40. data/lib/sendpost_ruby_sdk/models/to.rb +259 -0
  41. data/lib/sendpost_ruby_sdk/models/user_agent.rb +246 -0
  42. data/lib/sendpost_ruby_sdk/models/webhook_event.rb +228 -0
  43. data/lib/sendpost_ruby_sdk/version.rb +15 -0
  44. data/lib/sendpost_ruby_sdk.rb +55 -0
  45. data/sendpost.yaml +438 -0
  46. data/sendpost_ruby_sdk.gemspec +38 -0
  47. data/spec/api/email_api_spec.rb +59 -0
  48. data/spec/api_client_spec.rb +228 -0
  49. data/spec/configuration_spec.rb +42 -0
  50. data/spec/models/attachment_spec.rb +40 -0
  51. data/spec/models/city_spec.rb +58 -0
  52. data/spec/models/copy_to_spec.rb +46 -0
  53. data/spec/models/device_spec.rb +34 -0
  54. data/spec/models/email_message_spec.rb +118 -0
  55. data/spec/models/email_response_spec.rb +58 -0
  56. data/spec/models/event_metadata_spec.rb +70 -0
  57. data/spec/models/from_spec.rb +40 -0
  58. data/spec/models/os_spec.rb +58 -0
  59. data/spec/models/q_email_message_spec.rb +190 -0
  60. data/spec/models/q_event_spec.rb +106 -0
  61. data/spec/models/reply_to_spec.rb +40 -0
  62. data/spec/models/to_spec.rb +58 -0
  63. data/spec/models/user_agent_spec.rb +52 -0
  64. data/spec/models/webhook_event_spec.rb +40 -0
  65. data/spec/spec_helper.rb +111 -0
  66. metadata +168 -0
data/sendpost.yaml ADDED
@@ -0,0 +1,438 @@
1
+ openapi: 3.0.2
2
+ info:
3
+ title: SendPost API
4
+ description: Email API and SMTP relay to not just send and measure email sending,
5
+ but also alert and optimise. We provide you with tools, expertise and support
6
+ needed to reliably deliver emails to your customers inboxes on time, every time.
7
+ version: 1.0.0
8
+ termsOfService: http://sendpost.io/terms-of-service
9
+ contact:
10
+ email: hello@sendpost.io
11
+ servers:
12
+ - url: https://api.sendpost.io/api/v1/
13
+ paths:
14
+ /subaccount/email/:
15
+ post:
16
+ tags:
17
+ - email
18
+ description: Send Email To Contacts
19
+ operationId: send_email
20
+ parameters:
21
+ - in: header
22
+ name: X-SubAccount-ApiKey
23
+ description: Sub-Account API Key
24
+ required: true
25
+ schema:
26
+ type: string
27
+ requestBody:
28
+ description: "Email message"
29
+ content:
30
+ application/json:
31
+ schema:
32
+ $ref: '#/components/schemas/EmailMessage'
33
+ responses:
34
+ '200':
35
+ description: '"Email Message Processed Successfully"'
36
+ content:
37
+ application/json:
38
+ schema:
39
+ type: array
40
+ items:
41
+ $ref: '#/components/schemas/EmailResponse'
42
+ '401':
43
+ description: Not Authorized
44
+ '422':
45
+ description: Request body is not in proper format
46
+ '500':
47
+ description: Internal Server Error
48
+ /subaccount/email/template:
49
+ post:
50
+ tags:
51
+ - email
52
+ description: Send Email To Contacts With Template
53
+ operationId: send_email_with_template
54
+ parameters:
55
+ - in: header
56
+ name: X-SubAccount-ApiKey
57
+ description: Sub-Account API Key
58
+ required: true
59
+ schema:
60
+ type: string
61
+ requestBody:
62
+ description: "Email message"
63
+ content:
64
+ application/json:
65
+ schema:
66
+ $ref: '#/components/schemas/EmailMessage'
67
+ responses:
68
+ '200':
69
+ description: '"Email Message Processed Successfully"'
70
+ content:
71
+ application/json:
72
+ schema:
73
+ type: array
74
+ items:
75
+ $ref: '#/components/schemas/EmailResponse'
76
+ '401':
77
+ description: Not Authorized
78
+ '422':
79
+ description: Request body is not in proper format
80
+ '500':
81
+ description: Internal Server Error
82
+ components:
83
+ schemas:
84
+ EmailMessage:
85
+ title: EmailMessage
86
+ type: object
87
+ properties:
88
+ attachments:
89
+ type: array
90
+ items:
91
+ $ref: '#/components/schemas/Attachment'
92
+ from:
93
+ $ref: '#/components/schemas/From'
94
+ groups:
95
+ type: array
96
+ items:
97
+ type: string
98
+ example: ["promotion", "techcrunch-launch"]
99
+ htmlBody:
100
+ type: string
101
+ example: "<html><body>Thanks for your trust in Hooli {{.Name}}. We are trying launching Nucleus at TechCrunch Disrupt - our cloud based compression platform. That you could easily integrate it into {{.Company}}.</html></body>"
102
+ ippool:
103
+ type: string
104
+ example: "promotional-hooli"
105
+ preText:
106
+ type: string
107
+ example: "Follow the steps to integrate our video compression API"
108
+ replyTo:
109
+ $ref: '#/components/schemas/ReplyTo'
110
+ subject:
111
+ type: string
112
+ example: "Welcome to Nucles {{.Name}}:) Let's get started"
113
+ template:
114
+ type: string
115
+ example: "welcome-onboarding"
116
+ textBody:
117
+ type: string
118
+ example: "Thanks for your trust in Hooli {{.Name}}. We are trying launching Nucleus at TechCrunch Disrupt - our cloud based compression platform. That you could easily integrate it into {{.Company}}"
119
+ to:
120
+ type: array
121
+ items:
122
+ $ref: '#/components/schemas/To'
123
+ trackClicks:
124
+ type: boolean
125
+ example: true
126
+ trackOpens:
127
+ type: boolean
128
+ example: true
129
+ headers:
130
+ type: object
131
+ example:
132
+ X-Campaign-Id: "techcrunch-launch"
133
+ ampBody:
134
+ type: string
135
+ WebhookEvent:
136
+ title: WebhookEvent
137
+ type: object
138
+ properties:
139
+ event:
140
+ $ref: '#/components/schemas/QEvent'
141
+ emailMessage:
142
+ $ref: '#/components/schemas/QEmailMessage'
143
+ QEmailMessage:
144
+ title: QEmailMessage
145
+ type: object
146
+ properties:
147
+ accountID:
148
+ type: integer
149
+ format: int64
150
+ example: 117
151
+ ampBody:
152
+ type: string
153
+ attachments:
154
+ type: array
155
+ items:
156
+ $ref: '#/components/schemas/Attachment'
157
+ attempt:
158
+ type: integer
159
+ format: int64
160
+ example: 1
161
+ customFields:
162
+ type: object
163
+ example:
164
+ Company: "Bachmanity"
165
+ emailType:
166
+ type: string
167
+ example: "gmail"
168
+ from:
169
+ $ref: '#/components/schemas/From'
170
+ groups:
171
+ type: array
172
+ items:
173
+ type: string
174
+ example: ["promotion", "techcrunch-launch"]
175
+ headerBcc:
176
+ type: array
177
+ items:
178
+ $ref: '#/components/schemas/CopyTo'
179
+ headerCc:
180
+ type: array
181
+ items:
182
+ $ref: '#/components/schemas/CopyTo'
183
+ headerTo:
184
+ $ref: '#/components/schemas/To'
185
+ headers:
186
+ type: object
187
+ example:
188
+ X-Campaign-Id: "techcrunch-launch"
189
+ htmlBody:
190
+ type: string
191
+ example: "<html><body>{{.FirstName}}, I have been following your journey since {{.Company}} days. Just wanted to thank you for inspiring us.</body></html>"
192
+ ipID:
193
+ type: integer
194
+ format: int64
195
+ example: 18
196
+ ipPool:
197
+ type: string
198
+ example: "transactional-piedpiper"
199
+ localIP:
200
+ type: string
201
+ example: "172.30.2.45"
202
+ messageID:
203
+ type: string
204
+ example: "0c6c7600-e68d-498e-b924-d8105130cc1d"
205
+ preText:
206
+ type: string
207
+ example: "thanks for the inspiration ..."
208
+ publicIP:
209
+ type: string
210
+ example: "52.13.11.9"
211
+ replyTo:
212
+ $ref: '#/components/schemas/ReplyTo'
213
+ subAccountID:
214
+ type: integer
215
+ format: int64
216
+ example: 234
217
+ subject:
218
+ type: string
219
+ example: "Building great products?"
220
+ submittedAt:
221
+ type: integer
222
+ format: int64
223
+ example: 1567512491587205024
224
+ textBody:
225
+ type: string
226
+ example: "{{.FirstName}}, I have been following your journey since {{.Company}} days. Just wanted to thank you for inspiring us."
227
+ to:
228
+ $ref: '#/components/schemas/To'
229
+ trackClicks:
230
+ type: boolean
231
+ example: true
232
+ trackOpens:
233
+ type: boolean
234
+ example: true
235
+ QEvent:
236
+ title: QEvent
237
+ type: object
238
+ properties:
239
+ accountID:
240
+ type: integer
241
+ format: int64
242
+ example: 8
243
+ eventID:
244
+ type: string
245
+ example: "8690608c-2538-4173-a463-f0de475633da"
246
+ eventMetadata:
247
+ $ref: '#/components/schemas/EventMetadata'
248
+ from:
249
+ type: string
250
+ example: "gavin@hooli.com"
251
+ groups:
252
+ type: array
253
+ items:
254
+ type: string
255
+ example: ["promotion", "techcrunch-launch"]
256
+ ipID:
257
+ type: integer
258
+ format: int64
259
+ example: 7
260
+ messageID:
261
+ type: string
262
+ example: "edcb833d-5ef6-48c3-936f-1de0b74843d4"
263
+ messageType:
264
+ type: string
265
+ example: "default"
266
+ subAccountID:
267
+ type: integer
268
+ format: int64
269
+ example: 28
270
+ submittedAt:
271
+ type: integer
272
+ format: int64
273
+ example: 1689245147247766056
274
+ to:
275
+ type: string
276
+ example: "richard@piedpiper.com"
277
+ tpspId:
278
+ type: integer
279
+ format: int64
280
+ example: 0
281
+ type:
282
+ type: integer
283
+ format: int64
284
+ example: 2
285
+ Attachment:
286
+ title: Attachment
287
+ type: object
288
+ properties:
289
+ content:
290
+ type: string
291
+ example: "V2VsY29tZSB0byBTZW5kUG9zdCEgOikK"
292
+ filename:
293
+ type: string
294
+ example: "file0.txt"
295
+ To:
296
+ title: To
297
+ type: object
298
+ properties:
299
+ name:
300
+ type: string
301
+ example: "Elrich Bachman"
302
+ email:
303
+ type: string
304
+ example: "elrich@bachmanity.com"
305
+ cc:
306
+ type: array
307
+ items:
308
+ $ref: '#/components/schemas/CopyTo'
309
+ bcc:
310
+ type: array
311
+ items:
312
+ $ref: '#/components/schemas/CopyTo'
313
+ customFields:
314
+ type: object
315
+ example:
316
+ Company: "Bachmanity"
317
+ From:
318
+ title: From
319
+ type: object
320
+ properties:
321
+ email:
322
+ type: string
323
+ example: "gavin@hooli.com"
324
+ name:
325
+ type: string
326
+ example: "Gavin Belson"
327
+ ReplyTo:
328
+ title: ReplyTo
329
+ type: object
330
+ properties:
331
+ email:
332
+ type: string
333
+ example: "welcome@hooli.vom"
334
+ name:
335
+ type: string
336
+ example: "Team @ Hooli"
337
+ CopyTo:
338
+ title: CopyTo
339
+ type: object
340
+ properties:
341
+ name:
342
+ type: string
343
+ example: "Nelson Bighetti"
344
+ email:
345
+ type: string
346
+ example: "bighead@bachmanity.com"
347
+ customFields:
348
+ type: object
349
+ example:
350
+ Company: "Bachmanity"
351
+ EventMetadata:
352
+ title: EventMetadata
353
+ type: object
354
+ properties:
355
+ clickedURL:
356
+ type: string
357
+ device:
358
+ $ref: '#/components/schemas/Device'
359
+ geo:
360
+ $ref: '#/components/schemas/City'
361
+ os:
362
+ $ref: '#/components/schemas/Os'
363
+ smtpCode:
364
+ type: integer
365
+ format: int64
366
+ example: 200
367
+ smtpDescription:
368
+ type: string
369
+ example: "email delivered successfully"
370
+ userAgent:
371
+ $ref: '#/components/schemas/UserAgent'
372
+ EmailResponse:
373
+ title: EmailResponse
374
+ type: object
375
+ properties:
376
+ errorCode:
377
+ type: integer
378
+ example: 500
379
+ message:
380
+ type: string
381
+ example: "ok"
382
+ messageId:
383
+ type: string
384
+ example: "0e139af1-f1xe-480d-b08d-eg28m48kf48d"
385
+ submittedAt:
386
+ type: integer
387
+ format: int64
388
+ example: 1567512491587205124
389
+ to:
390
+ type: string
391
+ example: "bighead@bachmanity.com"
392
+ Device:
393
+ title: Device
394
+ type: object
395
+ properties:
396
+ Family:
397
+ type: string
398
+ Os:
399
+ title: Os
400
+ type: object
401
+ properties:
402
+ Family:
403
+ type: string
404
+ Major:
405
+ type: string
406
+ Minor:
407
+ type: string
408
+ Patch:
409
+ type: string
410
+ PatchMinor:
411
+ type: string
412
+ UserAgent:
413
+ title: UserAgent
414
+ type: object
415
+ properties:
416
+ Family:
417
+ type: string
418
+ Major:
419
+ type: string
420
+ Minor:
421
+ type: string
422
+ Patch:
423
+ type: string
424
+ City:
425
+ title: City
426
+ type: object
427
+ properties:
428
+ cityID:
429
+ type: integer
430
+ format: int32
431
+ continentCode:
432
+ type: string
433
+ countryCode:
434
+ type: string
435
+ postalCode:
436
+ type: string
437
+ timeZone:
438
+ type: string
@@ -0,0 +1,38 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ =begin
4
+ #SendPost API
5
+
6
+ #Email API and SMTP relay to not just send and measure email sending, but also alert and optimise. We provide you with tools, expertise and support needed to reliably deliver emails to your customers inboxes on time, every time.
7
+
8
+ The version of the OpenAPI document: 1.0.0
9
+ Contact: hello@sendpost.io
10
+ Generated by: https://openapi-generator.tech
11
+ OpenAPI Generator version: 6.6.0
12
+
13
+ =end
14
+
15
+ $:.push File.expand_path("../lib", __FILE__)
16
+ require "sendpost_ruby_sdk/version"
17
+
18
+ Gem::Specification.new do |s|
19
+ s.name = "sendpost_ruby_sdk"
20
+ s.version = Sendpost::VERSION
21
+ s.platform = Gem::Platform::RUBY
22
+ s.authors = ["Sendpost"]
23
+ s.email = ["dev@sendpost.io"]
24
+ s.homepage = "https://sendpost.io/"
25
+ s.summary = "SendPost Ruby API"
26
+ s.description = "Email API and SMTP relay to not just send and measure email sending, but also alert and optimise. We provide you with tools, expertise and support needed to reliably deliver emails to your customers inboxes on time, every time."
27
+ s.license = "Unlicense"
28
+ s.required_ruby_version = ">= 2.7"
29
+
30
+ s.add_runtime_dependency 'typhoeus', '~> 1.0', '>= 1.0.1'
31
+
32
+ s.add_development_dependency 'rspec', '~> 3.6', '>= 3.6.0'
33
+
34
+ s.files = `find *`.split("\n").uniq.sort.select { |f| !f.empty? }
35
+ s.test_files = `find spec/*`.split("\n")
36
+ s.executables = []
37
+ s.require_paths = ["lib"]
38
+ end
@@ -0,0 +1,59 @@
1
+ =begin
2
+ #SendPost API
3
+
4
+ #Email API and SMTP relay to not just send and measure email sending, but also alert and optimise. We provide you with tools, expertise and support needed to reliably deliver emails to your customers inboxes on time, every time.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ Contact: hello@sendpost.io
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.6.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for Sendpost::EmailApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'EmailApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = Sendpost::EmailApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of EmailApi' do
30
+ it 'should create an instance of EmailApi' do
31
+ expect(@api_instance).to be_instance_of(Sendpost::EmailApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for send_email
36
+ # Send Email To Contacts
37
+ # @param x_sub_account_api_key Sub-Account API Key
38
+ # @param [Hash] opts the optional parameters
39
+ # @option opts [EmailMessage] :email_message Email message
40
+ # @return [Array<EmailResponse>]
41
+ describe 'send_email test' do
42
+ it 'should work' do
43
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
44
+ end
45
+ end
46
+
47
+ # unit tests for send_email_with_template
48
+ # Send Email To Contacts With Template
49
+ # @param x_sub_account_api_key Sub-Account API Key
50
+ # @param [Hash] opts the optional parameters
51
+ # @option opts [EmailMessage] :email_message Email message
52
+ # @return [Array<EmailResponse>]
53
+ describe 'send_email_with_template test' do
54
+ it 'should work' do
55
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
56
+ end
57
+ end
58
+
59
+ end