purecloud 0.18.0 → 0.25.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -74,7 +74,7 @@ module PureCloud
74
74
 
75
75
  # Custom attribute writer method checking allowed values (enum).
76
76
  def operator=(operator)
77
- allowed_values = ["IN", "RANGE", "EQUALS", "NOTEQUALS", "LESSTHAN", "LESSTHANEQUALS", "GREATERTHAN", "GREATERTHANEQUALS"]
77
+ allowed_values = ["IN", "RANGE", "EQUALS", "NOTEQUALS", "LESSTHAN", "LESSTHANEQUALS", "GREATERTHAN", "GREATERTHANEQUALS", "CONTAINS"]
78
78
  if operator && !allowed_values.include?(operator)
79
79
  fail "invalid value for 'operator', must be one of #{allowed_values}"
80
80
  end
@@ -23,7 +23,7 @@ module PureCloud
23
23
  def self.swagger_types
24
24
  {
25
25
  :'format' => :'String',
26
- :'body' => :'Hash<String, Line_properties>'
26
+ :'body' => :'Hash<String, inline_response_200>'
27
27
 
28
28
  }
29
29
  end
@@ -2,21 +2,17 @@ require 'date'
2
2
 
3
3
  module PureCloud
4
4
  class FlowBodyFormat
5
- attr_accessor :name
5
+ attr_accessor :schema_uri
6
6
 
7
7
  attr_accessor :description
8
8
 
9
- attr_accessor :schema_uri
10
-
11
9
  # Attribute mapping from ruby-style variable name to JSON key.
12
10
  def self.attribute_map
13
11
  {
14
12
 
15
- :'name' => :'name',
13
+ :'schema_uri' => :'schemaUri',
16
14
 
17
- :'description' => :'description',
18
-
19
- :'schema_uri' => :'schemaUri'
15
+ :'description' => :'description'
20
16
 
21
17
  }
22
18
  end
@@ -24,9 +20,8 @@ module PureCloud
24
20
  # Attribute type mapping.
25
21
  def self.swagger_types
26
22
  {
27
- :'name' => :'String',
28
- :'description' => :'String',
29
- :'schema_uri' => :'String'
23
+ :'schema_uri' => :'String',
24
+ :'description' => :'String'
30
25
 
31
26
  }
32
27
  end
@@ -38,27 +33,22 @@ module PureCloud
38
33
  attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
39
34
 
40
35
 
41
- if attributes[:'name']
42
- self.name = attributes[:'name']
36
+ if attributes[:'schemaUri']
37
+ self.schema_uri = attributes[:'schemaUri']
43
38
  end
44
39
 
45
40
  if attributes[:'description']
46
41
  self.description = attributes[:'description']
47
42
  end
48
43
 
49
- if attributes[:'schemaUri']
50
- self.schema_uri = attributes[:'schemaUri']
51
- end
52
-
53
44
  end
54
45
 
55
46
  # Check equality by comparing each attribute.
56
47
  def ==(o)
57
48
  return true if self.equal?(o)
58
49
  self.class == o.class &&
59
- name == o.name &&
60
- description == o.description &&
61
- schema_uri == o.schema_uri
50
+ schema_uri == o.schema_uri &&
51
+ description == o.description
62
52
  end
63
53
 
64
54
  # @see the `==` method
@@ -68,7 +58,7 @@ module PureCloud
68
58
 
69
59
  # Calculate hash code according to all attributes.
70
60
  def hash
71
- [name, description, schema_uri].hash
61
+ [schema_uri, description].hash
72
62
  end
73
63
 
74
64
  # build the object from hash
@@ -1,20 +1,15 @@
1
1
  require 'date'
2
2
 
3
3
  module PureCloud
4
- # Passed into a terminate command to customize the termination/cancellation action.
4
+ # Passed into a terminate command to customize the termination action.
5
5
  class FlowTerminateRequest
6
- # force the termination of a flow.
7
- attr_accessor :force
8
-
9
- # Reason for termination.
6
+ # Reason code for a termination.
10
7
  attr_accessor :reason
11
8
 
12
9
  # Attribute mapping from ruby-style variable name to JSON key.
13
10
  def self.attribute_map
