pulp_container_client 2.15.1 → 2.15.3

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 (71) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -25
  3. data/docs/ContainerContainerDistribution.md +7 -7
  4. data/docs/ContainerContainerDistributionResponse.md +9 -9
  5. data/docs/ContainerContainerPushRepository.md +7 -7
  6. data/docs/ContainerContainerPushRepositoryResponse.md +13 -13
  7. data/docs/ContentBlobsApi.md +3 -1
  8. data/docs/ContentManifestsApi.md +5 -3
  9. data/docs/ContentSignaturesApi.md +11 -1
  10. data/docs/ContentTagsApi.md +5 -3
  11. data/docs/DistributionsContainerApi.md +136 -10
  12. data/docs/PatchedcontainerContainerDistribution.md +7 -7
  13. data/docs/PatchedcontainerContainerPushRepository.md +7 -7
  14. data/docs/PulpContainerNamespacesApi.md +23 -9
  15. data/docs/RemotesContainerApi.md +135 -9
  16. data/docs/RepositoriesContainerApi.md +136 -10
  17. data/docs/RepositoriesContainerPushApi.md +24 -10
  18. data/docs/RepositoriesContainerPushVersionsApi.md +3 -1
  19. data/docs/RepositoriesContainerVersionsApi.md +3 -1
  20. data/docs/SetLabel.md +19 -0
  21. data/docs/SetLabelResponse.md +19 -0
  22. data/docs/TokenApi.md +1 -1
  23. data/docs/UnsetLabel.md +17 -0
  24. data/docs/UnsetLabelResponse.md +19 -0
  25. data/lib/pulp_container_client/api/content_blobs_api.rb +3 -0
  26. data/lib/pulp_container_client/api/content_manifests_api.rb +5 -2
  27. data/lib/pulp_container_client/api/content_signatures_api.rb +15 -0
  28. data/lib/pulp_container_client/api/content_tags_api.rb +5 -2
  29. data/lib/pulp_container_client/api/distributions_container_api.rb +163 -0
  30. data/lib/pulp_container_client/api/pulp_container_namespaces_api.rb +23 -0
  31. data/lib/pulp_container_client/api/remotes_container_api.rb +163 -0
  32. data/lib/pulp_container_client/api/repositories_container_api.rb +163 -0
  33. data/lib/pulp_container_client/api/repositories_container_push_api.rb +23 -0
  34. data/lib/pulp_container_client/api/repositories_container_push_versions_api.rb +3 -0
  35. data/lib/pulp_container_client/api/repositories_container_versions_api.rb +3 -0
  36. data/lib/pulp_container_client/configuration.rb +2 -2
  37. data/lib/pulp_container_client/models/container_container_distribution.rb +27 -27
  38. data/lib/pulp_container_client/models/container_container_distribution_response.rb +39 -39
  39. data/lib/pulp_container_client/models/container_container_push_repository.rb +45 -45
  40. data/lib/pulp_container_client/models/container_container_push_repository_response.rb +52 -52
  41. data/lib/pulp_container_client/models/patchedcontainer_container_distribution.rb +27 -27
  42. data/lib/pulp_container_client/models/patchedcontainer_container_push_repository.rb +45 -45
  43. data/lib/pulp_container_client/models/set_label.rb +252 -0
  44. data/lib/pulp_container_client/models/set_label_response.rb +243 -0
  45. data/lib/pulp_container_client/models/unset_label.rb +242 -0
  46. data/lib/pulp_container_client/models/unset_label_response.rb +242 -0
  47. data/lib/pulp_container_client/version.rb +1 -1
  48. data/lib/pulp_container_client.rb +4 -0
  49. data/spec/api/content_blobs_api_spec.rb +1 -0
  50. data/spec/api/content_manifests_api_spec.rb +2 -1
  51. data/spec/api/content_signatures_api_spec.rb +5 -0
  52. data/spec/api/content_tags_api_spec.rb +2 -1
  53. data/spec/api/distributions_container_api_spec.rb +35 -0
  54. data/spec/api/pulp_container_namespaces_api_spec.rb +9 -0
  55. data/spec/api/remotes_container_api_spec.rb +35 -0
  56. data/spec/api/repositories_container_api_spec.rb +35 -0
  57. data/spec/api/repositories_container_push_api_spec.rb +9 -0
  58. data/spec/api/repositories_container_push_versions_api_spec.rb +1 -0
  59. data/spec/api/repositories_container_versions_api_spec.rb +1 -0
  60. data/spec/configuration_spec.rb +3 -3
  61. data/spec/models/container_container_distribution_response_spec.rb +8 -8
  62. data/spec/models/container_container_distribution_spec.rb +5 -5
  63. data/spec/models/container_container_push_repository_response_spec.rb +9 -9
  64. data/spec/models/container_container_push_repository_spec.rb +5 -5
  65. data/spec/models/patchedcontainer_container_distribution_spec.rb +5 -5
  66. data/spec/models/patchedcontainer_container_push_repository_spec.rb +5 -5
  67. data/spec/models/set_label_response_spec.rb +47 -0
  68. data/spec/models/set_label_spec.rb +47 -0
  69. data/spec/models/unset_label_response_spec.rb +47 -0
  70. data/spec/models/unset_label_spec.rb +41 -0
  71. metadata +64 -48
