purecloud 0.38.1 → 0.39.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/config-ruby.json +1 -1
  4. data/doc_out/AuthorizationApi.html.md +0 -57
  5. data/doc_out/AvailableLanguageList.html.md +13 -0
  6. data/doc_out/BillingContact.html.md +20 -0
  7. data/doc_out/{FlowHistoryResultItemEntityListing.html.md → BillingContactListing.html.md} +3 -3
  8. data/doc_out/CallRecord.html.md +2 -2
  9. data/doc_out/CallableContactsDiagnostic.html.md +3 -3
  10. data/doc_out/CallableTimeSet.html.md +3 -3
  11. data/doc_out/Campaign.html.md +3 -3
  12. data/doc_out/CampaignDiagnostics.html.md +3 -3
  13. data/doc_out/CampaignSchedule.html.md +6 -6
  14. data/doc_out/CampaignSequence.html.md +8 -8
  15. data/doc_out/CampaignStats.html.md +4 -4
  16. data/doc_out/Condition.html.md +7 -7
  17. data/doc_out/ConnectRate.html.md +3 -3
  18. data/doc_out/ContactCallbackRequest.html.md +5 -5
  19. data/doc_out/ContactList.html.md +9 -9
  20. data/doc_out/ContactPhoneNumberColumn.html.md +3 -3
  21. data/doc_out/CreateCallbackCommand.html.md +1 -0
  22. data/doc_out/CreateUser.html.md +1 -1
  23. data/doc_out/CustomerInteractionCenter.html.md +18 -0
  24. data/doc_out/DialerAction.html.md +4 -4
  25. data/doc_out/DialerContact.html.md +5 -5
  26. data/doc_out/DialerRule.html.md +6 -6
  27. data/doc_out/DncList.html.md +6 -7
  28. data/doc_out/ExternalContact.html.md +1 -0
  29. data/doc_out/ExternalDataSource.html.md +14 -0
  30. data/doc_out/ExternalOrganization.html.md +1 -0
  31. data/doc_out/IdentityProviderApi.html.md +1011 -0
  32. data/doc_out/ImportStatus.html.md +5 -5
  33. data/doc_out/InitiateScreenRecording.html.md +15 -0
  34. data/doc_out/JsonNode.html.md +3 -3
  35. data/doc_out/Keyword.html.md +19 -0
  36. data/doc_out/KeywordSet.html.md +21 -0
  37. data/doc_out/KeywordSetEntityListing.html.md +22 -0
  38. data/doc_out/OAuthApi.html.md +45 -886
  39. data/doc_out/OAuthClient.html.md +2 -2
  40. data/doc_out/Okta.html.md +1 -1
  41. data/doc_out/OneLogin.html.md +1 -1
  42. data/doc_out/OrgMediaUtilization.html.md +1 -0
  43. data/doc_out/OutboundApi.html.md +3 -3
  44. data/doc_out/PaymentMethod.html.md +3 -0
  45. data/doc_out/PhoneNumberStatus.html.md +1 -1
  46. data/doc_out/PolicyActions.html.md +1 -0
  47. data/doc_out/PresenceApi.html.md +68 -17
  48. data/doc_out/QualityApi.html.md +361 -0
  49. data/doc_out/QueueUtilizationDiagnostic.html.md +8 -8
  50. data/doc_out/ResponseSet.html.md +3 -3
  51. data/doc_out/RoutingApi.html.md +15 -12
  52. data/doc_out/RoutingSkill.html.md +1 -2
  53. data/doc_out/RuleSet.html.md +6 -6
  54. data/doc_out/Salesforce.html.md +1 -1
  55. data/doc_out/ScheduleInterval.html.md +14 -0
  56. data/doc_out/SequenceSchedule.html.md +6 -6
  57. data/doc_out/Station.html.md +1 -0
  58. data/doc_out/StationsApi.html.md +3 -1
  59. data/doc_out/SupportCredit.html.md +16 -0
  60. data/doc_out/SupportCreditListing.html.md +22 -0
  61. data/doc_out/SystemPresence.html.md +15 -0
  62. data/doc_out/TelephonyProvidersEdgeApi.html.md +112 -1
  63. data/doc_out/TrunkRecordingEnabledCount.html.md +14 -0
  64. data/doc_out/UserImage.html.md +1 -1
  65. data/doc_out/UserMe.html.md +5 -1
  66. data/doc_out/UserRoutingSkill.html.md +2 -2
  67. data/doc_out/UsersApi.html.md +182 -0
  68. data/doc_out/WrapUpCodeMapping.html.md +5 -5
  69. data/doc_out/index.html.md +3 -3
  70. data/lib/purecloud.rb +15 -3
  71. data/lib/purecloud/api/authorization_api.rb +0 -60
  72. data/lib/purecloud/api/identity_provider_api.rb +1072 -0
  73. data/lib/purecloud/api/o_auth_api.rb +26 -906
  74. data/lib/purecloud/api/outbound_api.rb +2 -2
  75. data/lib/purecloud/api/presence_api.rb +67 -12
  76. data/lib/purecloud/api/quality_api.rb +378 -0
  77. data/lib/purecloud/api/routing_api.rb +21 -16
  78. data/lib/purecloud/api/stations_api.rb +3 -0
  79. data/lib/purecloud/api/telephony_providers_edge_api.rb +120 -0
  80. data/lib/purecloud/api/users_api.rb +189 -0
  81. data/lib/purecloud/api_client.rb +1 -1
  82. data/lib/purecloud/models/analytics_session.rb +1 -1
  83. data/lib/purecloud/models/available_language_list.rb +167 -0
  84. data/lib/purecloud/models/billing_contact.rb +237 -0
  85. data/lib/purecloud/models/{flow_history_result_item_entity_listing.rb → billing_contact_listing.rb} +2 -2
  86. data/lib/purecloud/models/call_record.rb +2 -1
  87. data/lib/purecloud/models/callable_contacts_diagnostic.rb +3 -0
  88. data/lib/purecloud/models/callable_time_set.rb +3 -3
  89. data/lib/purecloud/models/campaign.rb +3 -3
  90. data/lib/purecloud/models/campaign_diagnostics.rb +3 -0
  91. data/lib/purecloud/models/campaign_schedule.rb +7 -4
  92. data/lib/purecloud/models/campaign_sequence.rb +8 -3
  93. data/lib/purecloud/models/campaign_stats.rb +4 -0
  94. data/lib/purecloud/models/condition.rb +16 -0
  95. data/lib/purecloud/models/connect_rate.rb +3 -0
  96. data/lib/purecloud/models/contact_callback_request.rb +5 -0
  97. data/lib/purecloud/models/contact_list.rb +9 -3
  98. data/lib/purecloud/models/contact_phone_number_column.rb +3 -0
  99. data/lib/purecloud/models/create_callback_command.rb +12 -1
  100. data/lib/purecloud/models/create_user.rb +1 -0
  101. data/lib/purecloud/models/customer_interaction_center.rb +217 -0
  102. data/lib/purecloud/models/dialer_action.rb +31 -0
  103. data/lib/purecloud/models/dialer_contact.rb +5 -0
  104. data/lib/purecloud/models/dialer_rule.rb +15 -0
  105. data/lib/purecloud/models/dnc_list.rb +7 -14
  106. data/lib/purecloud/models/external_contact.rb +14 -1
  107. data/lib/purecloud/models/external_data_source.rb +176 -0
  108. data/lib/purecloud/models/external_organization.rb +14 -1
  109. data/lib/purecloud/models/import_status.rb +5 -0
  110. data/lib/purecloud/models/initiate_screen_recording.rb +187 -0
  111. data/lib/purecloud/models/json_node.rb +37 -37
  112. data/lib/purecloud/models/keyword.rb +227 -0
  113. data/lib/purecloud/models/keyword_set.rb +253 -0
  114. data/lib/purecloud/models/keyword_set_entity_listing.rb +257 -0
  115. data/lib/purecloud/models/o_auth_client.rb +3 -3
  116. data/lib/purecloud/models/okta.rb +11 -11
  117. data/lib/purecloud/models/one_login.rb +11 -11
  118. data/lib/purecloud/models/org_media_utilization.rb +17 -4
  119. data/lib/purecloud/models/organization_presence.rb +0 -9
  120. data/lib/purecloud/models/payment_method.rb +42 -1
  121. data/lib/purecloud/models/phone_number_status.rb +1 -0
  122. data/lib/purecloud/models/policy_actions.rb +14 -4
  123. data/lib/purecloud/models/queue_utilization_diagnostic.rb +8 -0
  124. data/lib/purecloud/models/response_set.rb +3 -3
  125. data/lib/purecloud/models/routing_skill.rb +2 -12
  126. data/lib/purecloud/models/routing_status.rb +1 -1
  127. data/lib/purecloud/models/rule_set.rb +6 -3
  128. data/lib/purecloud/models/salesforce.rb +11 -11
  129. data/lib/purecloud/models/{campaign_schedule_intervals.rb → schedule_interval.rb} +5 -5
  130. data/lib/purecloud/models/sequence_schedule.rb +7 -4
  131. data/lib/purecloud/models/station.rb +11 -1
  132. data/lib/purecloud/models/support_credit.rb +197 -0
  133. data/lib/purecloud/models/support_credit_listing.rb +257 -0
  134. data/lib/purecloud/models/system_presence.rb +187 -0
  135. data/lib/purecloud/models/trunk_recording_enabled_count.rb +177 -0
  136. data/lib/purecloud/models/user_image.rb +1 -0
  137. data/lib/purecloud/models/user_me.rb +50 -2
  138. data/lib/purecloud/models/user_routing_skill.rb +18 -11
  139. data/lib/purecloud/models/wrap_up_code_mapping.rb +5 -3
  140. data/lib/purecloud/version.rb +1 -1
  141. data/newVersion.md +1 -1
  142. data/swagger.json +1 -1
  143. data/version.json +1 -1
  144. metadata +32 -8
  145. data/doc_out/CampaignScheduleIntervals.html.md +0 -14
  146. data/doc_out/ObjectsApi.html.md +0 -69
  147. data/lib/purecloud/api/objects_api.rb +0 -87
