dyspatch_client 2.0.0 → 3.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 (102) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +42 -16
  3. data/docs/APIError.md +1 -1
  4. data/docs/Body.md +8 -0
  5. data/docs/Body1.md +8 -0
  6. data/docs/CreatedAt.md +7 -0
  7. data/docs/DraftDescription.md +7 -0
  8. data/docs/DraftId.md +7 -0
  9. data/docs/DraftMetaRead.md +14 -0
  10. data/docs/DraftName.md +7 -0
  11. data/docs/DraftRead.md +15 -0
  12. data/docs/DraftUrl.md +7 -0
  13. data/docs/DraftsApi.md +467 -0
  14. data/docs/DraftsRead.md +9 -0
  15. data/docs/LanguageId.md +7 -0
  16. data/docs/LocalizationId.md +7 -0
  17. data/docs/LocalizationKeyRead.md +9 -0
  18. data/docs/LocalizationMetaRead.md +1 -0
  19. data/docs/LocalizationName.md +7 -0
  20. data/docs/LocalizationUrl.md +7 -0
  21. data/docs/LocalizationsApi.md +8 -11
  22. data/docs/TemplateDescription.md +7 -0
  23. data/docs/TemplateId.md +7 -0
  24. data/docs/TemplateMetaRead.md +1 -1
  25. data/docs/TemplateName.md +7 -0
  26. data/docs/TemplateRead.md +1 -1
  27. data/docs/TemplateUrl.md +7 -0
  28. data/docs/TemplatesApi.md +9 -14
  29. data/docs/TemplatesRead.md +1 -1
  30. data/docs/UpdatedAt.md +7 -0
  31. data/dyspatch_client.gemspec +8 -8
  32. data/lib/dyspatch_client.rb +24 -3
  33. data/lib/dyspatch_client/api/drafts_api.rb +479 -0
  34. data/lib/dyspatch_client/api/localizations_api.rb +23 -22
  35. data/lib/dyspatch_client/api/templates_api.rb +25 -28
  36. data/lib/dyspatch_client/api_client.rb +11 -11
  37. data/lib/dyspatch_client/api_error.rb +3 -3
  38. data/lib/dyspatch_client/configuration.rb +4 -4
  39. data/lib/dyspatch_client/models/api_error.rb +11 -15
  40. data/lib/dyspatch_client/models/body.rb +183 -0
  41. data/lib/dyspatch_client/models/body_1.rb +183 -0
  42. data/lib/dyspatch_client/models/compiled_read.rb +14 -22
  43. data/lib/dyspatch_client/models/created_at.rb +175 -0
  44. data/lib/dyspatch_client/models/cursor.rb +8 -12
  45. data/lib/dyspatch_client/models/draft_description.rb +175 -0
  46. data/lib/dyspatch_client/models/draft_id.rb +175 -0
  47. data/lib/dyspatch_client/models/draft_meta_read.rb +244 -0
  48. data/lib/dyspatch_client/models/draft_name.rb +175 -0
  49. data/lib/dyspatch_client/models/draft_read.rb +255 -0
  50. data/lib/dyspatch_client/models/draft_url.rb +175 -0
  51. data/lib/dyspatch_client/models/drafts_read.rb +196 -0
  52. data/lib/dyspatch_client/models/language_id.rb +175 -0
  53. data/lib/dyspatch_client/models/localization_id.rb +175 -0
  54. data/lib/dyspatch_client/models/localization_key_read.rb +192 -0
  55. data/lib/dyspatch_client/models/localization_meta_read.rb +20 -15
  56. data/lib/dyspatch_client/models/localization_name.rb +175 -0
  57. data/lib/dyspatch_client/models/localization_read.rb +8 -13
  58. data/lib/dyspatch_client/models/localization_url.rb +175 -0
  59. data/lib/dyspatch_client/models/template_description.rb +175 -0
  60. data/lib/dyspatch_client/models/template_id.rb +175 -0
  61. data/lib/dyspatch_client/models/template_meta_read.rb +8 -13
  62. data/lib/dyspatch_client/models/template_name.rb +175 -0
  63. data/lib/dyspatch_client/models/template_read.rb +8 -13
  64. data/lib/dyspatch_client/models/template_url.rb +175 -0
  65. data/lib/dyspatch_client/models/templates_read.rb +8 -13
  66. data/lib/dyspatch_client/models/updated_at.rb +175 -0
  67. data/lib/dyspatch_client/version.rb +4 -4
  68. data/spec/api/drafts_api_spec.rb +138 -0
  69. data/spec/api/localizations_api_spec.rb +6 -7
  70. data/spec/api/templates_api_spec.rb +6 -8
  71. data/spec/api_client_spec.rb +37 -37
  72. data/spec/configuration_spec.rb +11 -11
  73. data/spec/models/api_error_spec.rb +10 -11
  74. data/spec/models/body_1_spec.rb +41 -0
  75. data/spec/models/body_spec.rb +41 -0
  76. data/spec/models/compiled_read_spec.rb +8 -9
  77. data/spec/models/created_at_spec.rb +35 -0
  78. data/spec/models/cursor_spec.rb +5 -6
  79. data/spec/models/draft_description_spec.rb +35 -0
  80. data/spec/models/draft_id_spec.rb +35 -0
  81. data/spec/models/draft_meta_read_spec.rb +77 -0
  82. data/spec/models/draft_name_spec.rb +35 -0
  83. data/spec/models/draft_read_spec.rb +83 -0
  84. data/spec/models/draft_url_spec.rb +35 -0
  85. data/spec/models/drafts_read_spec.rb +47 -0
  86. data/spec/models/language_id_spec.rb +35 -0
  87. data/spec/models/localization_id_spec.rb +35 -0
  88. data/spec/models/localization_key_read_spec.rb +47 -0
  89. data/spec/models/localization_meta_read_spec.rb +13 -8
  90. data/spec/models/localization_name_spec.rb +35 -0
  91. data/spec/models/localization_read_spec.rb +11 -12
  92. data/spec/models/localization_url_spec.rb +35 -0
  93. data/spec/models/template_description_spec.rb +35 -0
  94. data/spec/models/template_id_spec.rb +35 -0
  95. data/spec/models/template_meta_read_spec.rb +10 -11
  96. data/spec/models/template_name_spec.rb +35 -0
  97. data/spec/models/template_read_spec.rb +11 -12
  98. data/spec/models/template_url_spec.rb +35 -0
  99. data/spec/models/templates_read_spec.rb +5 -6
  100. data/spec/models/updated_at_spec.rb +35 -0
  101. data/spec/spec_helper.rb +3 -3
  102. metadata +106 -22
