pulp_maven_client 0.5.0 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -5
  3. data/docs/ContentArtifactApi.md +9 -3
  4. data/docs/DistributionsMavenApi.md +130 -4
  5. data/docs/MavenMavenArtifact.md +3 -1
  6. data/docs/MavenMavenDistribution.md +2 -0
  7. data/docs/MavenMavenDistributionResponse.md +2 -0
  8. data/docs/MavenMavenRemote.md +1 -1
  9. data/docs/MavenMavenRemoteResponse.md +1 -1
  10. data/docs/PatchedmavenMavenDistribution.md +2 -0
  11. data/docs/PatchedmavenMavenRemote.md +1 -1
  12. data/docs/PulpMavenApi.md +1 -1
  13. data/docs/RemotesMavenApi.md +129 -3
  14. data/docs/RepositoriesMavenApi.md +134 -4
  15. data/docs/RepositoriesMavenVersionsApi.md +7 -3
  16. data/docs/SetLabel.md +19 -0
  17. data/docs/SetLabelResponse.md +19 -0
  18. data/docs/UnsetLabel.md +17 -0
  19. data/docs/UnsetLabelResponse.md +19 -0
  20. data/lib/pulp_maven_client/api/content_artifact_api.rb +11 -2
  21. data/lib/pulp_maven_client/api/distributions_maven_api.rb +164 -3
  22. data/lib/pulp_maven_client/api/remotes_maven_api.rb +163 -2
  23. data/lib/pulp_maven_client/api/repositories_maven_api.rb +169 -2
  24. data/lib/pulp_maven_client/api/repositories_maven_versions_api.rb +8 -2
  25. data/lib/pulp_maven_client/configuration.rb +2 -2
  26. data/lib/pulp_maven_client/models/maven_maven_artifact.rb +11 -1
  27. data/lib/pulp_maven_client/models/maven_maven_distribution.rb +13 -1
  28. data/lib/pulp_maven_client/models/maven_maven_distribution_response.rb +13 -1
  29. data/lib/pulp_maven_client/models/maven_maven_remote.rb +1 -1
  30. data/lib/pulp_maven_client/models/maven_maven_remote_response.rb +1 -1
  31. data/lib/pulp_maven_client/models/patchedmaven_maven_distribution.rb +13 -1
  32. data/lib/pulp_maven_client/models/patchedmaven_maven_remote.rb +1 -1
  33. data/lib/pulp_maven_client/models/set_label.rb +252 -0
  34. data/lib/pulp_maven_client/models/set_label_response.rb +243 -0
  35. data/lib/pulp_maven_client/models/unset_label.rb +242 -0
  36. data/lib/pulp_maven_client/models/unset_label_response.rb +242 -0
  37. data/lib/pulp_maven_client/version.rb +1 -1
  38. data/lib/pulp_maven_client.rb +4 -0
  39. data/spec/api/content_artifact_api_spec.rb +4 -1
  40. data/spec/api/distributions_maven_api_spec.rb +34 -1
  41. data/spec/api/remotes_maven_api_spec.rb +34 -1
  42. data/spec/api/repositories_maven_api_spec.rb +36 -1
  43. data/spec/api/repositories_maven_versions_api_spec.rb +3 -1
  44. data/spec/configuration_spec.rb +3 -3
  45. data/spec/models/maven_maven_artifact_spec.rb +6 -0
  46. data/spec/models/maven_maven_distribution_response_spec.rb +6 -0
  47. data/spec/models/maven_maven_distribution_spec.rb +6 -0
  48. data/spec/models/patchedmaven_maven_distribution_spec.rb +6 -0
  49. data/spec/models/set_label_response_spec.rb +47 -0
  50. data/spec/models/set_label_spec.rb +47 -0
  51. data/spec/models/unset_label_response_spec.rb +47 -0
  52. data/spec/models/unset_label_spec.rb +41 -0
  53. metadata +37 -21
@@ -29,6 +29,9 @@ module PulpMavenClient
29
29
  # An optional content-guard.
30
30
  attr_accessor :content_guard
31
31
 
32
+ # Whether this distribution should be shown in the content app.
33
+ attr_accessor :hidden
34
+
32
35
  attr_accessor :pulp_labels
33
36
 
34
37
  # A unique name. Ex, `rawhide` and `stable`.