14
11
  {
15
12
 
16
- :'force' => :'force',
17
-
18
13
  :'reason' => :'reason'
19
14
 
20
15
  }
@@ -23,7 +18,6 @@ module PureCloud
23
18
  # Attribute type mapping.
24
19
  def self.swagger_types
25
20
  {
26
- :'force' => :'BOOLEAN',
27
21
  :'reason' => :'String'
28
22
 
29
23
  }
@@ -36,12 +30,6 @@ module PureCloud
36
30
  attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
37
31
 
38
32
 
39
- if attributes[:'force']
40
- self.force = attributes[:'force']
41
- else
42
- self.force = false
43
- end
44
-
45
33
  if attributes[:'reason']
46
34
  self.reason = attributes[:'reason']
47
35
  end
@@ -52,7 +40,6 @@ module PureCloud
52
40
  def ==(o)
53
41
  return true if self.equal?(o)
54
42
  self.class == o.class &&
55
- force == o.force &&
56
43
  reason == o.reason
57
44
  end
58
45
 
@@ -63,7 +50,7 @@ module PureCloud
63
50
 
64
51
  # Calculate hash code according to all attributes.
65
52
  def hash
66
- [force, reason].hash
53
+ [reason].hash
67
54
  end
68
55
 
69
56
  # build the object from hash
@@ -0,0 +1,148 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class Form
5
+ attr_accessor :controls
6
+
7
+ # Attribute mapping from ruby-style variable name to JSON key.
8
+ def self.attribute_map
9
+ {
10
+
11
+ :'controls' => :'controls'
12
+
13
+ }
14
+ end
15
+
16
+ # Attribute type mapping.
17
+ def self.swagger_types
18
+ {
19
+ :'controls' => :'Array<Control>'
20
+
21
+ }
22
+ end
23
+
24
+ def initialize(attributes = {})
25
+ return unless attributes.is_a?(Hash)
26
+
27
+ # convert string to symbol for hash key
28
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
29
+
30
+
31
+ if attributes[:'controls']
32
+ if (value = attributes[:'controls']).is_a?(Array)
33
+ self.controls = value
34
+ end
35
+ end
36
+
37
+ end
38
+
39
+ # Check equality by comparing each attribute.
40
+ def ==(o)
41
+ return true if self.equal?(o)
42
+ self.class == o.class &&
43
+ controls == o.controls
44
+ end
45
+
46
+ # @see the `==` method
47
+ def eql?(o)
48
+ self == o
49
+ end
50
+
51
+ # Calculate hash code according to all attributes.
52
+ def hash
53
+ [controls].hash
54
+ end
55
+
56
+ # build the object from hash
57
+ def build_from_hash(attributes)
58
+ return nil unless attributes.is_a?(Hash)
59
+ self.class.swagger_types.each_pair do |key, type|
60
+ if type =~ /^Array<(.*)>/i
61
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
62
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
63
+ else
64
+ #TODO show warning in debug mode
65
+ end
66
+ elsif !attributes[self.class.attribute_map[key]].nil?
67
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
68
+ else
69
+ # data not found in attributes(hash), not an issue as the data can be optional
70
+ end
71
+ end
72
+
73
+ self
74
+ end
75
+
76
+ def _deserialize(type, value)
77
+ case type.to_sym
78
+ when :DateTime
79
+ DateTime.parse(value)
80
+ when :Date
81
+ Date.parse(value)
82
+ when :String
83
+ value.to_s
84
+ when :Integer
85
+ value.to_i
86
+ when :Float
87
+ value.to_f
88
+ when :BOOLEAN
89
+ if value =~ /^(true|t|yes|y|1)$/i
90
+ true
91
+ else
92
+ false
93
+ end
94
+ when /\AArray<(?<inner_type>.+)>\z/
95
+ inner_type = Regexp.last_match[:inner_type]
96
+ value.map { |v| _deserialize(inner_type, v) }
97
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
98
+ k_type = Regexp.last_match[:k_type]
99
+ v_type = Regexp.last_match[:v_type]
100
+ {}.tap do |hash|
101
+ value.each do |k, v|
102
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
103
+ end
104
+ end
105
+ else # model
106
+ _model = Object.const_get("PureCloud").const_get(type).new
107
+ _model.build_from_hash(value)
108
+ end
109
+ end
110
+
111
+ def to_s
112
+ to_hash.to_s
113
+ end
114
+
115
+ # to_body is an alias to to_body (backward compatibility))
116
+ def to_body
117
+ to_hash
118
+ end
119
+
120
+ # return the object in the form of hash
121
+ def to_hash
122
+ hash = {}
123
+ self.class.attribute_map.each_pair do |attr, param|
124
+ value = self.send(attr)
125
+ next if value.nil?
126
+ hash[param] = _to_hash(value)
127
+ end
128
+ hash
129
+ end
130
+
131
+ # Method to output non-array value in the form of hash
132
+ # For object, use to_hash. Otherwise, just return the value
133
+ def _to_hash(value)
134
+ if value.is_a?(Array)
135
+ value.compact.map{ |v| _to_hash(v) }
136
+ elsif value.is_a?(Hash)
137
+ {}.tap do |hash|
138
+ value.each { |k, v| hash[k] = _to_hash(v) }
139
+ end
140
+ elsif value.respond_to? :to_hash
141
+ value.to_hash
142
+ else
143
+ value
144
+ end
145
+ end
146
+
147
+ end
148
+ end
@@ -17,6 +17,8 @@ module PureCloud
17
17
 