@@ -23,7 +23,7 @@ module PureCloud
23
23
 
24
24
  attr_accessor :name
25
25
 
26
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
26
+ # Date last modified. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
27
27
  attr_accessor :date_modified
28
28
 
29
29
  # The current state for this skill.
@@ -32,8 +32,6 @@ module PureCloud
32
32
  # Required when updating. Version must be the current version. Only the system can assign version.
33
33
  attr_accessor :version
34
34
 
35
- attr_accessor :proficiency
36
-
37
35
  # The URI for this object
38
36
  attr_accessor :self_uri
39
37
 
@@ -51,8 +49,6 @@ module PureCloud
51
49
 
52
50
  :'version' => :'version',
53
51
 
54
- :'proficiency' => :'proficiency',
55
-
56
52
  :'self_uri' => :'selfUri'
57
53
 
58
54
  }
@@ -66,7 +62,6 @@ module PureCloud
66
62
  :'date_modified' => :'DateTime',
67
63
  :'state' => :'String',
68
64
  :'version' => :'String',
69
- :'proficiency' => :'String',
70
65
  :'self_uri' => :'String'
71
66
 
72
67
  }
@@ -99,10 +94,6 @@ module PureCloud
99
94
  self.version = attributes[:'version']
100
95
  end
101
96
 