@@ -48,6 +51,7 @@ module PulpMavenClient
48
51
  :'base_path' => :'base_path',
49
52
  :'base_url' => :'base_url',
50
53
  :'content_guard' => :'content_guard',
54
+ :'hidden' => :'hidden',
51
55
  :'pulp_labels' => :'pulp_labels',
52
56
  :'name' => :'name',
53
57
  :'repository' => :'repository',
@@ -63,6 +67,7 @@ module PulpMavenClient
63
67
  :'base_path' => :'String',
64
68
  :'base_url' => :'String',
65
69
  :'content_guard' => :'String',
70
+ :'hidden' => :'Boolean',
66
71
  :'pulp_labels' => :'Hash<String, String>',
67
72
  :'name' => :'String',
68
73
  :'repository' => :'String',
@@ -114,6 +119,12 @@ module PulpMavenClient
114
119
  self.content_guard = attributes[:'content_guard']
115
120
  end
116
121
 
122
+ if attributes.key?(:'hidden')
123
+ self.hidden = attributes[:'hidden']
124
+ else
125
+ self.hidden = false
126
+ end
127
+
117
128
  if attributes.key?(:'pulp_labels')
118
129
  if (value = attributes[:'pulp_labels']).is_a?(Hash)
119
130
  self.pulp_labels = value
@@ -166,6 +177,7 @@ module PulpMavenClient
166
177
  base_path == o.base_path &&
167
178
  base_url == o.base_url &&
168
179
  content_guard == o.content_guard &&
180
+ hidden == o.hidden &&
169
181
  pulp_labels == o.pulp_labels &&
170
182
  name == o.name &&
171
183
  repository == o.repository &&
@@ -181,7 +193,7 @@ module PulpMavenClient
181
193
  # Calculates hash code according to all attributes.
182
194
  # @return [Integer] Hash code
183
195
  def hash
184
- [pulp_href, pulp_created, base_path, base_url, content_guard, pulp_labels, name, repository, remote].hash
196
+ [pulp_href, pulp_created, base_path, base_url, content_guard, hidden, pulp_labels, name, repository, remote].hash
185
197
  end
186
198
 
187
199
  # Builds the object from hash
@@ -56,7 +56,7 @@ module PulpMavenClient
56
56
  # Maximum number of retry attempts after a download failure. If not set then the default value (3) will be used.
57
57
  attr_accessor :max_retries
58
58
 
59
- # The policy to use when downloading content.
59
+ # The policy to use when downloading content. * `immediate` - immediate * `When syncing, download all metadata and content now.` - When syncing, download all metadata and content now.
60
60
  attr_accessor :policy
61
61
 
62
62
  # aiohttp.ClientTimeout.total (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
@@ -49,7 +49,7 @@ module PulpMavenClient
49
49
  # Maximum number of retry attempts after a download failure. If not set then the default value (3) will be used.
50
50
  attr_accessor :max_retries
51
51
 
52
- # The policy to use when downloading content.
52
+ # The policy to use when downloading content. * `immediate` - immediate * `When syncing, download all metadata and content now.` - When syncing, download all metadata and content now.
53
53
  attr_accessor :policy
54
54
 
55
55
  # aiohttp.ClientTimeout.total (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
@@ -21,6 +21,9 @@ module PulpMavenClient
21
21
  # An optional content-guard.
22
22
  attr_accessor :content_guard
23
23
 
24
+ # Whether this distribution should be shown in the content app.
25
+ attr_accessor :hidden
26
+
24
27
  attr_accessor :pulp_labels
25
28
 
26
29
  # A unique name. Ex, `rawhide` and `stable`.
