purecloudplatformclientv2 15.0.0 → 16.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 (131) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/docs/Action.md +21 -0
  4. data/docs/ActionConfig.md +14 -0
  5. data/docs/ActionContract.md +14 -0
  6. data/docs/ActionContractInput.md +14 -0
  7. data/docs/ActionEntityListing.md +22 -0
  8. data/docs/ActionInput.md +15 -0
  9. data/docs/ActionOutput.md +18 -0
  10. data/docs/ActiveAlertCount.md +13 -0
  11. data/docs/AggregationQuery.md +1 -1
  12. data/docs/AlertingApi.md +54 -0
  13. data/docs/ArchitectApi.md +31 -25
  14. data/docs/CallConversationNotificationCallMediaParticipant.md +1 -0
  15. data/docs/CallConversationNotificationParticipants.md +1 -0
  16. data/docs/CallbackConversationNotificationCallbackMediaParticipant.md +1 -0
  17. data/docs/CallbackConversationNotificationParticipants.md +1 -0
  18. data/docs/Category.md +13 -0
  19. data/docs/CategoryEntityListing.md +17 -0
  20. data/docs/ChatConversationNotificationChatMediaParticipant.md +1 -0
  21. data/docs/ChatConversationNotificationParticipants.md +1 -0
  22. data/docs/CobrowseConversationNotificationCobrowseMediaParticipant.md +1 -0
  23. data/docs/CobrowseConversationNotificationParticipants.md +1 -0
  24. data/docs/ConversationNotificationCall.md +1 -0
  25. data/docs/ConversationNotificationCalls.md +1 -0
  26. data/docs/ConversationNotificationEmail.md +1 -0
  27. data/docs/ConversationNotificationEmails.md +1 -0
  28. data/docs/ConversationNotificationParticipant.md +1 -0
  29. data/docs/ConversationNotificationParticipants.md +1 -0
  30. data/docs/ConversationsApi.md +3 -3
  31. data/docs/Document.md +1 -1
  32. data/docs/DomainOrganizationRole.md +1 -1
  33. data/docs/DomainOrganizationRoleCreate.md +1 -1
  34. data/docs/DomainOrganizationRoleUpdate.md +1 -1
  35. data/docs/DraftValidationResult.md +14 -0
  36. data/docs/EmailConversationNotificationEmailMediaParticipant.md +2 -0
  37. data/docs/EmailConversationNotificationParticipants.md +2 -0
  38. data/docs/FaxDocument.md +1 -1
  39. data/docs/IntegrationsApi.md +1355 -0
  40. data/docs/JsonNode.md +4 -4
  41. data/docs/ManagementUnit.md +1 -1
  42. data/docs/ManagementUnitListing.md +22 -0
  43. data/docs/OutboundApi.md +59 -0
  44. data/docs/PostActionInput.md +18 -0
  45. data/docs/PostInputContract.md +13 -0
  46. data/docs/PostOutputContract.md +13 -0
  47. data/docs/PublishDraftInput.md +13 -0
  48. data/docs/RecordingApi.md +123 -0
  49. data/docs/RequestConfig.md +17 -0
  50. data/docs/ResponseConfig.md +15 -0
  51. data/docs/ScreenShareConversationNotificationParticipants.md +1 -0
  52. data/docs/ScreenShareConversationNotificationScreenShareMediaParticipant.md +1 -0
  53. data/docs/SocialConversationNotificationParticipants.md +1 -0
  54. data/docs/SocialConversationNotificationSocialMediaParticipant.md +1 -0
  55. data/docs/TestExecutionOperationResult.md +17 -0
  56. data/docs/TestExecutionResult.md +16 -0
  57. data/docs/UpdateActionInput.md +16 -0
  58. data/docs/UpdateDraftInput.md +18 -0
  59. data/docs/VideoConversationNotificationParticipants.md +1 -0
  60. data/docs/VideoConversationNotificationVideoMediaParticipant.md +1 -0
  61. data/docs/WorkforceManagementApi.md +2 -4
  62. data/lib/purecloudplatformclientv2.rb +23 -1
  63. data/lib/purecloudplatformclientv2/api/alerting_api.rb +55 -0
  64. data/lib/purecloudplatformclientv2/api/architect_api.rb +52 -20
  65. data/lib/purecloudplatformclientv2/api/conversations_api.rb +2 -2
  66. data/lib/purecloudplatformclientv2/api/integrations_api.rb +1723 -0
  67. data/lib/purecloudplatformclientv2/api/outbound_api.rb +65 -0
  68. data/lib/purecloudplatformclientv2/api/recording_api.rb +140 -0
  69. data/lib/purecloudplatformclientv2/api/workforce_management_api.rb +3 -12
  70. data/lib/purecloudplatformclientv2/api_client.rb +1 -1
  71. data/lib/purecloudplatformclientv2/models/action.rb +409 -0
  72. data/lib/purecloudplatformclientv2/models/action_config.rb +229 -0
  73. data/lib/purecloudplatformclientv2/models/action_contract.rb +229 -0
  74. data/lib/purecloudplatformclientv2/models/action_contract_input.rb +239 -0
  75. data/lib/purecloudplatformclientv2/models/action_entity_listing.rb +428 -0
  76. data/lib/purecloudplatformclientv2/models/action_input.rb +255 -0
  77. data/lib/purecloudplatformclientv2/models/action_output.rb +333 -0
  78. data/lib/purecloudplatformclientv2/models/active_alert_count.rb +202 -0
  79. data/lib/purecloudplatformclientv2/models/aggregation_query.rb +1 -1
  80. data/lib/purecloudplatformclientv2/models/call_conversation_notification_call_media_participant.rb +26 -1
  81. data/lib/purecloudplatformclientv2/models/call_conversation_notification_participants.rb +26 -1
  82. data/lib/purecloudplatformclientv2/models/callback_conversation_notification_callback_media_participant.rb +26 -1
  83. data/lib/purecloudplatformclientv2/models/callback_conversation_notification_participants.rb +26 -1
  84. data/lib/purecloudplatformclientv2/models/category.rb +203 -0
  85. data/lib/purecloudplatformclientv2/models/category_entity_listing.rb +303 -0
  86. data/lib/purecloudplatformclientv2/models/chat_conversation_notification_chat_media_participant.rb +26 -1
  87. data/lib/purecloudplatformclientv2/models/chat_conversation_notification_participants.rb +26 -1
  88. data/lib/purecloudplatformclientv2/models/cobrowse_conversation_notification_cobrowse_media_participant.rb +26 -1
  89. data/lib/purecloudplatformclientv2/models/cobrowse_conversation_notification_participants.rb +26 -1
  90. data/lib/purecloudplatformclientv2/models/condition.rb +2 -2
  91. data/lib/purecloudplatformclientv2/models/conversation_notification_call.rb +26 -1
  92. data/lib/purecloudplatformclientv2/models/conversation_notification_calls.rb +26 -1
  93. data/lib/purecloudplatformclientv2/models/conversation_notification_email.rb +26 -1
  94. data/lib/purecloudplatformclientv2/models/conversation_notification_emails.rb +26 -1
  95. data/lib/purecloudplatformclientv2/models/conversation_notification_participant.rb +40 -1
  96. data/lib/purecloudplatformclientv2/models/conversation_notification_participants.rb +40 -1
  97. data/lib/purecloudplatformclientv2/models/dependency.rb +2 -2
  98. data/lib/purecloudplatformclientv2/models/dependency_object.rb +2 -2
  99. data/lib/purecloudplatformclientv2/models/document.rb +12 -12
  100. data/lib/purecloudplatformclientv2/models/domain_organization_role.rb +12 -12
  101. data/lib/purecloudplatformclientv2/models/domain_organization_role_create.rb +12 -12
  102. data/lib/purecloudplatformclientv2/models/domain_organization_role_update.rb +12 -12
  103. data/lib/purecloudplatformclientv2/models/draft_validation_result.rb +231 -0
  104. data/lib/purecloudplatformclientv2/models/email_conversation_notification_email_media_participant.rb +54 -4
  105. data/lib/purecloudplatformclientv2/models/email_conversation_notification_participants.rb +54 -4
  106. data/lib/purecloudplatformclientv2/models/fax_document.rb +12 -12
  107. data/lib/purecloudplatformclientv2/models/flow.rb +2 -2
  108. data/lib/purecloudplatformclientv2/models/interaction_stats_alert.rb +2 -2
  109. data/lib/purecloudplatformclientv2/models/interaction_stats_rule.rb +2 -2
  110. data/lib/purecloudplatformclientv2/models/json_node.rb +72 -72
  111. data/lib/purecloudplatformclientv2/models/management_unit.rb +7 -7
  112. data/lib/purecloudplatformclientv2/models/management_unit_listing.rb +428 -0
  113. data/lib/purecloudplatformclientv2/models/post_action_input.rb +358 -0
  114. data/lib/purecloudplatformclientv2/models/post_input_contract.rb +208 -0
  115. data/lib/purecloudplatformclientv2/models/post_output_contract.rb +208 -0
  116. data/lib/purecloudplatformclientv2/models/publish_draft_input.rb +208 -0
  117. data/lib/purecloudplatformclientv2/models/request_config.rb +309 -0
  118. data/lib/purecloudplatformclientv2/models/response_config.rb +257 -0
  119. data/lib/purecloudplatformclientv2/models/screen_share_conversation_notification_participants.rb +26 -1
  120. data/lib/purecloudplatformclientv2/models/screen_share_conversation_notification_screen_share_media_participant.rb +26 -1
  121. data/lib/purecloudplatformclientv2/models/social_conversation_notification_participants.rb +26 -1
  122. data/lib/purecloudplatformclientv2/models/social_conversation_notification_social_media_participant.rb +26 -1
  123. data/lib/purecloudplatformclientv2/models/test_execution_operation_result.rb +306 -0
  124. data/lib/purecloudplatformclientv2/models/test_execution_result.rb +282 -0
  125. data/lib/purecloudplatformclientv2/models/{publish_flow_notification_notification.rb → update_action_input.rb} +35 -26
  126. data/lib/purecloudplatformclientv2/models/update_draft_input.rb +338 -0
  127. data/lib/purecloudplatformclientv2/models/video_conversation_notification_participants.rb +26 -1
  128. data/lib/purecloudplatformclientv2/models/video_conversation_notification_video_media_participant.rb +26 -1
  129. data/lib/purecloudplatformclientv2/version.rb +1 -1
  130. metadata +91 -47
  131. data/docs/PublishFlowNotificationNotification.md +0 -16