102
- if attributes[:'proficiency']
103
- self.proficiency = attributes[:'proficiency']
104
- end
105
-
106
97
  if attributes[:'selfUri']
107
98
  self.self_uri = attributes[:'selfUri']
108
99
  end
@@ -127,7 +118,6 @@ module PureCloud
127
118
  date_modified == o.date_modified &&
128
119
  state == o.state &&
129
120
  version == o.version &&
130
- proficiency == o.proficiency &&
131
121
  self_uri == o.self_uri
132
122
  end
133
123
 
@@ -138,7 +128,7 @@ module PureCloud
138
128
 
139
129
  # Calculate hash code according to all attributes.
140
130
  def hash
141
- [id, name, date_modified, state, version, proficiency, self_uri].hash
131
+ [id, name, date_modified, state, version, self_uri].hash
142
132
  end
143
133
 
144
134
  # build the object from hash
@@ -71,7 +71,7 @@ module PureCloud
71
71
 
72
72
  # Custom attribute writer method checking allowed values (enum).
73
73
  def status=(status)
74
- allowed_values = ["OFF_QUEUE", "IDLE", "INTERACTING", "NOT_RESPONDING"]
74
+ allowed_values = ["OFF_QUEUE", "IDLE", "INTERACTING", "NOT_RESPONDING", "COMMUNICATING"]
75
75
  if status && !allowed_values.include?(status)
76
76
  fail "invalid value for 'status', must be one of #{allowed_values}"
77
77
  end
@@ -23,19 +23,22 @@ module PureCloud
23
23
 
24
24
  attr_accessor :name