@@ -37,6 +40,7 @@ module PulpMavenClient
37
40
  {
38
41
  :'base_path' => :'base_path',
39
42
  :'content_guard' => :'content_guard',
43
+ :'hidden' => :'hidden',
40
44
  :'pulp_labels' => :'pulp_labels',
41
45
  :'name' => :'name',
42
46
  :'repository' => :'repository',
@@ -49,6 +53,7 @@ module PulpMavenClient
49
53
  {
50
54
  :'base_path' => :'String',
51
55
  :'content_guard' => :'String',
56
+ :'hidden' => :'Boolean',
52
57
  :'pulp_labels' => :'Hash<String, String>',
53
58
  :'name' => :'String',
54
59
  :'repository' => :'String',
@@ -88,6 +93,12 @@ module PulpMavenClient
88
93
  self.content_guard = attributes[:'content_guard']
89
94
  end
90
95
 
96
+ if attributes.key?(:'hidden')
97
+ self.hidden = attributes[:'hidden']
98
+ else
99
+ self.hidden = false
100
+ end
101
+
91
102
  if attributes.key?(:'pulp_labels')
92
103
  if (value = attributes[:'pulp_labels']).is_a?(Hash)
93
104
  self.pulp_labels = value
@@ -157,6 +168,7 @@ module PulpMavenClient
157
168
  self.class == o.class &&
158
169
  base_path == o.base_path &&
159
170
  content_guard == o.content_guard &&
171
+ hidden == o.hidden &&
160
172
  pulp_labels == o.pulp_labels &&
161
173
  name == o.name &&
162
174
  repository == o.repository &&
@@ -172,7 +184,7 @@ module PulpMavenClient
172
184
  # Calculates hash code according to all attributes.
173
185
  # @return [Integer] Hash code
174
186
  def hash
175
- [base_path, content_guard, pulp_labels, name, repository, remote].hash
187
+ [base_path, content_guard, hidden, pulp_labels, name, repository, remote].hash
176
188
  end
177
189
 
178
190
  # Builds the object from hash
@@ -56,7 +56,7 @@ module PulpMavenClient
56
56
  # Maximum number of retry attempts after a download failure. If not set then the default value (3) will be used.
57
57
  attr_accessor :max_retries
58
58
 
59
- # The policy to use when downloading content.
59
+ # The policy to use when downloading content. * `immediate` - immediate * `When syncing, download all metadata and content now.` - When syncing, download all metadata and content now.
60
60
  attr_accessor :policy
61
61
 
62
62
  # aiohttp.ClientTimeout.total (q.v.) for download-connections. The default is null, which will cause the default from the aiohttp library to be used.
@@ -0,0 +1,252 @@
1
+ =begin
2
+ #Pulp 3 API
3
+
4
+ #Fetch, Upload, Organize, and Distribute Software Packages
5
+
6
+ The version of the OpenAPI document: v3
7
+ Contact: pulp-list@redhat.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module PulpMavenClient
16
+ # Serializer for synchronously setting a label.
17
+ class SetLabel
18
+ attr_accessor :key
19
+
20
+ attr_accessor :value
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'key' => :'key',
26
+ :'value' => :'value'
27
+ }
28
+ end
29
+
30
+ # Attribute type mapping.
31
+ def self.openapi_types
32
+ {
33
+ :'key' => :'String',
34
+ :'value' => :'String'
35
+ }
36
+ end
37
+
38
+ # List of attributes with nullable: true
39
+ def self.openapi_nullable
40
+ Set.new([
41
+ :'value'
42
+ ])
43
+ end
44
+
45
+ # Initializes the object
46
+ # @param [Hash] attributes Model attributes in the form of hash
47
+ def initialize(attributes = {})
48
+ if (!attributes.is_a?(Hash))
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PulpMavenClient::SetLabel` initialize method"
50
+ end
51
+
52
+ # check to see if the attribute exists and convert string to symbol for hash key
53
+ attributes = attributes.each_with_object({}) { |(k, v), h|
54
+ if (!self.class.attribute_map.key?(k.to_sym))
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PulpMavenClient::SetLabel`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
+ end
57
+ h[k.to_sym] = v
58
+ }
59
+
60
+ if attributes.key?(:'key')
61
+ self.key = attributes[:'key']
62
+ end
63
+
64
+ if attributes.key?(:'value')
65
+ self.value = attributes[:'value']
66
+ end
67
+ end
68
+
69
+ # Show invalid properties with the reasons. Usually used together with valid?
70
+ # @return Array for valid properties with the reasons
71
+ def list_invalid_properties
72
+ invalid_properties = Array.new
73
+ if @key.nil?
74
+ invalid_properties.push('invalid value for "key", key cannot be nil.')
75
+ end
76
+
77
+ if @key.to_s.length < 1
78
+ invalid_properties.push('invalid value for "key", the character length must be great than or equal to 1.')
79
+ end
80
+
81
+ pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
82
+ if @key !~ pattern
83
+ invalid_properties.push("invalid value for \"key\", must conform to the pattern #{pattern}.")
84
+ end
85
+
86
+ invalid_properties
87
+ end
88
+
89
+ # Check to see if the all the properties in the model are valid
90
+ # @return true if the model is valid
91
+ def valid?
92
+ return false if @key.nil?
93
+ return false if @key.to_s.length < 1
94
+ return false if @key !~ Regexp.new(/^[-a-zA-Z0-9_]+$/)
95
+ true
96
+ end
97
+
98
+ # Custom attribute writer method with validation
99
+ # @param [Object] key Value to be assigned
100
+ def key=(key)
101
+ if key.nil?
102
+ fail ArgumentError, 'key cannot be nil'
103
+ end
104
+
105
+ if key.to_s.length < 1
106
+ fail ArgumentError, 'invalid value for "key", the character length must be great than or equal to 1.'
107
+ end
108
+
109
+ pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
110
+ if key !~ pattern
111
+ fail ArgumentError, "invalid value for \"key\", must conform to the pattern #{pattern}."
112
+ end
113
+
114
+ @key = key
115
+ end
116
+
117
+ # Checks equality by comparing each attribute.
118
+ # @param [Object] Object to be compared
119
+ def ==(o)
120
+ return true if self.equal?(o)
121
+ self.class == o.class &&
122
+ key == o.key &&
123
+ value == o.value
124
+ end
125
+
126
+ # @see the `==` method
127
+ # @param [Object] Object to be compared
128
+ def eql?(o)
129
+ self == o
130
+ end
131
+
132
+ # Calculates hash code according to all attributes.
133
+ # @return [Integer] Hash code
134
+ def hash
135
+ [key, value].hash
136
+ end
137
+
138
+ # Builds the object from hash
139
+ # @param [Hash] attributes Model attributes in the form of hash
140
+ # @return [Object] Returns the model itself
141
+ def self.build_from_hash(attributes)
142
+ new.build_from_hash(attributes)
143
+ end
144
+
145
+ # Builds the object from hash
146
+ # @param [Hash] attributes Model attributes in the form of hash
147
+ # @return [Object] Returns the model itself
148
+ def build_from_hash(attributes)
149
+ return nil unless attributes.is_a?(Hash)
150
+ self.class.openapi_types.each_pair do |key, type|
151
+ if type =~ /\AArray<(.*)>/i
152
+ # check to ensure the input is an array given that the attribute
153
+ # is documented as an array but the input is not
154
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
155
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
156
+ end
157
+ elsif !attributes[self.class.attribute_map[key]].nil?
158
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
159
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
160
+ end
161
+
162
+ self
163
+ end
164
+
165
+ # Deserializes the data based on type
166
+ # @param string type Data type
167
+ # @param string value Value to be deserialized
168
+ # @return [Object] Deserialized data
169
+ def _deserialize(type, value)
170
+ case type.to_sym
171
+ when :DateTime
172
+ DateTime.parse(value)
173
+ when :Date
174
+ Date.parse(value)
175
+ when :String
176
+ value.to_s
177
+ when :Integer
178
+ value.to_i
179
+ when :Float
180
+ value.to_f
181
+ when :Boolean
182
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
183
+ true
184
+ else
185
+ false
186
+ end
187
+ when :Object
188
+ # generic object (usually a Hash), return directly
189
+ value
190
+ when /\AArray<(?<inner_type>.+)>\z/
191
+ inner_type = Regexp.last_match[:inner_type]
192
+ value.map { |v| _deserialize(inner_type, v) }
193
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
194
+ k_type = Regexp.last_match[:k_type]
195
+ v_type = Regexp.last_match[:v_type]
196
+ {}.tap do |hash|
197
+ value.each do |k, v|
198
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
199
+ end
200
+ end
201
+ else # model
202
+ PulpMavenClient.const_get(type).build_from_hash(value)
203
+ end
204
+ end
205
+
206
+ # Returns the string representation of the object
207
+ # @return [String] String presentation of the object
208
+ def to_s
209
+ to_hash.to_s
210
+ end
211
+
212
+ # to_body is an alias to to_hash (backward compatibility)
213
+ # @return [Hash] Returns the object in the form of hash
214
+ def to_body
215
+ to_hash
216
+ end
217
+
218
+ # Returns the object in the form of hash
219
+ # @return [Hash] Returns the object in the form of hash
220
+ def to_hash
221
+ hash = {}
222
+ self.class.attribute_map.each_pair do |attr, param|
223
+ value = self.send(attr)
224
+ if value.nil?
225
+ is_nullable = self.class.openapi_nullable.include?(attr)
226
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
227
+ end
228
+
229
+ hash[param] = _to_hash(value)
230
+ end
231
+ hash
232
+ end
233
+
234
+ # Outputs non-array value in the form of hash
235
+ # For object, use to_hash. Otherwise, just return the value
236
+ # @param [Object] value Any valid value
237
+ # @return [Hash] Returns the value in the form of hash
238
+ def _to_hash(value)
239
+ if value.is_a?(Array)
240
+ value.compact.map { |v| _to_hash(v) }
241
+ elsif value.is_a?(Hash)
242
+ {}.tap do |hash|
243
+ value.each { |k, v| hash[k] = _to_hash(v) }
244
+ end
245
+ elsif value.respond_to? :to_hash
246
+ value.to_hash
247
+ else
248
+ value
249
+ end
250
+ end
251
+ end
252
+ end
@@ -0,0 +1,243 @@
1
+ =begin
2
+ #Pulp 3 API
3
+
4
+ #Fetch, Upload, Organize, and Distribute Software Packages
5
+
6
+ The version of the OpenAPI document: v3
7
+ Contact: pulp-list@redhat.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.3.1
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module PulpMavenClient
16
+ # Serializer for synchronously setting a label.
17
+ class SetLabelResponse
18
+ attr_accessor :key
19
+
20
+ attr_accessor :value
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'key' => :'key',
26
+ :'value' => :'value'
27
+ }
28
+ end
29
+
30
+ # Attribute type mapping.
31
+ def self.openapi_types
32
+ {
33
+ :'key' => :'String',
34
+ :'value' => :'String'
35
+ }
36
+ end
37
+
38
+ # List of attributes with nullable: true
39
+ def self.openapi_nullable
40
+ Set.new([
41
+ :'value'
42
+ ])
43
+ end
44
+
45
+ # Initializes the object
46
+ # @param [Hash] attributes Model attributes in the form of hash
47
+ def initialize(attributes = {})
48
+ if (!attributes.is_a?(Hash))
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PulpMavenClient::SetLabelResponse` initialize method"
50
+ end
51
+
52
+ # check to see if the attribute exists and convert string to symbol for hash key
53
+ attributes = attributes.each_with_object({}) { |(k, v), h|
54
+ if (!self.class.attribute_map.key?(k.to_sym))
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PulpMavenClient::SetLabelResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
+ end
57
+ h[k.to_sym] = v
58
+ }
59
+
60
+ if attributes.key?(:'key')
61
+ self.key = attributes[:'key']
62
+ end
63
+
64
+ if attributes.key?(:'value')
65
+ self.value = attributes[:'value']
66
+ end
67
+ end
68
+
69
+ # Show invalid properties with the reasons. Usually used together with valid?
70
+ # @return Array for valid properties with the reasons
71
+ def list_invalid_properties
72
+ invalid_properties = Array.new
73
+ if @key.nil?
74
+ invalid_properties.push('invalid value for "key", key cannot be nil.')
75
+ end
76
+
77
+ pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
78
+ if @key !~ pattern
79
+ invalid_properties.push("invalid value for \"key\", must conform to the pattern #{pattern}.")
80
+ end
81
+
82
+ invalid_properties
83
+ end
84
+
85
+ # Check to see if the all the properties in the model are valid
86
+ # @return true if the model is valid
87
+ def valid?
88
+ return false if @key.nil?
89
+ return false if @key !~ Regexp.new(/^[-a-zA-Z0-9_]+$/)
90
+ true
91
+ end
92
+
93
+ # Custom attribute writer method with validation
94
+ # @param [Object] key Value to be assigned
95
+ def key=(key)
96
+ if key.nil?
97
+ fail ArgumentError, 'key cannot be nil'
98
+ end
99
+
100
+ pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
101
+ if key !~ pattern
102
+ fail ArgumentError, "invalid value for \"key\", must conform to the pattern #{pattern}."
103
+ end
104
+
105
+ @key = key
106
+ end
107
+
108
+ # Checks equality by comparing each attribute.
109
+ # @param [Object] Object to be compared
110
+ def ==(o)
111
+ return true if self.equal?(o)
112
+ self.class == o.class &&
113
+ key == o.key &&
114
+ value == o.value
115
+ end
116
+
117
+ # @see the `==` method
118
+ # @param [Object] Object to be compared
119
+ def eql?(o)
120
+ self == o
121
+ end
122
+
123
+ # Calculates hash code according to all attributes.
124
+ # @return [Integer] Hash code
125
+ def hash
126
+ [key, value].hash
127
+ end
128
+
129
+ # Builds the object from hash
130
+ # @param [Hash] attributes Model attributes in the form of hash
131
+ # @return [Object] Returns the model itself
132
+ def self.build_from_hash(attributes)
133
+ new.build_from_hash(attributes)
134
+ end
135
+
136
+ # Builds the object from hash
137
+ # @param [Hash] attributes Model attributes in the form of hash
138
+ # @return [Object] Returns the model itself
139
+ def build_from_hash(attributes)
140
+ return nil unless attributes.is_a?(Hash)
141
+ self.class.openapi_types.each_pair do |key, type|
142
+ if type =~ /\AArray<(.*)>/i
143
+ # check to ensure the input is an array given that the attribute
144
+ # is documented as an array but the input is not
145
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
146
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
147
+ end
148
+ elsif !attributes[self.class.attribute_map[key]].nil?
149
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
150
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
151
+ end
152
+
153
+ self
154
+ end
155
+
156
+ # Deserializes the data based on type
157
+ # @param string type Data type
158
+ # @param string value Value to be deserialized
159
+ # @return [Object] Deserialized data
160
+ def _deserialize(type, value)
161
+ case type.to_sym
162
+ when :DateTime
163
+ DateTime.parse(value)
164
+ when :Date
165
+ Date.parse(value)
166
+ when :String
167
+ value.to_s
168
+ when :Integer
169
+ value.to_i
170
+ when :Float
171
+ value.to_f
172
+ when :Boolean
173
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
174
+ true
175
+ else
176
+ false
177
+ end
178
+ when :Object
179
+ # generic object (usually a Hash), return directly
180
+ value
181
+ when /\AArray<(?<inner_type>.+)>\z/
182
+ inner_type = Regexp.last_match[:inner_type]
183
+ value.map { |v| _deserialize(inner_type, v) }
184
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
185
+ k_type = Regexp.last_match[:k_type]
186
+ v_type = Regexp.last_match[:v_type]
187
+ {}.tap do |hash|
188
+ value.each do |k, v|
189
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
190
+ end
191
+ end
192
+ else # model
193
+ PulpMavenClient.const_get(type).build_from_hash(value)
194
+ end
195
+ end
196
+
197
+ # Returns the string representation of the object
198
+ # @return [String] String presentation of the object
199
+ def to_s
200
+ to_hash.to_s
201
+ end
202
+
203
+ # to_body is an alias to to_hash (backward compatibility)
204
+ # @return [Hash] Returns the object in the form of hash
205
+ def to_body
206
+ to_hash
207
+ end
208
+
209
+ # Returns the object in the form of hash
210
+ # @return [Hash] Returns 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
+ if value.nil?
216
+ is_nullable = self.class.openapi_nullable.include?(attr)
217
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
218
+ end
219
+
220
+ hash[param] = _to_hash(value)
221
+ end
222
+ hash
223
+ end
224
+
225
+ # Outputs non-array value in the form of hash
226
+ # For object, use to_hash. Otherwise, just return the value
227
+ # @param [Object] value Any valid value
228
+ # @return [Hash] Returns the value in the form of hash
229
+ def _to_hash(value)
230
+ if value.is_a?(Array)
231
+ value.compact.map { |v| _to_hash(v) }
232
+ elsif value.is_a?(Hash)
233
+ {}.tap do |hash|
234
+ value.each { |k, v| hash[k] = _to_hash(v) }
235
+ end
236
+ elsif value.respond_to? :to_hash
237
+ value.to_hash
238
+ else
239
+ value
240
+ end
241
+ end
242
+ end
243
+ end