@@ -0,0 +1,192 @@
1
+ =begin
2
+ #Dyspatch API
3
+
4
+ ## Introduction The Dyspatch API is based on the REST paradigm and features resource based URLs with standard HTTP response codes to indicate errors. We use standard HTTP authentication and request verbs and all responses are JSON formatted. See our [Implementation Guide](https://docs.dyspatch.io/development/implementing_dyspatch/) for more details on how to implement Dyspatch. ## API Client Libraries Dyspatch provides API Clients for the following languages and web frameworks: - [Java](https://github.com/getdyspatch/dyspatch-java) - [Javascript](https://github.com/getdyspatch/dyspatch-javascript) - [Python](https://github.com/getdyspatch/dyspatch-python) - [C#](https://github.com/getdyspatch/dyspatch-dotnet) - [Go](https://github.com/getdyspatch/dyspatch-golang) - [Ruby](https://github.com/getdyspatch/dyspatch-ruby)
5
+
6
+ OpenAPI spec version: 2019.10
7
+ Contact: support@dyspatch.io
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.9
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module DyspatchClient
16
+ class LocalizationKeyRead
17
+ attr_accessor :key
18
+
19
+ attr_accessor :comment
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'key' => :'key',
25
+ :'comment' => :'comment'
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.swagger_types
31
+ {
32
+ :'key' => :'String',
33
+ :'comment' => :'String'
34
+ }
35
+ end
36
+
37
+ # Initializes the object
38
+ # @param [Hash] attributes Model attributes in the form of hash
39
+ def initialize(attributes = {})
40
+ return unless attributes.is_a?(Hash)
41
+
42
+ # convert string to symbol for hash key
43
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
44
+
45
+ if attributes.has_key?(:'key')
46
+ self.key = attributes[:'key']
47
+ end
48
+
49
+ if attributes.has_key?(:'comment')
50
+ self.comment = attributes[:'comment']
51
+ end
52
+ end
53
+
54
+ # Show invalid properties with the reasons. Usually used together with valid?
55
+ # @return Array for valid properties with the reasons
56
+ def list_invalid_properties
57
+ invalid_properties = Array.new
58
+ invalid_properties
59
+ end
60
+
61
+ # Check to see if the all the properties in the model are valid
62
+ # @return true if the model is valid
63
+ def valid?
64
+ true
65
+ end
66
+
67
+ # Checks equality by comparing each attribute.
68
+ # @param [Object] Object to be compared
69
+ def ==(o)
70
+ return true if self.equal?(o)
71
+ self.class == o.class &&
72
+ key == o.key &&
73
+ comment == o.comment
74
+ end
75
+
76
+ # @see the `==` method
77
+ # @param [Object] Object to be compared
78
+ def eql?(o)
79
+ self == o
80
+ end
81
+
82
+ # Calculates hash code according to all attributes.
83
+ # @return [Fixnum] Hash code
84
+ def hash
85
+ [key, comment].hash
86
+ end
87
+
88
+ # Builds the object from hash
89
+ # @param [Hash] attributes Model attributes in the form of hash
90
+ # @return [Object] Returns the model itself
91
+ def build_from_hash(attributes)
92
+ return nil unless attributes.is_a?(Hash)
93
+ self.class.swagger_types.each_pair do |key, type|
94
+ if type =~ /\AArray<(.*)>/i
95
+ # check to ensure the input is an array given that the the attribute
96
+ # is documented as an array but the input is not
97
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
98
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
99
+ end
100
+ elsif !attributes[self.class.attribute_map[key]].nil?
101
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
102
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
103
+ end
104
+
105
+ self
106
+ end
107
+
108
+ # Deserializes the data based on type
109
+ # @param string type Data type
110
+ # @param string value Value to be deserialized
111
+ # @return [Object] Deserialized data
112
+ def _deserialize(type, value)
113
+ case type.to_sym
114
+ when :DateTime
115
+ DateTime.parse(value)
116
+ when :Date
117
+ Date.parse(value)
118
+ when :String
119
+ value.to_s
120
+ when :Integer
121
+ value.to_i
122
+ when :Float
123
+ value.to_f
124
+ when :BOOLEAN
125
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
126
+ true
127
+ else
128
+ false
129
+ end
130
+ when :Object
131
+ # generic object (usually a Hash), return directly
132
+ value
133
+ when /\AArray<(?<inner_type>.+)>\z/
134
+ inner_type = Regexp.last_match[:inner_type]
135
+ value.map { |v| _deserialize(inner_type, v) }
136
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
137
+ k_type = Regexp.last_match[:k_type]
138
+ v_type = Regexp.last_match[:v_type]
139
+ {}.tap do |hash|
140
+ value.each do |k, v|
141
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
142
+ end
143
+ end
144
+ else # model
145
+ temp_model = DyspatchClient.const_get(type).new
146
+ temp_model.build_from_hash(value)
147
+ end
148
+ end
149
+
150
+ # Returns the string representation of the object
151
+ # @return [String] String presentation of the object
152
+ def to_s
153
+ to_hash.to_s
154
+ end
155
+
156
+ # to_body is an alias to to_hash (backward compatibility)
157
+ # @return [Hash] Returns the object in the form of hash
158
+ def to_body
159
+ to_hash
160
+ end
161
+
162
+ # Returns the object in the form of hash
163
+ # @return [Hash] Returns the object in the form of hash
164
+ def to_hash
165
+ hash = {}
166
+ self.class.attribute_map.each_pair do |attr, param|
167
+ value = self.send(attr)
168
+ next if value.nil?
169
+ hash[param] = _to_hash(value)
170
+ end
171
+ hash
172
+ end
173
+
174
+ # Outputs non-array value in the form of hash
175
+ # For object, use to_hash. Otherwise, just return the value
176
+ # @param [Object] value Any valid value
177
+ # @return [Hash] Returns the value in the form of hash
178
+ def _to_hash(value)
179
+ if value.is_a?(Array)
180
+ value.compact.map { |v| _to_hash(v) }
181
+ elsif value.is_a?(Hash)
182
+ {}.tap do |hash|
183
+ value.each { |k, v| hash[k] = _to_hash(v) }
184
+ end
185
+ elsif value.respond_to? :to_hash
186
+ value.to_hash
187
+ else
188
+ value
189
+ end
190
+ end
191
+ end
192
+ end
@@ -1,19 +1,18 @@
1
1
  =begin
