clicksend_client 1.0.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.
Files changed (261) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/README.md +78 -0
  4. data/Rakefile +8 -0
  5. data/clicksend_client-1.0.1.gem +0 -0
  6. data/clicksend_client.gemspec +45 -0
  7. data/docs/Account.md +15 -0
  8. data/docs/AccountApi.md +433 -0
  9. data/docs/AccountForgotPasswordVerify.md +10 -0
  10. data/docs/AccountRechargeApi.md +330 -0
  11. data/docs/AccountVerify.md +10 -0
  12. data/docs/Address.md +14 -0
  13. data/docs/Attachment.md +12 -0
  14. data/docs/Contact.md +23 -0
  15. data/docs/ContactApi.md +416 -0
  16. data/docs/ContactList.md +8 -0
  17. data/docs/ContactListApi.md +398 -0
  18. data/docs/ContactListImport.md +9 -0
  19. data/docs/CountriesApi.md +50 -0
  20. data/docs/CreditCard.md +13 -0
  21. data/docs/DateBefore.md +8 -0
  22. data/docs/DeliveryIssue.md +12 -0
  23. data/docs/DeliveryIssuesApi.md +119 -0
  24. data/docs/DeliveryReceiptRule.md +12 -0
  25. data/docs/DetectAddressApi.md +62 -0
  26. data/docs/Email.md +15 -0
  27. data/docs/EmailAddress.md +8 -0
  28. data/docs/EmailCampaign.md +15 -0
  29. data/docs/EmailDeliveryReceiptRulesApi.md +286 -0
  30. data/docs/EmailFrom.md +9 -0
  31. data/docs/EmailMarketingApi.md +793 -0
  32. data/docs/EmailRecipient.md +9 -0
  33. data/docs/EmailSMSAddress.md +10 -0
  34. data/docs/EmailTemplateNew.md +9 -0
  35. data/docs/EmailTemplateUpdate.md +9 -0
  36. data/docs/EmailToSmsApi.md +395 -0
  37. data/docs/FAXApi.md +401 -0
  38. data/docs/FAXDeliveryReceiptRulesApi.md +286 -0
  39. data/docs/FaxMessage.md +15 -0
  40. data/docs/FaxMessageCollection.md +9 -0
  41. data/docs/Fields.md +8 -0
  42. data/docs/FieldsFields.md +23 -0
  43. data/docs/ForgotPassword.md +8 -0
  44. data/docs/ForgotUsername.md +9 -0
  45. data/docs/InboundFAXRulesApi.md +286 -0
  46. data/docs/InboundFaxRule.md +12 -0
  47. data/docs/InboundSMSRule.md +14 -0
  48. data/docs/InboundSMSRulesApi.md +286 -0
  49. data/docs/MMSApi.md +228 -0
  50. data/docs/MasterEmailTemplatesApi.md +290 -0
  51. data/docs/MmsCampaign.md +14 -0
  52. data/docs/MmsCampaignApi.md +338 -0
  53. data/docs/MmsMessage.md +17 -0
  54. data/docs/MmsMessageCollection.md +9 -0
  55. data/docs/NumberApi.md +183 -0
  56. data/docs/PostLetter.md +14 -0
  57. data/docs/PostLetterApi.md +227 -0
  58. data/docs/PostPostcard.md +9 -0
  59. data/docs/PostPostcardApi.md +227 -0
  60. data/docs/PostRecipient.md +16 -0
  61. data/docs/PostReturnAddressApi.md +284 -0
  62. data/docs/ReferralAccountApi.md +65 -0
  63. data/docs/ResellerAccount.md +15 -0
  64. data/docs/ResellerAccountApi.md +230 -0
  65. data/docs/ResellerAccountTransferCredit.md +10 -0
  66. data/docs/SMSApi.md +999 -0
  67. data/docs/SMSDeliveryReceiptRulesApi.md +286 -0
  68. data/docs/SearchApi.md +68 -0
  69. data/docs/SmsCampaign.md +12 -0
  70. data/docs/SmsCampaignApi.md +338 -0
  71. data/docs/SmsMessage.md +16 -0
  72. data/docs/SmsMessageCollection.md +8 -0
  73. data/docs/SmsTemplate.md +9 -0
  74. data/docs/StatisticsApi.md +104 -0
  75. data/docs/StrippedString.md +8 -0
  76. data/docs/Subaccount.md +18 -0
  77. data/docs/SubaccountApi.md +338 -0
  78. data/docs/TimezonesApi.md +65 -0
  79. data/docs/TransactionalEmailApi.md +237 -0
  80. data/docs/TransferCreditApi.md +62 -0
  81. data/docs/UploadApi.md +65 -0
  82. data/docs/UploadFile.md +8 -0
  83. data/docs/Url.md +8 -0
  84. data/docs/UserEmailTemplatesApi.md +284 -0
  85. data/docs/VoiceApi.md +547 -0
  86. data/docs/VoiceDeliveryReceiptRulesApi.md +286 -0
  87. data/docs/VoiceMessage.md +18 -0
  88. data/docs/VoiceMessageCollection.md +8 -0
  89. data/lib/clicksend_client.rb +121 -0
  90. data/lib/clicksend_client/api/account_api.rb +447 -0
  91. data/lib/clicksend_client/api/account_recharge_api.rb +346 -0
  92. data/lib/clicksend_client/api/contact_api.rb +463 -0
  93. data/lib/clicksend_client/api/contact_list_api.rb +427 -0
  94. data/lib/clicksend_client/api/countries_api.rb +71 -0
  95. data/lib/clicksend_client/api/delivery_issues_api.rb +139 -0
  96. data/lib/clicksend_client/api/detect_address_api.rb +77 -0
  97. data/lib/clicksend_client/api/email_delivery_receipt_rules_api.rb +310 -0
  98. data/lib/clicksend_client/api/email_marketing_api.rb +829 -0
  99. data/lib/clicksend_client/api/email_to_sms_api.rb +423 -0
  100. data/lib/clicksend_client/api/fax_api.rb +425 -0
  101. data/lib/clicksend_client/api/fax_delivery_receipt_rules_api.rb +310 -0
  102. data/lib/clicksend_client/api/inbound_fax_rules_api.rb +310 -0
  103. data/lib/clicksend_client/api/inbound_sms_rules_api.rb +310 -0
  104. data/lib/clicksend_client/api/master_email_templates_api.rb +323 -0
  105. data/lib/clicksend_client/api/mms_api.rb +243 -0
  106. data/lib/clicksend_client/api/mms_campaign_api.rb +361 -0
  107. data/lib/clicksend_client/api/number_api.rb +213 -0
  108. data/lib/clicksend_client/api/post_letter_api.rb +248 -0
  109. data/lib/clicksend_client/api/post_postcard_api.rb +248 -0
  110. data/lib/clicksend_client/api/post_return_address_api.rb +307 -0
  111. data/lib/clicksend_client/api/referral_account_api.rb +85 -0
  112. data/lib/clicksend_client/api/reseller_account_api.rb +253 -0
  113. data/lib/clicksend_client/api/search_api.rb +92 -0
  114. data/lib/clicksend_client/api/sms_api.rb +1032 -0
  115. data/lib/clicksend_client/api/sms_campaign_api.rb +361 -0
  116. data/lib/clicksend_client/api/sms_delivery_receipt_rules_api.rb +310 -0
  117. data/lib/clicksend_client/api/statistics_api.rb +119 -0
  118. data/lib/clicksend_client/api/subaccount_api.rb +361 -0
  119. data/lib/clicksend_client/api/timezones_api.rb +85 -0
  120. data/lib/clicksend_client/api/transactional_email_api.rb +260 -0
  121. data/lib/clicksend_client/api/transfer_credit_api.rb +77 -0
  122. data/lib/clicksend_client/api/upload_api.rb +84 -0
  123. data/lib/clicksend_client/api/user_email_templates_api.rb +307 -0
  124. data/lib/clicksend_client/api/voice_api.rb +570 -0
  125. data/lib/clicksend_client/api/voice_delivery_receipt_rules_api.rb +310 -0
  126. data/lib/clicksend_client/api_client.rb +389 -0
  127. data/lib/clicksend_client/api_error.rb +38 -0
  128. data/lib/clicksend_client/configuration.rb +209 -0
  129. data/lib/clicksend_client/models/account.rb +295 -0
  130. data/lib/clicksend_client/models/account_forgot_password_verify.rb +219 -0
  131. data/lib/clicksend_client/models/account_verify.rb +220 -0
  132. data/lib/clicksend_client/models/address.rb +270 -0
  133. data/lib/clicksend_client/models/attachment.rb +250 -0
  134. data/lib/clicksend_client/models/contact.rb +345 -0
  135. data/lib/clicksend_client/models/contact_list.rb +190 -0
  136. data/lib/clicksend_client/models/contact_list_import.rb +207 -0
  137. data/lib/clicksend_client/models/credit_card.rb +265 -0
  138. data/lib/clicksend_client/models/date_before.rb +185 -0
  139. data/lib/clicksend_client/models/delivery_issue.rb +240 -0
  140. data/lib/clicksend_client/models/delivery_receipt_rule.rb +250 -0
  141. data/lib/clicksend_client/models/email.rb +277 -0
  142. data/lib/clicksend_client/models/email_address.rb +189 -0
  143. data/lib/clicksend_client/models/email_campaign.rb +287 -0
  144. data/lib/clicksend_client/models/email_from.rb +200 -0
  145. data/lib/clicksend_client/models/email_recipient.rb +200 -0
  146. data/lib/clicksend_client/models/email_sms_address.rb +215 -0
  147. data/lib/clicksend_client/models/email_template_new.rb +205 -0
  148. data/lib/clicksend_client/models/email_template_update.rb +200 -0
  149. data/lib/clicksend_client/models/fax_message.rb +262 -0
  150. data/lib/clicksend_client/models/fax_message_collection.rb +207 -0
  151. data/lib/clicksend_client/models/fields.rb +184 -0
  152. data/lib/clicksend_client/models/fields_fields.rb +335 -0
  153. data/lib/clicksend_client/models/forgot_password.rb +189 -0
  154. data/lib/clicksend_client/models/forgot_username.rb +194 -0
  155. data/lib/clicksend_client/models/inbound_fax_rule.rb +250 -0
  156. data/lib/clicksend_client/models/inbound_sms_rule.rb +280 -0
  157. data/lib/clicksend_client/models/mms_campaign.rb +272 -0
  158. data/lib/clicksend_client/models/mms_message.rb +294 -0
  159. data/lib/clicksend_client/models/mms_message_collection.rb +207 -0
  160. data/lib/clicksend_client/models/post_letter.rb +267 -0
  161. data/lib/clicksend_client/models/post_postcard.rb +209 -0
  162. data/lib/clicksend_client/models/post_recipient.rb +302 -0
  163. data/lib/clicksend_client/models/reseller_account.rb +295 -0
  164. data/lib/clicksend_client/models/reseller_account_transfer_credit.rb +220 -0
  165. data/lib/clicksend_client/models/sms_campaign.rb +242 -0
  166. data/lib/clicksend_client/models/sms_message.rb +279 -0
  167. data/lib/clicksend_client/models/sms_message_collection.rb +192 -0
  168. data/lib/clicksend_client/models/sms_template.rb +205 -0
  169. data/lib/clicksend_client/models/stripped_string.rb +190 -0
  170. data/lib/clicksend_client/models/subaccount.rb +325 -0
  171. data/lib/clicksend_client/models/upload_file.rb +190 -0
  172. data/lib/clicksend_client/models/url.rb +190 -0
  173. data/lib/clicksend_client/models/voice_message.rb +316 -0
  174. data/lib/clicksend_client/models/voice_message_collection.rb +192 -0
  175. data/lib/clicksend_client/version.rb +15 -0
  176. data/spec/api/account_api_spec.rb +131 -0
  177. data/spec/api/account_recharge_api_spec.rb +107 -0
  178. data/spec/api/contact_api_spec.rb +129 -0
  179. data/spec/api/contact_list_api_spec.rb +123 -0
  180. data/spec/api/countries_api_spec.rb +46 -0
  181. data/spec/api/delivery_issues_api_spec.rb +60 -0
  182. data/spec/api/detect_address_api_spec.rb +47 -0
  183. data/spec/api/email_delivery_receipt_rules_api_spec.rb +98 -0
  184. data/spec/api/email_marketing_api_spec.rb +213 -0
  185. data/spec/api/email_to_sms_api_spec.rb +122 -0
  186. data/spec/api/fax_api_spec.rb +125 -0
  187. data/spec/api/fax_delivery_receipt_rules_api_spec.rb +98 -0
  188. data/spec/api/inbound_fax_rules_api_spec.rb +98 -0
  189. data/spec/api/inbound_sms_rules_api_spec.rb +98 -0
  190. data/spec/api/master_email_templates_api_spec.rb +99 -0
  191. data/spec/api/mms_api_spec.rb +84 -0
  192. data/spec/api/mms_campaign_api_spec.rb +109 -0
  193. data/spec/api/number_api_spec.rb +76 -0
  194. data/spec/api/post_letter_api_spec.rb +84 -0
  195. data/spec/api/post_postcard_api_spec.rb +84 -0
  196. data/spec/api/post_return_address_api_spec.rb +97 -0
  197. data/spec/api/referral_account_api_spec.rb +48 -0
  198. data/spec/api/reseller_account_api_spec.rb +85 -0
  199. data/spec/api/search_api_spec.rb +49 -0
  200. data/spec/api/sms_api_spec.rb +259 -0
  201. data/spec/api/sms_campaign_api_spec.rb +109 -0
  202. data/spec/api/sms_delivery_receipt_rules_api_spec.rb +98 -0
  203. data/spec/api/statistics_api_spec.rb +57 -0
  204. data/spec/api/subaccount_api_spec.rb +109 -0
  205. data/spec/api/timezones_api_spec.rb +48 -0
  206. data/spec/api/transactional_email_api_spec.rb +88 -0
  207. data/spec/api/transfer_credit_api_spec.rb +47 -0
  208. data/spec/api/upload_api_spec.rb +48 -0
  209. data/spec/api/user_email_templates_api_spec.rb +97 -0
  210. data/spec/api/voice_api_spec.rb +157 -0
  211. data/spec/api/voice_delivery_receipt_rules_api_spec.rb +98 -0
  212. data/spec/api_client_spec.rb +226 -0
  213. data/spec/configuration_spec.rb +42 -0
  214. data/spec/models/account_forgot_password_verify_spec.rb +53 -0
  215. data/spec/models/account_spec.rb +83 -0
  216. data/spec/models/account_verify_spec.rb +53 -0
  217. data/spec/models/address_spec.rb +77 -0
  218. data/spec/models/attachment_spec.rb +65 -0
  219. data/spec/models/contact_list_import_spec.rb +47 -0
  220. data/spec/models/contact_list_spec.rb +41 -0
  221. data/spec/models/contact_spec.rb +131 -0
  222. data/spec/models/credit_card_spec.rb +71 -0
  223. data/spec/models/date_before_spec.rb +41 -0
  224. data/spec/models/delivery_issue_spec.rb +65 -0
  225. data/spec/models/delivery_receipt_rule_spec.rb +65 -0
  226. data/spec/models/email_address_spec.rb +41 -0
  227. data/spec/models/email_campaign_spec.rb +83 -0
  228. data/spec/models/email_from_spec.rb +47 -0
  229. data/spec/models/email_recipient_spec.rb +47 -0
  230. data/spec/models/email_sms_address_spec.rb +53 -0
  231. data/spec/models/email_spec.rb +83 -0
  232. data/spec/models/email_template_new_spec.rb +47 -0
  233. data/spec/models/email_template_update_spec.rb +47 -0
  234. data/spec/models/fax_message_collection_spec.rb +47 -0
  235. data/spec/models/fax_message_spec.rb +83 -0
  236. data/spec/models/fields_fields_spec.rb +131 -0
  237. data/spec/models/fields_spec.rb +41 -0
  238. data/spec/models/forgot_password_spec.rb +41 -0
  239. data/spec/models/forgot_username_spec.rb +47 -0
  240. data/spec/models/inbound_fax_rule_spec.rb +65 -0
  241. data/spec/models/inbound_sms_rule_spec.rb +77 -0
  242. data/spec/models/mms_campaign_spec.rb +77 -0
  243. data/spec/models/mms_message_collection_spec.rb +47 -0
  244. data/spec/models/mms_message_spec.rb +95 -0
  245. data/spec/models/post_letter_spec.rb +77 -0
  246. data/spec/models/post_postcard_spec.rb +47 -0
  247. data/spec/models/post_recipient_spec.rb +89 -0
  248. data/spec/models/reseller_account_spec.rb +83 -0
  249. data/spec/models/reseller_account_transfer_credit_spec.rb +53 -0
  250. data/spec/models/sms_campaign_spec.rb +65 -0
  251. data/spec/models/sms_message_collection_spec.rb +41 -0
  252. data/spec/models/sms_message_spec.rb +89 -0
  253. data/spec/models/sms_template_spec.rb +47 -0
  254. data/spec/models/stripped_string_spec.rb +41 -0
  255. data/spec/models/subaccount_spec.rb +101 -0
  256. data/spec/models/upload_file_spec.rb +41 -0
  257. data/spec/models/url_spec.rb +41 -0
  258. data/spec/models/voice_message_collection_spec.rb +41 -0
  259. data/spec/models/voice_message_spec.rb +101 -0
  260. data/spec/spec_helper.rb +111 -0
  261. metadata +568 -0
