billabear 1.0.0

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 (187) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +1340 -0
  4. data/Rakefile +8 -0
  5. data/billabear.gemspec +38 -0
  6. data/docs/Address.md +13 -0
  7. data/docs/BillingAdmin.md +8 -0
  8. data/docs/CheckoutApi.md +61 -0
  9. data/docs/CheckoutBody.md +12 -0
  10. data/docs/CheckoutItems.md +11 -0
  11. data/docs/CheckoutSubscriptions.md +9 -0
  12. data/docs/Customer.md +18 -0
  13. data/docs/CustomersApi.md +904 -0
  14. data/docs/Error.md +8 -0
  15. data/docs/Feature.md +10 -0
  16. data/docs/FrontendToken.md +7 -0
  17. data/docs/InlineResponse200.md +9 -0
  18. data/docs/InlineResponse2001.md +9 -0
  19. data/docs/InlineResponse20010.md +9 -0
  20. data/docs/InlineResponse20011.md +7 -0
  21. data/docs/InlineResponse20012.md +8 -0
  22. data/docs/InlineResponse2002.md +9 -0
  23. data/docs/InlineResponse2003.md +9 -0
  24. data/docs/InlineResponse2004.md +9 -0
  25. data/docs/InlineResponse2005.md +9 -0
  26. data/docs/InlineResponse2006.md +9 -0
  27. data/docs/InlineResponse2007.md +9 -0
  28. data/docs/InlineResponse2007Data.md +14 -0
  29. data/docs/InlineResponse2007Receipts.md +9 -0
  30. data/docs/InlineResponse2008.md +9 -0
  31. data/docs/InlineResponse2009.md +9 -0
  32. data/docs/InlineResponse201.md +15 -0
  33. data/docs/InlineResponse201Lines.md +14 -0
  34. data/docs/InlineResponse400.md +7 -0
  35. data/docs/Invoice.md +21 -0
  36. data/docs/InvoiceLines.md +12 -0
  37. data/docs/InvoicesApi.md +169 -0
  38. data/docs/IssueRefundPayment.md +9 -0
  39. data/docs/Limit.md +8 -0
  40. data/docs/PaymentDetails.md +14 -0
  41. data/docs/PaymentDetailsApi.md +447 -0
  42. data/docs/PaymentsApi.md +399 -0
  43. data/docs/Price.md +14 -0
  44. data/docs/PricesApi.md +122 -0
  45. data/docs/Product.md +10 -0
  46. data/docs/ProductTaxType.md +9 -0
  47. data/docs/ProductsApi.md +228 -0
  48. data/docs/ReceiptApi.md +61 -0
  49. data/docs/Refund.md +16 -0
  50. data/docs/RefundsApi.md +181 -0
  51. data/docs/SeatsAddBody.md +7 -0
  52. data/docs/SeatsRemoveBody.md +7 -0
  53. data/docs/Subscription.md +18 -0
  54. data/docs/SubscriptionIdCancelBody.md +10 -0
  55. data/docs/SubscriptionIdExtendBody.md +7 -0
  56. data/docs/SubscriptionIdPlanBody.md +9 -0
  57. data/docs/SubscriptionIdPriceBody.md +8 -0
  58. data/docs/SubscriptionPlan.md +20 -0
  59. data/docs/SubscriptionStartBody.md +14 -0
  60. data/docs/SubscriptionTrialBody.md +10 -0
  61. data/docs/SubscriptionsApi.md +731 -0
  62. data/docs/VoucherCode.md +7 -0
  63. data/git_push.sh +55 -0
  64. data/lib/swagger_client/api/checkout_api.rb +78 -0
  65. data/lib/swagger_client/api/customers_api.rb +980 -0
  66. data/lib/swagger_client/api/invoices_api.rb +188 -0
  67. data/lib/swagger_client/api/payment_details_api.rb +494 -0
  68. data/lib/swagger_client/api/payments_api.rb +432 -0
  69. data/lib/swagger_client/api/prices_api.rb +146 -0
  70. data/lib/swagger_client/api/products_api.rb +249 -0
  71. data/lib/swagger_client/api/receipt_api.rb +76 -0
  72. data/lib/swagger_client/api/refunds_api.rb +200 -0
  73. data/lib/swagger_client/api/subscriptions_api.rb +812 -0
  74. data/lib/swagger_client/api_client.rb +388 -0
  75. data/lib/swagger_client/api_error.rb +57 -0
  76. data/lib/swagger_client/configuration.rb +205 -0
  77. data/lib/swagger_client/models/address.rb +265 -0
  78. data/lib/swagger_client/models/billing_admin.rb +215 -0
  79. data/lib/swagger_client/models/checkout_body.rb +265 -0
  80. data/lib/swagger_client/models/checkout_items.rb +242 -0
  81. data/lib/swagger_client/models/checkout_subscriptions.rb +224 -0
  82. data/lib/swagger_client/models/customer.rb +370 -0
  83. data/lib/swagger_client/models/error.rb +225 -0
  84. data/lib/swagger_client/models/feature.rb +240 -0
  85. data/lib/swagger_client/models/frontend_token.rb +211 -0
  86. data/lib/swagger_client/models/inline_response_200.rb +226 -0
  87. data/lib/swagger_client/models/inline_response_200_1.rb +228 -0
  88. data/lib/swagger_client/models/inline_response_200_10.rb +226 -0
  89. data/lib/swagger_client/models/inline_response_200_11.rb +206 -0
  90. data/lib/swagger_client/models/inline_response_200_12.rb +250 -0
  91. data/lib/swagger_client/models/inline_response_200_2.rb +226 -0
  92. data/lib/swagger_client/models/inline_response_200_3.rb +226 -0
  93. data/lib/swagger_client/models/inline_response_200_4.rb +226 -0
  94. data/lib/swagger_client/models/inline_response_200_5.rb +226 -0
  95. data/lib/swagger_client/models/inline_response_200_6.rb +226 -0
  96. data/lib/swagger_client/models/inline_response_200_7.rb +226 -0
  97. data/lib/swagger_client/models/inline_response_200_7_data.rb +307 -0
  98. data/lib/swagger_client/models/inline_response_200_7_receipts.rb +224 -0
  99. data/lib/swagger_client/models/inline_response_200_8.rb +226 -0
  100. data/lib/swagger_client/models/inline_response_200_9.rb +226 -0
  101. data/lib/swagger_client/models/inline_response_201.rb +285 -0
  102. data/lib/swagger_client/models/inline_response_201_lines.rb +269 -0
  103. data/lib/swagger_client/models/inline_response_400.rb +213 -0
  104. data/lib/swagger_client/models/invoice.rb +334 -0
  105. data/lib/swagger_client/models/invoice_lines.rb +251 -0
  106. data/lib/swagger_client/models/issue_refund_payment.rb +232 -0
  107. data/lib/swagger_client/models/limit.rb +215 -0
  108. data/lib/swagger_client/models/payment_details.rb +271 -0
  109. data/lib/swagger_client/models/price.rb +325 -0
  110. data/lib/swagger_client/models/product.rb +240 -0
  111. data/lib/swagger_client/models/product_tax_type.rb +229 -0
  112. data/lib/swagger_client/models/refund.rb +324 -0
  113. data/lib/swagger_client/models/seats_add_body.rb +211 -0
  114. data/lib/swagger_client/models/seats_remove_body.rb +211 -0
  115. data/lib/swagger_client/models/subscription.rb +305 -0
  116. data/lib/swagger_client/models/subscription_id_cancel_body.rb +294 -0
  117. data/lib/swagger_client/models/subscription_id_extend_body.rb +211 -0
  118. data/lib/swagger_client/models/subscription_id_plan_body.rb +270 -0
  119. data/lib/swagger_client/models/subscription_id_price_body.rb +259 -0
  120. data/lib/swagger_client/models/subscription_plan.rb +330 -0
  121. data/lib/swagger_client/models/subscription_start_body.rb +314 -0
  122. data/lib/swagger_client/models/subscription_trial_body.rb +242 -0
  123. data/lib/swagger_client/models/voucher_code.rb +211 -0
  124. data/lib/swagger_client/version.rb +14 -0
  125. data/lib/swagger_client.rb +95 -0
  126. data/spec/api/checkout_api_spec.rb +46 -0
  127. data/spec/api/customers_api_spec.rb +241 -0
  128. data/spec/api/invoices_api_spec.rb +70 -0
  129. data/spec/api/payment_details_api_spec.rb +134 -0
  130. data/spec/api/payments_api_spec.rb +124 -0
  131. data/spec/api/prices_api_spec.rb +61 -0
  132. data/spec/api/products_api_spec.rb +84 -0
  133. data/spec/api/receipt_api_spec.rb +46 -0
  134. data/spec/api/refunds_api_spec.rb +75 -0
  135. data/spec/api/subscriptions_api_spec.rb +200 -0
  136. data/spec/api_client_spec.rb +225 -0
  137. data/spec/base_object_spec.rb +109 -0
  138. data/spec/configuration_spec.rb +41 -0
  139. data/spec/models/address_spec.rb +76 -0
  140. data/spec/models/billing_admin_spec.rb +46 -0
  141. data/spec/models/checkout_body_spec.rb +70 -0
  142. data/spec/models/checkout_items_spec.rb +64 -0
  143. data/spec/models/checkout_subscriptions_spec.rb +52 -0
  144. data/spec/models/customer_spec.rb +114 -0
  145. data/spec/models/error_spec.rb +46 -0
  146. data/spec/models/feature_spec.rb +58 -0
  147. data/spec/models/frontend_token_spec.rb +40 -0
  148. data/spec/models/inline_response_200_10_spec.rb +52 -0
  149. data/spec/models/inline_response_200_11_spec.rb +40 -0
  150. data/spec/models/inline_response_200_12_spec.rb +50 -0
  151. data/spec/models/inline_response_200_1_spec.rb +52 -0
  152. data/spec/models/inline_response_200_2_spec.rb +52 -0
  153. data/spec/models/inline_response_200_3_spec.rb +52 -0
  154. data/spec/models/inline_response_200_4_spec.rb +52 -0
  155. data/spec/models/inline_response_200_5_spec.rb +52 -0
  156. data/spec/models/inline_response_200_6_spec.rb +52 -0
  157. data/spec/models/inline_response_200_7_data_spec.rb +86 -0
  158. data/spec/models/inline_response_200_7_receipts_spec.rb +52 -0
  159. data/spec/models/inline_response_200_7_spec.rb +52 -0
  160. data/spec/models/inline_response_200_8_spec.rb +52 -0
  161. data/spec/models/inline_response_200_9_spec.rb +52 -0
  162. data/spec/models/inline_response_200_spec.rb +52 -0
  163. data/spec/models/inline_response_201_lines_spec.rb +82 -0
  164. data/spec/models/inline_response_201_spec.rb +88 -0
  165. data/spec/models/inline_response_400_spec.rb +40 -0
  166. data/spec/models/invoice_lines_spec.rb +70 -0
  167. data/spec/models/invoice_spec.rb +124 -0
  168. data/spec/models/issue_refund_payment_spec.rb +52 -0
  169. data/spec/models/limit_spec.rb +46 -0
  170. data/spec/models/payment_details_spec.rb +82 -0
  171. data/spec/models/price_spec.rb +86 -0
  172. data/spec/models/product_spec.rb +58 -0
  173. data/spec/models/product_tax_type_spec.rb +52 -0
  174. data/spec/models/refund_spec.rb +98 -0
  175. data/spec/models/seats_add_body_spec.rb +40 -0
  176. data/spec/models/seats_remove_body_spec.rb +40 -0
  177. data/spec/models/subscription_id_cancel_body_spec.rb +66 -0
  178. data/spec/models/subscription_id_extend_body_spec.rb +40 -0
  179. data/spec/models/subscription_id_plan_body_spec.rb +56 -0
  180. data/spec/models/subscription_id_price_body_spec.rb +50 -0
  181. data/spec/models/subscription_plan_spec.rb +118 -0
  182. data/spec/models/subscription_spec.rb +106 -0
  183. data/spec/models/subscription_start_body_spec.rb +86 -0
  184. data/spec/models/subscription_trial_body_spec.rb +58 -0
  185. data/spec/models/voucher_code_spec.rb +40 -0
  186. data/spec/spec_helper.rb +110 -0
  187. metadata +349 -0
