pulp_gem_client 0.6.1 → 0.7.0

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 (136) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -8
  3. data/docs/AsyncOperationResponse.md +8 -7
  4. data/docs/ContentGemApi.md +268 -66
  5. data/docs/ContentSummaryResponse.md +12 -11
  6. data/docs/DistributionsGemApi.md +388 -183
  7. data/docs/GemGemContentResponse.md +34 -29
  8. data/docs/GemGemDistribution.md +22 -21
  9. data/docs/GemGemDistributionResponse.md +34 -29
  10. data/docs/GemGemPublication.md +10 -9
  11. data/docs/GemGemPublicationResponse.md +18 -15
  12. data/docs/GemGemRemote.md +54 -53
  13. data/docs/GemGemRemoteResponse.md +54 -51
  14. data/docs/GemGemRemoteResponseHiddenFieldsInner.md +20 -0
  15. data/docs/GemGemRepository.md +16 -15
  16. data/docs/GemGemRepositoryResponse.md +28 -25
  17. data/docs/MyPermissionsResponse.md +8 -7
  18. data/docs/NestedRole.md +12 -11
  19. data/docs/NestedRoleResponse.md +12 -11
  20. data/docs/ObjectRolesResponse.md +8 -7
  21. data/docs/PaginatedRepositoryVersionResponseList.md +14 -13
  22. data/docs/PaginatedgemGemContentResponseList.md +14 -13
  23. data/docs/PaginatedgemGemDistributionResponseList.md +14 -13
  24. data/docs/PaginatedgemGemPublicationResponseList.md +14 -13
  25. data/docs/PaginatedgemGemRemoteResponseList.md +14 -13
  26. data/docs/PaginatedgemGemRepositoryResponseList.md +14 -13
  27. data/docs/PatchedgemGemDistribution.md +22 -21
  28. data/docs/PatchedgemGemRemote.md +54 -53
  29. data/docs/PatchedgemGemRepository.md +16 -15
  30. data/docs/PolicyEnum.md +4 -5
  31. data/docs/PublicationsGemApi.md +271 -132
  32. data/docs/RemotesGemApi.md +392 -185
  33. data/docs/Repair.md +8 -7
  34. data/docs/RepositoriesGemApi.md +449 -210
  35. data/docs/RepositoriesGemVersionsApi.md +155 -83
  36. data/docs/RepositoryAddRemoveContent.md +12 -11
  37. data/docs/RepositorySyncURL.md +10 -9
  38. data/docs/RepositoryVersionResponse.md +22 -19
  39. data/docs/SetLabel.md +10 -9
  40. data/docs/SetLabelResponse.md +10 -9
  41. data/docs/UnsetLabel.md +8 -7
  42. data/docs/UnsetLabelResponse.md +10 -9
  43. data/lib/pulp_gem_client/api/content_gem_api.rb +188 -25
  44. data/lib/pulp_gem_client/api/distributions_gem_api.rb +94 -58
  45. data/lib/pulp_gem_client/api/publications_gem_api.rb +81 -58
  46. data/lib/pulp_gem_client/api/remotes_gem_api.rb +109 -70
  47. data/lib/pulp_gem_client/api/repositories_gem_api.rb +116 -72
  48. data/lib/pulp_gem_client/api/repositories_gem_versions_api.rb +50 -37
  49. data/lib/pulp_gem_client/api_client.rb +137 -102
  50. data/lib/pulp_gem_client/api_error.rb +2 -1
  51. data/lib/pulp_gem_client/configuration.rb +162 -21
  52. data/lib/pulp_gem_client/models/async_operation_response.rb +32 -22
  53. data/lib/pulp_gem_client/models/content_summary_response.rb +36 -22
  54. data/lib/pulp_gem_client/models/gem_gem_content_response.rb +57 -25
  55. data/lib/pulp_gem_client/models/gem_gem_distribution.rb +34 -22
  56. data/lib/pulp_gem_client/models/gem_gem_distribution_response.rb +57 -25
  57. data/lib/pulp_gem_client/models/gem_gem_publication.rb +30 -22
  58. data/lib/pulp_gem_client/models/gem_gem_publication_response.rb +43 -25
  59. data/lib/pulp_gem_client/models/gem_gem_remote.rb +56 -22
  60. data/lib/pulp_gem_client/models/gem_gem_remote_response.rb +70 -26
  61. data/lib/pulp_gem_client/models/{gem_gem_remote_response_hidden_fields.rb → gem_gem_remote_response_hidden_fields_inner.rb} +37 -25
  62. data/lib/pulp_gem_client/models/gem_gem_repository.rb +32 -22
  63. data/lib/pulp_gem_client/models/gem_gem_repository_response.rb +45 -25
  64. data/lib/pulp_gem_client/models/my_permissions_response.rb +32 -22
  65. data/lib/pulp_gem_client/models/nested_role.rb +32 -22
  66. data/lib/pulp_gem_client/models/nested_role_response.rb +32 -22
  67. data/lib/pulp_gem_client/models/object_roles_response.rb +32 -22
  68. data/lib/pulp_gem_client/models/paginated_repository_version_response_list.rb +34 -22
  69. data/lib/pulp_gem_client/models/paginatedgem_gem_content_response_list.rb +34 -22
  70. data/lib/pulp_gem_client/models/paginatedgem_gem_distribution_response_list.rb +34 -22
  71. data/lib/pulp_gem_client/models/paginatedgem_gem_publication_response_list.rb +34 -22
  72. data/lib/pulp_gem_client/models/paginatedgem_gem_remote_response_list.rb +34 -22
  73. data/lib/pulp_gem_client/models/paginatedgem_gem_repository_response_list.rb +34 -22
  74. data/lib/pulp_gem_client/models/patchedgem_gem_distribution.rb +40 -24
  75. data/lib/pulp_gem_client/models/patchedgem_gem_remote.rb +62 -24
  76. data/lib/pulp_gem_client/models/patchedgem_gem_repository.rb +35 -23
  77. data/lib/pulp_gem_client/models/policy_enum.rb +8 -4
  78. data/lib/pulp_gem_client/models/repair.rb +30 -22
  79. data/lib/pulp_gem_client/models/repository_add_remove_content.rb +31 -23
  80. data/lib/pulp_gem_client/models/repository_sync_url.rb +30 -22
  81. data/lib/pulp_gem_client/models/repository_version_response.rb +44 -26
  82. data/lib/pulp_gem_client/models/set_label.rb +34 -22
  83. data/lib/pulp_gem_client/models/set_label_response.rb +34 -22
  84. data/lib/pulp_gem_client/models/unset_label.rb +33 -23
  85. data/lib/pulp_gem_client/models/unset_label_response.rb +33 -23
  86. data/lib/pulp_gem_client/version.rb +2 -2
  87. data/lib/pulp_gem_client.rb +2 -3
  88. data/pulp_gem_client.gemspec +9 -6
  89. data/spec/api/content_gem_api_spec.rb +38 -9
  90. data/spec/api/distributions_gem_api_spec.rb +15 -14
  91. data/spec/api/publications_gem_api_spec.rb +22 -20
  92. data/spec/api/remotes_gem_api_spec.rb +22 -20
  93. data/spec/api/repositories_gem_api_spec.rb +19 -18
  94. data/spec/api/repositories_gem_versions_api_spec.rb +16 -14
  95. data/spec/models/async_operation_response_spec.rb +7 -12
  96. data/spec/models/content_summary_response_spec.rb +9 -14
  97. data/spec/models/gem_gem_content_response_spec.rb +30 -23
  98. data/spec/models/gem_gem_distribution_response_spec.rb +30 -23
  99. data/spec/models/gem_gem_distribution_spec.rb +14 -19
  100. data/spec/models/gem_gem_publication_response_spec.rb +17 -16
  101. data/spec/models/gem_gem_publication_spec.rb +8 -13
  102. data/spec/models/{gem_gem_remote_response_hidden_fields_spec.rb → gem_gem_remote_response_hidden_fields_inner_spec.rb} +11 -16
  103. data/spec/models/gem_gem_remote_response_spec.rb +35 -34
  104. data/spec/models/gem_gem_remote_spec.rb +30 -35
  105. data/spec/models/gem_gem_repository_response_spec.rb +22 -21
  106. data/spec/models/gem_gem_repository_spec.rb +11 -16
  107. data/spec/models/my_permissions_response_spec.rb +7 -12
  108. data/spec/models/nested_role_response_spec.rb +9 -14
  109. data/spec/models/nested_role_spec.rb +9 -14
  110. data/spec/models/object_roles_response_spec.rb +7 -12
  111. data/spec/models/paginated_repository_version_response_list_spec.rb +10 -15
  112. data/spec/models/paginatedgem_gem_content_response_list_spec.rb +10 -15
  113. data/spec/models/paginatedgem_gem_distribution_response_list_spec.rb +10 -15
  114. data/spec/models/paginatedgem_gem_publication_response_list_spec.rb +10 -15
  115. data/spec/models/paginatedgem_gem_remote_response_list_spec.rb +10 -15
  116. data/spec/models/paginatedgem_gem_repository_response_list_spec.rb +10 -15
  117. data/spec/models/patchedgem_gem_distribution_spec.rb +14 -19
  118. data/spec/models/patchedgem_gem_remote_spec.rb +30 -35
  119. data/spec/models/patchedgem_gem_repository_spec.rb +11 -16
  120. data/spec/models/policy_enum_spec.rb +6 -11
  121. data/spec/models/repair_spec.rb +7 -12
  122. data/spec/models/repository_add_remove_content_spec.rb +9 -14
  123. data/spec/models/repository_sync_url_spec.rb +8 -13
  124. data/spec/models/repository_version_response_spec.rb +19 -18
  125. data/spec/models/set_label_response_spec.rb +8 -13
  126. data/spec/models/set_label_spec.rb +8 -13
  127. data/spec/models/unset_label_response_spec.rb +8 -13
  128. data/spec/models/unset_label_spec.rb +7 -12
  129. data/spec/spec_helper.rb +1 -1
  130. metadata +83 -63
  131. data/docs/GemGemContent.md +0 -21
  132. data/docs/GemGemRemoteResponseHiddenFields.md +0 -19
  133. data/lib/pulp_gem_client/models/gem_gem_content.rb +0 -228
  134. data/spec/api_client_spec.rb +0 -188
  135. data/spec/configuration_spec.rb +0 -42
  136. data/spec/models/gem_gem_content_spec.rb +0 -53
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: v3
7
7
  Contact: pulp-list@redhat.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ Generator version: 7.10.0