@@ -0,0 +1,267 @@
1
+ =begin
2
+ #ClickSend v3 API
3
+
4
+ # This is an official SDK for [ClickSend](https://clicksend.com) Below you will find a current list of the available methods for clicksend. *NOTE: You will need to create a free account to use the API. You can register [here](https://dashboard.clicksend.com/#/signup/step1/)..*
5
+
6
+ OpenAPI spec version: 3.1
7
+ Contact: support@clicksend.com
8
+ Generated by: https://github.com/clicksend-api/clicksend-codegen.git
9
+ ClickSend Codegen version: 2.4.1-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module ClickSendClient
16
+ # PostLetter model
17
+ class PostLetter
18
+ # URL of file to send
19
+ attr_accessor :file_url
20
+
21
+ # Whether letter is priority
22
+ attr_accessor :priority_post
23
+
24
+ # Array of PostRecipient models
25
+ attr_accessor :recipients
26
+
27
+ # Whether using our template
28
+ attr_accessor :template_used
29
+
30
+ # Whether letter is duplex
31
+ attr_accessor :duplex
32
+
33
+ # Whether letter is in colour
34
+ attr_accessor :colour
35
+
36
+ # Source being sent from
37
+ attr_accessor :source
38
+
39
+ # Attribute mapping from ruby-style variable name to JSON key.
40
+ def self.attribute_map
41
+ {
42
+ :'file_url' => :'file_url',
43
+ :'priority_post' => :'priority_post',
44
+ :'recipients' => :'recipients',
45
+ :'template_used' => :'template_used',
46
+ :'duplex' => :'duplex',
47
+ :'colour' => :'colour',
48
+ :'source' => :'source'
49
+ }
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.clicksend_types
54
+ {
55
+ :'file_url' => :'String',
56
+ :'priority_post' => :'Integer',
57
+ :'recipients' => :'Array<PostRecipient>',
58
+ :'template_used' => :'Integer',
59
+ :'duplex' => :'Integer',
60
+ :'colour' => :'Integer',
61
+ :'source' => :'String'
62
+ }
63
+ end
64
+
65
+ # Initializes the object
66
+ # @param [Hash] attributes Model attributes in the form of hash
67
+ def initialize(attributes = {})
68
+ return unless attributes.is_a?(Hash)
69
+
70
+ # convert string to symbol for hash key
71
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
72
+
73
+ if attributes.has_key?(:'file_url')
74
+ self.file_url = attributes[:'file_url']
75
+ end
76
+
77
+ if attributes.has_key?(:'priority_post')
78
+ self.priority_post = attributes[:'priority_post']
79
+ else
80
+ self.priority_post = 0
81
+ end
82
+
83
+ if attributes.has_key?(:'recipients')
84
+ if (value = attributes[:'recipients']).is_a?(Array)
85
+ self.recipients = value
86
+ end
87
+ end
88
+
89
+ if attributes.has_key?(:'template_used')
90
+ self.template_used = attributes[:'template_used']
91
+ else
92
+ self.template_used = 0
93
+ end
94
+
95
+ if attributes.has_key?(:'duplex')
96
+ self.duplex = attributes[:'duplex']
97
+ else
98
+ self.duplex = 0
99
+ end
100
+
101
+ if attributes.has_key?(:'colour')
102
+ self.colour = attributes[:'colour']
103
+ else
104
+ self.colour = 0
105
+ end
106
+
107
+ if attributes.has_key?(:'source')
108
+ self.source = attributes[:'source']
109
+ else
110
+ self.source = 'sdk'
111
+ end
112
+ end
113
+
114
+ # Show invalid properties with the reasons. Usually used together with valid?
115
+ # @return Array for valid properties with the reasons
116
+ def list_invalid_properties
117
+ invalid_properties = Array.new
118
+ if @file_url.nil?
119
+ invalid_properties.push('invalid value for "file_url", file_url cannot be nil.')
120
+ end
121
+
122
+ if @recipients.nil?
123
+ invalid_properties.push('invalid value for "recipients", recipients cannot be nil.')
124
+ end
125
+
126
+ invalid_properties
127
+ end
128
+
129
+ # Check to see if the all the properties in the model are valid
130
+ # @return true if the model is valid
131
+ def valid?
132
+ return false if @file_url.nil?
133
+ return false if @recipients.nil?
134
+ true
135
+ end
136
+
137
+ # Checks equality by comparing each attribute.
138
+ # @param [Object] Object to be compared
139
+ def ==(o)
140
+ return true if self.equal?(o)
141
+ self.class == o.class &&
142
+ file_url == o.file_url &&
143
+ priority_post == o.priority_post &&
144
+ recipients == o.recipients &&
145
+ template_used == o.template_used &&
146
+ duplex == o.duplex &&
147
+ colour == o.colour &&
148
+ source == o.source
149
+ end
150
+
151
+ # @see the `==` method
152
+ # @param [Object] Object to be compared
153
+ def eql?(o)
154
+ self == o
155
+ end
156
+
157
+ # Calculates hash code according to all attributes.
158
+ # @return [Fixnum] Hash code
159
+ def hash
160
+ [file_url, priority_post, recipients, template_used, duplex, colour, source].hash
161
+ end
162
+
163
+ # Builds the object from hash
164
+ # @param [Hash] attributes Model attributes in the form of hash
165
+ # @return [Object] Returns the model itself
166
+ def build_from_hash(attributes)
167
+ return nil unless attributes.is_a?(Hash)
168
+ self.class.clicksend_types.each_pair do |key, type|
169
+ if type =~ /\AArray<(.*)>/i
170
+ # check to ensure the input is an array given that the the attribute
171
+ # is documented as an array but the input is not
172
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
173
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
174
+ end
175
+ elsif !attributes[self.class.attribute_map[key]].nil?
176
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
177
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
178
+ end
179
+
180
+ self
181
+ end
182
+
183
+ # Deserializes the data based on type
184
+ # @param string type Data type
185
+ # @param string value Value to be deserialized
186
+ # @return [Object] Deserialized data
187
+ def _deserialize(type, value)
188
+ case type.to_sym
189
+ when :DateTime
190
+ DateTime.parse(value)
191
+ when :Date
192
+ Date.parse(value)
193
+ when :String
194
+ value.to_s
195
+ when :Integer
196
+ value.to_i
197
+ when :Float
198
+ value.to_f
199
+ when :BOOLEAN
200
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
201
+ true
202
+ else
203
+ false
204
+ end
205
+ when :Object
206
+ # generic object (usually a Hash), return directly
207
+ value
208
+ when /\AArray<(?<inner_type>.+)>\z/
209
+ inner_type = Regexp.last_match[:inner_type]
210
+ value.map { |v| _deserialize(inner_type, v) }
211
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
212
+ k_type = Regexp.last_match[:k_type]
213
+ v_type = Regexp.last_match[:v_type]
214
+ {}.tap do |hash|
215
+ value.each do |k, v|
216
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
217
+ end
218
+ end
219
+ else # model
220
+ temp_model = ClickSendClient.const_get(type).new
221
+ temp_model.build_from_hash(value)
222
+ end
223
+ end
224
+
225
+ # Returns the string representation of the object
226
+ # @return [String] String presentation of the object
227
+ def to_s
228
+ to_hash.to_s
229
+ end
230
+
231
+ # to_body is an alias to to_hash (backward compatibility)
232
+ # @return [Hash] Returns the object in the form of hash
233
+ def to_body
234
+ to_hash
235
+ end
236
+
237
+ # Returns the object in the form of hash
238
+ # @return [Hash] Returns the object in the form of hash
239
+ def to_hash
240
+ hash = {}
241
+ self.class.attribute_map.each_pair do |attr, param|
242
+ value = self.send(attr)
243
+ next if value.nil?
244
+ hash[param] = _to_hash(value)
245
+ end
246
+ hash
247
+ end
248
+
249
+ # Outputs non-array value in the form of hash
250
+ # For object, use to_hash. Otherwise, just return the value
251
+ # @param [Object] value Any valid value
252
+ # @return [Hash] Returns the value in the form of hash
253
+ def _to_hash(value)
254
+ if value.is_a?(Array)
255
+ value.compact.map { |v| _to_hash(v) }
256
+ elsif value.is_a?(Hash)
257
+ {}.tap do |hash|
258
+ value.each { |k, v| hash[k] = _to_hash(v) }
259
+ end
260
+ elsif value.respond_to? :to_hash
261
+ value.to_hash
262
+ else
263
+ value
264
+ end
265
+ end
266
+ end
267
+ end
@@ -0,0 +1,209 @@
1
+ =begin
2
+ #ClickSend v3 API
3
+
4
+ # This is an official SDK for [ClickSend](https://clicksend.com) Below you will find a current list of the available methods for clicksend. *NOTE: You will need to create a free account to use the API. You can register [here](https://dashboard.clicksend.com/#/signup/step1/)..*
5
+
6
+ OpenAPI spec version: 3.1
7
+ Contact: support@clicksend.com
8
+ Generated by: https://github.com/clicksend-api/clicksend-codegen.git
9
+ ClickSend Codegen version: 2.4.1-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module ClickSendClient
16
+ # PostPostcard model
17
+ class PostPostcard
18
+ # Postcard file URLs
19
+ attr_accessor :file_urls
20
+
21
+ # Array of recipients
22
+ attr_accessor :recipients
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'file_urls' => :'file_urls',
28
+ :'recipients' => :'recipients'
29
+ }
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.clicksend_types
34
+ {
35
+ :'file_urls' => :'Array<String>',
36
+ :'recipients' => :'Array<PostRecipient>'
37
+ }
38
+ end
39
+
40
+ # Initializes the object
41
+ # @param [Hash] attributes Model attributes in the form of hash
42
+ def initialize(attributes = {})
43
+ return unless attributes.is_a?(Hash)
44
+
45
+ # convert string to symbol for hash key
46
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
47
+
48
+ if attributes.has_key?(:'file_urls')
49
+ if (value = attributes[:'file_urls']).is_a?(Array)
50
+ self.file_urls = value
51
+ end
52
+ end
53
+
54
+ if attributes.has_key?(:'recipients')
55
+ if (value = attributes[:'recipients']).is_a?(Array)
56
+ self.recipients = value
57
+ end
58
+ end
59
+ end
60
+
61
+ # Show invalid properties with the reasons. Usually used together with valid?
62
+ # @return Array for valid properties with the reasons
63
+ def list_invalid_properties
64
+ invalid_properties = Array.new
65
+ if @file_urls.nil?
66
+ invalid_properties.push('invalid value for "file_urls", file_urls cannot be nil.')
67
+ end
68
+
69
+ if @recipients.nil?
70
+ invalid_properties.push('invalid value for "recipients", recipients cannot be nil.')
71
+ end
72
+
73
+ invalid_properties
74
+ end
75
+
76
+ # Check to see if the all the properties in the model are valid
77
+ # @return true if the model is valid
78
+ def valid?
79
+ return false if @file_urls.nil?
80
+ return false if @recipients.nil?
81
+ true
82
+ end
83
+
84
+ # Checks equality by comparing each attribute.
85
+ # @param [Object] Object to be compared
86
+ def ==(o)
87
+ return true if self.equal?(o)
88
+ self.class == o.class &&
89
+ file_urls == o.file_urls &&
90
+ recipients == o.recipients
91
+ end
92
+
93
+ # @see the `==` method
94
+ # @param [Object] Object to be compared
95
+ def eql?(o)
96
+ self == o
97
+ end
98
+
99
+ # Calculates hash code according to all attributes.
100
+ # @return [Fixnum] Hash code
101
+ def hash
102
+ [file_urls, recipients].hash
103
+ end
104
+
105
+ # Builds the object from hash
106
+ # @param [Hash] attributes Model attributes in the form of hash
107
+ # @return [Object] Returns the model itself
108
+ def build_from_hash(attributes)
109
+ return nil unless attributes.is_a?(Hash)
110
+ self.class.clicksend_types.each_pair do |key, type|
111
+ if type =~ /\AArray<(.*)>/i
112
+ # check to ensure the input is an array given that the the attribute
113
+ # is documented as an array but the input is not
114
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
115
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
116
+ end
117
+ elsif !attributes[self.class.attribute_map[key]].nil?
118
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
119
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
120
+ end
121
+
122
+ self
123
+ end
124
+
125
+ # Deserializes the data based on type
126
+ # @param string type Data type
127
+ # @param string value Value to be deserialized
128
+ # @return [Object] Deserialized data
129
+ def _deserialize(type, value)
130
+ case type.to_sym
131
+ when :DateTime
132
+ DateTime.parse(value)
133
+ when :Date
134
+ Date.parse(value)
135
+ when :String
136
+ value.to_s
137
+ when :Integer
138
+ value.to_i
139
+ when :Float
140
+ value.to_f
141
+ when :BOOLEAN
142
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
143
+ true
144
+ else
145
+ false
146
+ end
147
+ when :Object
148
+ # generic object (usually a Hash), return directly
149
+ value
150
+ when /\AArray<(?<inner_type>.+)>\z/
151
+ inner_type = Regexp.last_match[:inner_type]
152
+ value.map { |v| _deserialize(inner_type, v) }
153
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
154
+ k_type = Regexp.last_match[:k_type]
155
+ v_type = Regexp.last_match[:v_type]
156
+ {}.tap do |hash|
157
+ value.each do |k, v|
158
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
159
+ end
160
+ end
161
+ else # model
162
+ temp_model = ClickSendClient.const_get(type).new
163
+ temp_model.build_from_hash(value)
164
+ end
165
+ end
166
+
167
+ # Returns the string representation of the object
168
+ # @return [String] String presentation of the object
169
+ def to_s
170
+ to_hash.to_s
171
+ end
172
+
173
+ # to_body is an alias to to_hash (backward compatibility)
174
+ # @return [Hash] Returns the object in the form of hash
175
+ def to_body
176
+ to_hash
177
+ end
178
+
179
+ # Returns the object in the form of hash
180
+ # @return [Hash] Returns the object in the form of hash
181
+ def to_hash
182
+ hash = {}
183
+ self.class.attribute_map.each_pair do |attr, param|
184
+ value = self.send(attr)
185
+ next if value.nil?
186
+ hash[param] = _to_hash(value)
187
+ end
188
+ hash
189
+ end
190
+
191
+ # Outputs non-array value in the form of hash
192
+ # For object, use to_hash. Otherwise, just return the value
193
+ # @param [Object] value Any valid value
194
+ # @return [Hash] Returns the value in the form of hash
195
+ def _to_hash(value)
196
+ if value.is_a?(Array)
197
+ value.compact.map { |v| _to_hash(v) }
198
+ elsif value.is_a?(Hash)
199
+ {}.tap do |hash|
200
+ value.each { |k, v| hash[k] = _to_hash(v) }
201
+ end
202
+ elsif value.respond_to? :to_hash
203
+ value.to_hash
204
+ else
205
+ value
206
+ end
207
+ end
208
+ end
209
+ end