pulp_gem_client 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,6 +19,76 @@ module PulpGemClient
19
19
  def initialize(api_client = ApiClient.default)
20
20
  @api_client = api_client
21
21
  end
22
+ # Add a role
23
+ # Add a role for this object to users/groups.
24
+ # @param gem_gem_repository_href [String]
25
+ # @param nested_role [NestedRole]
26
+ # @param [Hash] opts the optional parameters
27
+ # @return [NestedRoleResponse]
28
+ def add_role(gem_gem_repository_href, nested_role, opts = {})
29
+ data, _status_code, _headers = add_role_with_http_info(gem_gem_repository_href, nested_role, opts)
30
+ data
31
+ end
32
+
33
+ # Add a role
34
+ # Add a role for this object to users/groups.
35
+ # @param gem_gem_repository_href [String]
36
+ # @param nested_role [NestedRole]
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [Array<(NestedRoleResponse, Integer, Hash)>] NestedRoleResponse data, response status code and response headers
39
+ def add_role_with_http_info(gem_gem_repository_href, nested_role, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: RepositoriesGemApi.add_role ...'
42
+ end
43
+ # verify the required parameter 'gem_gem_repository_href' is set
44
+ if @api_client.config.client_side_validation && gem_gem_repository_href.nil?
45
+ fail ArgumentError, "Missing the required parameter 'gem_gem_repository_href' when calling RepositoriesGemApi.add_role"
46
+ end
47
+ # verify the required parameter 'nested_role' is set
48
+ if @api_client.config.client_side_validation && nested_role.nil?
49
+ fail ArgumentError, "Missing the required parameter 'nested_role' when calling RepositoriesGemApi.add_role"
50
+ end
51
+ # resource path
52
+ local_var_path = '{gem_gem_repository_href}add_role/'.sub('{' + 'gem_gem_repository_href' + '}', CGI.escape(gem_gem_repository_href.to_s).gsub('%2F', '/'))
53
+
54
+ # query parameters
55
+ query_params = opts[:query_params] || {}
56
+
57
+ # header parameters
58
+ header_params = opts[:header_params] || {}
59
+ # HTTP header 'Accept' (if needed)
60
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
61
+ # HTTP header 'Content-Type'
62
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'])
63
+
64
+ # form parameters
65
+ form_params = opts[:form_params] || {}
66
+
67
+ # http body (model)
68
+ post_body = opts[:body] || @api_client.object_to_http_body(nested_role)
69
+
70
+ # return_type
71
+ return_type = opts[:return_type] || 'NestedRoleResponse'
72
+
73
+ # auth_names
74
+ auth_names = opts[:auth_names] || ['basicAuth']
75
+
76
+ new_options = opts.merge(
77
+ :header_params => header_params,
78
+ :query_params => query_params,
79
+ :form_params => form_params,
80
+ :body => post_body,
81
+ :auth_names => auth_names,
82
+ :return_type => return_type
83
+ )
84
+
85
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
86
+ if @api_client.config.debugging
87
+ @api_client.config.logger.debug "API called: RepositoriesGemApi#add_role\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
88
+ end
89
+ return data, status_code, headers
90
+ end
91
+
22
92
  # Create a gem repository
23
93
  # A ViewSet for GemRepository.
24
94
  # @param gem_gem_repository [GemGemRepository]
@@ -155,7 +225,9 @@ module PulpGemClient
155
225
  # @option opts [String] :name__icontains Filter results where name contains value
156
226
  # @option opts [String] :name__iexact Filter results where name matches value
157
227
  # @option opts [Array<String>] :name__in Filter results where name is in a comma-separated list of values
228
+ # @option opts [String] :name__iregex Filter results where name matches regex value
158
229
  # @option opts [String] :name__istartswith Filter results where name starts with value
230
+ # @option opts [String] :name__regex Filter results where name matches regex value
159
231
  # @option opts [String] :name__startswith Filter results where name starts with value
160
232
  # @option opts [Integer] :offset The initial index from which to return the results.
161
233
  # @option opts [Array<String>] :ordering Ordering * &#x60;pulp_id&#x60; - Pulp id * &#x60;-pulp_id&#x60; - Pulp id (descending) * &#x60;pulp_created&#x60; - Pulp created * &#x60;-pulp_created&#x60; - Pulp created (descending) * &#x60;pulp_last_updated&#x60; - Pulp last updated * &#x60;-pulp_last_updated&#x60; - Pulp last updated (descending) * &#x60;pulp_type&#x60; - Pulp type * &#x60;-pulp_type&#x60; - Pulp type (descending) * &#x60;name&#x60; - Name * &#x60;-name&#x60; - Name (descending) * &#x60;pulp_labels&#x60; - Pulp labels * &#x60;-pulp_labels&#x60; - Pulp labels (descending) * &#x60;description&#x60; - Description * &#x60;-description&#x60; - Description (descending) * &#x60;next_version&#x60; - Next version * &#x60;-next_version&#x60; - Next version (descending) * &#x60;retain_repo_versions&#x60; - Retain repo versions * &#x60;-retain_repo_versions&#x60; - Retain repo versions (descending) * &#x60;user_hidden&#x60; - User hidden * &#x60;-user_hidden&#x60; - User hidden (descending) * &#x60;pk&#x60; - Pk * &#x60;-pk&#x60; - Pk (descending)
@@ -191,7 +263,9 @@ module PulpGemClient
191
263
  # @option opts [String] :name__icontains Filter results where name contains value
192
264
  # @option opts [String] :name__iexact Filter results where name matches value
193
265
  # @option opts [Array<String>] :name__in Filter results where name is in a comma-separated list of values
266
+ # @option opts [String] :name__iregex Filter results where name matches regex value
194
267
  # @option opts [String] :name__istartswith Filter results where name starts with value
268
+ # @option opts [String] :name__regex Filter results where name matches regex value
195
269
  # @option opts [String] :name__startswith Filter results where name starts with value
196
270
  # @option opts [Integer] :offset The initial index from which to return the results.
197
271
  # @option opts [Array<String>] :ordering Ordering * &#x60;pulp_id&#x60; - Pulp id * &#x60;-pulp_id&#x60; - Pulp id (descending) * &#x60;pulp_created&#x60; - Pulp created * &#x60;-pulp_created&#x60; - Pulp created (descending) * &#x60;pulp_last_updated&#x60; - Pulp last updated * &#x60;-pulp_last_updated&#x60; - Pulp last updated (descending) * &#x60;pulp_type&#x60; - Pulp type * &#x60;-pulp_type&#x60; - Pulp type (descending) * &#x60;name&#x60; - Name * &#x60;-name&#x60; - Name (descending) * &#x60;pulp_labels&#x60; - Pulp labels * &#x60;-pulp_labels&#x60; - Pulp labels (descending) * &#x60;description&#x60; - Description * &#x60;-description&#x60; - Description (descending) * &#x60;next_version&#x60; - Next version * &#x60;-next_version&#x60; - Next version (descending) * &#x60;retain_repo_versions&#x60; - Retain repo versions * &#x60;-retain_repo_versions&#x60; - Retain repo versions (descending) * &#x60;user_hidden&#x60; - User hidden * &#x60;-user_hidden&#x60; - User hidden (descending) * &#x60;pk&#x60; - Pk * &#x60;-pk&#x60; - Pk (descending)
@@ -232,7 +306,9 @@ module PulpGemClient
232
306
  query_params[:'name__icontains'] = opts[:'name__icontains'] if !opts[:'name__icontains'].nil?
233
307
  query_params[:'name__iexact'] = opts[:'name__iexact'] if !opts[:'name__iexact'].nil?
234
308
  query_params[:'name__in'] = @api_client.build_collection_param(opts[:'name__in'], :csv) if !opts[:'name__in'].nil?
309
+ query_params[:'name__iregex'] = opts[:'name__iregex'] if !opts[:'name__iregex'].nil?
235
310
  query_params[:'name__istartswith'] = opts[:'name__istartswith'] if !opts[:'name__istartswith'].nil?
311
+ query_params[:'name__regex'] = opts[:'name__regex'] if !opts[:'name__regex'].nil?
236
312
  query_params[:'name__startswith'] = opts[:'name__startswith'] if !opts[:'name__startswith'].nil?
237
313
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
238
314
  query_params[:'ordering'] = @api_client.build_collection_param(opts[:'ordering'], :csv) if !opts[:'ordering'].nil?
@@ -286,6 +362,74 @@ module PulpGemClient
286
362
  return data, status_code, headers
287
363
  end
288
364
 
365
+ # List roles
366
+ # List roles assigned to this object.
367
+ # @param gem_gem_repository_href [String]
368
+ # @param [Hash] opts the optional parameters
369
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
370
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
371
+ # @return [ObjectRolesResponse]
372
+ def list_roles(gem_gem_repository_href, opts = {})
373
+ data, _status_code, _headers = list_roles_with_http_info(gem_gem_repository_href, opts)
374
+ data
375
+ end
376
+
377
+ # List roles
378
+ # List roles assigned to this object.
379
+ # @param gem_gem_repository_href [String]
380
+ # @param [Hash] opts the optional parameters
381
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
382
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
383
+ # @return [Array<(ObjectRolesResponse, Integer, Hash)>] ObjectRolesResponse data, response status code and response headers
384
+ def list_roles_with_http_info(gem_gem_repository_href, opts = {})
385
+ if @api_client.config.debugging
386
+ @api_client.config.logger.debug 'Calling API: RepositoriesGemApi.list_roles ...'
387
+ end
388
+ # verify the required parameter 'gem_gem_repository_href' is set
389
+ if @api_client.config.client_side_validation && gem_gem_repository_href.nil?
390
+ fail ArgumentError, "Missing the required parameter 'gem_gem_repository_href' when calling RepositoriesGemApi.list_roles"
391
+ end
392
+ # resource path
393
+ local_var_path = '{gem_gem_repository_href}list_roles/'.sub('{' + 'gem_gem_repository_href' + '}', CGI.escape(gem_gem_repository_href.to_s).gsub('%2F', '/'))
394
+
395
+ # query parameters
396
+ query_params = opts[:query_params] || {}
397
+ query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :multi) if !opts[:'fields'].nil?
398
+ query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :multi) if !opts[:'exclude_fields'].nil?
399
+
400
+ # header parameters
401
+ header_params = opts[:header_params] || {}
402
+ # HTTP header 'Accept' (if needed)
403
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
404
+
405
+ # form parameters
406
+ form_params = opts[:form_params] || {}
407
+
408
+ # http body (model)
409
+ post_body = opts[:body]
410
+
411
+ # return_type
412
+ return_type = opts[:return_type] || 'ObjectRolesResponse'
413
+
414
+ # auth_names
415
+ auth_names = opts[:auth_names] || ['basicAuth']
416
+
417
+ new_options = opts.merge(
418
+ :header_params => header_params,
419
+ :query_params => query_params,
420
+ :form_params => form_params,
421
+ :body => post_body,
422
+ :auth_names => auth_names,
423
+ :return_type => return_type
424
+ )
425
+
426
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
427
+ if @api_client.config.debugging
428
+ @api_client.config.logger.debug "API called: RepositoriesGemApi#list_roles\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
429
+ end
430
+ return data, status_code, headers
431
+ end
432
+
289
433
  # Modify Repository Content
