pulp_hugging_face_client 0.0.1

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 (126) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +176 -0
  4. data/Rakefile +10 -0
  5. data/docs/AsyncOperationResponse.md +18 -0
  6. data/docs/ContentHuggingFaceApi.md +424 -0
  7. data/docs/ContentSummaryResponse.md +22 -0
  8. data/docs/DistributionsHuggingFaceApi.md +671 -0
  9. data/docs/HuggingFaceHuggingFaceContent.md +36 -0
  10. data/docs/HuggingFaceHuggingFaceContentResponse.md +42 -0
  11. data/docs/HuggingFaceHuggingFaceDistribution.md +32 -0
  12. data/docs/HuggingFaceHuggingFaceDistributionResponse.md +44 -0
  13. data/docs/HuggingFaceHuggingFacePublication.md +20 -0
  14. data/docs/HuggingFaceHuggingFacePublicationResponse.md +28 -0
  15. data/docs/HuggingFaceHuggingFaceRemote.md +62 -0
  16. data/docs/HuggingFaceHuggingFaceRemoteResponse.md +62 -0
  17. data/docs/HuggingFaceHuggingFaceRemoteResponseHiddenFieldsInner.md +20 -0
  18. data/docs/HuggingFaceHuggingFaceRepository.md +26 -0
  19. data/docs/HuggingFaceHuggingFaceRepositoryResponse.md +38 -0
  20. data/docs/PaginatedRepositoryVersionResponseList.md +24 -0
  21. data/docs/PaginatedhuggingFaceHuggingFaceContentResponseList.md +24 -0
  22. data/docs/PaginatedhuggingFaceHuggingFaceDistributionResponseList.md +24 -0
  23. data/docs/PaginatedhuggingFaceHuggingFacePublicationResponseList.md +24 -0
  24. data/docs/PaginatedhuggingFaceHuggingFaceRemoteResponseList.md +24 -0
  25. data/docs/PaginatedhuggingFaceHuggingFaceRepositoryResponseList.md +24 -0
  26. data/docs/PatchedhuggingFaceHuggingFaceDistribution.md +32 -0
  27. data/docs/PatchedhuggingFaceHuggingFaceRemote.md +62 -0
  28. data/docs/PatchedhuggingFaceHuggingFaceRepository.md +26 -0
  29. data/docs/PolicyEnum.md +15 -0
  30. data/docs/PublicationsHuggingFaceApi.md +350 -0
  31. data/docs/RemotesHuggingFaceApi.md +669 -0
  32. data/docs/Repair.md +18 -0
  33. data/docs/RepoTypeEnum.md +15 -0
  34. data/docs/RepositoriesHuggingFaceApi.md +831 -0
  35. data/docs/RepositoriesHuggingFaceVersionsApi.md +359 -0
  36. data/docs/RepositoryAddRemoveContent.md +22 -0
  37. data/docs/RepositorySyncURL.md +20 -0
  38. data/docs/RepositoryVersionResponse.md +32 -0
  39. data/docs/SetLabel.md +20 -0
  40. data/docs/SetLabelResponse.md +20 -0
  41. data/docs/UnsetLabel.md +18 -0
  42. data/docs/UnsetLabelResponse.md +20 -0
  43. data/lib/pulp_hugging_face_client/api/content_hugging_face_api.rb +441 -0
  44. data/lib/pulp_hugging_face_client/api/distributions_hugging_face_api.rb +684 -0
  45. data/lib/pulp_hugging_face_client/api/publications_hugging_face_api.rb +356 -0
  46. data/lib/pulp_hugging_face_client/api/remotes_hugging_face_api.rb +681 -0
  47. data/lib/pulp_hugging_face_client/api/repositories_hugging_face_api.rb +847 -0
  48. data/lib/pulp_hugging_face_client/api/repositories_hugging_face_versions_api.rb +374 -0
  49. data/lib/pulp_hugging_face_client/api_client.rb +438 -0
  50. data/lib/pulp_hugging_face_client/api_error.rb +58 -0
  51. data/lib/pulp_hugging_face_client/configuration.rb +392 -0
  52. data/lib/pulp_hugging_face_client/models/async_operation_response.rb +223 -0
  53. data/lib/pulp_hugging_face_client/models/content_summary_response.rb +260 -0
  54. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_content.rb +428 -0
  55. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_content_response.rb +385 -0
  56. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_distribution.rb +345 -0
  57. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_distribution_response.rb +366 -0
  58. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_publication.rb +225 -0
  59. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_publication_response.rb +264 -0
  60. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_remote.rb +745 -0
  61. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_remote_response.rb +564 -0
  62. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_remote_response_hidden_fields_inner.rb +237 -0
  63. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_repository.rb +316 -0
  64. data/lib/pulp_hugging_face_client/models/hugging_face_hugging_face_repository_response.rb +339 -0
  65. data/lib/pulp_hugging_face_client/models/paginated_repository_version_response_list.rb +259 -0
  66. data/lib/pulp_hugging_face_client/models/paginatedhugging_face_hugging_face_content_response_list.rb +259 -0
  67. data/lib/pulp_hugging_face_client/models/paginatedhugging_face_hugging_face_distribution_response_list.rb +259 -0
  68. data/lib/pulp_hugging_face_client/models/paginatedhugging_face_hugging_face_publication_response_list.rb +259 -0
  69. data/lib/pulp_hugging_face_client/models/paginatedhugging_face_hugging_face_remote_response_list.rb +259 -0
  70. data/lib/pulp_hugging_face_client/models/paginatedhugging_face_hugging_face_repository_response_list.rb +259 -0
  71. data/lib/pulp_hugging_face_client/models/patchedhugging_face_hugging_face_distribution.rb +331 -0
  72. data/lib/pulp_hugging_face_client/models/patchedhugging_face_hugging_face_remote.rb +731 -0
  73. data/lib/pulp_hugging_face_client/models/patchedhugging_face_hugging_face_repository.rb +309 -0
  74. data/lib/pulp_hugging_face_client/models/policy_enum.rb +41 -0
  75. data/lib/pulp_hugging_face_client/models/repair.rb +217 -0
  76. data/lib/pulp_hugging_face_client/models/repo_type_enum.rb +41 -0
  77. data/lib/pulp_hugging_face_client/models/repository_add_remove_content.rb +240 -0
  78. data/lib/pulp_hugging_face_client/models/repository_sync_url.rb +228 -0
  79. data/lib/pulp_hugging_face_client/models/repository_version_response.rb +283 -0
  80. data/lib/pulp_hugging_face_client/models/set_label.rb +264 -0
  81. data/lib/pulp_hugging_face_client/models/set_label_response.rb +255 -0
  82. data/lib/pulp_hugging_face_client/models/unset_label.rb +252 -0
  83. data/lib/pulp_hugging_face_client/models/unset_label_response.rb +252 -0
  84. data/lib/pulp_hugging_face_client/version.rb +15 -0
  85. data/lib/pulp_hugging_face_client.rb +77 -0
  86. data/pulp_hugging_face_client.gemspec +41 -0
  87. data/spec/api/content_hugging_face_api_spec.rb +121 -0
  88. data/spec/api/distributions_hugging_face_api_spec.rb +171 -0
  89. data/spec/api/publications_hugging_face_api_spec.rb +109 -0
  90. data/spec/api/remotes_hugging_face_api_spec.rb +170 -0
  91. data/spec/api/repositories_hugging_face_api_spec.rb +202 -0
  92. data/spec/api/repositories_hugging_face_versions_api_spec.rb +112 -0
  93. data/spec/models/async_operation_response_spec.rb +36 -0
  94. data/spec/models/content_summary_response_spec.rb +48 -0
  95. data/spec/models/hugging_face_hugging_face_content_response_spec.rb +108 -0
  96. data/spec/models/hugging_face_hugging_face_content_spec.rb +90 -0
  97. data/spec/models/hugging_face_hugging_face_distribution_response_spec.rb +114 -0
  98. data/spec/models/hugging_face_hugging_face_distribution_spec.rb +78 -0
  99. data/spec/models/hugging_face_hugging_face_publication_response_spec.rb +66 -0
  100. data/spec/models/hugging_face_hugging_face_publication_spec.rb +42 -0
  101. data/spec/models/hugging_face_hugging_face_remote_response_hidden_fields_inner_spec.rb +42 -0
  102. data/spec/models/hugging_face_hugging_face_remote_response_spec.rb +168 -0
  103. data/spec/models/hugging_face_hugging_face_remote_spec.rb +168 -0
  104. data/spec/models/hugging_face_hugging_face_repository_response_spec.rb +96 -0
  105. data/spec/models/hugging_face_hugging_face_repository_spec.rb +60 -0
  106. data/spec/models/paginated_repository_version_response_list_spec.rb +54 -0
  107. data/spec/models/paginatedhugging_face_hugging_face_content_response_list_spec.rb +54 -0
  108. data/spec/models/paginatedhugging_face_hugging_face_distribution_response_list_spec.rb +54 -0
  109. data/spec/models/paginatedhugging_face_hugging_face_publication_response_list_spec.rb +54 -0
  110. data/spec/models/paginatedhugging_face_hugging_face_remote_response_list_spec.rb +54 -0
  111. data/spec/models/paginatedhugging_face_hugging_face_repository_response_list_spec.rb +54 -0
  112. data/spec/models/patchedhugging_face_hugging_face_distribution_spec.rb +78 -0
  113. data/spec/models/patchedhugging_face_hugging_face_remote_spec.rb +168 -0
  114. data/spec/models/patchedhugging_face_hugging_face_repository_spec.rb +60 -0
  115. data/spec/models/policy_enum_spec.rb +30 -0
  116. data/spec/models/repair_spec.rb +36 -0
  117. data/spec/models/repo_type_enum_spec.rb +30 -0
  118. data/spec/models/repository_add_remove_content_spec.rb +48 -0
  119. data/spec/models/repository_sync_url_spec.rb +42 -0
  120. data/spec/models/repository_version_response_spec.rb +78 -0
  121. data/spec/models/set_label_response_spec.rb +42 -0
  122. data/spec/models/set_label_spec.rb +42 -0
  123. data/spec/models/unset_label_response_spec.rb +42 -0
  124. data/spec/models/unset_label_spec.rb +36 -0
  125. data/spec/spec_helper.rb +111 -0
  126. metadata +274 -0