18
18
  attr_accessor :group_state
19
19
 
20
+ attr_accessor :version
21
+
20
22
  # The URI for this object
21
23
  attr_accessor :self_uri
22
24
 
@@ -38,6 +40,8 @@ module PureCloud
38
40
 
39
41
  :'group_state' => :'groupState',
40
42
 
43
+ :'version' => :'version',
44
+
41
45
  :'self_uri' => :'selfUri'
42
46
 
43
47
  }
@@ -53,6 +57,7 @@ module PureCloud
53
57
  :'group_type' => :'String',
54
58
  :'group_images' => :'GroupImages',
55
59
  :'group_state' => :'String',
60
+ :'version' => :'Float',
56
61
  :'self_uri' => :'String'
57
62
 
58
63
  }
@@ -93,6 +98,10 @@ module PureCloud
93
98
  self.group_state = attributes[:'groupState']
94
99
  end
95
100
 
101
+ if attributes[:'version']
102
+ self.version = attributes[:'version']
103
+ end
104
+
96
105
  if attributes[:'selfUri']
97
106
  self.self_uri = attributes[:'selfUri']
98
107
  end
@@ -128,6 +137,7 @@ module PureCloud
128
137
  group_type == o.group_type &&
129
138
  group_images == o.group_images &&
130
139
  group_state == o.group_state &&
140
+ version == o.version &&
131
141
  self_uri == o.self_uri
132
142
  end
133
143
 
@@ -138,7 +148,7 @@ module PureCloud
138
148
 
139
149
  # Calculate hash code according to all attributes.
140
150
  def hash
141
- [id, name, description, member_count, group_type, group_images, group_state, self_uri].hash
151
+ [id, name, description, member_count, group_type, group_images, group_state, version, self_uri].hash
142
152
  end
143
153
 
144
154
  # build the object from hash