290
434
  # Trigger an asynchronous task to create a new repository version.
291
435
  # @param gem_gem_repository_href [String]
@@ -356,6 +500,74 @@ module PulpGemClient
356
500
  return data, status_code, headers
357
501
  end
358
502
 
503
+ # List user permissions
504
+ # List permissions available to the current user on this object.
505
+ # @param gem_gem_repository_href [String]
506
+ # @param [Hash] opts the optional parameters
507
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
508
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
509
+ # @return [MyPermissionsResponse]
510
+ def my_permissions(gem_gem_repository_href, opts = {})
511
+ data, _status_code, _headers = my_permissions_with_http_info(gem_gem_repository_href, opts)
512
+ data
513
+ end
514
+
515
+ # List user permissions
516
+ # List permissions available to the current user on this object.
517
+ # @param gem_gem_repository_href [String]
518
+ # @param [Hash] opts the optional parameters
519
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
520
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
521
+ # @return [Array<(MyPermissionsResponse, Integer, Hash)>] MyPermissionsResponse data, response status code and response headers
522
+ def my_permissions_with_http_info(gem_gem_repository_href, opts = {})
523
+ if @api_client.config.debugging
524
+ @api_client.config.logger.debug 'Calling API: RepositoriesGemApi.my_permissions ...'
525
+ end
526
+ # verify the required parameter 'gem_gem_repository_href' is set
527
+ if @api_client.config.client_side_validation && gem_gem_repository_href.nil?
528
+ fail ArgumentError, "Missing the required parameter 'gem_gem_repository_href' when calling RepositoriesGemApi.my_permissions"
529
+ end
530
+ # resource path
531
+ local_var_path = '{gem_gem_repository_href}my_permissions/'.sub('{' + 'gem_gem_repository_href' + '}', CGI.escape(gem_gem_repository_href.to_s).gsub('%2F', '/'))
532
+
533
+ # query parameters
534
+ query_params = opts[:query_params] || {}
535
+ query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :multi) if !opts[:'fields'].nil?
536
+ query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :multi) if !opts[:'exclude_fields'].nil?
537
+
538
+ # header parameters
539
+ header_params = opts[:header_params] || {}
540
+ # HTTP header 'Accept' (if needed)
541
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
542
+
543
+ # form parameters
544
+ form_params = opts[:form_params] || {}
545
+
546
+ # http body (model)
547
+ post_body = opts[:body]
548
+
549
+ # return_type
550
+ return_type = opts[:return_type] || 'MyPermissionsResponse'
551
+
552
+ # auth_names
553
+ auth_names = opts[:auth_names] || ['basicAuth']
554
+
555
+ new_options = opts.merge(
556
+ :header_params => header_params,
557
+ :query_params => query_params,
558
+ :form_params => form_params,
559
+ :body => post_body,
560
+ :auth_names => auth_names,
561
+ :return_type => return_type
562
+ )
563
+
564
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
565
+ if @api_client.config.debugging
566
+ @api_client.config.logger.debug "API called: RepositoriesGemApi#my_permissions\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
567
+ end
568
+ return data, status_code, headers
569
+ end
570
+
359
571
  # Update a gem repository
