pulpcore_client 3.0.0rc2 → 3.0.0rc3

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 (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