@@ -0,0 +1,358 @@
1
+ =begin
2
+ PureCloud Platform API
3
+
4
+ With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.
5
+
6
+ OpenAPI spec version: v2
7
+ Contact: DeveloperEvangelists@genesys.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ License: ININ
11
+ http://www.inin.com
12
+
13
+ Terms of Service: https://developer.mypurecloud.com/tos
14
+
15
+ =end
16
+
17
+ require 'date'
18
+
19
+ module PureCloud
20
+ # Definition of an Action to be created or updated.
21
+ class PostActionInput
22
+ # Category of action
23
+ attr_accessor :category
24
+
25
+ # Name of action
26
+ attr_accessor :name
27
+
28
+ # The ID of the integration this action is associated to
29
+ attr_accessor :integration_id
30
+
31
+ # Configuration to support request and response processing
32
+ attr_accessor :config
33
+
34
+ # Action contract
35
+ attr_accessor :contract
36
+
37
+ # Indication of whether or not the action is designed to accept sensitive data
38
+ attr_accessor :secure
39
+
40
+ # Attribute mapping from ruby-style variable name to JSON key.
41
+ def self.attribute_map
42
+ {
43
+
44
+ :'category' => :'category',
45
+
46
+ :'name' => :'name',
47
+
48
+ :'integration_id' => :'integrationId',
49
+
50
+ :'config' => :'config',
51
+
52
+ :'contract' => :'contract',
53
+
54
+ :'secure' => :'secure'
55
+
56
+ }
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.swagger_types
61
+ {
62
+
63
+ :'category' => :'String',
64
+
65
+ :'name' => :'String',
66
+
67
+ :'integration_id' => :'String',
68
+
69
+ :'config' => :'ActionConfig',
70
+
71
+ :'contract' => :'ActionContractInput',
72
+
73
+ :'secure' => :'BOOLEAN'
74
+
75
+ }
76
+ end
77
+
78
+ # Initializes the object
79
+ # @param [Hash] attributes Model attributes in the form of hash
80
+ def initialize(attributes = {})
81
+ return unless attributes.is_a?(Hash)
82
+
83
+ # convert string to symbol for hash key
84
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
85
+
86
+
87
+ if attributes.has_key?(:'category')
88
+
89
+
90
+ self.category = attributes[:'category']
91
+
92
+
93
+ end
94
+
95
+
96
+ if attributes.has_key?(:'name')
97
+
98
+
99
+ self.name = attributes[:'name']
100
+
101
+
102
+ end
103
+
104
+
105
+ if attributes.has_key?(:'integrationId')
106
+
107
+
108
+ self.integration_id = attributes[:'integrationId']
109
+
110
+
111
+ end
112
+
113
+
114
+ if attributes.has_key?(:'config')
115
+
116
+
117
+ self.config = attributes[:'config']
118
+
119
+
120
+ end
121
+
122
+
123
+ if attributes.has_key?(:'contract')
124
+
125
+
126
+ self.contract = attributes[:'contract']
127
+
128
+
129
+ end
130
+
131
+
132
+ if attributes.has_key?(:'secure')
133
+
134
+
135
+ self.secure = attributes[:'secure']
136
+
137
+
138
+ end
139
+
140
+
141
+ end
142
+
143
+ # Show invalid properties with the reasons. Usually used together with valid?
144
+ # @return Array for valid properies with the reasons
145
+ def list_invalid_properties
146
+ invalid_properties = Array.new
147
+
148
+
149
+ return invalid_properties
150
+ end
151
+
152
+ # Check to see if the all the properties in the model are valid
153
+ # @return true if the model is valid
154
+ def valid?
155
+
156
+
157
+ if @category.nil?
158
+ return false
159
+ end
160
+
161
+
162
+
163
+
164
+
165
+
166
+ if @name.nil?
167
+ return false
168
+ end
169
+
170
+
171
+
172
+
173
+
174
+
175
+ if @integration_id.nil?
176
+ return false
177
+ end
178
+
179
+
180
+
181
+
182
+
183
+
184
+ if @config.nil?
185
+ return false
186
+ end
187
+
188
+
189
+
190
+
191
+
192
+
193
+ if @contract.nil?
194
+ return false
195
+ end
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+ end
206
+
207
+
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+ # Checks equality by comparing each attribute.
239
+ # @param [Object] Object to be compared
240
+ def ==(o)
241
+ return true if self.equal?(o)
242
+ self.class == o.class &&
243
+ category == o.category &&
244
+ name == o.name &&
245
+ integration_id == o.integration_id &&
246
+ config == o.config &&
247
+ contract == o.contract &&
248
+ secure == o.secure
249
+ end
250
+
251
+ # @see the `==` method
252
+ # @param [Object] Object to be compared
253
+ def eql?(o)
254
+ self == o
255
+ end
256
+
257
+ # Calculates hash code according to all attributes.
258
+ # @return [Fixnum] Hash code
259
+ def hash
260
+ [category, name, integration_id, config, contract, secure].hash
261
+ end
262
+
263
+ # build the object from hash
264
+ def build_from_hash(attributes)
265
+ return nil unless attributes.is_a?(Hash)
266
+ self.class.swagger_types.each_pair do |key, type|
267
+ if type =~ /^Array<(.*)>/i
268
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
269
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
270
+ else
271
+ #TODO show warning in debug mode
272
+ end
273
+ elsif !attributes[self.class.attribute_map[key]].nil?
274
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
275
+ else
276
+ # data not found in attributes(hash), not an issue as the data can be optional
277
+ end
278
+ end
279
+
280
+ self
281
+ end
282
+
283
+ def _deserialize(type, value)
284
+ case type.to_sym
285
+ when :DateTime
286
+ DateTime.parse(value)
287
+ when :Date
288
+ Date.parse(value)
289
+ when :String
290
+ value.to_s
291
+ when :Integer
292
+ value.to_i
293
+ when :Float
294
+ value.to_f
295
+ when :BOOLEAN
296
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
297
+ true
298
+ else
299
+ false
300
+ end
301
+ when :Object
302
+ # generic object (usually a Hash), return directly
303
+ value
304
+ when /\AArray<(?<inner_type>.+)>\z/
305
+ inner_type = Regexp.last_match[:inner_type]
306
+ value.map { |v| _deserialize(inner_type, v) }
307
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
308
+ k_type = Regexp.last_match[:k_type]
309
+ v_type = Regexp.last_match[:v_type]
310
+ {}.tap do |hash|
311
+ value.each do |k, v|
312
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
313
+ end
314
+ end
315
+ else # model
316
+ _model = Object.const_get("PureCloud").const_get(type).new
317
+ _model.build_from_hash(value)
318
+ end
319
+ end
320
+
321
+ def to_s
322
+ to_hash.to_s
323
+ end
324
+
325
+ # to_body is an alias to to_body (backward compatibility))
326
+ def to_body
327
+ to_hash
328
+ end
329
+
330
+ # return the object in the form of hash
331
+ def to_hash
332
+ hash = {}
333
+ self.class.attribute_map.each_pair do |attr, param|
334
+ value = self.send(attr)
335
+ next if value.nil?
336
+ hash[param] = _to_hash(value)
337
+ end
338
+ hash
339
+ end
340
+
341
+ # Method to output non-array value in the form of hash
342
+ # For object, use to_hash. Otherwise, just return the value
343
+ def _to_hash(value)
344
+ if value.is_a?(Array)
345
+ value.compact.map{ |v| _to_hash(v) }
346
+ elsif value.is_a?(Hash)
347
+ {}.tap do |hash|
348
+ value.each { |k, v| hash[k] = _to_hash(v) }
349
+ end
350
+ elsif value.respond_to? :to_hash
351
+ value.to_hash
352
+ else
353
+ value
354
+ end
355
+ end
356
+
357
+ end
358
+ end
@@ -0,0 +1,208 @@
1
+ =begin
2
+ PureCloud Platform API
3
+
4
+ With the PureCloud Platform API, you can control all aspects of your PureCloud environment. With the APIs you can access the system configuration, manage conversations and more.
5
+
6
+ OpenAPI spec version: v2
7
+ Contact: DeveloperEvangelists@genesys.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+
10
+ License: ININ
11
+ http://www.inin.com
12
+
13
+ Terms of Service: https://developer.mypurecloud.com/tos
14
+
15
+ =end
16
+
17
+ require 'date'
18
+
19
+ module PureCloud
20
+ # The schemas defining all of the expected requests/inputs.
21
+ class PostInputContract
22
+ # JSON Schema that defines the body of the request that the client (edge/architect/postman) is sending to the service, on the /execute path.
23
+ attr_accessor :input_schema
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+
29
+ :'input_schema' => :'inputSchema'
30
+
31
+ }
32
+ end
33
+
34
+ # Attribute type mapping.
35
+ def self.swagger_types
36
+ {
37
+
38
+ :'input_schema' => :'JsonSchemaDocument'
39
+
40
+ }
41
+ end
42
+
43
+ # Initializes the object
44
+ # @param [Hash] attributes Model attributes in the form of hash
45
+ def initialize(attributes = {})
46
+ return unless attributes.is_a?(Hash)
47
+
48
+ # convert string to symbol for hash key
49
+ attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
50
+
51
+
52
+ if attributes.has_key?(:'inputSchema')
53
+
54
+
55
+ self.input_schema = attributes[:'inputSchema']
56
+
57
+
58
+ end
59
+
60
+
61
+ end
62
+
63
+ # Show invalid properties with the reasons. Usually used together with valid?
64
+ # @return Array for valid properies with the reasons
65
+ def list_invalid_properties
66
+ invalid_properties = Array.new
67
+
68
+
69
+ return invalid_properties
70
+ end
71
+
72
+ # Check to see if the all the properties in the model are valid
73
+ # @return true if the model is valid
74
+ def valid?
75
+
76
+
77
+ if @input_schema.nil?
78
+ return false
79
+ end
80
+
81
+
82
+
83
+
84
+
85
+ end
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+ # Checks equality by comparing each attribute.
94
+ # @param [Object] Object to be compared
95
+ def ==(o)
96
+ return true if self.equal?(o)
97
+ self.class == o.class &&
98
+ input_schema == o.input_schema
99
+ end
100
+
101
+ # @see the `==` method
102
+ # @param [Object] Object to be compared
103
+ def eql?(o)
104
+ self == o
105
+ end
106
+
107
+ # Calculates hash code according to all attributes.
108
+ # @return [Fixnum] Hash code
109
+ def hash
110
+ [input_schema].hash
111
+ end
112
+
113
+ # build the object from hash
114
+ def build_from_hash(attributes)
115
+ return nil unless attributes.is_a?(Hash)
116
+ self.class.swagger_types.each_pair do |key, type|
117
+ if type =~ /^Array<(.*)>/i
118
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
119
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
120
+ else
121
+ #TODO show warning in debug mode
122
+ end
123
+ elsif !attributes[self.class.attribute_map[key]].nil?
124
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
125
+ else
126
+ # data not found in attributes(hash), not an issue as the data can be optional
127
+ end
128
+ end
129
+
130
+ self
131
+ end
132
+
133
+ def _deserialize(type, value)
134
+ case type.to_sym
135
+ when :DateTime
136
+ DateTime.parse(value)
137
+ when :Date
138
+ Date.parse(value)
139
+ when :String
140
+ value.to_s
141
+ when :Integer
142
+ value.to_i
143
+ when :Float
144
+ value.to_f
145
+ when :BOOLEAN
146
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
147
+ true
148
+ else
149
+ false
150
+ end
151
+ when :Object
152
+ # generic object (usually a Hash), return directly
153
+ value
154
+ when /\AArray<(?<inner_type>.+)>\z/
155
+ inner_type = Regexp.last_match[:inner_type]
156
+ value.map { |v| _deserialize(inner_type, v) }
157
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
158
+ k_type = Regexp.last_match[:k_type]
159
+ v_type = Regexp.last_match[:v_type]
160
+ {}.tap do |hash|
161
+ value.each do |k, v|
162
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
163
+ end
164
+ end
165
+ else # model
166
+ _model = Object.const_get("PureCloud").const_get(type).new
167
+ _model.build_from_hash(value)
168
+ end
169
+ end
170
+
171
+ def to_s
172
+ to_hash.to_s
173
+ end
174
+
175
+ # to_body is an alias to to_body (backward compatibility))
176
+ def to_body
177
+ to_hash
178
+ end
179
+
180
+ # return 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
+ # Method to output non-array value in the form of hash
192
+ # For object, use to_hash. Otherwise, just return the value
193
+ def _to_hash(value)
194
+ if value.is_a?(Array)
195
+ value.compact.map{ |v| _to_hash(v) }
196
+ elsif value.is_a?(Hash)
197
+ {}.tap do |hash|
198
+ value.each { |k, v| hash[k] = _to_hash(v) }
199
+ end
200
+ elsif value.respond_to? :to_hash
201
+ value.to_hash
202
+ else
203
+ value
204
+ end
205
+ end
206
+
207
+ end
208
+ end