@@ -15,48 +15,48 @@ require 'date'
15
15
  module PulpContainerClient
16
16
  # Serializer for Container Push Repositories.
17
17
  class PatchedcontainerContainerPushRepository
18
- # Retain X versions of the repository. Default is null which retains all versions.
19
- attr_accessor :retain_repo_versions
20
-
21
- # A unique name for this repository.
22
- attr_accessor :name
18
+ # A reference to an associated signing service.
19
+ attr_accessor :manifest_signing_service
23
20
 
24
21
  # An optional description.
25
22
  attr_accessor :description
26
23
 
27
- # A reference to an associated signing service.
28
- attr_accessor :manifest_signing_service
24
+ # Retain X versions of the repository. Default is null which retains all versions.
25
+ attr_accessor :retain_repo_versions
29
26
 
30
27
  attr_accessor :pulp_labels
31
28
 
29
+ # A unique name for this repository.
30
+ attr_accessor :name
31
+
32
32
  # Attribute mapping from ruby-style variable name to JSON key.
33
33
  def self.attribute_map
34
34
  {
35
- :'retain_repo_versions' => :'retain_repo_versions',
36
- :'name' => :'name',
37
- :'description' => :'description',
38
35
  :'manifest_signing_service' => :'manifest_signing_service',
39
- :'pulp_labels' => :'pulp_labels'
36
+ :'description' => :'description',
37
+ :'retain_repo_versions' => :'retain_repo_versions',
38
+ :'pulp_labels' => :'pulp_labels',
39
+ :'name' => :'name'
40
40
  }
41
41
  end
42
42
 
43
43
  # Attribute type mapping.
44
44
  def self.openapi_types
45
45
  {
46
- :'retain_repo_versions' => :'Integer',
47
- :'name' => :'String',
48
- :'description' => :'String',
49
46
  :'manifest_signing_service' => :'String',
50
- :'pulp_labels' => :'Hash<String, String>'
47
+ :'description' => :'String',
48
+ :'retain_repo_versions' => :'Integer',
49
+ :'pulp_labels' => :'Hash<String, String>',
50
+ :'name' => :'String'
51
51
  }
52
52
  end
53
53
 
54
54
  # List of attributes with nullable: true
55
55
  def self.openapi_nullable
56
56
  Set.new([
57
- :'retain_repo_versions',
58
- :'description',
59
57
  :'manifest_signing_service',
58
+ :'description',
59
+ :'retain_repo_versions',
60
60
  ])
61
61
  end
62
62
 
@@ -75,20 +75,16 @@ module PulpContainerClient
75
75
  h[k.to_sym] = v
76
76
  }
77
77
 
78
- if attributes.key?(:'retain_repo_versions')
79
- self.retain_repo_versions = attributes[:'retain_repo_versions']
80
- end
81
-
82
- if attributes.key?(:'name')
83
- self.name = attributes[:'name']
78
+ if attributes.key?(:'manifest_signing_service')
79
+ self.manifest_signing_service = attributes[:'manifest_signing_service']
84
80
  end
85
81
 
86
82
  if attributes.key?(:'description')
87
83
  self.description = attributes[:'description']
88
84
  end
89
85
 
90
- if attributes.key?(:'manifest_signing_service')
91
- self.manifest_signing_service = attributes[:'manifest_signing_service']
86
+ if attributes.key?(:'retain_repo_versions')
87
+ self.retain_repo_versions = attributes[:'retain_repo_versions']
92
88
  end
