pulpcore_client 3.0.0rc2 → 3.0.0rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/README.md +43 -37
  4. data/docs/ArtifactsApi.md +20 -20
  5. data/docs/ContentAppStatus.md +19 -0
  6. data/docs/DatabaseConnection.md +17 -0
  7. data/docs/OrphansApi.md +5 -5
  8. data/docs/ProgressReport.md +1 -3
  9. data/docs/RedisConnection.md +17 -0
  10. data/docs/RepositoriesApi.md +30 -278
  11. data/docs/RepositoriesVersionsApi.md +256 -0
  12. data/docs/RepositoryVersionCreate.md +2 -2
  13. data/docs/Status.md +27 -0
  14. data/docs/StatusApi.md +8 -7
  15. data/docs/TaskCancel.md +17 -0
  16. data/docs/TasksApi.md +71 -71
  17. data/docs/Upload.md +6 -8
  18. data/docs/UploadCommit.md +17 -0
  19. data/docs/UploadsApi.md +66 -106
  20. data/docs/Version.md +19 -0
  21. data/docs/WorkersApi.md +10 -10
  22. data/lib/pulpcore_client/api/artifacts_api.rb +47 -23
  23. data/lib/pulpcore_client/api/orphans_api.rb +6 -6
  24. data/lib/pulpcore_client/api/repositories_api.rb +38 -338
  25. data/lib/pulpcore_client/api/repositories_versions_api.rb +322 -0
  26. data/lib/pulpcore_client/api/status_api.rb +12 -10
  27. data/lib/pulpcore_client/api/tasks_api.rb +88 -88
  28. data/lib/pulpcore_client/api/uploads_api.rb +105 -154
  29. data/lib/pulpcore_client/api/workers_api.rb +12 -12
  30. data/lib/pulpcore_client/api_client.rb +1 -1
  31. data/lib/pulpcore_client/api_error.rb +1 -1
  32. data/lib/pulpcore_client/configuration.rb +1 -1
  33. data/lib/pulpcore_client/models/artifact.rb +91 -1
  34. data/lib/pulpcore_client/models/async_operation_response.rb +1 -1
  35. data/lib/pulpcore_client/models/content_app_status.rb +223 -0
  36. data/lib/pulpcore_client/models/database_connection.rb +203 -0
  37. data/lib/pulpcore_client/models/inline_response200.rb +1 -1
  38. data/lib/pulpcore_client/models/inline_response2001.rb +1 -1
  39. data/lib/pulpcore_client/models/inline_response2002.rb +1 -1
  40. data/lib/pulpcore_client/models/inline_response2003.rb +1 -1
  41. data/lib/pulpcore_client/models/inline_response2004.rb +1 -1
  42. data/lib/pulpcore_client/models/inline_response2005.rb +1 -1
  43. data/lib/pulpcore_client/models/progress_report.rb +20 -15
  44. data/lib/pulpcore_client/models/redis_connection.rb +203 -0
  45. data/lib/pulpcore_client/models/repository.rb +16 -1
  46. data/lib/pulpcore_client/models/repository_version.rb +1 -1
  47. data/lib/pulpcore_client/models/repository_version_create.rb +3 -13
  48. data/lib/pulpcore_client/models/status.rb +283 -0
  49. data/lib/pulpcore_client/models/task.rb +1 -1
  50. data/lib/pulpcore_client/models/task_cancel.rb +221 -0
  51. data/lib/pulpcore_client/models/upload.rb +26 -52
  52. data/lib/pulpcore_client/models/upload_commit.rb +221 -0
  53. data/lib/pulpcore_client/models/version.rb +256 -0
  54. data/lib/pulpcore_client/models/worker.rb +2 -1
  55. data/lib/pulpcore_client/version.rb +2 -2
  56. data/lib/pulpcore_client.rb +9 -1
  57. data/pulpcore_client.gemspec +1 -1
  58. data/spec/api/artifacts_api_spec.rb +9 -9
  59. data/spec/api/orphans_api_spec.rb +3 -3
  60. data/spec/api/repositories_api_spec.rb +13 -76
  61. data/spec/api/repositories_versions_api_spec.rb +98 -0
  62. data/spec/api/status_api_spec.rb +4 -4
  63. data/spec/api/tasks_api_spec.rb +20 -20
  64. data/spec/api/uploads_api_spec.rb +32 -37
  65. data/spec/api/workers_api_spec.rb +5 -5
  66. data/spec/api_client_spec.rb +1 -1
  67. data/spec/configuration_spec.rb +1 -1
  68. data/spec/models/artifact_spec.rb +1 -1
  69. data/spec/models/async_operation_response_spec.rb +1 -1
  70. data/spec/models/content_app_status_spec.rb +47 -0
  71. data/spec/models/database_connection_spec.rb +41 -0
  72. data/spec/models/inline_response2001_spec.rb +1 -1
  73. data/spec/models/inline_response2002_spec.rb +1 -1
  74. data/spec/models/inline_response2003_spec.rb +1 -1
  75. data/spec/models/inline_response2004_spec.rb +1 -1
  76. data/spec/models/inline_response2005_spec.rb +1 -1
  77. data/spec/models/inline_response200_spec.rb +1 -1
  78. data/spec/models/progress_report_spec.rb +1 -7
  79. data/spec/models/redis_connection_spec.rb +41 -0
  80. data/spec/models/repository_spec.rb +1 -1
  81. data/spec/models/repository_version_create_spec.rb +1 -1
  82. data/spec/models/repository_version_spec.rb +1 -1
  83. data/spec/models/status_spec.rb +71 -0
  84. data/spec/models/task_cancel_spec.rb +41 -0
  85. data/spec/models/task_spec.rb +1 -1
  86. data/spec/models/upload_commit_spec.rb +41 -0
  87. data/spec/models/upload_spec.rb +4 -10
  88. data/spec/models/version_spec.rb +47 -0
  89. data/spec/models/worker_spec.rb +1 -1
  90. data/spec/spec_helper.rb +1 -1
  91. metadata +34 -2
