purecloud 0.18.0 → 0.25.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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/Gemfile.lock +2 -2
  4. data/README.md +1 -7
  5. data/config-ruby.json +1 -1
  6. data/extensions/auth.rb +2 -2
  7. data/lib/purecloud.rb +110 -75
  8. data/lib/purecloud/api/architect_api.rb +3127 -74
  9. data/lib/purecloud/api/attributes_api.rb +33 -33
  10. data/lib/purecloud/api/authorization_api.rb +83 -83
  11. data/lib/purecloud/api/compliance_api.rb +5 -5
  12. data/lib/purecloud/api/configuration_api.rb +594 -397
  13. data/lib/purecloud/api/content_management_api.rb +183 -183
  14. data/lib/purecloud/api/conversations_api.rb +289 -159
  15. data/lib/purecloud/api/downloads_api.rb +6 -6
  16. data/lib/purecloud/api/external_contacts_api.rb +1693 -0
  17. data/lib/purecloud/api/fax_api.rb +24 -24
  18. data/lib/purecloud/api/geolocation_api.rb +14 -14
  19. data/lib/purecloud/api/greetings_api.rb +68 -68
  20. data/lib/purecloud/api/groups_api.rb +31 -20
  21. data/lib/purecloud/api/languages_api.rb +18 -11
  22. data/lib/purecloud/api/licensing_api.rb +5 -5
  23. data/lib/purecloud/api/locations_api.rb +11 -11
  24. data/lib/purecloud/api/notifications_api.rb +41 -41
  25. data/lib/purecloud/api/o_auth_api.rb +69 -69
  26. data/lib/purecloud/api/outbound_api.rb +505 -325
  27. data/lib/purecloud/api/presence_api.rb +65 -65
  28. data/lib/purecloud/api/quality_api.rb +66 -639
  29. data/lib/purecloud/api/recording_api.rb +1343 -0
  30. data/lib/purecloud/api/response_management_api.rb +687 -0
  31. data/lib/purecloud/api/routing_api.rb +224 -170
  32. data/lib/purecloud/api/scripts_api.rb +52 -52
  33. data/lib/purecloud/api/search_api.rb +5 -5
  34. data/lib/purecloud/api/stations_api.rb +8 -8
  35. data/lib/purecloud/api/telephony_providers_edge_api.rb +138 -138
  36. data/lib/purecloud/api/user_recordings_api.rb +29 -29
  37. data/lib/purecloud/api/users_api.rb +123 -123
  38. data/lib/purecloud/api/utilities_api.rb +71 -15
  39. data/lib/purecloud/api/voicemail_api.rb +42 -42
  40. data/lib/purecloud/api_client.rb +1 -1
  41. data/lib/purecloud/models/address.rb +49 -51
  42. data/lib/purecloud/models/attribute_filter_item.rb +177 -0
  43. data/lib/purecloud/models/automate_queue_member_entity_listing.rb +238 -0
  44. data/lib/purecloud/models/available_additional_service.rb +40 -1
  45. data/lib/purecloud/models/{topic_entity_listing.rb → available_topic_entity_listing.rb} +1 -1
  46. data/lib/purecloud/models/call.rb +36 -5
  47. data/lib/purecloud/models/{line_properties.rb → call_command.rb} +13 -3
  48. data/lib/purecloud/models/callback.rb +15 -4
  49. data/lib/purecloud/models/campaign.rb +219 -17
  50. data/lib/purecloud/models/campaign_progress.rb +186 -0
  51. data/lib/purecloud/models/channel_topic_entity_listing.rb +238 -0
  52. data/lib/purecloud/models/charge.rb +14 -4
  53. data/lib/purecloud/models/{attribute_value.rb → client_text_table_transform.rb} +52 -82
  54. data/lib/purecloud/models/contact.rb +1 -1
  55. data/lib/purecloud/models/contact_list.rb +111 -1
  56. data/lib/purecloud/models/contact_listing.rb +238 -0
  57. data/lib/purecloud/models/content_attribute_filter_item.rb +177 -0
  58. data/lib/purecloud/models/content_facet_filter_item.rb +1 -1
  59. data/lib/purecloud/models/content_query_request.rb +16 -4
  60. data/lib/purecloud/models/control.rb +221 -0
  61. data/lib/purecloud/models/{flow_activate_request.rb → control_options.rb} +18 -12
  62. data/lib/purecloud/models/create_callback_command.rb +200 -0
  63. data/lib/purecloud/models/discount.rb +220 -0
  64. data/lib/purecloud/models/document.rb +13 -1
  65. data/lib/purecloud/models/document_attribute.rb +158 -0
  66. data/lib/purecloud/models/document_update.rb +28 -16
  67. data/lib/purecloud/models/document_upload.rb +4 -16
  68. data/lib/purecloud/models/domain_voice_rate_extended_response_item_entity_listing.rb +238 -0
  69. data/lib/purecloud/models/domain_voice_rate_international_response_item_entity_listing.rb +238 -0
  70. data/lib/purecloud/models/domain_voice_rate_response_item_entity_listing.rb +1 -1
  71. data/lib/purecloud/models/edge_line.rb +1 -1
  72. data/lib/purecloud/models/edge_logs_job.rb +181 -0
  73. data/lib/purecloud/models/edge_logs_job_file.rb +243 -0
  74. data/lib/purecloud/models/edge_logs_job_request.rb +168 -0
  75. data/lib/purecloud/models/{backend_work_item_data_element.rb → edge_logs_job_response.rb} +16 -24
  76. data/lib/purecloud/models/{flow_lock_request.rb → edge_logs_job_upload_request.rb} +10 -12
  77. data/lib/purecloud/models/email.rb +15 -4
  78. data/lib/purecloud/models/endpoint.rb +1 -1
  79. data/lib/purecloud/models/{flow_associate_workspaces_request.rb → estimated_wait_time_predictions.rb} +10 -11
  80. data/lib/purecloud/models/external_contact.rb +320 -0
  81. data/lib/purecloud/models/external_organization.rb +306 -0
  82. data/lib/purecloud/models/external_organization_listing.rb +238 -0
  83. data/lib/purecloud/models/facet_filter_item.rb +1 -1
  84. data/lib/purecloud/models/flow_body.rb +1 -1
  85. data/lib/purecloud/models/flow_body_format.rb +10 -20
  86. data/lib/purecloud/models/flow_terminate_request.rb +3 -16
  87. data/lib/purecloud/models/form.rb +148 -0
  88. data/lib/purecloud/models/group.rb +11 -1
  89. data/lib/purecloud/models/health_check_info.rb +268 -0
  90. data/lib/purecloud/models/{body_2.rb → inline_response_200.rb} +1 -1
  91. data/lib/purecloud/models/integration_type.rb +209 -0
  92. data/lib/purecloud/models/integration_type_entity_listing.rb +238 -0
  93. data/lib/purecloud/models/key_rotation_schedule.rb +1 -0
  94. data/lib/purecloud/models/language.rb +41 -1
  95. data/lib/purecloud/models/line.rb +1 -1
  96. data/lib/purecloud/models/line_base.rb +1 -1
  97. data/lib/purecloud/models/media_policies.rb +169 -0
  98. data/lib/purecloud/models/media_policy.rb +171 -0
  99. data/lib/purecloud/models/note.rb +200 -0
  100. data/lib/purecloud/models/{user_station_resource.rb → note_listing.rb} +68 -58
  101. data/lib/purecloud/models/o_auth_client.rb +1 -1
  102. data/lib/purecloud/models/page.rb +2 -2
  103. data/lib/purecloud/models/{byte_buffer.rb → payment_method.rb} +48 -61
  104. data/lib/purecloud/models/payment_method_listing.rb +238 -0
  105. data/lib/purecloud/models/payment_token_provider.rb +180 -0
  106. data/lib/purecloud/models/phone.rb +1 -1
  107. data/lib/purecloud/models/phone_base.rb +1 -1
  108. data/lib/purecloud/models/phone_number.rb +198 -0
  109. data/lib/purecloud/models/phones_reboot.rb +14 -4
  110. data/lib/purecloud/models/policy.rb +14 -1
  111. data/lib/purecloud/models/prediction_results.rb +167 -0
  112. data/lib/purecloud/models/query_request.rb +16 -4
  113. data/lib/purecloud/models/queue_member_entity_listing.rb +1 -1
  114. data/lib/purecloud/models/quote.rb +13 -1
  115. data/lib/purecloud/models/recording_settings.rb +146 -0
  116. data/lib/purecloud/models/relationship.rb +201 -0
  117. data/lib/purecloud/models/relationship_listing.rb +238 -0
  118. data/lib/purecloud/models/report_schedule.rb +3 -2
  119. data/lib/purecloud/models/service_type.rb +12 -1
  120. data/lib/purecloud/models/social_expression.rb +25 -4
  121. data/lib/purecloud/models/spreadsheet_transform_entity_listing.rb +1 -1
  122. data/lib/purecloud/models/template.rb +1 -1
  123. data/lib/purecloud/models/text_table_transform_entity_listing.rb +1 -1
  124. data/lib/purecloud/models/ticker.rb +158 -0
  125. data/lib/purecloud/models/time_slot.rb +1 -0
  126. data/lib/purecloud/models/trunk_base.rb +1 -1
  127. data/lib/purecloud/models/vendor_connection_request.rb +166 -0
  128. data/lib/purecloud/models/video.rb +15 -4
  129. data/lib/purecloud/models/work_item_definition.rb +8 -10
  130. data/lib/purecloud/version.rb +1 -1
  131. data/ossindex.json +17 -0
  132. data/purecloud.gemspec +4 -3
  133. data/rakefile +3 -15
  134. data/spec/test.rb +6 -3
  135. data/swagger.json +1 -1
  136. data/swagger_template/api_client.mustache +304 -0
  137. data/swagger_template/base_object.mustache +90 -0
  138. data/{PureCloud.gemspec → swagger_template/gemspec.mustache} +12 -11
  139. data/version.json +1 -1
  140. metadata +76 -25
  141. data/lib/purecloud/api/analytics_api.rb +0 -1554
  142. data/lib/purecloud/api/orphaned_recordings_api.rb +0 -205
  143. data/newVersion.md +0 -1