2
2
  #Dyspatch API
3
3
 
4
- ## Introduction The Dyspatch API is based on the REST paradigm, and features resource based URLs with standard HTTP response codes to indicate errors. We use standard HTTP authentication and request verbs, and all responses are JSON formatted. See our [Implementation Guide](https://docs.dyspatch.io/development/implementing_dyspatch/) for more details on how to implement Dyspatch. ## API Client Libraries Dyspatch provides API Clients for popular languages and web frameworks. - [Java](https://github.com/getdyspatch/dyspatch-java) - [Javascript](https://github.com/getdyspatch/dyspatch-javascript) - [Python](https://github.com/getdyspatch/dyspatch-python) - [C#](https://github.com/getdyspatch/dyspatch-dotnet) - [Go](https://github.com/getdyspatch/dyspatch-golang) - [Ruby](https://github.com/getdyspatch/dyspatch-ruby)
4
+ ## Introduction The Dyspatch API is based on the REST paradigm and features resource based URLs with standard HTTP response codes to indicate errors. We use standard HTTP authentication and request verbs and all responses are JSON formatted. See our [Implementation Guide](https://docs.dyspatch.io/development/implementing_dyspatch/) for more details on how to implement Dyspatch. ## API Client Libraries Dyspatch provides API Clients for the following languages and web frameworks: - [Java](https://github.com/getdyspatch/dyspatch-java) - [Javascript](https://github.com/getdyspatch/dyspatch-javascript) - [Python](https://github.com/getdyspatch/dyspatch-python) - [C#](https://github.com/getdyspatch/dyspatch-dotnet) - [Go](https://github.com/getdyspatch/dyspatch-golang) - [Ruby](https://github.com/getdyspatch/dyspatch-ruby)
5
5
 