@@ -0,0 +1,221 @@
1
+ =begin
2
+ #Pulp 3 API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.0.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module PulpcoreClient
16
+ class TaskCancel
17
+ # The desired state of the task. Only 'canceled' is accepted.
18
+ attr_accessor :state
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'state' => :'state'
24
+ }
25
+ end
26
+
27
+ # Attribute type mapping.
28
+ def self.openapi_types
29
+ {
30
+ :'state' => :'String'
31
+ }
32
+ end
33
+
34
+ # Initializes the object
35
+ # @param [Hash] attributes Model attributes in the form of hash
36
+ def initialize(attributes = {})
37
+ if (!attributes.is_a?(Hash))
38
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PulpcoreClient::TaskCancel` initialize method"
39
+ end
40
+
41
+ # check to see if the attribute exists and convert string to symbol for hash key
42
+ attributes = attributes.each_with_object({}) { |(k, v), h|
43
+ if (!self.class.attribute_map.key?(k.to_sym))
44
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PulpcoreClient::TaskCancel`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
45
+ end
46
+ h[k.to_sym] = v
47
+ }
48
+
49
+ if attributes.key?(:'state')
50
+ self.state = attributes[:'state']
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
+ if @state.nil?
59
+ invalid_properties.push('invalid value for "state", state cannot be nil.')
60
+ end
61
+
62
+ if @state.to_s.length < 1
63
+ invalid_properties.push('invalid value for "state", the character length must be great than or equal to 1.')
64
+ end
65
+
66
+ invalid_properties
67
+ end
68
+
69
+ # Check to see if the all the properties in the model are valid
70
+ # @return true if the model is valid
71
+ def valid?
72
+ return false if @state.nil?
73
+ return false if @state.to_s.length < 1
74
+ true
75
+ end
76
+
77
+ # Custom attribute writer method with validation
78
+ # @param [Object] state Value to be assigned
79
+ def state=(state)
80
+ if state.nil?
81
+ fail ArgumentError, 'state cannot be nil'
82
+ end
83
+
84
+ if state.to_s.length < 1
85
+ fail ArgumentError, 'invalid value for "state", the character length must be great than or equal to 1.'
86
+ end
87
+
88
+ @state = state
89
+ end
90
+
91
+ # Checks equality by comparing each attribute.
92
+ # @param [Object] Object to be compared
93
+ def ==(o)
94
+ return true if self.equal?(o)
95
+ self.class == o.class &&
96
+ state == o.state
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [state].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ self.class.openapi_types.each_pair do |key, type|
124
+ if type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
133
+ end
134
+
135
+ self
136
+ end
137
+
138
+ # Deserializes the data based on type
139
+ # @param string type Data type
140
+ # @param string value Value to be deserialized
141
+ # @return [Object] Deserialized data
142
+ def _deserialize(type, value)
143
+ case type.to_sym
144
+ when :DateTime
145
+ DateTime.parse(value)
146
+ when :Date
147
+ Date.parse(value)
148
+ when :String
149
+ value.to_s
150
+ when :Integer
151
+ value.to_i
152
+ when :Float
153
+ value.to_f
154
+ when :Boolean
155
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
156
+ true
157
+ else
158
+ false
159
+ end
160
+ when :Object
161
+ # generic object (usually a Hash), return directly
162
+ value
163
+ when /\AArray<(?<inner_type>.+)>\z/
164
+ inner_type = Regexp.last_match[:inner_type]
165
+ value.map { |v| _deserialize(inner_type, v) }
166
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
167
+ k_type = Regexp.last_match[:k_type]
168
+ v_type = Regexp.last_match[:v_type]
169
+ {}.tap do |hash|
170
+ value.each do |k, v|
171
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
172
+ end
173
+ end
174
+ else # model
175
+ PulpcoreClient.const_get(type).build_from_hash(value)
176
+ end
177
+ end
178
+
179
+ # Returns the string representation of the object
180
+ # @return [String] String presentation of the object
181
+ def to_s
182
+ to_hash.to_s
183
+ end
184
+
185
+ # to_body is an alias to to_hash (backward compatibility)
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_body
188
+ to_hash
189
+ end
190
+
191
+ # Returns the object in the form of hash
192
+ # @return [Hash] Returns the object in the form of hash
193
+ def to_hash
194
+ hash = {}
195
+ self.class.attribute_map.each_pair do |attr, param|
196
+ value = self.send(attr)
197
+ next if value.nil?
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ # Outputs non-array value in the form of hash
204
+ # For object, use to_hash. Otherwise, just return the value
205
+ # @param [Object] value Any valid value
206
+ # @return [Hash] Returns the value in the form of hash
207
+ def _to_hash(value)
208
+ if value.is_a?(Array)
209
+ value.compact.map { |v| _to_hash(v) }
210
+ elsif value.is_a?(Hash)
211
+ {}.tap do |hash|
212
+ value.each { |k, v| hash[k] = _to_hash(v) }
213
+ end
214
+ elsif value.respond_to? :to_hash
215
+ value.to_hash
216
+ else
217
+ value
218
+ end
219
+ end
220
+ end
221
+ end
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: v3
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.0.1-SNAPSHOT
9
+ OpenAPI Generator version: 4.0.0
10
10
 