@@ -46,6 +46,8 @@ module PureCloud
46
46
 
47
47
  attr_accessor :tag_values
48
48
 
49
+ attr_accessor :attributes
50
+
49
51
  attr_accessor :thumbnails
50
52
 
51
53
  attr_accessor :upload_status
@@ -112,6 +114,8 @@ module PureCloud
112
114
 
113
115
  :'tag_values' => :'tagValues',
114
116
 
117
+ :'attributes' => :'attributes',
118
+
115
119
  :'thumbnails' => :'thumbnails',
116
120
 
117
121
  :'upload_status' => :'uploadStatus',
@@ -158,6 +162,7 @@ module PureCloud
158
162
  :'receiver_address' => :'String',
159
163
  :'tags' => :'Array<String>',
160
164
  :'tag_values' => :'Array<TagValue>',
165
+ :'attributes' => :'Array<DocumentAttribute>',
161
166
  :'thumbnails' => :'Array<DocumentThumbnail>',
162
167
  :'upload_status' => :'UriReference',
163
168
  :'upload_destination_uri' => :'String',
@@ -265,6 +270,12 @@ module PureCloud
265
270
  end
266
271
  end
267
272
 
273
+ if attributes[:'attributes']
274
+ if (value = attributes[:'attributes']).is_a?(Array)
275
+ self.attributes = value
276
+ end
277
+ end
278
+
268
279
  if attributes[:'thumbnails']
