late-sdk 0.0.67 → 0.0.69

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 (101) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -0
  3. data/docs/AddBroadcastRecipientsRequest.md +20 -0
  4. data/docs/BroadcastsApi.md +699 -0
  5. data/docs/BulkCreateContactsRequest.md +24 -0
  6. data/docs/BulkCreateContactsRequestContactsInner.md +28 -0
  7. data/docs/CommentAutomationsApi.md +428 -0
  8. data/docs/ContactsApi.md +500 -0
  9. data/docs/CreateBroadcastRequest.md +32 -0
  10. data/docs/CreateBroadcastRequestMessage.md +20 -0
  11. data/docs/CreateBroadcastRequestMessageAttachmentsInner.md +22 -0
  12. data/docs/CreateBroadcastRequestSegmentFilters.md +20 -0
  13. data/docs/CreateBroadcastRequestTemplate.md +22 -0
  14. data/docs/CreateCommentAutomationRequest.md +36 -0
  15. data/docs/CreateContactRequest.md +38 -0
  16. data/docs/CreateCustomFieldRequest.md +26 -0
  17. data/docs/CreateSequenceRequest.md +32 -0
  18. data/docs/CreateSequenceRequestStepsInner.md +24 -0
  19. data/docs/CreateSequenceRequestStepsInnerMessage.md +18 -0
  20. data/docs/CustomFieldsApi.md +419 -0
  21. data/docs/EnrollContactsRequest.md +20 -0
  22. data/docs/ListCommentAutomations200Response.md +20 -0
  23. data/docs/ListCommentAutomations200ResponseAutomationsInner.md +42 -0
  24. data/docs/ListCommentAutomations200ResponseAutomationsInnerStats.md +24 -0
  25. data/docs/ScheduleBroadcastRequest.md +18 -0
  26. data/docs/SequencesApi.md +697 -0
  27. data/docs/SetContactFieldValueRequest.md +18 -0
  28. data/docs/TwitterPlatformData.md +3 -1
  29. data/docs/TwitterPlatformDataPoll.md +20 -0
  30. data/docs/UpdateCommentAutomationRequest.md +28 -0
  31. data/docs/UpdateContactRequest.md +32 -0
  32. data/docs/UpdateCustomFieldRequest.md +20 -0
  33. data/docs/WhatsAppApi.md +25 -25
  34. data/lib/late-sdk/api/broadcasts_api.rb +689 -0
  35. data/lib/late-sdk/api/comment_automations_api.rb +420 -0
  36. data/lib/late-sdk/api/contacts_api.rb +503 -0
  37. data/lib/late-sdk/api/custom_fields_api.rb +424 -0
  38. data/lib/late-sdk/api/sequences_api.rb +681 -0
  39. data/lib/late-sdk/api/whats_app_api.rb +50 -50
  40. data/lib/late-sdk/models/add_broadcast_recipients_request.rb +160 -0
  41. data/lib/late-sdk/models/bulk_create_contacts_request.rb +253 -0
  42. data/lib/late-sdk/models/bulk_create_contacts_request_contacts_inner.rb +228 -0
  43. data/lib/late-sdk/models/create_broadcast_request.rb +302 -0
  44. data/lib/late-sdk/models/create_broadcast_request_message.rb +158 -0
  45. data/lib/late-sdk/models/create_broadcast_request_message_attachments_inner.rb +165 -0
  46. data/lib/late-sdk/models/create_broadcast_request_segment_filters.rb +158 -0
  47. data/lib/late-sdk/models/create_broadcast_request_template.rb +168 -0
  48. data/lib/late-sdk/models/create_comment_automation_request.rb +359 -0
  49. data/lib/late-sdk/models/create_contact_request.rb +276 -0
  50. data/lib/late-sdk/models/create_custom_field_request.rb +262 -0
  51. data/lib/late-sdk/models/create_sequence_request.rb +308 -0
  52. data/lib/late-sdk/models/create_sequence_request_steps_inner.rb +208 -0
  53. data/lib/late-sdk/models/create_sequence_request_steps_inner_message.rb +147 -0
  54. data/lib/late-sdk/models/enroll_contacts_request.rb +178 -0
  55. data/lib/late-sdk/models/list_comment_automations200_response.rb +158 -0
  56. data/lib/late-sdk/models/list_comment_automations200_response_automations_inner.rb +303 -0
  57. data/lib/late-sdk/models/list_comment_automations200_response_automations_inner_stats.rb +174 -0
  58. data/lib/late-sdk/models/schedule_broadcast_request.rb +164 -0
  59. data/lib/late-sdk/models/set_contact_field_value_request.rb +150 -0
  60. data/lib/late-sdk/models/twitter_platform_data.rb +13 -4
  61. data/lib/late-sdk/models/twitter_platform_data_poll.rb +231 -0
  62. data/lib/late-sdk/models/update_comment_automation_request.rb +228 -0
  63. data/lib/late-sdk/models/update_contact_request.rb +212 -0
  64. data/lib/late-sdk/models/update_custom_field_request.rb +158 -0
  65. data/lib/late-sdk/version.rb +1 -1
  66. data/lib/late-sdk.rb +29 -0
  67. data/openapi.yaml +830 -13
  68. data/spec/api/broadcasts_api_spec.rb +154 -0
  69. data/spec/api/comment_automations_api_spec.rb +108 -0
  70. data/spec/api/contacts_api_spec.rb +122 -0
  71. data/spec/api/custom_fields_api_spec.rb +105 -0
  72. data/spec/api/sequences_api_spec.rb +153 -0
  73. data/spec/api/whats_app_api_spec.rb +25 -25
  74. data/spec/models/add_broadcast_recipients_request_spec.rb +42 -0
  75. data/spec/models/bulk_create_contacts_request_contacts_inner_spec.rb +66 -0
  76. data/spec/models/bulk_create_contacts_request_spec.rb +54 -0
  77. data/spec/models/create_broadcast_request_message_attachments_inner_spec.rb +48 -0
  78. data/spec/models/create_broadcast_request_message_spec.rb +42 -0
  79. data/spec/models/create_broadcast_request_segment_filters_spec.rb +42 -0
  80. data/spec/models/create_broadcast_request_spec.rb +82 -0
  81. data/spec/models/create_broadcast_request_template_spec.rb +48 -0
  82. data/spec/models/create_comment_automation_request_spec.rb +94 -0
  83. data/spec/models/create_contact_request_spec.rb +96 -0
  84. data/spec/models/create_custom_field_request_spec.rb +64 -0
  85. data/spec/models/create_sequence_request_spec.rb +82 -0
  86. data/spec/models/create_sequence_request_steps_inner_message_spec.rb +36 -0
  87. data/spec/models/create_sequence_request_steps_inner_spec.rb +54 -0
  88. data/spec/models/enroll_contacts_request_spec.rb +42 -0
  89. data/spec/models/list_comment_automations200_response_automations_inner_spec.rb +116 -0
  90. data/spec/models/list_comment_automations200_response_automations_inner_stats_spec.rb +54 -0
  91. data/spec/models/list_comment_automations200_response_spec.rb +42 -0
  92. data/spec/models/schedule_broadcast_request_spec.rb +36 -0
  93. data/spec/models/set_contact_field_value_request_spec.rb +36 -0
  94. data/spec/models/twitter_platform_data_poll_spec.rb +42 -0
  95. data/spec/models/twitter_platform_data_spec.rb +6 -0
  96. data/spec/models/update_comment_automation_request_spec.rb +70 -0
  97. data/spec/models/update_contact_request_spec.rb +78 -0
  98. data/spec/models/update_custom_field_request_spec.rb +42 -0
  99. data/zernio-sdk-0.0.69.gem +0 -0
  100. metadata +118 -2
  101. data/zernio-sdk-0.0.67.gem +0 -0