25
25
 
26
- # creation time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
26
+ # Creation time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
27
27
  attr_accessor :date_created
28
28
 
29
- # last modified time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
29
+ # Last modified time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
30
30
  attr_accessor :date_modified
31
31
 
32
- # required for updates, must match the version number of the most recent update
32
+ # Required for updates, must match the version number of the most recent update
33
33
  attr_accessor :version
34
34
 
35
+ # The identifier of an example contact list that provides user-interface suggestions for contact-based conditions and actions
35
36
  attr_accessor :contact_list
36
37
 
38
+ # The identifier of an example queue that provides user-interface suggestions for wrap-up associated conditions
37
39
  attr_accessor :queue
38
40
 
41
+ # The list of rules
39
42
  attr_accessor :rules
40
43
 
41
44
  # The URI for this object
@@ -25,10 +25,10 @@ module PureCloud
25
25
 
26
26
  attr_accessor :certificate
27
27
 
28
- attr_accessor :issuer_uri
29
-
30
28
  attr_accessor :sso_target_uri
31
29
 
30
+ attr_accessor :issuer_uri
31
+
32
32
  # The URI for this object
33
33
  attr_accessor :self_uri
34
34
 
@@ -42,10 +42,10 @@ module PureCloud
42
42
 
43
43
  :'certificate' => :'certificate',
44
44
 
45
- :'issuer_uri' => :'issuerURI',
46
-
47
45
  :'sso_target_uri' => :'ssoTargetURI',
48
46
 
47
+ :'issuer_uri' => :'issuerURI',
48
+
49
49
  :'self_uri' => :'selfUri'
50
50
 
51
51
  }
@@ -57,8 +57,8 @@ module PureCloud
57
57
  :'id' => :'String',
58
58
  :'name' => :'String',
59
59
  :'certificate' => :'String',
60
- :'issuer_uri' => :'String',
61
60
  :'sso_target_uri' => :'String',
61
+ :'issuer_uri' => :'String',
62
62
  :'self_uri' => :'String'
63
63
 
64
64
  }
@@ -83,14 +83,14 @@ module PureCloud
83
83
  self.certificate = attributes[:'certificate']
84
84
  end
85
85
 
86
- if attributes[:'issuerURI']
87
- self.issuer_uri = attributes[:'issuerURI']
88
- end
89
-
90
86
  if attributes[:'ssoTargetURI']
91
87
  self.sso_target_uri = attributes[:'ssoTargetURI']
92
88
  end
93
89
 
90
+ if attributes[:'issuerURI']
91
+ self.issuer_uri = attributes[:'issuerURI']
92
+ end
93
+
94
94
  if attributes[:'selfUri']
95
95
  self.self_uri = attributes[:'selfUri']
96
96
  end
@@ -104,8 +104,8 @@ module PureCloud
104
104
  id == o.id &&
105
105
  name == o.name &&
106
106
  certificate == o.certificate &&
107
- issuer_uri == o.issuer_uri &&
108
107
  sso_target_uri == o.sso_target_uri &&
108
+ issuer_uri == o.issuer_uri &&
109
109
  self_uri == o.self_uri
110
110
  end
111
111
 
@@ -116,7 +116,7 @@ module PureCloud
116
116
 
117
117
  # Calculate hash code according to all attributes.
118
118
  def hash
119
- [id, name, certificate, issuer_uri, sso_target_uri, self_uri].hash
119
+ [id, name, certificate, sso_target_uri, issuer_uri, self_uri].hash
120
120
  end
121
121
 
122
122
  # build the object from hash
@@ -17,11 +17,11 @@ Terms of Service: https://developer.mypurecloud.com/tos
17
17
  require 'date'
18
18
 
19
19
  module PureCloud
20
- class CampaignScheduleIntervals
21
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
20
+ class ScheduleInterval
21
+ # scheduled start time represented as an ISO-8601 string; for example, yyyy-MM-ddTHH:mm:ss.SSSZ
22
22
  attr_accessor :start
23
23
 
24
- # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
24
+ # scheduled end time represented as an ISO-8601 string; for example, yyyy-MM-ddTHH:mm:ss.SSSZ
25
25
  attr_accessor :_end
26
26
 
27
27
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -38,8 +38,8 @@ module PureCloud
38
38
  # Attribute type mapping.
39
39
  def self.swagger_types