269
280
  if (value = attributes[:'thumbnails']).is_a?(Array)
270
281
  self.thumbnails = value
@@ -362,6 +373,7 @@ module PureCloud
362
373
  receiver_address == o.receiver_address &&
363
374
  tags == o.tags &&
364
375
  tag_values == o.tag_values &&
376
+ attributes == o.attributes &&
365
377
  thumbnails == o.thumbnails &&
366
378
  upload_status == o.upload_status &&
367
379
  upload_destination_uri == o.upload_destination_uri &&
@@ -381,7 +393,7 @@ module PureCloud
381
393
 
382
394
  # Calculate hash code according to all attributes.
383
395
  def hash
384
- [id, name, change_number, date_created, date_modified, date_uploaded, content_uri, workspace, created_by, uploaded_by, content_type, content_length, system_type, filename, page_count, read, caller_address, receiver_address, tags, tag_values, thumbnails, upload_status, upload_destination_uri, upload_method, lock_info, acl, sharing_status, sharing_uri, download_sharing_uri, self_uri].hash
396
+ [id, name, change_number, date_created, date_modified, date_uploaded, content_uri, workspace, created_by, uploaded_by, content_type, content_length, system_type, filename, page_count, read, caller_address, receiver_address, tags, tag_values, attributes, thumbnails, upload_status, upload_destination_uri, upload_method, lock_info, acl, sharing_status, sharing_uri, download_sharing_uri, self_uri].hash
385
397
  end