360
572
  # Trigger an asynchronous partial update task
361
573
  # @param gem_gem_repository_href [String]
@@ -494,6 +706,76 @@ module PulpGemClient
494
706
  return data, status_code, headers
495
707
  end
496
708
 
709
+ # Remove a role
710
+ # Remove a role for this object from users/groups.
711
+ # @param gem_gem_repository_href [String]
712
+ # @param nested_role [NestedRole]
713
+ # @param [Hash] opts the optional parameters
714
+ # @return [NestedRoleResponse]
715
+ def remove_role(gem_gem_repository_href, nested_role, opts = {})
716
+ data, _status_code, _headers = remove_role_with_http_info(gem_gem_repository_href, nested_role, opts)
717
+ data
718
+ end
719
+
720
+ # Remove a role
721
+ # Remove a role for this object from users/groups.
722
+ # @param gem_gem_repository_href [String]
723
+ # @param nested_role [NestedRole]
724
+ # @param [Hash] opts the optional parameters
725
+ # @return [Array<(NestedRoleResponse, Integer, Hash)>] NestedRoleResponse data, response status code and response headers
726
+ def remove_role_with_http_info(gem_gem_repository_href, nested_role, opts = {})
727
+ if @api_client.config.debugging
728
+ @api_client.config.logger.debug 'Calling API: RepositoriesGemApi.remove_role ...'
729
+ end
730
+ # verify the required parameter 'gem_gem_repository_href' is set
731
+ if @api_client.config.client_side_validation && gem_gem_repository_href.nil?
732
+ fail ArgumentError, "Missing the required parameter 'gem_gem_repository_href' when calling RepositoriesGemApi.remove_role"
733
+ end
734
+ # verify the required parameter 'nested_role' is set
735
+ if @api_client.config.client_side_validation && nested_role.nil?
736
+ fail ArgumentError, "Missing the required parameter 'nested_role' when calling RepositoriesGemApi.remove_role"
737
+ end
738
+ # resource path
739
+ local_var_path = '{gem_gem_repository_href}remove_role/'.sub('{' + 'gem_gem_repository_href' + '}', CGI.escape(gem_gem_repository_href.to_s).gsub('%2F', '/'))
740
+
741
+ # query parameters
742
+ query_params = opts[:query_params] || {}
743
+
744
+ # header parameters
745
+ header_params = opts[:header_params] || {}
746
+ # HTTP header 'Accept' (if needed)
747
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
748
+ # HTTP header 'Content-Type'
749
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'])
750
+
751
+ # form parameters
752
+ form_params = opts[:form_params] || {}
753
+
754
+ # http body (model)
755
+ post_body = opts[:body] || @api_client.object_to_http_body(nested_role)
756
+
757
+ # return_type
758
+ return_type = opts[:return_type] || 'NestedRoleResponse'
759
+
760
+ # auth_names
761
+ auth_names = opts[:auth_names] || ['basicAuth']
762
+
763
+ new_options = opts.merge(
764
+ :header_params => header_params,
765
+ :query_params => query_params,
766
+ :form_params => form_params,
767
+ :body => post_body,
768
+ :auth_names => auth_names,
769
+ :return_type => return_type
770
+ )
771
+
772
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
773
+ if @api_client.config.debugging
774
+ @api_client.config.logger.debug "API called: RepositoriesGemApi#remove_role\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
775
+ end
776
+ return data, status_code, headers
777
+ end
778
+
497
779
  # Set a label