40
40
  {
41
- :'start' => :'DateTime',
42
- :'_end' => :'DateTime'
41
+ :'start' => :'String',
42
+ :'_end' => :'String'
43
43
 
44
44
  }
45
45
  end
@@ -23,19 +23,22 @@ module PureCloud
23
23
 
24
24
  attr_accessor :name
25
25
 
26
- # creation time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
26
+ # Creation time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
27
27
  attr_accessor :date_created
28
28
 
29
- # last modified time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
29
+ # Last modified time of the entity. Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
30
30
  attr_accessor :date_modified
31
31
 
32
- # required for updates, must match the version number of the most recent update
32
+ # Required for updates, must match the version number of the most recent update
33
33
  attr_accessor :version
34
34
 
35
+ # a list of start and end times
35
36
  attr_accessor :intervals
36
37
 
38
+ # time zone identifier to be applied to the intervals; for example Africa/Abidjan
37
39
  attr_accessor :time_zone
38
40
 
41
+ # identifier of the sequence to be scheduled
39
42
  attr_accessor :sequence
40
43
 
41
44
  # The URI for this object
@@ -74,7 +77,7 @@ module PureCloud
74
77
  :'date_created' => :'DateTime',
75
78
  :'date_modified' => :'DateTime',
76
79
  :'version' => :'Integer',
77
- :'intervals' => :'Array<CampaignScheduleIntervals>',
80
+ :'intervals' => :'Array<ScheduleInterval>',
78
81
  :'time_zone' => :'String',
79
82
  :'sequence' => :'UriReference',
80
83
  :'self_uri' => :'String'
@@ -35,6 +35,8 @@ module PureCloud
35
35
 
36
36
  attr_accessor :type
37
37
 
38
+ attr_accessor :line_appearance_id
39
+
38
40
  # The URI for this object
39
41
  attr_accessor :self_uri
40
42
 
@@ -58,6 +60,8 @@ module PureCloud
58
60
 
59
61
  :'type' => :'type',
60
62
 
63
+ :'line_appearance_id' => :'lineAppearanceId',
64
+
61
65
  :'self_uri' => :'selfUri'
62
66
 
63
67
  }
@@ -74,6 +78,7 @@ module PureCloud
74
78
  :'primary_edge' => :'UriReference',
75
79
  :'secondary_edge' => :'UriReference',
76
80
  :'type' => :'String',
81
+ :'line_appearance_id' => :'String',
77
82
  :'self_uri' => :'String'
78
83
 
79
84
  }
@@ -118,6 +123,10 @@ module PureCloud
118
123
  self.type = attributes[:'type']
119
124
  end
120
125
 
126
+ if attributes[:'lineAppearanceId']
127
+ self.line_appearance_id = attributes[:'lineAppearanceId']
128
+ end
129
+
121
130
  if attributes[:'selfUri']
122
131
  self.self_uri = attributes[:'selfUri']
123
132
  end
@@ -145,6 +154,7 @@ module PureCloud
145
154
  primary_edge == o.primary_edge &&
146
155
  secondary_edge == o.secondary_edge &&
147
156
  type == o.type &&
157
+ line_appearance_id == o.line_appearance_id &&
148
158
  self_uri == o.self_uri
149
159
  end
150
160
 
@@ -155,7 +165,7 @@ module PureCloud
155
165
 
156
166
  # Calculate hash code according to all attributes.
157
167
  def hash
158
- [id, name, description, status, user_id, primary_edge, secondary_edge, type, self_uri].hash
168
+ [id, name, description, status, user_id, primary_edge, secondary_edge, type, line_appearance_id, self_uri].hash
159
169
  end
160
170
 
161
171
  # build the object from hash