386
398
 
387
399
  # build the object from hash
@@ -0,0 +1,158 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class DocumentAttribute
5
+ attr_accessor :attribute
6
+
7
+ attr_accessor :values
8
+
9
+ # Attribute mapping from ruby-style variable name to JSON key.
10
+ def self.attribute_map
11
+ {
12
+
13
+ :'attribute' => :'attribute',
14
+
15
+ :'values' => :'values'
16
+
17
+ }
18
+ end
19
+
20
+ # Attribute type mapping.
21
+ def self.swagger_types
22
+ {
23
+ :'attribute' => :'Attribute',
24
+ :'values' => :'Array<String>'
25
+
26
+ }
27
+ end
28
+
29
+ def initialize(attributes = {})
30
+ return unless attributes.is_a?(Hash)
31
+
32
+ # convert string to symbol for hash key
33
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
34
+
35
+
36
+ if attributes[:'attribute']
37
+ self.attribute = attributes[:'attribute']
38
+ end
39
+
40
+ if attributes[:'values']
41
+ if (value = attributes[:'values']).is_a?(Array)
42
+ self.values = value
43
+ end
44
+ end
45
+
46
+ end
47
+
48
+ # Check equality by comparing each attribute.
49
+ def ==(o)
50
+ return true if self.equal?(o)
51
+ self.class == o.class &&
52
+ attribute == o.attribute &&
53
+ values == o.values
54
+ end
55
+
56
+ # @see the `==` method
57
+ def eql?(o)
58
+ self == o
59
+ end
60
+
61
+ # Calculate hash code according to all attributes.
62
+ def hash
63
+ [attribute, values].hash
64
+ end
65
+
66
+ # build the object from hash
67
+ def build_from_hash(attributes)
68
+ return nil unless attributes.is_a?(Hash)
69
+ self.class.swagger_types.each_pair do |key, type|
70
+ if type =~ /^Array<(.*)>/i
71
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
72
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
73
+ else
74
+ #TODO show warning in debug mode
75
+ end
76
+ elsif !attributes[self.class.attribute_map[key]].nil?
77
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
78
+ else
79
+ # data not found in attributes(hash), not an issue as the data can be optional
80
+ end
81
+ end
82
+
83
+ self
84
+ end
85
+
86
+ def _deserialize(type, value)
87
+ case type.to_sym
88
+ when :DateTime
89
+ DateTime.parse(value)
90
+ when :Date
91
+ Date.parse(value)
92
+ when :String
93
+ value.to_s
94
+ when :Integer
95
+ value.to_i
96
+ when :Float
97
+ value.to_f
98
+ when :BOOLEAN
99
+ if value =~ /^(true|t|yes|y|1)$/i
100
+ true
101
+ else
102
+ false
103
+ end
104
+ when /\AArray<(?<inner_type>.+)>\z/
105
+ inner_type = Regexp.last_match[:inner_type]
106
+ value.map { |v| _deserialize(inner_type, v) }
107
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
108
+ k_type = Regexp.last_match[:k_type]
109
+ v_type = Regexp.last_match[:v_type]
110
+ {}.tap do |hash|
111
+ value.each do |k, v|
112
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
113
+ end
114
+ end
115
+ else # model
116
+ _model = Object.const_get("PureCloud").const_get(type).new
117
+ _model.build_from_hash(value)
118
+ end
119
+ end
120
+
121
+ def to_s
122
+ to_hash.to_s
123
+ end
124
+
125
+ # to_body is an alias to to_body (backward compatibility))
126
+ def to_body
127
+ to_hash
128
+ end
129
+
130
+ # return the object in the form of hash
131
+ def to_hash
132
+ hash = {}
133
+ self.class.attribute_map.each_pair do |attr, param|
134
+ value = self.send(attr)
135
+ next if value.nil?
136
+ hash[param] = _to_hash(value)
137
+ end
138
+ hash
139
+ end
140
+
141
+ # Method to output non-array value in the form of hash
142
+ # For object, use to_hash. Otherwise, just return the value
143
+ def _to_hash(value)
144
+ if value.is_a?(Array)
145
+ value.compact.map{ |v| _to_hash(v) }
146
+ elsif value.is_a?(Hash)
147
+ {}.tap do |hash|
148
+ value.each { |k, v| hash[k] = _to_hash(v) }
149
+ end
150
+ elsif value.respond_to? :to_hash
151
+ value.to_hash
152
+ else
153
+ value
154
+ end
155
+ end
156
+
157
+ end
158
+ end
@@ -8,8 +8,6 @@ module PureCloud
8
8
 