@@ -0,0 +1,276 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.1
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Late
17
+ class CreateContactRequest < ApiModelBase
18
+ attr_accessor :profile_id
19
+
20
+ attr_accessor :name
21
+
22
+ attr_accessor :email
23
+
24
+ attr_accessor :company
25
+
26
+ attr_accessor :tags
27
+
28
+ attr_accessor :is_subscribed
29
+
30
+ attr_accessor :notes
31
+
32
+ # Optional. Creates a channel if provided with platform + platformIdentifier
33
+ attr_accessor :account_id
34
+
35
+ attr_accessor :platform
36
+
37
+ attr_accessor :platform_identifier
38
+
39
+ attr_accessor :display_identifier
40
+
41
+ # Attribute mapping from ruby-style variable name to JSON key.
42
+ def self.attribute_map
43
+ {
44
+ :'profile_id' => :'profileId',
45
+ :'name' => :'name',
46
+ :'email' => :'email',
47
+ :'company' => :'company',
48
+ :'tags' => :'tags',
49
+ :'is_subscribed' => :'isSubscribed',
50
+ :'notes' => :'notes',
51
+ :'account_id' => :'accountId',
52
+ :'platform' => :'platform',
53
+ :'platform_identifier' => :'platformIdentifier',
54
+ :'display_identifier' => :'displayIdentifier'
55
+ }
56
+ end
57
+
58
+ # Returns attribute mapping this model knows about
59
+ def self.acceptable_attribute_map
60
+ attribute_map
61
+ end
62
+
63
+ # Returns all the JSON keys this model knows about
64
+ def self.acceptable_attributes
65
+ acceptable_attribute_map.values
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ def self.openapi_types
70
+ {
71
+ :'profile_id' => :'String',
72
+ :'name' => :'String',
73
+ :'email' => :'String',
74
+ :'company' => :'String',
75
+ :'tags' => :'Array<String>',
76
+ :'is_subscribed' => :'Boolean',
77
+ :'notes' => :'String',
78
+ :'account_id' => :'String',
79
+ :'platform' => :'String',
80
+ :'platform_identifier' => :'String',
81
+ :'display_identifier' => :'String'
82
+ }
83
+ end
84
+
85
+ # List of attributes with nullable: true
86
+ def self.openapi_nullable
87
+ Set.new([
88
+ ])
89
+ end
90
+
91
+ # Initializes the object
92
+ # @param [Hash] attributes Model attributes in the form of hash
93
+ def initialize(attributes = {})
94
+ if (!attributes.is_a?(Hash))
95
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Late::CreateContactRequest` initialize method"
96
+ end
97
+
98
+ # check to see if the attribute exists and convert string to symbol for hash key
99
+ acceptable_attribute_map = self.class.acceptable_attribute_map
100
+ attributes = attributes.each_with_object({}) { |(k, v), h|
101
+ if (!acceptable_attribute_map.key?(k.to_sym))
102
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Late::CreateContactRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
103
+ end
104
+ h[k.to_sym] = v
105
+ }
106
+
107
+ if attributes.key?(:'profile_id')
108
+ self.profile_id = attributes[:'profile_id']
109
+ else
110
+ self.profile_id = nil
111
+ end
112
+
113
+ if attributes.key?(:'name')
114
+ self.name = attributes[:'name']
115
+ else
116
+ self.name = nil
117
+ end
118
+
119
+ if attributes.key?(:'email')
120
+ self.email = attributes[:'email']
121
+ end
122
+
123
+ if attributes.key?(:'company')
124
+ self.company = attributes[:'company']
125
+ end
126
+
127
+ if attributes.key?(:'tags')
128
+ if (value = attributes[:'tags']).is_a?(Array)
129
+ self.tags = value
130
+ end
131
+ end
132
+
133
+ if attributes.key?(:'is_subscribed')
134
+ self.is_subscribed = attributes[:'is_subscribed']
135
+ else
136
+ self.is_subscribed = true
137
+ end
138
+
139
+ if attributes.key?(:'notes')
140
+ self.notes = attributes[:'notes']
141
+ end
142
+
143
+ if attributes.key?(:'account_id')
144
+ self.account_id = attributes[:'account_id']
145
+ end
146
+
147
+ if attributes.key?(:'platform')
148
+ self.platform = attributes[:'platform']
149
+ end
150
+
151
+ if attributes.key?(:'platform_identifier')
152
+ self.platform_identifier = attributes[:'platform_identifier']
153
+ end
154
+
155
+ if attributes.key?(:'display_identifier')
156
+ self.display_identifier = attributes[:'display_identifier']
157
+ end
158
+ end
159
+
160
+ # Show invalid properties with the reasons. Usually used together with valid?
161
+ # @return Array for valid properties with the reasons
162
+ def list_invalid_properties
163
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
164
+ invalid_properties = Array.new
165
+ if @profile_id.nil?
166
+ invalid_properties.push('invalid value for "profile_id", profile_id cannot be nil.')
167
+ end
168
+
169
+ if @name.nil?
170
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
171
+ end
172
+
173
+ invalid_properties
174
+ end
175
+
176
+ # Check to see if the all the properties in the model are valid
177
+ # @return true if the model is valid
178
+ def valid?
179
+ warn '[DEPRECATED] the `valid?` method is obsolete'
180
+ return false if @profile_id.nil?
181
+ return false if @name.nil?
182
+ true
183
+ end
184
+
185
+ # Custom attribute writer method with validation
186
+ # @param [Object] profile_id Value to be assigned
187
+ def profile_id=(profile_id)
188
+ if profile_id.nil?
189
+ fail ArgumentError, 'profile_id cannot be nil'
190
+ end
191
+
192
+ @profile_id = profile_id
193
+ end
194
+
195
+ # Custom attribute writer method with validation
196
+ # @param [Object] name Value to be assigned
197
+ def name=(name)
198
+ if name.nil?
199
+ fail ArgumentError, 'name cannot be nil'
200
+ end
201
+
202
+ @name = name
203
+ end
204
+
205
+ # Checks equality by comparing each attribute.
206
+ # @param [Object] Object to be compared
207
+ def ==(o)
208
+ return true if self.equal?(o)
209
+ self.class == o.class &&
210
+ profile_id == o.profile_id &&
211
+ name == o.name &&
212
+ email == o.email &&
213
+ company == o.company &&
214
+ tags == o.tags &&
215
+ is_subscribed == o.is_subscribed &&
216
+ notes == o.notes &&
217
+ account_id == o.account_id &&
218
+ platform == o.platform &&
219
+ platform_identifier == o.platform_identifier &&
220
+ display_identifier == o.display_identifier
221
+ end
222
+
223
+ # @see the `==` method
224
+ # @param [Object] Object to be compared
225
+ def eql?(o)
226
+ self == o
227
+ end
228
+
229
+ # Calculates hash code according to all attributes.
230
+ # @return [Integer] Hash code
231
+ def hash
232
+ [profile_id, name, email, company, tags, is_subscribed, notes, account_id, platform, platform_identifier, display_identifier].hash
233
+ end
234
+
235
+ # Builds the object from hash
236
+ # @param [Hash] attributes Model attributes in the form of hash
237
+ # @return [Object] Returns the model itself
238
+ def self.build_from_hash(attributes)
239
+ return nil unless attributes.is_a?(Hash)
240
+ attributes = attributes.transform_keys(&:to_sym)
241
+ transformed_hash = {}
242
+ openapi_types.each_pair do |key, type|
243
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
244
+ transformed_hash["#{key}"] = nil
245
+ elsif type =~ /\AArray<(.*)>/i
246
+ # check to ensure the input is an array given that the attribute
247
+ # is documented as an array but the input is not
248
+ if attributes[attribute_map[key]].is_a?(Array)
249
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
250
+ end
251
+ elsif !attributes[attribute_map[key]].nil?
252
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
253
+ end
254
+ end
255
+ new(transformed_hash)
256
+ end
257
+
258
+ # Returns the object in the form of hash
259
+ # @return [Hash] Returns the object in the form of hash
260
+ def to_hash
261
+ hash = {}
262
+ self.class.attribute_map.each_pair do |attr, param|
263
+ value = self.send(attr)
264
+ if value.nil?
265
+ is_nullable = self.class.openapi_nullable.include?(attr)
266
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
267
+ end
268
+
269
+ hash[param] = _to_hash(value)
270
+ end
271
+ hash
272
+ end
273
+
274
+ end
275
+
276
+ end
@@ -0,0 +1,262 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
5
+
6
+ The version of the OpenAPI document: 1.0.1
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Late
17
+ class CreateCustomFieldRequest < ApiModelBase
18
+ attr_accessor :profile_id
19
+
20
+ attr_accessor :name
21
+
22
+ # Auto-generated from name if not provided
23
+ attr_accessor :slug
24
+
25
+ attr_accessor :type
26
+
27
+ # Required for select type
28
+ attr_accessor :options
29
+
30
+ class EnumAttributeValidator
31
+ attr_reader :datatype
32
+ attr_reader :allowable_values
33
+
34
+ def initialize(datatype, allowable_values)
35
+ @allowable_values = allowable_values.map do |value|
36
+ case datatype.to_s
37
+ when /Integer/i
38
+ value.to_i
39
+ when /Float/i
40
+ value.to_f
41
+ else
42
+ value
43
+ end
44
+ end
45
+ end
46
+
47
+ def valid?(value)
48
+ !value || allowable_values.include?(value)
49
+ end
50
+ end
51
+
52
+ # Attribute mapping from ruby-style variable name to JSON key.
53
+ def self.attribute_map
54
+ {
55
+ :'profile_id' => :'profileId',
56
+ :'name' => :'name',
57
+ :'slug' => :'slug',
58
+ :'type' => :'type',
59
+ :'options' => :'options'
60
+ }
61
+ end
62
+
63
+ # Returns attribute mapping this model knows about
64
+ def self.acceptable_attribute_map
65
+ attribute_map
66
+ end
67
+
68
+ # Returns all the JSON keys this model knows about
69
+ def self.acceptable_attributes
70
+ acceptable_attribute_map.values
71
+ end
72
+
73
+ # Attribute type mapping.
74
+ def self.openapi_types
75
+ {
76
+ :'profile_id' => :'String',
77
+ :'name' => :'String',
78
+ :'slug' => :'String',
79
+ :'type' => :'String',
80
+ :'options' => :'Array<String>'
81
+ }
82
+ end
83
+
84
+ # List of attributes with nullable: true
85
+ def self.openapi_nullable
86
+ Set.new([
87
+ ])
88
+ end
89
+
90
+ # Initializes the object
91
+ # @param [Hash] attributes Model attributes in the form of hash
92
+ def initialize(attributes = {})
93
+ if (!attributes.is_a?(Hash))
94
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Late::CreateCustomFieldRequest` initialize method"
95
+ end
96
+
97
+ # check to see if the attribute exists and convert string to symbol for hash key
98
+ acceptable_attribute_map = self.class.acceptable_attribute_map
99
+ attributes = attributes.each_with_object({}) { |(k, v), h|
100
+ if (!acceptable_attribute_map.key?(k.to_sym))
101
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Late::CreateCustomFieldRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
102
+ end
103
+ h[k.to_sym] = v
104
+ }
105
+
106
+ if attributes.key?(:'profile_id')
107
+ self.profile_id = attributes[:'profile_id']
108
+ else
109
+ self.profile_id = nil
110
+ end
111
+
112
+ if attributes.key?(:'name')
113
+ self.name = attributes[:'name']
114
+ else
115
+ self.name = nil
116
+ end
117
+
118
+ if attributes.key?(:'slug')
119
+ self.slug = attributes[:'slug']
120
+ end
121
+
122
+ if attributes.key?(:'type')
123
+ self.type = attributes[:'type']
124
+ else
125
+ self.type = nil
126
+ end
127
+
128
+ if attributes.key?(:'options')
129
+ if (value = attributes[:'options']).is_a?(Array)
130
+ self.options = value
131
+ end
132
+ end
133
+ end
134
+
135
+ # Show invalid properties with the reasons. Usually used together with valid?
136
+ # @return Array for valid properties with the reasons
137
+ def list_invalid_properties
138
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
139
+ invalid_properties = Array.new
140
+ if @profile_id.nil?
141
+ invalid_properties.push('invalid value for "profile_id", profile_id cannot be nil.')
142
+ end
143
+
144
+ if @name.nil?
145
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
146
+ end
147
+
148
+ if @type.nil?
149
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
150
+ end
151
+
152
+ invalid_properties
153
+ end
154
+
155
+ # Check to see if the all the properties in the model are valid
156
+ # @return true if the model is valid
157
+ def valid?
158
+ warn '[DEPRECATED] the `valid?` method is obsolete'
159
+ return false if @profile_id.nil?
160
+ return false if @name.nil?
161
+ return false if @type.nil?
162
+ type_validator = EnumAttributeValidator.new('String', ["text", "number", "date", "boolean", "select"])
163
+ return false unless type_validator.valid?(@type)
164
+ true
165
+ end
166
+
167
+ # Custom attribute writer method with validation
168
+ # @param [Object] profile_id Value to be assigned
169
+ def profile_id=(profile_id)
170
+ if profile_id.nil?
171
+ fail ArgumentError, 'profile_id cannot be nil'
172
+ end
173
+
174
+ @profile_id = profile_id
175
+ end
176
+
177
+ # Custom attribute writer method with validation
178
+ # @param [Object] name Value to be assigned
179
+ def name=(name)
180
+ if name.nil?
181
+ fail ArgumentError, 'name cannot be nil'
182
+ end
183
+
184
+ @name = name
185
+ end
186
+
187
+ # Custom attribute writer method checking allowed values (enum).
188
+ # @param [Object] type Object to be assigned
189
+ def type=(type)
190
+ validator = EnumAttributeValidator.new('String', ["text", "number", "date", "boolean", "select"])
191
+ unless validator.valid?(type)
192
+ fail ArgumentError, "invalid value for \"type\", must be one of #{validator.allowable_values}."
193
+ end
194
+ @type = type
195
+ end
196
+
197
+ # Checks equality by comparing each attribute.
198
+ # @param [Object] Object to be compared
199
+ def ==(o)
200
+ return true if self.equal?(o)
201
+ self.class == o.class &&
202
+ profile_id == o.profile_id &&
203
+ name == o.name &&
204
+ slug == o.slug &&
205
+ type == o.type &&
206
+ options == o.options
207
+ end
208
+
209
+ # @see the `==` method
210
+ # @param [Object] Object to be compared
211
+ def eql?(o)
212
+ self == o
213
+ end
214
+
215
+ # Calculates hash code according to all attributes.
216
+ # @return [Integer] Hash code
217
+ def hash
218
+ [profile_id, name, slug, type, options].hash
219
+ end
220
+
221
+ # Builds the object from hash
222
+ # @param [Hash] attributes Model attributes in the form of hash
223
+ # @return [Object] Returns the model itself
224
+ def self.build_from_hash(attributes)
225
+ return nil unless attributes.is_a?(Hash)
226
+ attributes = attributes.transform_keys(&:to_sym)
227
+ transformed_hash = {}
228
+ openapi_types.each_pair do |key, type|
229
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
230
+ transformed_hash["#{key}"] = nil
231
+ elsif type =~ /\AArray<(.*)>/i
232
+ # check to ensure the input is an array given that the attribute
233
+ # is documented as an array but the input is not
234
+ if attributes[attribute_map[key]].is_a?(Array)
235
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
236
+ end
237
+ elsif !attributes[attribute_map[key]].nil?
238
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
239
+ end
240
+ end
241
+ new(transformed_hash)
242
+ end
243
+
244
+ # Returns the object in the form of hash
245
+ # @return [Hash] Returns the object in the form of hash
246
+ def to_hash
247
+ hash = {}
248
+ self.class.attribute_map.each_pair do |attr, param|
249
+ value = self.send(attr)
250
+ if value.nil?
251
+ is_nullable = self.class.openapi_nullable.include?(attr)
252
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
253
+ end
254
+
255
+ hash[param] = _to_hash(value)
256
+ end
257
+ hash
258
+ end
259
+
260
+ end
261
+
262
+ end