11
11
  =end
12
12
 
@@ -16,23 +16,22 @@ module PulpcoreClient
16
16
  class Upload
17
17
  attr_accessor :_href
18
18
 
19
- attr_accessor :offset
19
+ # Timestamp of creation.
20
+ attr_accessor :_created
20
21
 
21
- attr_accessor :expires_at
22
+ # The size of the upload in bytes.
23
+ attr_accessor :size
22
24
 
23
- # Uploaded file.
24
- attr_accessor :file
25
-
26
- attr_accessor :md5
25
+ # Timestamp when upload is committed.
26
+ attr_accessor :completed
27
27
 
28
28
  # Attribute mapping from ruby-style variable name to JSON key.
29
29
  def self.attribute_map
30
30
  {
31
31
  :'_href' => :'_href',
32
- :'offset' => :'offset',
33
- :'expires_at' => :'expires_at',
34
- :'file' => :'file',
35
- :'md5' => :'md5'
32
+ :'_created' => :'_created',
33
+ :'size' => :'size',
34
+ :'completed' => :'completed'
36
35
  }
37
36
  end
38
37
 
@@ -40,10 +39,9 @@ module PulpcoreClient
40
39
  def self.openapi_types
41
40
  {
42
41
  :'_href' => :'String',
43
- :'offset' => :'Integer',
44
- :'expires_at' => :'String',
45
- :'file' => :'String',
46
- :'md5' => :'String'
42
+ :'_created' => :'DateTime',
43
+ :'size' => :'Integer',
44
+ :'completed' => :'DateTime'
47
45
  }
48
46
  end
49
47
 
@@ -66,20 +64,16 @@ module PulpcoreClient
66
64
  self._href = attributes[:'_href']
67
65
  end
68
66
 