9
9
  attr_accessor :read
10
10
 
11
- attr_accessor :remove_attributes
12
-
13
11
  attr_accessor :add_tags
14
12
 
15
13
  attr_accessor :remove_tags
@@ -18,6 +16,10 @@ module PureCloud
18
16
 
19
17
  attr_accessor :remove_tag_ids
20
18
 
19
+ attr_accessor :update_attributes
20
+
21
+ attr_accessor :remove_attributes
22
+
21
23
  # Attribute mapping from ruby-style variable name to JSON key.
22
24
  def self.attribute_map
23
25
  {
@@ -28,15 +30,17 @@ module PureCloud
28
30
 
29
31
  :'read' => :'read',
30
32
 
31
- :'remove_attributes' => :'removeAttributes',
32
-
33
33
  :'add_tags' => :'addTags',
34
34
 
35
35
  :'remove_tags' => :'removeTags',
36
36
 
37
37
  :'add_tag_ids' => :'addTagIds',
38
38
 
39
- :'remove_tag_ids' => :'removeTagIds'
39
+ :'remove_tag_ids' => :'removeTagIds',
40
+
41
+ :'update_attributes' => :'updateAttributes',
42
+
43
+ :'remove_attributes' => :'removeAttributes'
40
44
 
41
45
  }
42
46
  end
@@ -47,11 +51,12 @@ module PureCloud
47
51
  :'change_number' => :'Integer',
48
52
  :'name' => :'String',
49
53
  :'read' => :'BOOLEAN',
50
- :'remove_attributes' => :'Array<String>',
51
54
  :'add_tags' => :'Array<String>',
52
55
  :'remove_tags' => :'Array<String>',