6
- OpenAPI spec version: 2019.03
6
+ OpenAPI spec version: 2019.10
7
7
  Contact: support@dyspatch.io
8
8
  Generated by: https://github.com/swagger-api/swagger-codegen.git
9
- Swagger Codegen version: 2.3.1
9
+ Swagger Codegen version: 2.4.9
10
10
 
11
11
  =end
12
12
 
13
13
  require 'date'
14
14
 
15
15
  module DyspatchClient
16
-
17
16
  class LocalizationMetaRead
18
17
  # An opaque, unique identifier for a localization
19
18
  attr_accessor :id
@@ -27,6 +26,8 @@ module DyspatchClient
27
26
  # The API url for a specific localization
28
27
  attr_accessor :url
29
28
 
29
+ # An opaque, unique identifier for a draft
30
+ attr_accessor :draft
30
31
 
31
32
  # Attribute mapping from ruby-style variable name to JSON key.
32
33
  def self.attribute_map
@@ -34,7 +35,8 @@ module DyspatchClient
34
35
  :'id' => :'id',
35
36
  :'language' => :'language',
36
37
  :'name' => :'name',
37
- :'url' => :'url'
38
+ :'url' => :'url',
39
+ :'draft' => :'draft'
38
40
  }
39
41
  end
40
42
 
@@ -44,7 +46,8 @@ module DyspatchClient
44
46
  :'id' => :'String',
45
47
  :'language' => :'String',
46
48
  :'name' => :'String',
47
- :'url' => :'String'
49
+ :'url' => :'String',
50
+ :'draft' => :'String'
48
51
  }
49
52
  end
50
53
 
@@ -54,7 +57,7 @@ module DyspatchClient
54
57
  return unless attributes.is_a?(Hash)
55
58
 
56
59
  # convert string to symbol for hash key
57
- attributes = attributes.each_with_object({}){|(k,v), h| h[k.to_sym] = v}
60
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
58
61
 
59
62
  if attributes.has_key?(:'id')
60
63
  self.id = attributes[:'id']
@@ -72,19 +75,22 @@ module DyspatchClient
72
75
  self.url = attributes[:'url']
73
76
  end