93
89
 
94
90
  if attributes.key?(:'pulp_labels')
@@ -96,12 +92,20 @@ module PulpContainerClient
96
92
  self.pulp_labels = value
97
93
  end
98
94
  end
95
+
96
+ if attributes.key?(:'name')
97
+ self.name = attributes[:'name']
98
+ end
99
99
  end
100
100
 
101
101
  # Show invalid properties with the reasons. Usually used together with valid?
102
102
  # @return Array for valid properties with the reasons
103
103
  def list_invalid_properties
104
104
  invalid_properties = Array.new
105
+ if !@description.nil? && @description.to_s.length < 1
106
+ invalid_properties.push('invalid value for "description", the character length must be great than or equal to 1.')
107
+ end
108
+
105
109
  if !@retain_repo_versions.nil? && @retain_repo_versions < 1
106
110
  invalid_properties.push('invalid value for "retain_repo_versions", must be greater than or equal to 1.')
107
111
  end
@@ -110,22 +114,28 @@ module PulpContainerClient
110
114
  invalid_properties.push('invalid value for "name", the character length must be great than or equal to 1.')
111
115
  end
112
116
 
113
- if !@description.nil? && @description.to_s.length < 1
114
- invalid_properties.push('invalid value for "description", the character length must be great than or equal to 1.')
115
- end
116
-
117
117
  invalid_properties
118
118
  end
119
119
 
120
120
  # Check to see if the all the properties in the model are valid
121
121
  # @return true if the model is valid
122
122
  def valid?
123
+ return false if !@description.nil? && @description.to_s.length < 1
123
124
  return false if !@retain_repo_versions.nil? && @retain_repo_versions < 1
124
125
  return false if !@name.nil? && @name.to_s.length < 1
125
- return false if !@description.nil? && @description.to_s.length < 1
126
126
  true
127
127
  end
128
128
 
129
+ # Custom attribute writer method with validation
130
+ # @param [Object] description Value to be assigned
131
+ def description=(description)
132
+ if !description.nil? && description.to_s.length < 1
133
+ fail ArgumentError, 'invalid value for "description", the character length must be great than or equal to 1.'
134
+ end
135
+
136
+ @description = description
137
+ end
138
+
129
139
  # Custom attribute writer method with validation
130
140
  # @param [Object] retain_repo_versions Value to be assigned
131
141
  def retain_repo_versions=(retain_repo_versions)
@@ -146,26 +156,16 @@ module PulpContainerClient
146
156
  @name = name
147
157
  end
148
158
 
149
- # Custom attribute writer method with validation
150
- # @param [Object] description Value to be assigned
151
- def description=(description)
152
- if !description.nil? && description.to_s.length < 1
153
- fail ArgumentError, 'invalid value for "description", the character length must be great than or equal to 1.'
154
- end
155
-
156
- @description = description
157
- end
158
-
159
159
  # Checks equality by comparing each attribute.
160
160
  # @param [Object] Object to be compared
161
161
  def ==(o)
162
162
  return true if self.equal?(o)
163
163
  self.class == o.class &&
164
- retain_repo_versions == o.retain_repo_versions &&
165
- name == o.name &&
166
- description == o.description &&
167
164
  manifest_signing_service == o.manifest_signing_service &&
168
- pulp_labels == o.pulp_labels
165
+ description == o.description &&
166
+ retain_repo_versions == o.retain_repo_versions &&
167
+ pulp_labels == o.pulp_labels &&
168
+ name == o.name
169
169
  end
170
170
 
171
171
  # @see the `==` method
@@ -177,7 +177,7 @@ module PulpContainerClient
177
177
  # Calculates hash code according to all attributes.
178
178
  # @return [Integer] Hash code
179
179
  def hash
180
- [retain_repo_versions, name, description, manifest_signing_service, pulp_labels].hash
180
+ [manifest_signing_service, description, retain_repo_versions, pulp_labels, name].hash
181
181
  end
182
182
 
183
183
  # Builds the object from hash
@@ -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 PulpContainerClient
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 `PulpContainerClient::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 `PulpContainerClient::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
+ PulpContainerClient.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 PulpContainerClient
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 `PulpContainerClient::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 `PulpContainerClient::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
+ PulpContainerClient.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