53
56
  :'add_tag_ids' => :'Array<String>',
54
- :'remove_tag_ids' => :'Array<String>'
57
+ :'remove_tag_ids' => :'Array<String>',
58
+ :'update_attributes' => :'Array<DocumentAttribute>',
59
+ :'remove_attributes' => :'Array<String>'
55
60
 
56
61
  }
57
62
  end
@@ -77,12 +82,6 @@ module PureCloud
77
82
  self.read = false
78
83
  end
79
84
 
80
- if attributes[:'removeAttributes']
81
- if (value = attributes[:'removeAttributes']).is_a?(Array)
82
- self.remove_attributes = value
83
- end
84
- end
85
-
86
85
  if attributes[:'addTags']
87
86
  if (value = attributes[:'addTags']).is_a?(Array)
88
87
  self.add_tags = value
@@ -107,6 +106,18 @@ module PureCloud
107
106
  end
108
107
  end
109
108
 
109
+ if attributes[:'updateAttributes']
110
+ if (value = attributes[:'updateAttributes']).is_a?(Array)
111
+ self.update_attributes = value
112
+ end
113
+ end
114
+
115
+ if attributes[:'removeAttributes']
116
+ if (value = attributes[:'removeAttributes']).is_a?(Array)
117
+ self.remove_attributes = value
118
+ end
119
+ end
120
+
110
121
  end
111
122
 
112
123
  # Check equality by comparing each attribute.
@@ -116,11 +127,12 @@ module PureCloud
116
127
  change_number == o.change_number &&
117
128
  name == o.name &&
118
129
  read == o.read &&
119
- remove_attributes == o.remove_attributes &&
120
130
  add_tags == o.add_tags &&
121
131
  remove_tags == o.remove_tags &&
122
132
  add_tag_ids == o.add_tag_ids &&
123
- remove_tag_ids == o.remove_tag_ids
133
+ remove_tag_ids == o.remove_tag_ids &&
134
+ update_attributes == o.update_attributes &&
135
+ remove_attributes == o.remove_attributes
124
136
  end
125
137
 
126
138
  # @see the `==` method
@@ -130,7 +142,7 @@ module PureCloud
130
142
 
131
143
  # Calculate hash code according to all attributes.
132
144
  def hash
133
- [change_number, name, read, remove_attributes, add_tags, remove_tags, add_tag_ids, remove_tag_ids].hash
145
+ [change_number, name, read, add_tags, remove_tags, add_tag_ids, remove_tag_ids, update_attributes, remove_attributes].hash
134
146
  end
135
147
 
136
148
  # build the object from hash
@@ -10,8 +10,6 @@ module PureCloud
10
10
 
11
11
  attr_accessor :tag_ids
12
12
 
13
- attr_accessor :attributes
14
-
15
13
  # Attribute mapping from ruby-style variable name to JSON key.
16
14
  def self.attribute_map
17
15
  {
@@ -22,9 +20,7 @@ module PureCloud
22
20
 
23
21
  :'tags' => :'tags',
24
22
 
25
- :'tag_ids' => :'tagIds',
26
-
27
- :'attributes' => :'attributes'
23
+ :'tag_ids' => :'tagIds'
28
24
 
29
25
  }
30
26
  end
@@ -35,8 +31,7 @@ module PureCloud
35
31
  :'name' => :'String',
36
32
  :'workspace' => :'UriReference',
37
33
  :'tags' => :'Array<String>',
38
- :'tag_ids' => :'Array<String>',
39
- :'attributes' => :'Array<AttributeValue>'
34
+ :'tag_ids' => :'Array<String>'
40
35
 
41
36
  }
42
37
  end
@@ -68,12 +63,6 @@ module PureCloud
68
63
  end
69
64
  end
70
65
 
71
- if attributes[:'attributes']
72
- if (value = attributes[:'attributes']).is_a?(Array)
73
- self.attributes = value
74
- end
75
- end
76
-
77
66
  end