@@ -0,0 +1,260 @@
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
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PulpHuggingFaceClient
17
+ # Serializer for the RepositoryVersion content summary
18
+ class ContentSummaryResponse
19
+ attr_accessor :added
20
+
21
+ attr_accessor :removed
22
+
23
+ attr_accessor :present
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+ :'added' => :'added',
29
+ :'removed' => :'removed',
30
+ :'present' => :'present'
31
+ }
32
+ end
33
+
34
+ # Returns all the JSON keys this model knows about
35
+ def self.acceptable_attributes
36
+ attribute_map.values
37
+ end
38
+
39
+ # Attribute type mapping.
40
+ def self.openapi_types
41
+ {
42
+ :'added' => :'Hash<String, Object>',
43
+ :'removed' => :'Hash<String, Object>',
44
+ :'present' => :'Hash<String, Object>'
45
+ }
46
+ end
47
+
48
+ # List of attributes with nullable: true
49
+ def self.openapi_nullable
50
+ Set.new([
51
+ ])
52
+ end
53
+
54
+ # Initializes the object
55
+ # @param [Hash] attributes Model attributes in the form of hash
56
+ def initialize(attributes = {})
57
+ if (!attributes.is_a?(Hash))
58
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PulpHuggingFaceClient::ContentSummaryResponse` initialize method"
59
+ end
60
+
61
+ # check to see if the attribute exists and convert string to symbol for hash key
62
+ attributes = attributes.each_with_object({}) { |(k, v), h|
63
+ if (!self.class.attribute_map.key?(k.to_sym))
64
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PulpHuggingFaceClient::ContentSummaryResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
65
+ end
66
+ h[k.to_sym] = v
67
+ }
68
+
69
+ if attributes.key?(:'added')
70
+ if (value = attributes[:'added']).is_a?(Hash)
71
+ self.added = value
72
+ end
73
+ else
74
+ self.added = nil
75
+ end
76
+
77
+ if attributes.key?(:'removed')
78
+ if (value = attributes[:'removed']).is_a?(Hash)
79
+ self.removed = value
80
+ end
81
+ else
82
+ self.removed = nil
83
+ end
84
+
85
+ if attributes.key?(:'present')
86
+ if (value = attributes[:'present']).is_a?(Hash)
87
+ self.present = value
88
+ end
89
+ else
90
+ self.present = nil
91
+ end
92
+ end
93
+
94
+ # Show invalid properties with the reasons. Usually used together with valid?
95
+ # @return Array for valid properties with the reasons
96
+ def list_invalid_properties
97
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
98
+ invalid_properties = Array.new
99
+ if @added.nil?
100
+ invalid_properties.push('invalid value for "added", added cannot be nil.')
101
+ end
102
+
103
+ if @removed.nil?
104
+ invalid_properties.push('invalid value for "removed", removed cannot be nil.')
105
+ end
106
+
107
+ if @present.nil?
108
+ invalid_properties.push('invalid value for "present", present cannot be nil.')
109
+ end
110
+
111
+ invalid_properties
112
+ end
113
+
114
+ # Check to see if the all the properties in the model are valid
115
+ # @return true if the model is valid
116
+ def valid?
117
+ warn '[DEPRECATED] the `valid?` method is obsolete'
118
+ return false if @added.nil?
119
+ return false if @removed.nil?
120
+ return false if @present.nil?
121
+ true
122
+ end
123
+
124
+ # Checks equality by comparing each attribute.
125
+ # @param [Object] Object to be compared
126
+ def ==(o)
127
+ return true if self.equal?(o)
128
+ self.class == o.class &&
129
+ added == o.added &&
130
+ removed == o.removed &&
131
+ present == o.present
132
+ end
133
+
134
+ # @see the `==` method
135
+ # @param [Object] Object to be compared
136
+ def eql?(o)
137
+ self == o
138
+ end
139
+
140
+ # Calculates hash code according to all attributes.
141
+ # @return [Integer] Hash code
142
+ def hash
143
+ [added, removed, present].hash
144
+ end
145
+
146
+ # Builds the object from hash
147
+ # @param [Hash] attributes Model attributes in the form of hash
148
+ # @return [Object] Returns the model itself
149
+ def self.build_from_hash(attributes)
150
+ return nil unless attributes.is_a?(Hash)
151
+ attributes = attributes.transform_keys(&:to_sym)
152
+ transformed_hash = {}
153
+ openapi_types.each_pair do |key, type|
154
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
155
+ transformed_hash["#{key}"] = nil
156
+ elsif type =~ /\AArray<(.*)>/i
157
+ # check to ensure the input is an array given that the attribute
158
+ # is documented as an array but the input is not
159
+ if attributes[attribute_map[key]].is_a?(Array)
160
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
161
+ end
162
+ elsif !attributes[attribute_map[key]].nil?
163
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
164
+ end
165
+ end
166
+ new(transformed_hash)
167
+ end
168
+
169
+ # Deserializes the data based on type
170
+ # @param string type Data type
171
+ # @param string value Value to be deserialized
172
+ # @return [Object] Deserialized data
173
+ def self._deserialize(type, value)
174
+ case type.to_sym
175
+ when :Time
176
+ Time.parse(value)
177
+ when :Date
178
+ Date.parse(value)
179
+ when :String
180
+ value.to_s
181
+ when :Integer
182
+ value.to_i
183
+ when :Float
184
+ value.to_f
185
+ when :Boolean
186
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
187
+ true
188
+ else
189
+ false
190
+ end
191
+ when :Object
192
+ # generic object (usually a Hash), return directly
193
+ value
194
+ when /\AArray<(?<inner_type>.+)>\z/
195
+ inner_type = Regexp.last_match[:inner_type]
196
+ value.map { |v| _deserialize(inner_type, v) }
197
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
198
+ k_type = Regexp.last_match[:k_type]
199
+ v_type = Regexp.last_match[:v_type]
200
+ {}.tap do |hash|
201
+ value.each do |k, v|
202
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
203
+ end
204
+ end
205
+ else # model
206
+ # models (e.g. Pet) or oneOf
207
+ klass = PulpHuggingFaceClient.const_get(type)
208
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
209
+ end
210
+ end
211
+
212
+ # Returns the string representation of the object
213
+ # @return [String] String presentation of the object
214
+ def to_s
215
+ to_hash.to_s
216
+ end
217
+
218
+ # to_body is an alias to to_hash (backward compatibility)
219
+ # @return [Hash] Returns the object in the form of hash
220
+ def to_body
221
+ to_hash
222
+ end
223
+
224
+ # Returns the object in the form of hash
225
+ # @return [Hash] Returns the object in the form of hash
226
+ def to_hash
227
+ hash = {}
228
+ self.class.attribute_map.each_pair do |attr, param|
229
+ value = self.send(attr)
230
+ if value.nil?
231
+ is_nullable = self.class.openapi_nullable.include?(attr)
232
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
233
+ end
234
+
235
+ hash[param] = _to_hash(value)
236
+ end
237
+ hash
238
+ end
239
+
240
+ # Outputs non-array value in the form of hash
241
+ # For object, use to_hash. Otherwise, just return the value
242
+ # @param [Object] value Any valid value
243
+ # @return [Hash] Returns the value in the form of hash
244
+ def _to_hash(value)
245
+ if value.is_a?(Array)
246
+ value.compact.map { |v| _to_hash(v) }
247
+ elsif value.is_a?(Hash)
248
+ {}.tap do |hash|
249
+ value.each { |k, v| hash[k] = _to_hash(v) }
250
+ end
251
+ elsif value.respond_to? :to_hash
252
+ value.to_hash
253
+ else
254
+ value
255
+ end
256
+ end
257
+
258
+ end
259
+
260
+ end
@@ -0,0 +1,428 @@
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
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module PulpHuggingFaceClient
17
+ # A Serializer for HuggingFaceContent.
18
+ class HuggingFaceHuggingFaceContent
19
+ # A URI of a repository the new content unit should be associated with.
20
+ attr_accessor :repository
21
+
22
+ # A dictionary of arbitrary key/value pairs used to describe a specific Content instance.
23
+ attr_accessor :pulp_labels
24
+
25
+ # Artifact file representing the physical content
26
+ attr_accessor :artifact
27
+
28
+ # The relative path within the repository
29
+ attr_accessor :relative_path
30
+
31
+ # The Hugging Face repository ID (e.g., 'microsoft/DialoGPT-medium')
32
+ attr_accessor :repo_id
33
+
34
+ # The type of Hugging Face repository * `models` - Models * `datasets` - Datasets * `spaces` - Spaces
35
+ attr_accessor :repo_type
36
+
37
+ # The git revision/branch/tag
38
+ attr_accessor :revision
39
+
40
+ # File size in bytes
41
+ attr_accessor :size
42
+
43
+ # ETag from Hugging Face
44
+ attr_accessor :etag
45
+
46
+ # Last modified timestamp
47
+ attr_accessor :last_modified
48
+
49
+ class EnumAttributeValidator
50
+ attr_reader :datatype
51
+ attr_reader :allowable_values
52
+
53
+ def initialize(datatype, allowable_values)
54
+ @allowable_values = allowable_values.map do |value|
55
+ case datatype.to_s
56
+ when /Integer/i
57
+ value.to_i
58
+ when /Float/i
59
+ value.to_f
60
+ else
61
+ value
62
+ end
63
+ end
64
+ end
65
+
66
+ def valid?(value)
67
+ !value || allowable_values.include?(value)
68
+ end
69
+ end
70
+
71
+ # Attribute mapping from ruby-style variable name to JSON key.
72
+ def self.attribute_map
73
+ {
74
+ :'repository' => :'repository',
75
+ :'pulp_labels' => :'pulp_labels',
76
+ :'artifact' => :'artifact',
77
+ :'relative_path' => :'relative_path',
78
+ :'repo_id' => :'repo_id',
79
+ :'repo_type' => :'repo_type',
80
+ :'revision' => :'revision',
81
+ :'size' => :'size',
82
+ :'etag' => :'etag',
83
+ :'last_modified' => :'last_modified'
84
+ }
85
+ end
86
+
87
+ # Returns all the JSON keys this model knows about
88
+ def self.acceptable_attributes
89
+ attribute_map.values
90
+ end
91
+
92
+ # Attribute type mapping.
93
+ def self.openapi_types
94
+ {
95
+ :'repository' => :'String',
96
+ :'pulp_labels' => :'Hash<String, String>',
97
+ :'artifact' => :'String',
98
+ :'relative_path' => :'String',
99
+ :'repo_id' => :'String',
100
+ :'repo_type' => :'RepoTypeEnum',
101
+ :'revision' => :'String',
102
+ :'size' => :'Integer',
103
+ :'etag' => :'String',
104
+ :'last_modified' => :'Time'
105
+ }
106
+ end
107
+
108
+ # List of attributes with nullable: true
109
+ def self.openapi_nullable
110
+ Set.new([
111
+ :'size',
112
+ :'etag',
113
+ :'last_modified'
114
+ ])
115
+ end
116
+
117
+ # Initializes the object
118
+ # @param [Hash] attributes Model attributes in the form of hash
119
+ def initialize(attributes = {})
120
+ if (!attributes.is_a?(Hash))
121
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PulpHuggingFaceClient::HuggingFaceHuggingFaceContent` initialize method"
122
+ end
123
+
124
+ # check to see if the attribute exists and convert string to symbol for hash key
125
+ attributes = attributes.each_with_object({}) { |(k, v), h|
126
+ if (!self.class.attribute_map.key?(k.to_sym))
127
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PulpHuggingFaceClient::HuggingFaceHuggingFaceContent`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
128
+ end
129
+ h[k.to_sym] = v
130
+ }
131
+
132
+ if attributes.key?(:'repository')
133
+ self.repository = attributes[:'repository']
134
+ end
135
+
136
+ if attributes.key?(:'pulp_labels')
137
+ if (value = attributes[:'pulp_labels']).is_a?(Hash)
138
+ self.pulp_labels = value
139
+ end
140
+ end
141
+
142
+ if attributes.key?(:'artifact')
143
+ self.artifact = attributes[:'artifact']
144
+ else
145
+ self.artifact = nil
146
+ end
147
+
148
+ if attributes.key?(:'relative_path')
149
+ self.relative_path = attributes[:'relative_path']
150
+ else
151
+ self.relative_path = nil
152
+ end
153
+
154
+ if attributes.key?(:'repo_id')
155
+ self.repo_id = attributes[:'repo_id']
156
+ else
157
+ self.repo_id = nil
158
+ end
159
+
160
+ if attributes.key?(:'repo_type')
161
+ self.repo_type = attributes[:'repo_type']
162
+ end
163
+
164
+ if attributes.key?(:'revision')
165
+ self.revision = attributes[:'revision']
166
+ else
167
+ self.revision = 'main'
168
+ end
169
+
170
+ if attributes.key?(:'size')
171
+ self.size = attributes[:'size']
172
+ end
173
+
174
+ if attributes.key?(:'etag')
175
+ self.etag = attributes[:'etag']
176
+ end
177
+
178
+ if attributes.key?(:'last_modified')
179
+ self.last_modified = attributes[:'last_modified']
180
+ end
181
+ end
182
+
183
+ # Show invalid properties with the reasons. Usually used together with valid?
184
+ # @return Array for valid properties with the reasons
185
+ def list_invalid_properties
186
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
187
+ invalid_properties = Array.new
188
+ if @artifact.nil?
189
+ invalid_properties.push('invalid value for "artifact", artifact cannot be nil.')
190
+ end
191
+
192
+ if @relative_path.nil?
193
+ invalid_properties.push('invalid value for "relative_path", relative_path cannot be nil.')
194
+ end
195
+
196
+ if @relative_path.to_s.length < 1
197
+ invalid_properties.push('invalid value for "relative_path", the character length must be great than or equal to 1.')
198
+ end
199
+
200
+ if @repo_id.nil?
201
+ invalid_properties.push('invalid value for "repo_id", repo_id cannot be nil.')
202
+ end
203
+
204
+ if @repo_id.to_s.length < 1
205
+ invalid_properties.push('invalid value for "repo_id", the character length must be great than or equal to 1.')
206
+ end
207
+
208
+ if !@revision.nil? && @revision.to_s.length < 1
209
+ invalid_properties.push('invalid value for "revision", the character length must be great than or equal to 1.')
210
+ end
211
+
212
+ if !@etag.nil? && @etag.to_s.length < 1
213
+ invalid_properties.push('invalid value for "etag", the character length must be great than or equal to 1.')
214
+ end
215
+
216
+ invalid_properties
217
+ end
218
+
219
+ # Check to see if the all the properties in the model are valid
220
+ # @return true if the model is valid
221
+ def valid?
222
+ warn '[DEPRECATED] the `valid?` method is obsolete'
223
+ return false if @artifact.nil?
224
+ return false if @relative_path.nil?
225
+ return false if @relative_path.to_s.length < 1
226
+ return false if @repo_id.nil?
227
+ return false if @repo_id.to_s.length < 1
228
+ return false if !@revision.nil? && @revision.to_s.length < 1
229
+ return false if !@etag.nil? && @etag.to_s.length < 1
230
+ true
231
+ end
232
+
233
+ # Custom attribute writer method with validation
234
+ # @param [Object] relative_path Value to be assigned
235
+ def relative_path=(relative_path)
236
+ if relative_path.nil?
237
+ fail ArgumentError, 'relative_path cannot be nil'
238
+ end
239
+
240
+ if relative_path.to_s.length < 1
241
+ fail ArgumentError, 'invalid value for "relative_path", the character length must be great than or equal to 1.'
242
+ end
243
+
244
+ @relative_path = relative_path
245
+ end
246
+
247
+ # Custom attribute writer method with validation
248
+ # @param [Object] repo_id Value to be assigned
249
+ def repo_id=(repo_id)
250
+ if repo_id.nil?
251
+ fail ArgumentError, 'repo_id cannot be nil'
252
+ end
253
+
254
+ if repo_id.to_s.length < 1
255
+ fail ArgumentError, 'invalid value for "repo_id", the character length must be great than or equal to 1.'
256
+ end
257
+
258
+ @repo_id = repo_id
259
+ end
260
+
261
+ # Custom attribute writer method with validation
262
+ # @param [Object] revision Value to be assigned
263
+ def revision=(revision)
264
+ if revision.nil?
265
+ fail ArgumentError, 'revision cannot be nil'
266
+ end
267
+
268
+ if revision.to_s.length < 1
269
+ fail ArgumentError, 'invalid value for "revision", the character length must be great than or equal to 1.'
270
+ end
271
+
272
+ @revision = revision
273
+ end
274
+
275
+ # Custom attribute writer method with validation
276
+ # @param [Object] etag Value to be assigned
277
+ def etag=(etag)
278
+ if !etag.nil? && etag.to_s.length < 1
279
+ fail ArgumentError, 'invalid value for "etag", the character length must be great than or equal to 1.'
280
+ end
281
+
282
+ @etag = etag
283
+ end
284
+
285
+ # Checks equality by comparing each attribute.
286
+ # @param [Object] Object to be compared
287
+ def ==(o)
288
+ return true if self.equal?(o)
289
+ self.class == o.class &&
290
+ repository == o.repository &&
291
+ pulp_labels == o.pulp_labels &&
292
+ artifact == o.artifact &&
293
+ relative_path == o.relative_path &&
294
+ repo_id == o.repo_id &&
295
+ repo_type == o.repo_type &&
296
+ revision == o.revision &&
297
+ size == o.size &&
298
+ etag == o.etag &&
299
+ last_modified == o.last_modified
300
+ end
301
+
302
+ # @see the `==` method
303
+ # @param [Object] Object to be compared
304
+ def eql?(o)
305
+ self == o
306
+ end
307
+
308
+ # Calculates hash code according to all attributes.
309
+ # @return [Integer] Hash code
310
+ def hash
311
+ [repository, pulp_labels, artifact, relative_path, repo_id, repo_type, revision, size, etag, last_modified].hash
312
+ end
313
+
314
+ # Builds the object from hash
315
+ # @param [Hash] attributes Model attributes in the form of hash
316
+ # @return [Object] Returns the model itself
317
+ def self.build_from_hash(attributes)
318
+ return nil unless attributes.is_a?(Hash)
319
+ attributes = attributes.transform_keys(&:to_sym)
320
+ transformed_hash = {}
321
+ openapi_types.each_pair do |key, type|
322
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
323
+ transformed_hash["#{key}"] = nil
324
+ elsif type =~ /\AArray<(.*)>/i
325
+ # check to ensure the input is an array given that the attribute
326
+ # is documented as an array but the input is not
327
+ if attributes[attribute_map[key]].is_a?(Array)
328
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
329
+ end
330
+ elsif !attributes[attribute_map[key]].nil?
331
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
332
+ end
333
+ end
334
+ new(transformed_hash)
335
+ end
336
+
337
+ # Deserializes the data based on type
338
+ # @param string type Data type
339
+ # @param string value Value to be deserialized
340
+ # @return [Object] Deserialized data
341
+ def self._deserialize(type, value)
342
+ case type.to_sym
343
+ when :Time
344
+ Time.parse(value)
345
+ when :Date
346
+ Date.parse(value)
347
+ when :String
348
+ value.to_s
349
+ when :Integer
350
+ value.to_i
351
+ when :Float
352
+ value.to_f
353
+ when :Boolean
354
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
355
+ true
356
+ else
357
+ false
358
+ end
359
+ when :Object
360
+ # generic object (usually a Hash), return directly
361
+ value
362
+ when /\AArray<(?<inner_type>.+)>\z/
363
+ inner_type = Regexp.last_match[:inner_type]
364
+ value.map { |v| _deserialize(inner_type, v) }
365
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
366
+ k_type = Regexp.last_match[:k_type]
367
+ v_type = Regexp.last_match[:v_type]
368
+ {}.tap do |hash|
369
+ value.each do |k, v|
370
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
371
+ end
372
+ end
373
+ else # model
374
+ # models (e.g. Pet) or oneOf
375
+ klass = PulpHuggingFaceClient.const_get(type)
376
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
377
+ end
378
+ end
379
+
380
+ # Returns the string representation of the object
381
+ # @return [String] String presentation of the object
382
+ def to_s
383
+ to_hash.to_s
384
+ end
385
+
386
+ # to_body is an alias to to_hash (backward compatibility)
387
+ # @return [Hash] Returns the object in the form of hash
388
+ def to_body
389
+ to_hash
390
+ end
391
+
392
+ # Returns the object in the form of hash
393
+ # @return [Hash] Returns the object in the form of hash
394
+ def to_hash
395
+ hash = {}
396
+ self.class.attribute_map.each_pair do |attr, param|
397
+ value = self.send(attr)
398
+ if value.nil?
399
+ is_nullable = self.class.openapi_nullable.include?(attr)
400
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
401
+ end
402
+
403
+ hash[param] = _to_hash(value)
404
+ end
405
+ hash
406
+ end
407
+
408
+ # Outputs non-array value in the form of hash
409
+ # For object, use to_hash. Otherwise, just return the value
410
+ # @param [Object] value Any valid value
411
+ # @return [Hash] Returns the value in the form of hash
412
+ def _to_hash(value)
413
+ if value.is_a?(Array)
414
+ value.compact.map { |v| _to_hash(v) }
415
+ elsif value.is_a?(Hash)
416
+ {}.tap do |hash|
417
+ value.each { |k, v| hash[k] = _to_hash(v) }
418
+ end
419
+ elsif value.respond_to? :to_hash
420
+ value.to_hash
421
+ else
422
+ value
423
+ end
424
+ end
425
+
426
+ end
427
+
428
+ end