@@ -0,0 +1,197 @@
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@inin.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
+ class SupportCredit
21
+ # The globally unique identifier for the object.
22
+ attr_accessor :id
23
+
24
+ attr_accessor :name
25
+
26
+ attr_accessor :quantity
27
+
28
+ # The URI for this object
29
+ attr_accessor :self_uri
30
+
31
+ # Attribute mapping from ruby-style variable name to JSON key.
32
+ def self.attribute_map
33
+ {
34
+
35
+ :'id' => :'id',
36
+
37
+ :'name' => :'name',
38
+
39
+ :'quantity' => :'quantity',
40
+
41
+ :'self_uri' => :'selfUri'
42
+
43
+ }
44
+ end
45
+
46
+ # Attribute type mapping.
47
+ def self.swagger_types
48
+ {
49
+ :'id' => :'String',
50
+ :'name' => :'String',
51
+ :'quantity' => :'Integer',
52
+ :'self_uri' => :'String'
53
+
54
+ }
55
+ end
56
+
57
+ def initialize(attributes = {})
58
+ return unless attributes.is_a?(Hash)
59
+
60
+ # convert string to symbol for hash key
61
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
62
+
63
+
64
+ if attributes[:'id']
65
+ self.id = attributes[:'id']
66
+ end
67
+
68
+ if attributes[:'name']
69
+ self.name = attributes[:'name']
70
+ end
71
+
72
+ if attributes[:'quantity']
73
+ self.quantity = attributes[:'quantity']
74
+ end
75
+
76
+ if attributes[:'selfUri']
77
+ self.self_uri = attributes[:'selfUri']
78
+ end
79
+
80
+ end
81
+
82
+ # Check equality by comparing each attribute.
83
+ def ==(o)
84
+ return true if self.equal?(o)
85
+ self.class == o.class &&
86
+ id == o.id &&
87
+ name == o.name &&
88
+ quantity == o.quantity &&
89
+ self_uri == o.self_uri
90
+ end
91
+
92
+ # @see the `==` method
93
+ def eql?(o)
94
+ self == o
95
+ end
96
+
97
+ # Calculate hash code according to all attributes.
98
+ def hash
99
+ [id, name, quantity, self_uri].hash
100
+ end
101
+
102
+ # build the object from hash
103
+ def build_from_hash(attributes)
104
+ return nil unless attributes.is_a?(Hash)
105
+ self.class.swagger_types.each_pair do |key, type|
106
+ if type =~ /^Array<(.*)>/i
107
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
108
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
109
+ else
110
+ #TODO show warning in debug mode
111
+ end
112
+ elsif !attributes[self.class.attribute_map[key]].nil?
113
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
114
+ else
115
+ # data not found in attributes(hash), not an issue as the data can be optional
116
+ end
117
+ end
118
+
119
+ self
120
+ end
121
+
122
+ def _deserialize(type, value)
123
+ case type.to_sym
124
+ when :DateTime
125
+ DateTime.parse(value)
126
+ when :Date
127
+ Date.parse(value)
128
+ when :String
129
+ value.to_s
130
+ when :Integer
131
+ value.to_i
132
+ when :Float
133
+ value.to_f
134
+ when :BOOLEAN
135
+ if value.to_s =~ /^(true|t|yes|y|1)$/i
136
+ true
137
+ else
138
+ false
139
+ end
140
+ when :Object
141
+ # generic object (usually a Hash), return directly
142
+ value
143
+ when /\AArray<(?<inner_type>.+)>\z/
144
+ inner_type = Regexp.last_match[:inner_type]
145
+ value.map { |v| _deserialize(inner_type, v) }
146
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
147
+ k_type = Regexp.last_match[:k_type]
148
+ v_type = Regexp.last_match[:v_type]
149
+ {}.tap do |hash|
150
+ value.each do |k, v|
151
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
152
+ end
153
+ end
154
+ else # model
155
+ _model = Object.const_get("PureCloud").const_get(type).new
156
+ _model.build_from_hash(value)
157
+ end
158
+ end
159
+
160
+ def to_s
161
+ to_hash.to_s
162
+ end
163
+
164
+ # to_body is an alias to to_body (backward compatibility))
165
+ def to_body
166
+ to_hash
167
+ end
168
+
169
+ # return the object in the form of hash
170
+ def to_hash
171
+ hash = {}
172
+ self.class.attribute_map.each_pair do |attr, param|
173
+ value = self.send(attr)
174
+ next if value.nil?
175
+ hash[param] = _to_hash(value)
176
+ end
177
+ hash
178
+ end
179
+
180
+ # Method to output non-array value in the form of hash
181
+ # For object, use to_hash. Otherwise, just return the value
182
+ def _to_hash(value)
183
+ if value.is_a?(Array)
184
+ value.compact.map{ |v| _to_hash(v) }
185
+ elsif value.is_a?(Hash)
186
+ {}.tap do |hash|
187
+ value.each { |k, v| hash[k] = _to_hash(v) }
188
+ end
189
+ elsif value.respond_to? :to_hash
190
+ value.to_hash
191
+ else
192
+ value
193
+ end
194
+ end
195
+
196
+ end
197
+ end