78
67
 
79
68
  # Check equality by comparing each attribute.
@@ -83,8 +72,7 @@ module PureCloud
83
72
  name == o.name &&
84
73
  workspace == o.workspace &&
85
74
  tags == o.tags &&
86
- tag_ids == o.tag_ids &&
87
- attributes == o.attributes
75
+ tag_ids == o.tag_ids
88
76
  end
89
77
 
90
78
  # @see the `==` method
@@ -94,7 +82,7 @@ module PureCloud
94
82
 
95
83
  # Calculate hash code according to all attributes.
96
84
  def hash
97
- [name, workspace, tags, tag_ids, attributes].hash
85
+ [name, workspace, tags, tag_ids].hash
98
86
  end
99
87
 
100
88
  # build the object from hash
@@ -0,0 +1,238 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class DomainVoiceRateExtendedResponseItemEntityListing
5
+ attr_accessor :page_size
6
+
7
+ attr_accessor :page_number
8
+
9
+ attr_accessor :total
10
+
11
+ attr_accessor :entities
12
+
13
+ attr_accessor :self_uri
14
+
15
+ attr_accessor :first_uri
16
+
17
+ attr_accessor :previous_uri
18
+
19
+ attr_accessor :next_uri
20
+
21
+ attr_accessor :last_uri
22
+
23
+ attr_accessor :page_count
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+
29
+ :'page_size' => :'pageSize',
30
+
31
+ :'page_number' => :'pageNumber',
32
+
33
+ :'total' => :'total',
34
+
35
+ :'entities' => :'entities',
36
+
37
+ :'self_uri' => :'selfUri',
38
+
39
+ :'first_uri' => :'firstUri',
40
+
41
+ :'previous_uri' => :'previousUri',
42
+
43
+ :'next_uri' => :'nextUri',
44
+
45
+ :'last_uri' => :'lastUri',
46
+
47
+ :'page_count' => :'pageCount'
48
+
49
+ }
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.swagger_types
54
+ {
55
+ :'page_size' => :'Integer',
56
+ :'page_number' => :'Integer',
57
+ :'total' => :'Integer',
58
+ :'entities' => :'Array<VoiceRateExtended>',
59
+ :'self_uri' => :'String',
60
+ :'first_uri' => :'String',
61
+ :'previous_uri' => :'String',
62
+ :'next_uri' => :'String',
63
+ :'last_uri' => :'String',
64
+ :'page_count' => :'Integer'
65
+
66
+ }
67
+ end
68
+
69
+ def initialize(attributes = {})
70
+ return unless attributes.is_a?(Hash)
71
+
72
+ # convert string to symbol for hash key
73
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
74
+
75
+
76
+ if attributes[:'pageSize']
77
+ self.page_size = attributes[:'pageSize']
78
+ end
79
+
80
+ if attributes[:'pageNumber']
81
+ self.page_number = attributes[:'pageNumber']
82
+ end
83
+
84
+ if attributes[:'total']
85
+ self.total = attributes[:'total']
86
+ end
87
+
88
+ if attributes[:'entities']
89
+ if (value = attributes[:'entities']).is_a?(Array)
90
+ self.entities = value
91
+ end
92
+ end
93
+
94
+ if attributes[:'selfUri']
95
+ self.self_uri = attributes[:'selfUri']
96
+ end
97
+
98
+ if attributes[:'firstUri']
99
+ self.first_uri = attributes[:'firstUri']
100
+ end
101
+
102
+ if attributes[:'previousUri']
103
+ self.previous_uri = attributes[:'previousUri']
104
+ end
105
+
106
+ if attributes[:'nextUri']
107
+ self.next_uri = attributes[:'nextUri']
108
+ end
109
+
110
+ if attributes[:'lastUri']
111
+ self.last_uri = attributes[:'lastUri']
112
+ end
113
+
114
+ if attributes[:'pageCount']
115
+ self.page_count = attributes[:'pageCount']
116
+ end
117
+
118
+ end
119
+
120
+ # Check equality by comparing each attribute.
121
+ def ==(o)
122
+ return true if self.equal?(o)
123
+ self.class == o.class &&
124
+ page_size == o.page_size &&
125
+ page_number == o.page_number &&
126
+ total == o.total &&
127
+ entities == o.entities &&
128
+ self_uri == o.self_uri &&
129
+ first_uri == o.first_uri &&
130
+ previous_uri == o.previous_uri &&
131
+ next_uri == o.next_uri &&
132
+ last_uri == o.last_uri &&
133
+ page_count == o.page_count
134
+ end
135
+
136
+ # @see the `==` method
137
+ def eql?(o)
138
+ self == o
139
+ end
140
+
141
+ # Calculate hash code according to all attributes.
142
+ def hash
143
+ [page_size, page_number, total, entities, self_uri, first_uri, previous_uri, next_uri, last_uri, page_count].hash
144
+ end
145
+
146
+ # build the object from hash
147
+ def build_from_hash(attributes)
148
+ return nil unless attributes.is_a?(Hash)
149
+ self.class.swagger_types.each_pair do |key, type|
150
+ if type =~ /^Array<(.*)>/i
151
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
152
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
153
+ else
154
+ #TODO show warning in debug mode
155
+ end
156
+ elsif !attributes[self.class.attribute_map[key]].nil?
157
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
158
+ else
159
+ # data not found in attributes(hash), not an issue as the data can be optional
160
+ end
161
+ end
162
+
163
+ self
164
+ end
165
+
166
+ def _deserialize(type, value)
167
+ case type.to_sym
168
+ when :DateTime
169
+ DateTime.parse(value)
170
+ when :Date
171
+ Date.parse(value)
172
+ when :String
173
+ value.to_s
174
+ when :Integer
175
+ value.to_i
176
+ when :Float
177
+ value.to_f
178
+ when :BOOLEAN
179
+ if value =~ /^(true|t|yes|y|1)$/i
180
+ true
181
+ else
182
+ false
183
+ end
184
+ when /\AArray<(?<inner_type>.+)>\z/
185
+ inner_type = Regexp.last_match[:inner_type]
186
+ value.map { |v| _deserialize(inner_type, v) }
187
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
188
+ k_type = Regexp.last_match[:k_type]
189
+ v_type = Regexp.last_match[:v_type]
190
+ {}.tap do |hash|
191
+ value.each do |k, v|
192
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
193
+ end
194
+ end
195
+ else # model
196
+ _model = Object.const_get("PureCloud").const_get(type).new
197
+ _model.build_from_hash(value)
198
+ end
199
+ end
200
+
201
+ def to_s
202
+ to_hash.to_s
203
+ end
204
+
205
+ # to_body is an alias to to_body (backward compatibility))
206
+ def to_body
207
+ to_hash
208
+ end
209
+
210
+ # return the object in the form of hash
211
+ def to_hash
212
+ hash = {}
213
+ self.class.attribute_map.each_pair do |attr, param|
214
+ value = self.send(attr)
215
+ next if value.nil?
216
+ hash[param] = _to_hash(value)
217
+ end
218
+ hash
219
+ end
220
+
221
+ # Method to output non-array value in the form of hash
222
+ # For object, use to_hash. Otherwise, just return the value
223
+ def _to_hash(value)
224
+ if value.is_a?(Array)
225
+ value.compact.map{ |v| _to_hash(v) }
226
+ elsif value.is_a?(Hash)
227
+ {}.tap do |hash|
228
+ value.each { |k, v| hash[k] = _to_hash(v) }
229
+ end
230
+ elsif value.respond_to? :to_hash
231
+ value.to_hash
232
+ else
233
+ value
234
+ end
235
+ end
236
+
237
+ end
238
+ end