@@ -0,0 +1,226 @@
1
+ =begin
2
+ #BillaBear
3
+
4
+ #The REST API provided by BillaBear
5
+
6
+ OpenAPI spec version: 1.0.0
7
+ Contact: support@billabear.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 3.0.56
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module SwaggerClient
15
+ class InlineResponse2006
16
+ attr_accessor :data
17
+
18
+ attr_accessor :has_more
19
+
20
+ attr_accessor :last_key
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'data' => :'data',
26
+ :'has_more' => :'has_more',
27
+ :'last_key' => :'last_key'
28
+ }
29
+ end
30
+
31
+ # Attribute type mapping.
32
+ def self.openapi_types
33
+ {
34
+ :'data' => :'Object',
35
+ :'has_more' => :'Object',
36
+ :'last_key' => :'Object'
37
+ }
38
+ end
39
+
40
+ # List of attributes with nullable: true
41
+ def self.openapi_nullable
42
+ Set.new([
43
+ ])
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `SwaggerClient::InlineResponse2006` initialize method"
51
+ end
52
+
53
+ # check to see if the attribute exists and convert string to symbol for hash key
54
+ attributes = attributes.each_with_object({}) { |(k, v), h|
55
+ if (!self.class.attribute_map.key?(k.to_sym))
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `SwaggerClient::InlineResponse2006`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
+ end
58
+ h[k.to_sym] = v
59
+ }
60
+
61
+ if attributes.key?(:'data')
62
+ if (value = attributes[:'data']).is_a?(Array)
63
+ self.data = value
64
+ end
65
+ end
66
+
67
+ if attributes.key?(:'has_more')
68
+ self.has_more = attributes[:'has_more']
69
+ end
70
+
71
+ if attributes.key?(:'last_key')
72
+ self.last_key = attributes[:'last_key']
73
+ end
74
+ end
75
+
76
+ # Show invalid properties with the reasons. Usually used together with valid?
77
+ # @return Array for valid properties with the reasons
78
+ def list_invalid_properties
79
+ invalid_properties = Array.new
80
+ invalid_properties
81
+ end
82
+
83
+ # Check to see if the all the properties in the model are valid
84
+ # @return true if the model is valid
85
+ def valid?
86
+ true
87
+ end
88
+
89
+ # Checks equality by comparing each attribute.
90
+ # @param [Object] Object to be compared
91
+ def ==(o)
92
+ return true if self.equal?(o)
93
+ self.class == o.class &&
94
+ data == o.data &&
95
+ has_more == o.has_more &&
96
+ last_key == o.last_key
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [data, has_more, last_key].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ self.class.openapi_types.each_pair do |key, type|
124
+ if type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
133
+ self.send("#{key}=", nil)
134
+ end
135
+ end
136
+
137
+ self
138
+ end
139
+
140
+ # Deserializes the data based on type
141
+ # @param string type Data type
142
+ # @param string value Value to be deserialized
143
+ # @return [Object] Deserialized data
144
+ def _deserialize(type, value)
145
+ case type.to_sym
146
+ when :DateTime
147
+ DateTime.parse(value)
148
+ when :Date
149
+ Date.parse(value)
150
+ when :String
151
+ value.to_s
152
+ when :Integer
153
+ value.to_i
154
+ when :Float
155
+ value.to_f
156
+ when :Boolean
157
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
158
+ true
159
+ else
160
+ false
161
+ end
162
+ when :Object
163
+ # generic object (usually a Hash), return directly
164
+ value
165
+ when /\AArray<(?<inner_type>.+)>\z/
166
+ inner_type = Regexp.last_match[:inner_type]
167
+ value.map { |v| _deserialize(inner_type, v) }
168
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
169
+ k_type = Regexp.last_match[:k_type]
170
+ v_type = Regexp.last_match[:v_type]
171
+ {}.tap do |hash|
172
+ value.each do |k, v|
173
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
174
+ end
175
+ end
176
+ else # model
177
+ SwaggerClient.const_get(type).build_from_hash(value)
178
+ end
179
+ end
180
+
181
+ # Returns the string representation of the object
182
+ # @return [String] String presentation of the object
183
+ def to_s
184
+ to_hash.to_s
185
+ end
186
+
187
+ # to_body is an alias to to_hash (backward compatibility)
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_body
190
+ to_hash
191
+ end
192
+
193
+ # Returns the object in the form of hash
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_hash
196
+ hash = {}
197
+ self.class.attribute_map.each_pair do |attr, param|
198
+ value = self.send(attr)
199
+ if value.nil?
200
+ is_nullable = self.class.openapi_nullable.include?(attr)
201
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
+ end
203
+
204
+ hash[param] = _to_hash(value)
205
+ end
206
+ hash
207
+ end
208
+
209
+ # Outputs non-array value in the form of hash
210
+ # For object, use to_hash. Otherwise, just return the value
211
+ # @param [Object] value Any valid value
212
+ # @return [Hash] Returns the value in the form of hash
213
+ def _to_hash(value)
214
+ if value.is_a?(Array)
215
+ value.compact.map { |v| _to_hash(v) }
216
+ elsif value.is_a?(Hash)
217
+ {}.tap do |hash|
218
+ value.each { |k, v| hash[k] = _to_hash(v) }
219
+ end
220
+ elsif value.respond_to? :to_hash
221
+ value.to_hash
222
+ else
223
+ value
224
+ end
225
+ end end
226
+ end
@@ -0,0 +1,226 @@
1
+ =begin
2
+ #BillaBear
3
+
4
+ #The REST API provided by BillaBear
5
+
6
+ OpenAPI spec version: 1.0.0
7
+ Contact: support@billabear.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 3.0.56
10
+ =end
11
+
12
+ require 'date'
13
+
14
+ module SwaggerClient
15
+ class InlineResponse2007
16
+ attr_accessor :data
17
+
18
+ attr_accessor :has_more
19
+
20
+ attr_accessor :last_key
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'data' => :'data',
26
+ :'has_more' => :'has_more',
27
+ :'last_key' => :'last_key'
28
+ }
29
+ end
30
+
31
+ # Attribute type mapping.
32
+ def self.openapi_types
33
+ {
34
+ :'data' => :'Object',
35
+ :'has_more' => :'Object',
36
+ :'last_key' => :'Object'
37
+ }
38
+ end
39
+
40
+ # List of attributes with nullable: true
41
+ def self.openapi_nullable
42
+ Set.new([
43
+ ])
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `SwaggerClient::InlineResponse2007` initialize method"
51
+ end
52
+
53
+ # check to see if the attribute exists and convert string to symbol for hash key
54
+ attributes = attributes.each_with_object({}) { |(k, v), h|
55
+ if (!self.class.attribute_map.key?(k.to_sym))
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `SwaggerClient::InlineResponse2007`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
+ end
58
+ h[k.to_sym] = v
59
+ }
60
+
61
+ if attributes.key?(:'data')
62
+ if (value = attributes[:'data']).is_a?(Array)
63
+ self.data = value
64
+ end
65
+ end
66
+
67
+ if attributes.key?(:'has_more')
68
+ self.has_more = attributes[:'has_more']
69
+ end
70
+
71
+ if attributes.key?(:'last_key')
72
+ self.last_key = attributes[:'last_key']
73
+ end
74
+ end
75
+
76
+ # Show invalid properties with the reasons. Usually used together with valid?
77
+ # @return Array for valid properties with the reasons
78
+ def list_invalid_properties
79
+ invalid_properties = Array.new
80
+ invalid_properties
81
+ end
82
+
83
+ # Check to see if the all the properties in the model are valid
84
+ # @return true if the model is valid
85
+ def valid?
86
+ true
87
+ end
88
+
89
+ # Checks equality by comparing each attribute.
90
+ # @param [Object] Object to be compared
91
+ def ==(o)
92
+ return true if self.equal?(o)
93
+ self.class == o.class &&
94
+ data == o.data &&
95
+ has_more == o.has_more &&
96
+ last_key == o.last_key
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [data, has_more, last_key].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ self.class.openapi_types.each_pair do |key, type|
124
+ if type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
133
+ self.send("#{key}=", nil)
134
+ end
135
+ end
136
+
137
+ self
138
+ end
139
+
140
+ # Deserializes the data based on type
141
+ # @param string type Data type
142
+ # @param string value Value to be deserialized
143
+ # @return [Object] Deserialized data
144
+ def _deserialize(type, value)
145
+ case type.to_sym
146
+ when :DateTime
147
+ DateTime.parse(value)
148
+ when :Date
149
+ Date.parse(value)
150
+ when :String
151
+ value.to_s
152
+ when :Integer
153
+ value.to_i
154
+ when :Float
155
+ value.to_f
156
+ when :Boolean
157
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
158
+ true
159
+ else
160
+ false
161
+ end
162
+ when :Object
163
+ # generic object (usually a Hash), return directly
164
+ value
165
+ when /\AArray<(?<inner_type>.+)>\z/
166
+ inner_type = Regexp.last_match[:inner_type]
167
+ value.map { |v| _deserialize(inner_type, v) }
168
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
169
+ k_type = Regexp.last_match[:k_type]
170
+ v_type = Regexp.last_match[:v_type]
171
+ {}.tap do |hash|
172
+ value.each do |k, v|
173
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
174
+ end
175
+ end
176
+ else # model
177
+ SwaggerClient.const_get(type).build_from_hash(value)
178
+ end
179
+ end
180
+
181
+ # Returns the string representation of the object
182
+ # @return [String] String presentation of the object
183
+ def to_s
184
+ to_hash.to_s
185
+ end
186
+
187
+ # to_body is an alias to to_hash (backward compatibility)
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_body
190
+ to_hash
191
+ end
192
+
193
+ # Returns the object in the form of hash
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_hash
196
+ hash = {}
197
+ self.class.attribute_map.each_pair do |attr, param|
198
+ value = self.send(attr)
199
+ if value.nil?
200
+ is_nullable = self.class.openapi_nullable.include?(attr)
201
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
+ end
203
+
204
+ hash[param] = _to_hash(value)
205
+ end
206
+ hash
207
+ end
208
+
209
+ # Outputs non-array value in the form of hash
210
+ # For object, use to_hash. Otherwise, just return the value
211
+ # @param [Object] value Any valid value
212
+ # @return [Hash] Returns the value in the form of hash
213
+ def _to_hash(value)
214
+ if value.is_a?(Array)
215
+ value.compact.map { |v| _to_hash(v) }
216
+ elsif value.is_a?(Hash)
217
+ {}.tap do |hash|
218
+ value.each { |k, v| hash[k] = _to_hash(v) }
219
+ end
220
+ elsif value.respond_to? :to_hash
221
+ value.to_hash
222
+ else
223
+ value
224
+ end
225
+ end end
226
+ end