@@ -0,0 +1,268 @@
1
+ require 'date'
2
+
3
+ module PureCloud
4
+ class HealthCheckInfo
5
+ # The globally unique identifier for the object.
6
+ attr_accessor :id
7
+
8
+ attr_accessor :name
9
+
10
+ # The URI for this object
11
+ attr_accessor :self_uri
12
+
13
+ attr_accessor :build_time
14
+
15
+ attr_accessor :build_version
16
+
17
+ attr_accessor :build_jdk
18
+
19
+ attr_accessor :built_by
20
+
21
+ attr_accessor :implementation_build
22
+
23
+ attr_accessor :implementation_version
24
+
25
+ attr_accessor :status
26
+
27
+ attr_accessor :ping_ms
28
+
29
+ # Date time is represented as an ISO-8601 string. For example: yyyy-MM-ddTHH:mm:ss.SSSZ
30
+ attr_accessor :date
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+
36
+ :'id' => :'id',
37
+
38
+ :'name' => :'name',
39
+
40
+ :'self_uri' => :'selfUri',
41
+
42
+ :'build_time' => :'Build-Time',
43
+
44
+ :'build_version' => :'Build-Version',
45
+
46
+ :'build_jdk' => :'Build-Jdk',
47
+
48
+ :'built_by' => :'Built-By',
49
+
50
+ :'implementation_build' => :'Implementation-Build',
51
+
52
+ :'implementation_version' => :'Implementation-Version',
53
+
54
+ :'status' => :'Status',
55
+
56
+ :'ping_ms' => :'Ping-Ms',
57
+
58
+ :'date' => :'Date'
59
+
60
+ }
61
+ end
62
+
63
+ # Attribute type mapping.
64
+ def self.swagger_types
65
+ {
66
+ :'id' => :'String',
67
+ :'name' => :'String',
68
+ :'self_uri' => :'String',
69
+ :'build_time' => :'String',
70
+ :'build_version' => :'String',
71
+ :'build_jdk' => :'String',
72
+ :'built_by' => :'String',
73
+ :'implementation_build' => :'String',
74
+ :'implementation_version' => :'String',
75
+ :'status' => :'String',
76
+ :'ping_ms' => :'Integer',
77
+ :'date' => :'DateTime'
78
+
79
+ }
80
+ end
81
+
82
+ def initialize(attributes = {})
83
+ return unless attributes.is_a?(Hash)
84
+
85
+ # convert string to symbol for hash key
86
+ attributes = attributes.inject({}){|memo,(k,v)| memo[k.to_sym] = v; memo}
87
+
88
+
89
+ if attributes[:'id']
90
+ self.id = attributes[:'id']
91
+ end
92
+
93
+ if attributes[:'name']
94
+ self.name = attributes[:'name']
95
+ end
96
+
97
+ if attributes[:'selfUri']
98
+ self.self_uri = attributes[:'selfUri']
99
+ end
100
+
101
+ if attributes[:'Build-Time']
102
+ self.build_time = attributes[:'Build-Time']
103
+ end
104
+
105
+ if attributes[:'Build-Version']
106
+ self.build_version = attributes[:'Build-Version']
107
+ end
108
+
109
+ if attributes[:'Build-Jdk']
110
+ self.build_jdk = attributes[:'Build-Jdk']
111
+ end
112
+
113
+ if attributes[:'Built-By']
114
+ self.built_by = attributes[:'Built-By']
115
+ end
116
+
117
+ if attributes[:'Implementation-Build']
118
+ self.implementation_build = attributes[:'Implementation-Build']
119
+ end
120
+
121
+ if attributes[:'Implementation-Version']
122
+ self.implementation_version = attributes[:'Implementation-Version']
123
+ end
124
+
125
+ if attributes[:'Status']
126
+ self.status = attributes[:'Status']
127
+ end
128
+
129
+ if attributes[:'Ping-Ms']
130
+ self.ping_ms = attributes[:'Ping-Ms']
131
+ end
132
+
133
+ if attributes[:'Date']
134
+ self.date = attributes[:'Date']
135
+ end
136
+
137
+ end
138
+
139
+ # Custom attribute writer method checking allowed values (enum).
140
+ def status=(status)
141
+ allowed_values = ["OK", "CREATED", "ACCEPTED", "NO_CONTENT", "RESET_CONTENT", "PARTIAL_CONTENT", "MOVED_PERMANENTLY", "FOUND", "SEE_OTHER", "NOT_MODIFIED", "USE_PROXY", "TEMPORARY_REDIRECT", "BAD_REQUEST", "UNAUTHORIZED", "PAYMENT_REQUIRED", "FORBIDDEN", "NOT_FOUND", "METHOD_NOT_ALLOWED", "NOT_ACCEPTABLE", "PROXY_AUTHENTICATION_REQUIRED", "REQUEST_TIMEOUT", "CONFLICT", "GONE", "LENGTH_REQUIRED", "PRECONDITION_FAILED", "REQUEST_ENTITY_TOO_LARGE", "REQUEST_URI_TOO_LONG", "UNSUPPORTED_MEDIA_TYPE", "REQUESTED_RANGE_NOT_SATISFIABLE", "EXPECTATION_FAILED", "INTERNAL_SERVER_ERROR", "NOT_IMPLEMENTED", "BAD_GATEWAY", "SERVICE_UNAVAILABLE", "GATEWAY_TIMEOUT", "HTTP_VERSION_NOT_SUPPORTED"]
142
+ if status && !allowed_values.include?(status)
143
+ fail "invalid value for 'status', must be one of #{allowed_values}"
144
+ end
145
+ @status = status
146
+ end
147
+
148
+ # Check equality by comparing each attribute.
149
+ def ==(o)
150
+ return true if self.equal?(o)
151
+ self.class == o.class &&
152
+ id == o.id &&
153
+ name == o.name &&
154
+ self_uri == o.self_uri &&
155
+ build_time == o.build_time &&
156
+ build_version == o.build_version &&
157
+ build_jdk == o.build_jdk &&
158
+ built_by == o.built_by &&
159
+ implementation_build == o.implementation_build &&
160
+ implementation_version == o.implementation_version &&
161
+ status == o.status &&
162
+ ping_ms == o.ping_ms &&
163
+ date == o.date
164
+ end
165
+
166
+ # @see the `==` method
167
+ def eql?(o)
168
+ self == o
169
+ end
170
+
171
+ # Calculate hash code according to all attributes.
172
+ def hash
173
+ [id, name, self_uri, build_time, build_version, build_jdk, built_by, implementation_build, implementation_version, status, ping_ms, date].hash
174
+ end
175
+
176
+ # build the object from hash
177
+ def build_from_hash(attributes)
178
+ return nil unless attributes.is_a?(Hash)
179
+ self.class.swagger_types.each_pair do |key, type|
180
+ if type =~ /^Array<(.*)>/i
181
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
182
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
183
+ else
184
+ #TODO show warning in debug mode
185
+ end
186
+ elsif !attributes[self.class.attribute_map[key]].nil?
187
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
188
+ else
189
+ # data not found in attributes(hash), not an issue as the data can be optional
190
+ end
191
+ end
192
+
193
+ self
194
+ end
195
+
196
+ def _deserialize(type, value)
197
+ case type.to_sym
198
+ when :DateTime
199
+ DateTime.parse(value)
200
+ when :Date
201
+ Date.parse(value)
202
+ when :String
203
+ value.to_s
204
+ when :Integer
205
+ value.to_i
206
+ when :Float
207
+ value.to_f
208
+ when :BOOLEAN
209
+ if value =~ /^(true|t|yes|y|1)$/i
210
+ true
211
+ else
212
+ false
213
+ end
214
+ when /\AArray<(?<inner_type>.+)>\z/
215
+ inner_type = Regexp.last_match[:inner_type]
216
+ value.map { |v| _deserialize(inner_type, v) }
217
+ when /\AHash<(?<k_type>.+), (?<v_type>.+)>\z/
218
+ k_type = Regexp.last_match[:k_type]
219
+ v_type = Regexp.last_match[:v_type]
220
+ {}.tap do |hash|
221
+ value.each do |k, v|
222
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
223
+ end
224
+ end
225
+ else # model
226
+ _model = Object.const_get("PureCloud").const_get(type).new
227
+ _model.build_from_hash(value)
228
+ end
229
+ end
230
+
231
+ def to_s
232
+ to_hash.to_s
233
+ end
234
+
235
+ # to_body is an alias to to_body (backward compatibility))
236
+ def to_body
237
+ to_hash
238
+ end
239
+
240
+ # return the object in the form of hash
241
+ def to_hash
242
+ hash = {}
243
+ self.class.attribute_map.each_pair do |attr, param|
244
+ value = self.send(attr)
245
+ next if value.nil?
246
+ hash[param] = _to_hash(value)
247
+ end
248
+ hash
249
+ end
250
+
251
+ # Method to output non-array value in the form of hash
252
+ # For object, use to_hash. Otherwise, just return the value
253
+ def _to_hash(value)
254
+ if value.is_a?(Array)
255
+ value.compact.map{ |v| _to_hash(v) }
256
+ elsif value.is_a?(Hash)
257
+ {}.tap do |hash|
258
+ value.each { |k, v| hash[k] = _to_hash(v) }
259
+ end
260
+ elsif value.respond_to? :to_hash
261
+ value.to_hash
262
+ else
263
+ value
264
+ end
265
+ end
266
+
267
+ end
268
+ end