69
- if attributes.key?(:'offset')
70
- self.offset = attributes[:'offset']
71
- end
72
-
73
- if attributes.key?(:'expires_at')
74
- self.expires_at = attributes[:'expires_at']
67
+ if attributes.key?(:'_created')
68
+ self._created = attributes[:'_created']
75
69
  end
76
70
 
77
- if attributes.key?(:'file')
78
- self.file = attributes[:'file']
71
+ if attributes.key?(:'size')
72
+ self.size = attributes[:'size']
79
73
  end
80
74
 
81
- if attributes.key?(:'md5')
82
- self.md5 = attributes[:'md5']
75
+ if attributes.key?(:'completed')
76
+ self.completed = attributes[:'completed']
83
77
  end
84
78
  end
85
79
 
@@ -87,12 +81,8 @@ module PulpcoreClient
87
81
  # @return Array for valid properties with the reasons
88
82
  def list_invalid_properties
89
83
  invalid_properties = Array.new
90
- if !@offset.nil? && @offset > 9223372036854775807
91
- invalid_properties.push('invalid value for "offset", must be smaller than or equal to 9223372036854775807.')
92
- end
93
-
94
- if !@offset.nil? && @offset < -9223372036854775808
95
- invalid_properties.push('invalid value for "offset", must be greater than or equal to -9223372036854775808.')
84
+ if @size.nil?
85
+ invalid_properties.push('invalid value for "size", size cannot be nil.')
96
86
  end
97
87
 
98
88
  invalid_properties
@@ -101,35 +91,19 @@ module PulpcoreClient
101
91
  # Check to see if the all the properties in the model are valid
102
92
  # @return true if the model is valid
103
93
  def valid?
104
- return false if !@offset.nil? && @offset > 9223372036854775807
105
- return false if !@offset.nil? && @offset < -9223372036854775808
94
+ return false if @size.nil?
106
95
  true
107
96
  end
108
97
 
109
- # Custom attribute writer method with validation
110
- # @param [Object] offset Value to be assigned
111
- def offset=(offset)
112
- if !offset.nil? && offset > 9223372036854775807
113
- fail ArgumentError, 'invalid value for "offset", must be smaller than or equal to 9223372036854775807.'
114
- end
115
-
116
- if !offset.nil? && offset < -9223372036854775808
117
- fail ArgumentError, 'invalid value for "offset", must be greater than or equal to -9223372036854775808.'
118
- end
119
-
120
- @offset = offset
121
- end
122
-
123
98
  # Checks equality by comparing each attribute.
124
99
  # @param [Object] Object to be compared
125
100
  def ==(o)
126
101
  return true if self.equal?(o)
127
102
  self.class == o.class &&
128
103
  _href == o._href &&
129
- offset == o.offset &&
130
- expires_at == o.expires_at &&
131
- file == o.file &&
132
- md5 == o.md5
104
+ _created == o._created &&
105
+ size == o.size &&
106
+ completed == o.completed
133
107
  end
134
108
 
135
109
  # @see the `==` method
@@ -141,7 +115,7 @@ module PulpcoreClient
141
115
  # Calculates hash code according to all attributes.
142
116
  # @return [Integer] Hash code
143
117
  def hash
144
- [_href, offset, expires_at, file, md5].hash
118
+ [_href, _created, size, completed].hash
145
119
  end
146
120
 
147
121
  # Builds the object from hash