10
10
 
11
11
  =end
12
12
 
@@ -51,21 +51,22 @@ module PulpGemClient
51
51
  # header parameters
52
52
  header_params = opts[:header_params] || {}
53
53
  # HTTP header 'Accept' (if needed)
54
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
55
 
56
56
  # form parameters
57
57
  form_params = opts[:form_params] || {}
58
58
 
59
59
  # http body (model)
60
- post_body = opts[:body]
60
+ post_body = opts[:debug_body]
61
61
 
62
62
  # return_type
63
- return_type = opts[:return_type] || 'AsyncOperationResponse'
63
+ return_type = opts[:debug_return_type] || 'AsyncOperationResponse'
64
64
 
65
65
  # auth_names
66
- auth_names = opts[:auth_names] || ['basicAuth']
66
+ auth_names = opts[:debug_auth_names] || ['basicAuth']
67
67
 
68
68
  new_options = opts.merge(
69
+ :operation => :"RepositoriesGemVersionsApi.delete",
69
70
  :header_params => header_params,
70
71
  :query_params => query_params,
71
72
  :form_params => form_params,
@@ -85,8 +86,8 @@ module PulpGemClient
85
86
  # A ViewSet for a GemRepositoryVersion represents a single Gem repository version.
86
87
  # @param gem_gem_repository_href [String]
87
88
  # @param [Hash] opts the optional parameters
88
- # @option opts [String] :content Content Unit referenced by HREF
89
- # @option opts [String] :content__in Content Unit referenced by HREF
89
+ # @option opts [String] :content Content Unit referenced by HREF/PRN
90
+ # @option opts [Array<String>] :content__in Multiple values may be separated by commas.
90
91
  # @option opts [Integer] :limit Number of results to return per page.
91
92
  # @option opts [Integer] :number Filter results where number matches value
92
93
  # @option opts [Integer] :number__gt Filter results where number is greater than value
@@ -96,14 +97,16 @@ module PulpGemClient
96
97
  # @option opts [Array<Integer>] :number__range Filter results where number is between two comma separated values
97
98
  # @option opts [Integer] :offset The initial index from which to return the results.
98
99
  # @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;number&#x60; - Number * &#x60;-number&#x60; - Number (descending) * &#x60;complete&#x60; - Complete * &#x60;-complete&#x60; - Complete (descending) * &#x60;info&#x60; - Info * &#x60;-info&#x60; - Info (descending) * &#x60;pk&#x60; - Pk * &#x60;-pk&#x60; - Pk (descending)
99
- # @option opts [DateTime] :pulp_created Filter results where pulp_created matches value
100
- # @option opts [DateTime] :pulp_created__gt Filter results where pulp_created is greater than value
101
- # @option opts [DateTime] :pulp_created__gte Filter results where pulp_created is greater than or equal to value
102
- # @option opts [DateTime] :pulp_created__lt Filter results where pulp_created is less than value
103
- # @option opts [DateTime] :pulp_created__lte Filter results where pulp_created is less than or equal to value
104
- # @option opts [Array<DateTime>] :pulp_created__range Filter results where pulp_created is between two comma separated values
100
+ # @option opts [Array<String>] :prn__in Multiple values may be separated by commas.
101
+ # @option opts [Time] :pulp_created Filter results where pulp_created matches value
102
+ # @option opts [Time] :pulp_created__gt Filter results where pulp_created is greater than value
103
+ # @option opts [Time] :pulp_created__gte Filter results where pulp_created is greater than or equal to value
104
+ # @option opts [Boolean] :pulp_created__isnull Filter results where pulp_created has a null value
105
+ # @option opts [Time] :pulp_created__lt Filter results where pulp_created is less than value
106
+ # @option opts [Time] :pulp_created__lte Filter results where pulp_created is less than or equal to value
107
+ # @option opts [Array<Time>] :pulp_created__range Filter results where pulp_created is between two comma separated values
105
108
  # @option opts [Array<String>] :pulp_href__in Multiple values may be separated by commas.
106
- # @option opts [String] :q
109
+ # @option opts [String] :q Filter results by using NOT, AND and OR operations on other filters
107
110
  # @option opts [Array<String>] :fields A list of fields to include in the response.
108
111
  # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
109
112
  # @return [PaginatedRepositoryVersionResponseList]
@@ -116,8 +119,8 @@ module PulpGemClient
116
119
  # A ViewSet for a GemRepositoryVersion represents a single Gem repository version.
117
120
  # @param gem_gem_repository_href [String]
118
121
  # @param [Hash] opts the optional parameters
119
- # @option opts [String] :content Content Unit referenced by HREF
120
- # @option opts [String] :content__in Content Unit referenced by HREF
122
+ # @option opts [String] :content Content Unit referenced by HREF/PRN
123
+ # @option opts [Array<String>] :content__in Multiple values may be separated by commas.
121
124
  # @option opts [Integer] :limit Number of results to return per page.
122
125
  # @option opts [Integer] :number Filter results where number matches value
123
126
  # @option opts [Integer] :number__gt Filter results where number is greater than value
@@ -127,14 +130,16 @@ module PulpGemClient
127
130
  # @option opts [Array<Integer>] :number__range Filter results where number is between two comma separated values
128
131
  # @option opts [Integer] :offset The initial index from which to return the results.
129
132
  # @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;number&#x60; - Number * &#x60;-number&#x60; - Number (descending) * &#x60;complete&#x60; - Complete * &#x60;-complete&#x60; - Complete (descending) * &#x60;info&#x60; - Info * &#x60;-info&#x60; - Info (descending) * &#x60;pk&#x60; - Pk * &#x60;-pk&#x60; - Pk (descending)
130
- # @option opts [DateTime] :pulp_created Filter results where pulp_created matches value
131
- # @option opts [DateTime] :pulp_created__gt Filter results where pulp_created is greater than value
132
- # @option opts [DateTime] :pulp_created__gte Filter results where pulp_created is greater than or equal to value
133
- # @option opts [DateTime] :pulp_created__lt Filter results where pulp_created is less than value
134
- # @option opts [DateTime] :pulp_created__lte Filter results where pulp_created is less than or equal to value
135
- # @option opts [Array<DateTime>] :pulp_created__range Filter results where pulp_created is between two comma separated values
133
+ # @option opts [Array<String>] :prn__in Multiple values may be separated by commas.
134
+ # @option opts [Time] :pulp_created Filter results where pulp_created matches value
135
+ # @option opts [Time] :pulp_created__gt Filter results where pulp_created is greater than value
136
+ # @option opts [Time] :pulp_created__gte Filter results where pulp_created is greater than or equal to value
137
+ # @option opts [Boolean] :pulp_created__isnull Filter results where pulp_created has a null value
138
+ # @option opts [Time] :pulp_created__lt Filter results where pulp_created is less than value
139
+ # @option opts [Time] :pulp_created__lte Filter results where pulp_created is less than or equal to value
140
+ # @option opts [Array<Time>] :pulp_created__range Filter results where pulp_created is between two comma separated values
136
141
  # @option opts [Array<String>] :pulp_href__in Multiple values may be separated by commas.
137
- # @option opts [String] :q
142
+ # @option opts [String] :q Filter results by using NOT, AND and OR operations on other filters
138
143
  # @option opts [Array<String>] :fields A list of fields to include in the response.
139
144
  # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
140
145
  # @return [Array<(PaginatedRepositoryVersionResponseList, Integer, Hash)>] PaginatedRepositoryVersionResponseList data, response status code and response headers
@@ -156,7 +161,7 @@ module PulpGemClient
156
161
  # query parameters
157
162
  query_params = opts[:query_params] || {}
158
163
  query_params[:'content'] = opts[:'content'] if !opts[:'content'].nil?
159
- query_params[:'content__in'] = opts[:'content__in'] if !opts[:'content__in'].nil?
164
+ query_params[:'content__in'] = @api_client.build_collection_param(opts[:'content__in'], :csv) if !opts[:'content__in'].nil?
160
165
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
161
166
  query_params[:'number'] = opts[:'number'] if !opts[:'number'].nil?
162
167
  query_params[:'number__gt'] = opts[:'number__gt'] if !opts[:'number__gt'].nil?
@@ -166,9 +171,11 @@ module PulpGemClient
166
171
  query_params[:'number__range'] = @api_client.build_collection_param(opts[:'number__range'], :csv) if !opts[:'number__range'].nil?
167
172
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
168
173
  query_params[:'ordering'] = @api_client.build_collection_param(opts[:'ordering'], :csv) if !opts[:'ordering'].nil?
174
+ query_params[:'prn__in'] = @api_client.build_collection_param(opts[:'prn__in'], :csv) if !opts[:'prn__in'].nil?
169
175
  query_params[:'pulp_created'] = opts[:'pulp_created'] if !opts[:'pulp_created'].nil?
170
176
  query_params[:'pulp_created__gt'] = opts[:'pulp_created__gt'] if !opts[:'pulp_created__gt'].nil?
171
177
  query_params[:'pulp_created__gte'] = opts[:'pulp_created__gte'] if !opts[:'pulp_created__gte'].nil?
178
+ query_params[:'pulp_created__isnull'] = opts[:'pulp_created__isnull'] if !opts[:'pulp_created__isnull'].nil?
172
179
  query_params[:'pulp_created__lt'] = opts[:'pulp_created__lt'] if !opts[:'pulp_created__lt'].nil?
173
180
  query_params[:'pulp_created__lte'] = opts[:'pulp_created__lte'] if !opts[:'pulp_created__lte'].nil?
174
181
  query_params[:'pulp_created__range'] = @api_client.build_collection_param(opts[:'pulp_created__range'], :csv) if !opts[:'pulp_created__range'].nil?
@@ -180,21 +187,22 @@ module PulpGemClient
180
187
  # header parameters
181
188
  header_params = opts[:header_params] || {}
182
189
  # HTTP header 'Accept' (if needed)
183
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
190
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
184
191
 
185
192
  # form parameters
186
193
  form_params = opts[:form_params] || {}
187
194
 
188
195
  # http body (model)
189
- post_body = opts[:body]
196
+ post_body = opts[:debug_body]
190
197
 
191
198
  # return_type
192
- return_type = opts[:return_type] || 'PaginatedRepositoryVersionResponseList'
199
+ return_type = opts[:debug_return_type] || 'PaginatedRepositoryVersionResponseList'
193
200
 
194
201
  # auth_names
195
- auth_names = opts[:auth_names] || ['basicAuth']
202
+ auth_names = opts[:debug_auth_names] || ['basicAuth']
196
203
 
197
204
  new_options = opts.merge(
205
+ :operation => :"RepositoriesGemVersionsApi.list",
198
206
  :header_params => header_params,
199
207
  :query_params => query_params,
200
208
  :form_params => form_params,
@@ -248,21 +256,22 @@ module PulpGemClient
248
256
  # header parameters
249
257
  header_params = opts[:header_params] || {}
250
258
  # HTTP header 'Accept' (if needed)
251
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
259
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
252
260
 
253
261
  # form parameters
254
262
  form_params = opts[:form_params] || {}
255
263
 
256
264
  # http body (model)
257
- post_body = opts[:body]
265
+ post_body = opts[:debug_body]
258
266
 
259
267
  # return_type
260
- return_type = opts[:return_type] || 'RepositoryVersionResponse'
268
+ return_type = opts[:debug_return_type] || 'RepositoryVersionResponse'
261
269
 
262
270
  # auth_names
263
- auth_names = opts[:auth_names] || ['basicAuth']
271
+ auth_names = opts[:debug_auth_names] || ['basicAuth']
264
272
 
265
273
  new_options = opts.merge(
274
+ :operation => :"RepositoriesGemVersionsApi.read",
266
275
  :header_params => header_params,
267
276
  :query_params => query_params,
268
277
  :form_params => form_params,
@@ -314,23 +323,27 @@ module PulpGemClient
314
323
  # header parameters
315
324
  header_params = opts[:header_params] || {}
316
325
  # HTTP header 'Accept' (if needed)
317
- header_params['Accept'] = @api_client.select_header_accept(['application/json'])
326
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
318
327
  # HTTP header 'Content-Type'
319
- header_params['Content-Type'] = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'])
328
+ content_type = @api_client.select_header_content_type(['application/json', 'application/x-www-form-urlencoded', 'multipart/form-data'])
329
+ if !content_type.nil?
330
+ header_params['Content-Type'] = content_type
331
+ end
320
332
 
321
333
  # form parameters
322
334
  form_params = opts[:form_params] || {}
323
335
 
324
336
  # http body (model)
325
- post_body = opts[:body] || @api_client.object_to_http_body(repair)
337
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(repair)
326
338
 
327
339
  # return_type
328
- return_type = opts[:return_type] || 'AsyncOperationResponse'
340
+ return_type = opts[:debug_return_type] || 'AsyncOperationResponse'
329
341
 
330
342
  # auth_names
331
- auth_names = opts[:auth_names] || ['basicAuth']
343
+ auth_names = opts[:debug_auth_names] || ['basicAuth']
332
344
 
333
345
  new_options = opts.merge(
346
+ :operation => :"RepositoriesGemVersionsApi.repair",
334
347
  :header_params => header_params,
335
348
  :query_params => query_params,
336
349
  :form_params => form_params,
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: v3
7
7
  Contact: pulp-list@redhat.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ Generator version: 7.10.0
10
10
 
11
11
  =end
12
12
 
@@ -14,7 +14,12 @@ require 'date'
14
14
  require 'json'
15
15
  require 'logger'
16
16
  require 'tempfile'
17
+ require 'time'
17
18
  require 'faraday'
19
+ require 'faraday/multipart' if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
20
+ require 'marcel'
21
+ require 'pathname'
22
+
18
23
 
19
24
  module PulpGemClient
20
25
  class ApiClient
@@ -46,51 +51,38 @@ module PulpGemClient
46
51
  # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
47
52
  # the data deserialized from response body (could be nil), response status code and response headers.
48
53
  def call_api(http_method, path, opts = {})
49
- ssl_options = {
50
- :ca_file => @config.ssl_ca_file,
51
- :verify => @config.ssl_verify,
52
- :verify_mode => @config.ssl_verify_mode,
53
- :client_cert => @config.ssl_client_cert,
54
- :client_key => @config.ssl_client_key
55
- }
56
- request_options = {
57
- :params_encoder => @config.params_encoder
58
- }
59
- connection = Faraday.new(:url => config.base_url, :ssl => ssl_options, :request => request_options) do |conn|
60
- conn.basic_auth(config.username, config.password)
61
- if opts[:header_params]["Content-Type"] == "multipart/form-data"
62
- conn.request :multipart
63
- conn.request :url_encoded
64
- end
65
- conn.adapter(Faraday.default_adapter)
66
- end
67
-
54
+ stream = nil
68
55
  begin
69
- response = connection.public_send(http_method.to_sym.downcase) do |req|
70
- build_request(http_method, path, req, opts)
56
+ response = connection(opts).public_send(http_method.to_sym.downcase) do |req|
57
+ request = build_request(http_method, path, req, opts)
58
+ stream = download_file(request) if opts[:return_type] == 'File' || opts[:return_type] == 'Binary'
71
59
  end
72
60
 
73
- if @config.debugging
74
- @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
61
+ if config.debugging
62
+ config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
75
63
  end
76
64
 
77
65
  unless response.success?
78
- if response.status == 0
66
+ if response.status == 0 && response.respond_to?(:return_message)
79
67
  # Errors from libcurl will be made visible here
80
- fail ApiError.new(:code => 0,
81
- :message => response.return_message)
68
+ fail ApiError.new(code: 0,
69
+ message: response.return_message)
82
70
  else
83
- fail ApiError.new(:code => response.status,
84
- :response_headers => response.headers,
85
- :response_body => response.body),
71
+ fail ApiError.new(code: response.status,
72
+ response_headers: response.headers,
73
+ response_body: response.body),
86
74
  response.reason_phrase
87
75
  end
88
76
  end
89
77
  rescue Faraday::TimeoutError
90
78
  fail ApiError.new('Connection timed out')
79
+ rescue Faraday::ConnectionFailed
80
+ fail ApiError.new('Connection failed')
91
81
  end
92
82
 
93
- if opts[:return_type]
83
+ if opts[:return_type] == 'File' || opts[:return_type] == 'Binary'
84
+ data = deserialize_file(response, stream)
85
+ elsif opts[:return_type]
94
86
  data = deserialize(response, opts[:return_type])
95
87
  else
96
88
  data = nil
@@ -106,9 +98,9 @@ module PulpGemClient
106
98
  # @option opts [Hash] :query_params Query parameters
107
99
  # @option opts [Hash] :form_params Query parameters
108
100
  # @option opts [Object] :body HTTP body (JSON/XML)
109
- # @return [Typhoeus::Request] A Typhoeus Request
101
+ # @return [Faraday::Request] A Faraday Request
110
102
  def build_request(http_method, path, request, opts = {})
111
- url = build_request_url(path)
103
+ url = build_request_url(path, opts)
112
104
  http_method = http_method.to_sym.downcase
113
105
 
114
106
  header_params = @default_headers.merge(opts[:header_params] || {})
@@ -117,24 +109,21 @@ module PulpGemClient
117
109
 
118
110
  update_params_for_auth! header_params, query_params, opts[:auth_names]
119
111
 
120
- req_opts = {
121
- :params_encoding => @config.params_encoding,
122
- :timeout => @config.timeout,
123
- :verbose => @config.debugging
124
- }
125
-
126
112
  if [:post, :patch, :put, :delete].include?(http_method)
127
113
  req_body = build_request_body(header_params, form_params, opts[:body])
128
- if @config.debugging
129
- @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
114
+ if config.debugging
115
+ config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
130
116
  end
131
117
  end
132
118
  request.headers = header_params
133
119
  request.body = req_body
134
- request.options = OpenStruct.new(req_opts)
120
+
121
+ # Overload default options only if provided
122
+ request.options.params_encoder = config.params_encoder if config.params_encoder
123
+ request.options.timeout = config.timeout if config.timeout
124
+
135
125
  request.url url
136
126
  request.params = query_params
137
- download_file(request) if opts[:return_type] == 'File'
138
127
  request
139
128
  end
140
129
 
@@ -153,8 +142,7 @@ module PulpGemClient
153
142
  form_params.each do |key, value|
154
143
  case value
155
144
  when ::File, ::Tempfile
156
- # TODO hardcode to application/octet-stream, need better way to detect content type
157
- data[key] = Faraday::FilePart.new(value.path, 'application/octet-stream', value.path)
145
+ data[key] = Faraday::FilePart.new(value.path, Marcel::MimeType.for(Pathname.new(value.path)))
158
146
  when ::Array, nil
159
147
  # let Faraday handle Array and nil parameters
160
148
  data[key] = value
@@ -170,6 +158,95 @@ module PulpGemClient
170
158
  data
171
159
  end
172
160
 
161
+ def download_file(request)
162
+ stream = []
163
+
164
+ # handle streaming Responses
165
+ request.options.on_data = Proc.new do |chunk, overall_received_bytes|
166
+ stream << chunk
167
+ end
168
+
169
+ stream
170
+ end
171
+
172
+ def deserialize_file(response, stream)
173
+ body = response.body
174
+ encoding = body.encoding
175
+
176
+ # reconstruct content
177
+ content = stream.join
178
+ content = content.unpack('m').join if response.headers['Content-Transfer-Encoding'] == 'binary'
179
+ content = content.force_encoding(encoding)
180
+
181
+ # return byte stream
182
+ return content if @config.return_binary_data == true
183
+
184
+ # return file instead of binary data
185
+ content_disposition = response.headers['Content-Disposition']
186
+ if content_disposition && content_disposition =~ /filename=/i
187
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
188
+ prefix = sanitize_filename(filename)
189
+ else
190
+ prefix = 'download-'
191
+ end
192
+ prefix = prefix + '-' unless prefix.end_with?('-')
193
+
194
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
195
+ tempfile.write(content)
196
+ tempfile.close
197
+
198
+ config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
199
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
200
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
201
+ "explicitly with `tempfile.delete`"
202
+ tempfile
203
+ end
204
+
205
+ def connection(opts)
206
+ opts[:header_params]['Content-Type'] == 'multipart/form-data' ? connection_multipart : connection_regular
207
+ end
208
+
209
+ def connection_multipart
210
+ @connection_multipart ||= build_connection do |conn|
211
+ conn.request :multipart
212
+ conn.request :url_encoded
213
+ end
214
+ end
215
+
216
+ def connection_regular
217
+ @connection_regular ||= build_connection
218
+ end
219
+
220
+ def build_connection
221
+ Faraday.new(url: config.base_url, ssl: ssl_options, proxy: config.proxy) do |conn|
222
+ basic_auth(conn)
223
+ config.configure_middleware(conn)
224
+ yield(conn) if block_given?
225
+ conn.adapter(Faraday.default_adapter)
226
+ config.configure_connection(conn)
227
+ end
228
+ end
229
+
230
+ def ssl_options
231
+ {
232
+ ca_file: config.ssl_ca_file,
233
+ verify: config.ssl_verify,
234
+ verify_mode: config.ssl_verify_mode,
235
+ client_cert: config.ssl_client_cert,
236
+ client_key: config.ssl_client_key
237
+ }
238
+ end
239
+
240
+ def basic_auth(conn)
241
+ if config.username && config.password
242
+ if Gem::Version.new(Faraday::VERSION) >= Gem::Version.new('2.0')
243
+ conn.request(:authorization, :basic, config.username, config.password)
244
+ else
245
+ conn.request(:basic_auth, config.username, config.password)
246
+ end
247
+ end
248
+ end
249
+
173
250
  # Check if the given MIME is a JSON MIME.
174
251
  # JSON MIME examples:
175
252
  # application/json
@@ -179,7 +256,7 @@ module PulpGemClient
179
256
  # @param [String] mime MIME
180
257
  # @return [Boolean] True if the MIME is application/json
181
258
  def json_mime?(mime)
182
- (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
259
+ (mime == '*/*') || !(mime =~ /^Application\/.*json(?!p)(;.*)?/i).nil?
183
260
  end
184
261
 
185
262
  # Deserialize the response to the given return type.
@@ -188,15 +265,10 @@ module PulpGemClient
188
265
  # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
189
266
  def deserialize(response, return_type)
190
267
  body = response.body
191
-
192
- # handle file downloading - return the File instance processed in request callbacks
193
- # note that response body is empty when the file is written in chunks in request on_body callback
194
- return @tempfile if return_type == 'File'
195
-
196
268
  return nil if body.nil? || body.empty?
197
269
 
198
270
  # return response body directly for String return type
199
- return body if return_type == 'String'
271
+ return body.to_s if return_type == 'String'
200
272
 
201
273
  # ensuring a default content type
202
274
  content_type = response.headers['Content-Type'] || 'application/json'
@@ -206,7 +278,7 @@ module PulpGemClient
206
278
  begin
207
279
  data = JSON.parse("[#{body}]", :symbolize_names => true)[0]
208
280
  rescue JSON::ParserError => e
209
- if %w(String Date DateTime).include?(return_type)
281
+ if %w(String Date Time).include?(return_type)
210
282
  data = body
211
283
  else
212
284
  raise e
@@ -231,9 +303,9 @@ module PulpGemClient
231
303
  data.to_f
232
304
  when 'Boolean'
233
305
  data == true
234
- when 'DateTime'
306
+ when 'Time'
235
307
  # parse date time (expecting ISO 8601 format)
236
- DateTime.parse data
308
+ Time.parse data
237
309
  when 'Date'
238
310
  # parse date time (expecting ISO 8601 format)
239
311
  Date.parse data
@@ -251,46 +323,9 @@ module PulpGemClient
251
323
  data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
252
324
  end
253
325
  else
254
- # models, e.g. Pet
255
- PulpGemClient.const_get(return_type).build_from_hash(data)
256
- end
257
- end
258
-
259
- # Save response body into a file in (the defined) temporary folder, using the filename
260
- # from the "Content-Disposition" header if provided, otherwise a random filename.
261
- # The response body is written to the file in chunks in order to handle files which
262
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
263
- # process can use.
264
- #
265
- # @see Configuration#temp_folder_path
266
- def download_file(request)
267
- tempfile = nil
268
- encoding = nil
269
- request.on_headers do |response|
270
- content_disposition = response.headers['Content-Disposition']
271
- if content_disposition && content_disposition =~ /filename=/i
272
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
273
- prefix = sanitize_filename(filename)
274
- else
275
- prefix = 'download-'
276
- end
277
- prefix = prefix + '-' unless prefix.end_with?('-')
278
- encoding = response.body.encoding
279
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
280
- @tempfile = tempfile
281
- end
282
- request.on_body do |chunk|
283
- chunk.force_encoding(encoding)
284
- tempfile.write(chunk)
285
- end
286
- request.on_complete do |response|
287
- if tempfile
288
- tempfile.close
289
- @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
290
- "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
291
- "will be deleted automatically with GC. It's also recommended to delete the temp file "\
292
- "explicitly with `tempfile.delete`"
293
- end
326
+ # models (e.g. Pet) or oneOf
327
+ klass = PulpGemClient.const_get(return_type)
328
+ klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
294
329
  end
295
330
  end
296
331
 
@@ -300,16 +335,16 @@ module PulpGemClient
300
335
  # @param [String] filename the filename to be sanitized
301
336
  # @return [String] the sanitized filename
302
337
  def sanitize_filename(filename)
303
- filename.gsub(/.*[\/\\]/, '')
338
+ filename.split(/[\/\\]/).last
304
339
  end
305
340
 
306
- def build_request_url(path)
341
+ def build_request_url(path, opts = {})
307
342
  # Add leading and trailing slashes to path
308
343
  path = "/#{path}".gsub(/\/+/, '/')
309
- @config.base_url + path
344
+ @config.base_url(opts[:operation]) + path
310
345
  end
311
346
 
312
- # Update hearder and query params based on authentication settings.
347
+ # Update header and query params based on authentication settings.
313
348
  #
314
349
  # @param [Hash] header_params Header parameters
315
350
  # @param [Hash] query_params Query parameters
@@ -321,7 +356,7 @@ module PulpGemClient
321
356
  case auth_setting[:in]
322
357
  when 'header' then header_params[auth_setting[:key]] = auth_setting[:value]
323
358
  when 'query' then query_params[auth_setting[:key]] = auth_setting[:value]
324
- else fail ArgumentError, 'Authentication token must be in `query` of `header`'
359
+ else fail ArgumentError, 'Authentication token must be in `query` or `header`'
325
360
  end
326
361
  end
327
362
  end
@@ -348,8 +383,8 @@ module PulpGemClient
348
383
  # @param [Array] content_types array for Content-Type
349
384
  # @return [String] the Content-Type header (e.g. application/json)
350
385
  def select_header_content_type(content_types)
351
- # use application/json by default
352
- return 'application/json' if content_types.nil? || content_types.empty?
386
+ # return nil by default
387
+ return if content_types.nil? || content_types.empty?
353
388
  # use JSON when present, otherwise use the first one
354
389
  json_content_type = content_types.find { |s| json_mime?(s) }
355
390
  json_content_type || content_types.first
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: v3
7
7
  Contact: pulp-list@redhat.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
9
+ Generator version: 7.10.0
10
10
 
11
11
  =end
12
12
 
@@ -32,6 +32,7 @@ module PulpGemClient
32
32
  end
33
33
  else
34
34
  super arg
35
+ @message = arg
35
36
  end
36
37
  end
37
38