74
77
 
78
+ if attributes.has_key?(:'draft')
79
+ self.draft = attributes[:'draft']
80
+ end
75
81
  end
76
82
 
77
83
  # Show invalid properties with the reasons. Usually used together with valid?
78
84
  # @return Array for valid properties with the reasons
79
85
  def list_invalid_properties
80
86
  invalid_properties = Array.new
81
- return invalid_properties
87
+ invalid_properties
82
88
  end
83
89
 
84
90
  # Check to see if the all the properties in the model are valid
85
91
  # @return true if the model is valid
86
92
  def valid?
87
- return true
93
+ true
88
94
  end
89
95
 
90
96
  # Checks equality by comparing each attribute.
@@ -95,7 +101,8 @@ module DyspatchClient
95
101
  id == o.id &&
96
102
  language == o.language &&
97
103
  name == o.name &&
98
- url == o.url
104
+ url == o.url &&
105
+ draft == o.draft
99
106
  end
100
107
 
101
108
  # @see the `==` method
@@ -107,7 +114,7 @@ module DyspatchClient
107
114
  # Calculates hash code according to all attributes.
108
115
  # @return [Fixnum] Hash code
109
116
  def hash
110
- [id, language, name, url].hash
117
+ [id, language, name, url, draft].hash
111
118
  end
112
119
 
113
120
  # Builds the object from hash
@@ -120,7 +127,7 @@ module DyspatchClient
120
127
  # check to ensure the input is an array given that the the attribute
121
128
  # is documented as an array but the input is not
122
129
  if attributes[self.class.attribute_map[key]].is_a?(Array)
123
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map{ |v| _deserialize($1, v) } )
130
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
124
131
  end
125
132
  elsif !attributes[self.class.attribute_map[key]].nil?
126
133
  self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
@@ -202,7 +209,7 @@ module DyspatchClient
202
209
  # @return [Hash] Returns the value in the form of hash
203
210
  def _to_hash(value)
204
211
  if value.is_a?(Array)
205
- value.compact.map{ |v| _to_hash(v) }
212
+ value.compact.map { |v| _to_hash(v) }
206
213
  elsif value.is_a?(Hash)
207
214
  {}.tap do |hash|
208
215
  value.each { |k, v| hash[k] = _to_hash(v) }
@@ -213,7 +220,5 @@ module DyspatchClient
213
220
  value
214
221
  end
215
222
  end
216
-
217
223
  end
218
-
219
224
  end