498
780
  # Set a single pulp_label on the object to a specific value or null.
499
781
  # @param gem_gem_repository_href [String]
@@ -0,0 +1,213 @@
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 PulpGemClient
16
+ class MyPermissionsResponse
17
+ attr_accessor :permissions
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'permissions' => :'permissions'
23
+ }
24
+ end
25
+
26
+ # Attribute type mapping.
27
+ def self.openapi_types
28
+ {
29
+ :'permissions' => :'Array<String>'
30
+ }
31
+ end
32
+
33
+ # List of attributes with nullable: true
34
+ def self.openapi_nullable
35
+ Set.new([
36
+ ])
37
+ end
38
+
39
+ # Initializes the object
40
+ # @param [Hash] attributes Model attributes in the form of hash
41
+ def initialize(attributes = {})
42
+ if (!attributes.is_a?(Hash))
43
+ fail ArgumentError, "The input argument (attributes) must be a hash in `PulpGemClient::MyPermissionsResponse` initialize method"
44
+ end
45
+
46
+ # check to see if the attribute exists and convert string to symbol for hash key
47
+ attributes = attributes.each_with_object({}) { |(k, v), h|
48
+ if (!self.class.attribute_map.key?(k.to_sym))
49
+ fail ArgumentError, "`#{k}` is not a valid attribute in `PulpGemClient::MyPermissionsResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
50
+ end
51
+ h[k.to_sym] = v
52
+ }
53
+
54
+ if attributes.key?(:'permissions')
55
+ if (value = attributes[:'permissions']).is_a?(Array)
56
+ self.permissions = value
57
+ end
58
+ end
59
+ end
60
+
61
+ # Show invalid properties with the reasons. Usually used together with valid?
62
+ # @return Array for valid properties with the reasons
63
+ def list_invalid_properties
64
+ invalid_properties = Array.new
65
+ if @permissions.nil?
66
+ invalid_properties.push('invalid value for "permissions", permissions cannot be nil.')
67
+ end
68
+
69
+ invalid_properties
70
+ end
71
+
72
+ # Check to see if the all the properties in the model are valid
73
+ # @return true if the model is valid
74
+ def valid?
75
+ return false if @permissions.nil?
76
+ true
77
+ end
78
+
79
+ # Checks equality by comparing each attribute.
80
+ # @param [Object] Object to be compared
81
+ def ==(o)
82
+ return true if self.equal?(o)
83
+ self.class == o.class &&
84
+ permissions == o.permissions
85
+ end
86
+
87
+ # @see the `==` method
88
+ # @param [Object] Object to be compared
89
+ def eql?(o)
90
+ self == o
91
+ end
92
+
93
+ # Calculates hash code according to all attributes.
94
+ # @return [Integer] Hash code
95
+ def hash
96
+ [permissions].hash
97
+ end
98
+
99
+ # Builds the object from hash
100
+ # @param [Hash] attributes Model attributes in the form of hash
101
+ # @return [Object] Returns the model itself
102
+ def self.build_from_hash(attributes)
103
+ new.build_from_hash(attributes)
104
+ end
105
+
106
+ # Builds the object from hash
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ # @return [Object] Returns the model itself
109
+ def build_from_hash(attributes)
110
+ return nil unless attributes.is_a?(Hash)
111
+ self.class.openapi_types.each_pair do |key, type|
112
+ if type =~ /\AArray<(.*)>/i
113
+ # check to ensure the input is an array given that the attribute
114
+ # is documented as an array but the input is not
115
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
116
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
117
+ end
118
+ elsif !attributes[self.class.attribute_map[key]].nil?
119
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
120
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
121
+ end
122
+
123
+ self
124
+ end
125
+
126
+ # Deserializes the data based on type
127
+ # @param string type Data type
128
+ # @param string value Value to be deserialized
129
+ # @return [Object] Deserialized data
130
+ def _deserialize(type, value)
131
+ case type.to_sym
132
+ when :DateTime
133
+ DateTime.parse(value)
134
+ when :Date
135
+ Date.parse(value)
136
+ when :String
137
+ value.to_s
138
+ when :Integer
139
+ value.to_i
140
+ when :Float
141
+ value.to_f
142
+ when :Boolean
143
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
144
+ true
145
+ else
146
+ false
147
+ end
148
+ when :Object
149
+ # generic object (usually a Hash), return directly
150
+ value
151
+ when /\AArray<(?<inner_type>.+)>\z/
152
+ inner_type = Regexp.last_match[:inner_type]
153
+ value.map { |v| _deserialize(inner_type, v) }
154
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
155
+ k_type = Regexp.last_match[:k_type]
156
+ v_type = Regexp.last_match[:v_type]
157
+ {}.tap do |hash|
158
+ value.each do |k, v|
159
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
160
+ end
161
+ end
162
+ else # model
163
+ PulpGemClient.const_get(type).build_from_hash(value)
164
+ end
165
+ end
166
+
167
+ # Returns the string representation of the object
168
+ # @return [String] String presentation of the object
169
+ def to_s
170
+ to_hash.to_s
171
+ end
172
+
173
+ # to_body is an alias to to_hash (backward compatibility)
174
+ # @return [Hash] Returns the object in the form of hash
175
+ def to_body
176
+ to_hash
177
+ end
178
+
179
+ # Returns the object in the form of hash
180
+ # @return [Hash] Returns the object in the form of hash
181
+ def to_hash
182
+ hash = {}
183
+ self.class.attribute_map.each_pair do |attr, param|
184
+ value = self.send(attr)
185
+ if value.nil?
186
+ is_nullable = self.class.openapi_nullable.include?(attr)
187
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
188
+ end
189
+
190
+ hash[param] = _to_hash(value)
191
+ end
192
+ hash
193
+ end
194
+
195
+ # Outputs non-array value in the form of hash
196
+ # For object, use to_hash. Otherwise, just return the value
197
+ # @param [Object] value Any valid value
198
+ # @return [Hash] Returns the value in the form of hash
199
+ def _to_hash(value)
200
+ if value.is_a?(Array)
201
+ value.compact.map { |v| _to_hash(v) }
202
+ elsif value.is_a?(Hash)
203
+ {}.tap do |hash|
204
+ value.each { |k, v| hash[k] = _to_hash(v) }
205
+ end
206
+ elsif value.respond_to? :to_hash
207
+ value.to_hash
208
+ else
209
+ value
210
+ end
211
+ end
212
+ end
213
+ end