@@ -0,0 +1,221 @@
1
+ =begin
2
+ #Pulp 3 API
3
+
4
+ #No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 4.0.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module PulpcoreClient
16
+ class UploadCommit
17
+ # The expected sha256 checksum for the file.
18
+ attr_accessor :sha256
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'sha256' => :'sha256'
24
+ }
25
+ end
26
+
27
+ # Attribute type mapping.
28
+ def self.openapi_types
29
+ {
30
+ :'sha256' => :'String'
31
+ }
32
+ end
33
+
34
+ # Initializes the object
35
+ # @param [Hash] attributes Model attributes in the form of hash
36
+ def initialize(attributes = {})
37
+ if (!attributes.is_a?(Hash))
38
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PulpcoreClient::UploadCommit` initialize method"
39
+ end
40
+
41
+ # check to see if the attribute exists and convert string to symbol for hash key
42
+ attributes = attributes.each_with_object({}) { |(k, v), h|
43
+ if (!self.class.attribute_map.key?(k.to_sym))
44
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PulpcoreClient::UploadCommit`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
45
+ end
46
+ h[k.to_sym] = v
47
+ }
48
+
49
+ if attributes.key?(:'sha256')
50
+ self.sha256 = attributes[:'sha256']
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
+ if @sha256.nil?
59
+ invalid_properties.push('invalid value for "sha256", sha256 cannot be nil.')
60
+ end
61
+
62
+ if @sha256.to_s.length < 1
63
+ invalid_properties.push('invalid value for "sha256", the character length must be great than or equal to 1.')
64
+ end
65
+
66
+ invalid_properties
67
+ end
68
+
69
+ # Check to see if the all the properties in the model are valid
70
+ # @return true if the model is valid
71
+ def valid?
72
+ return false if @sha256.nil?
73
+ return false if @sha256.to_s.length < 1
74
+ true
75
+ end
76
+
77
+ # Custom attribute writer method with validation
78
+ # @param [Object] sha256 Value to be assigned
79
+ def sha256=(sha256)
80
+ if sha256.nil?
81
+ fail ArgumentError, 'sha256 cannot be nil'
82
+ end
83
+
84
+ if sha256.to_s.length < 1
85
+ fail ArgumentError, 'invalid value for "sha256", the character length must be great than or equal to 1.'
86
+ end
87
+
88
+ @sha256 = sha256
89
+ end
90
+
91
+ # Checks equality by comparing each attribute.
92
+ # @param [Object] Object to be compared
93
+ def ==(o)
94
+ return true if self.equal?(o)
95
+ self.class == o.class &&
96
+ sha256 == o.sha256
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [sha256].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ self.class.openapi_types.each_pair do |key, type|
124
+ if type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
133
+ end
134
+
135
+ self
136
+ end
137
+
138
+ # Deserializes the data based on type
139
+ # @param string type Data type
140
+ # @param string value Value to be deserialized
141
+ # @return [Object] Deserialized data
142
+ def _deserialize(type, value)
143
+ case type.to_sym
144
+ when :DateTime
145
+ DateTime.parse(value)
146
+ when :Date
147
+ Date.parse(value)
148
+ when :String
149
+ value.to_s
150
+ when :Integer
151
+ value.to_i
152
+ when :Float
153
+ value.to_f
154
+ when :Boolean
155
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
156
+ true
157
+ else
158
+ false
159
+ end
160
+ when :Object
161
+ # generic object (usually a Hash), return directly
162
+ value
163
+ when /\AArray<(?<inner_type>.+)>\z/
164
+ inner_type = Regexp.last_match[:inner_type]
165
+ value.map { |v| _deserialize(inner_type, v) }
166
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
167
+ k_type = Regexp.last_match[:k_type]
168
+ v_type = Regexp.last_match[:v_type]
169
+ {}.tap do |hash|
170
+ value.each do |k, v|
171
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
172
+ end
173
+ end
174
+ else # model
175
+ PulpcoreClient.const_get(type).build_from_hash(value)
176
+ end
177
+ end
178
+
179
+ # Returns the string representation of the object
180
+ # @return [String] String presentation of the object
181
+ def to_s
182
+ to_hash.to_s
183
+ end
184
+
185
+ # to_body is an alias to to_hash (backward compatibility)
186
+ # @return [Hash] Returns the object in the form of hash
187
+ def to_body
188
+ to_hash
189
+ end
190
+
191
+ # Returns the object in the form of hash
192
+ # @return [Hash] Returns the object in the form of hash
193
+ def to_hash
194
+ hash = {}
195
+ self.class.attribute_map.each_pair do |attr, param|
196
+ value = self.send(attr)
197
+ next if value.nil?
198
+ hash[param] = _to_hash(value)
199
+ end
200
+ hash
201
+ end
202
+
203
+ # Outputs non-array value in the form of hash
204
+ # For object, use to_hash. Otherwise, just return the value
205
+ # @param [Object] value Any valid value
206
+ # @return [Hash] Returns the value in the form of hash
207
+ def _to_hash(value)
208
+ if value.is_a?(Array)
209
+ value.compact.map { |v| _to_hash(v) }
210
+ elsif value.is_a?(Hash)
211
+ {}.tap do |hash|
212
+ value.each { |k, v| hash[k] = _to_hash(v) }
213
+ end
214
+ elsif value.respond_to? :to_hash
215
+ value.to_hash
216
+ else
217
+ value
218
+ end
219
+ end
220
+ end
221
+ end