@@ -0,0 +1,175 @@
1
+ =begin
2
+ #Dyspatch API
3
+
4
+ ## Introduction The Dyspatch API is based on the REST paradigm and features resource based URLs with standard HTTP response codes to indicate errors. We use standard HTTP authentication and request verbs and all responses are JSON formatted. See our [Implementation Guide](https://docs.dyspatch.io/development/implementing_dyspatch/) for more details on how to implement Dyspatch. ## API Client Libraries Dyspatch provides API Clients for the following languages and web frameworks: - [Java](https://github.com/getdyspatch/dyspatch-java) - [Javascript](https://github.com/getdyspatch/dyspatch-javascript) - [Python](https://github.com/getdyspatch/dyspatch-python) - [C#](https://github.com/getdyspatch/dyspatch-dotnet) - [Go](https://github.com/getdyspatch/dyspatch-golang) - [Ruby](https://github.com/getdyspatch/dyspatch-ruby)
5
+
6
+ OpenAPI spec version: 2019.10
7
+ Contact: support@dyspatch.io
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.9
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module DyspatchClient
16
+ # The user-specified name of a localization
17
+ class LocalizationName
18
+ # Attribute mapping from ruby-style variable name to JSON key.
19
+ def self.attribute_map
20
+ {
21
+ }
22
+ end
23
+
24
+ # Attribute type mapping.
25
+ def self.swagger_types
26
+ {
27
+ }
28
+ end
29
+
30
+ # Initializes the object
31
+ # @param [Hash] attributes Model attributes in the form of hash
32
+ def initialize(attributes = {})
33
+ return unless attributes.is_a?(Hash)
34
+
35
+ # convert string to symbol for hash key
36
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
37
+ end
38
+
39
+ # Show invalid properties with the reasons. Usually used together with valid?
40
+ # @return Array for valid properties with the reasons
41
+ def list_invalid_properties
42
+ invalid_properties = Array.new
43
+ invalid_properties
44
+ end
45
+
46
+ # Check to see if the all the properties in the model are valid
47
+ # @return true if the model is valid
48
+ def valid?
49
+ true
50
+ end
51
+
52
+ # Checks equality by comparing each attribute.
53
+ # @param [Object] Object to be compared
54
+ def ==(o)
55
+ return true if self.equal?(o)
56
+ self.class == o.class
57
+ end
58
+
59
+ # @see the `==` method
60
+ # @param [Object] Object to be compared
61
+ def eql?(o)
62
+ self == o
63
+ end
64
+
65
+ # Calculates hash code according to all attributes.
66
+ # @return [Fixnum] Hash code
67
+ def hash
68
+ [].hash
69
+ end
70
+
71
+ # Builds the object from hash
72
+ # @param [Hash] attributes Model attributes in the form of hash
73
+ # @return [Object] Returns the model itself
74
+ def build_from_hash(attributes)
75
+ return nil unless attributes.is_a?(Hash)
76
+ self.class.swagger_types.each_pair do |key, type|
77
+ if type =~ /\AArray<(.*)>/i
78
+ # check to ensure the input is an array given that the the attribute
79
+ # is documented as an array but the input is not
80
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
81
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
82
+ end
83
+ elsif !attributes[self.class.attribute_map[key]].nil?
84
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
85
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
86
+ end
87
+
88
+ self
89
+ end
90
+
91
+ # Deserializes the data based on type
92
+ # @param string type Data type
93
+ # @param string value Value to be deserialized
94
+ # @return [Object] Deserialized data
95
+ def _deserialize(type, value)
96
+ case type.to_sym
97
+ when :DateTime
98
+ DateTime.parse(value)
99
+ when :Date
100
+ Date.parse(value)
101
+ when :String
102
+ value.to_s
103
+ when :Integer
104
+ value.to_i
105
+ when :Float
106
+ value.to_f
107
+ when :BOOLEAN
108
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
109
+ true
110
+ else
111
+ false
112
+ end
113
+ when :Object
114
+ # generic object (usually a Hash), return directly
115
+ value
116
+ when /\AArray<(?<inner_type>.+)>\z/
117
+ inner_type = Regexp.last_match[:inner_type]
118
+ value.map { |v| _deserialize(inner_type, v) }
119
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
120
+ k_type = Regexp.last_match[:k_type]
121
+ v_type = Regexp.last_match[:v_type]
122
+ {}.tap do |hash|
123
+ value.each do |k, v|
124
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
125
+ end
126
+ end
127
+ else # model
128
+ temp_model = DyspatchClient.const_get(type).new
129
+ temp_model.build_from_hash(value)
130
+ end
131
+ end
132
+
133
+ # Returns the string representation of the object
134
+ # @return [String] String presentation of the object
135
+ def to_s
136
+ to_hash.to_s
137
+ end
138
+
139
+ # to_body is an alias to to_hash (backward compatibility)
140
+ # @return [Hash] Returns the object in the form of hash
141
+ def to_body
142
+ to_hash
143
+ end
144
+
145
+ # Returns the object in the form of hash
146
+ # @return [Hash] Returns the object in the form of hash
147
+ def to_hash
148
+ hash = {}
149
+ self.class.attribute_map.each_pair do |attr, param|
150
+ value = self.send(attr)
151
+ next if value.nil?
152
+ hash[param] = _to_hash(value)
153
+ end
154
+ hash
155
+ end
156
+
157
+ # Outputs non-array value in the form of hash
158
+ # For object, use to_hash. Otherwise, just return the value
159
+ # @param [Object] value Any valid value
160
+ # @return [Hash] Returns the value in the form of hash
161
+ def _to_hash(value)
162
+ if value.is_a?(Array)
163
+ value.compact.map { |v| _to_hash(v) }
164
+ elsif value.is_a?(Hash)
165
+ {}.tap do |hash|
166
+ value.each { |k, v| hash[k] = _to_hash(v) }
167
+ end
168
+ elsif value.respond_to? :to_hash
169
+ value.to_hash
170
+ else
171
+ value
172
+ end
173
+ end
174
+ end
175
+ end