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.
- checksums.yaml +4 -4
- data/README.md +14 -8
- data/docs/AsyncOperationResponse.md +8 -7
- data/docs/ContentGemApi.md +268 -66
- data/docs/ContentSummaryResponse.md +12 -11
- data/docs/DistributionsGemApi.md +388 -183
- data/docs/GemGemContentResponse.md +34 -29
- data/docs/GemGemDistribution.md +22 -21
- data/docs/GemGemDistributionResponse.md +34 -29
- data/docs/GemGemPublication.md +10 -9
- data/docs/GemGemPublicationResponse.md +18 -15
- data/docs/GemGemRemote.md +54 -53
- data/docs/GemGemRemoteResponse.md +54 -51
- data/docs/GemGemRemoteResponseHiddenFieldsInner.md +20 -0
- data/docs/GemGemRepository.md +16 -15
- data/docs/GemGemRepositoryResponse.md +28 -25
- data/docs/MyPermissionsResponse.md +8 -7
- data/docs/NestedRole.md +12 -11
- data/docs/NestedRoleResponse.md +12 -11
- data/docs/ObjectRolesResponse.md +8 -7
- data/docs/PaginatedRepositoryVersionResponseList.md +14 -13
- data/docs/PaginatedgemGemContentResponseList.md +14 -13
- data/docs/PaginatedgemGemDistributionResponseList.md +14 -13
- data/docs/PaginatedgemGemPublicationResponseList.md +14 -13
- data/docs/PaginatedgemGemRemoteResponseList.md +14 -13
- data/docs/PaginatedgemGemRepositoryResponseList.md +14 -13
- data/docs/PatchedgemGemDistribution.md +22 -21
- data/docs/PatchedgemGemRemote.md +54 -53
- data/docs/PatchedgemGemRepository.md +16 -15
- data/docs/PolicyEnum.md +4 -5
- data/docs/PublicationsGemApi.md +271 -132
- data/docs/RemotesGemApi.md +392 -185
- data/docs/Repair.md +8 -7
- data/docs/RepositoriesGemApi.md +449 -210
- data/docs/RepositoriesGemVersionsApi.md +155 -83
- data/docs/RepositoryAddRemoveContent.md +12 -11
- data/docs/RepositorySyncURL.md +10 -9
- data/docs/RepositoryVersionResponse.md +22 -19
- data/docs/SetLabel.md +10 -9
- data/docs/SetLabelResponse.md +10 -9
- data/docs/UnsetLabel.md +8 -7
- data/docs/UnsetLabelResponse.md +10 -9
- data/lib/pulp_gem_client/api/content_gem_api.rb +188 -25
- data/lib/pulp_gem_client/api/distributions_gem_api.rb +94 -58
- data/lib/pulp_gem_client/api/publications_gem_api.rb +81 -58
- data/lib/pulp_gem_client/api/remotes_gem_api.rb +109 -70
- data/lib/pulp_gem_client/api/repositories_gem_api.rb +116 -72
- data/lib/pulp_gem_client/api/repositories_gem_versions_api.rb +50 -37
- data/lib/pulp_gem_client/api_client.rb +137 -102
- data/lib/pulp_gem_client/api_error.rb +2 -1
- data/lib/pulp_gem_client/configuration.rb +162 -21
- data/lib/pulp_gem_client/models/async_operation_response.rb +32 -22
- data/lib/pulp_gem_client/models/content_summary_response.rb +36 -22
- data/lib/pulp_gem_client/models/gem_gem_content_response.rb +57 -25
- data/lib/pulp_gem_client/models/gem_gem_distribution.rb +34 -22
- data/lib/pulp_gem_client/models/gem_gem_distribution_response.rb +57 -25
- data/lib/pulp_gem_client/models/gem_gem_publication.rb +30 -22
- data/lib/pulp_gem_client/models/gem_gem_publication_response.rb +43 -25
- data/lib/pulp_gem_client/models/gem_gem_remote.rb +56 -22
- data/lib/pulp_gem_client/models/gem_gem_remote_response.rb +70 -26
- data/lib/pulp_gem_client/models/{gem_gem_remote_response_hidden_fields.rb → gem_gem_remote_response_hidden_fields_inner.rb} +37 -25
- data/lib/pulp_gem_client/models/gem_gem_repository.rb +32 -22
- data/lib/pulp_gem_client/models/gem_gem_repository_response.rb +45 -25
- data/lib/pulp_gem_client/models/my_permissions_response.rb +32 -22
- data/lib/pulp_gem_client/models/nested_role.rb +32 -22
- data/lib/pulp_gem_client/models/nested_role_response.rb +32 -22
- data/lib/pulp_gem_client/models/object_roles_response.rb +32 -22
- data/lib/pulp_gem_client/models/paginated_repository_version_response_list.rb +34 -22
- data/lib/pulp_gem_client/models/paginatedgem_gem_content_response_list.rb +34 -22
- data/lib/pulp_gem_client/models/paginatedgem_gem_distribution_response_list.rb +34 -22
- data/lib/pulp_gem_client/models/paginatedgem_gem_publication_response_list.rb +34 -22
- data/lib/pulp_gem_client/models/paginatedgem_gem_remote_response_list.rb +34 -22
- data/lib/pulp_gem_client/models/paginatedgem_gem_repository_response_list.rb +34 -22
- data/lib/pulp_gem_client/models/patchedgem_gem_distribution.rb +40 -24
- data/lib/pulp_gem_client/models/patchedgem_gem_remote.rb +62 -24
- data/lib/pulp_gem_client/models/patchedgem_gem_repository.rb +35 -23
- data/lib/pulp_gem_client/models/policy_enum.rb +8 -4
- data/lib/pulp_gem_client/models/repair.rb +30 -22
- data/lib/pulp_gem_client/models/repository_add_remove_content.rb +31 -23
- data/lib/pulp_gem_client/models/repository_sync_url.rb +30 -22
- data/lib/pulp_gem_client/models/repository_version_response.rb +44 -26
- data/lib/pulp_gem_client/models/set_label.rb +34 -22
- data/lib/pulp_gem_client/models/set_label_response.rb +34 -22
- data/lib/pulp_gem_client/models/unset_label.rb +33 -23
- data/lib/pulp_gem_client/models/unset_label_response.rb +33 -23
- data/lib/pulp_gem_client/version.rb +2 -2
- data/lib/pulp_gem_client.rb +2 -3
- data/pulp_gem_client.gemspec +9 -6
- data/spec/api/content_gem_api_spec.rb +38 -9
- data/spec/api/distributions_gem_api_spec.rb +15 -14
- data/spec/api/publications_gem_api_spec.rb +22 -20
- data/spec/api/remotes_gem_api_spec.rb +22 -20
- data/spec/api/repositories_gem_api_spec.rb +19 -18
- data/spec/api/repositories_gem_versions_api_spec.rb +16 -14
- data/spec/models/async_operation_response_spec.rb +7 -12
- data/spec/models/content_summary_response_spec.rb +9 -14
- data/spec/models/gem_gem_content_response_spec.rb +30 -23
- data/spec/models/gem_gem_distribution_response_spec.rb +30 -23
- data/spec/models/gem_gem_distribution_spec.rb +14 -19
- data/spec/models/gem_gem_publication_response_spec.rb +17 -16
- data/spec/models/gem_gem_publication_spec.rb +8 -13
- data/spec/models/{gem_gem_remote_response_hidden_fields_spec.rb → gem_gem_remote_response_hidden_fields_inner_spec.rb} +11 -16
- data/spec/models/gem_gem_remote_response_spec.rb +35 -34
- data/spec/models/gem_gem_remote_spec.rb +30 -35
- data/spec/models/gem_gem_repository_response_spec.rb +22 -21
- data/spec/models/gem_gem_repository_spec.rb +11 -16
- data/spec/models/my_permissions_response_spec.rb +7 -12
- data/spec/models/nested_role_response_spec.rb +9 -14
- data/spec/models/nested_role_spec.rb +9 -14
- data/spec/models/object_roles_response_spec.rb +7 -12
- data/spec/models/paginated_repository_version_response_list_spec.rb +10 -15
- data/spec/models/paginatedgem_gem_content_response_list_spec.rb +10 -15
- data/spec/models/paginatedgem_gem_distribution_response_list_spec.rb +10 -15
- data/spec/models/paginatedgem_gem_publication_response_list_spec.rb +10 -15
- data/spec/models/paginatedgem_gem_remote_response_list_spec.rb +10 -15
- data/spec/models/paginatedgem_gem_repository_response_list_spec.rb +10 -15
- data/spec/models/patchedgem_gem_distribution_spec.rb +14 -19
- data/spec/models/patchedgem_gem_remote_spec.rb +30 -35
- data/spec/models/patchedgem_gem_repository_spec.rb +11 -16
- data/spec/models/policy_enum_spec.rb +6 -11
- data/spec/models/repair_spec.rb +7 -12
- data/spec/models/repository_add_remove_content_spec.rb +9 -14
- data/spec/models/repository_sync_url_spec.rb +8 -13
- data/spec/models/repository_version_response_spec.rb +19 -18
- data/spec/models/set_label_response_spec.rb +8 -13
- data/spec/models/set_label_spec.rb +8 -13
- data/spec/models/unset_label_response_spec.rb +8 -13
- data/spec/models/unset_label_spec.rb +7 -12
- data/spec/spec_helper.rb +1 -1
- metadata +83 -63
- data/docs/GemGemContent.md +0 -21
- data/docs/GemGemRemoteResponseHiddenFields.md +0 -19
- data/lib/pulp_gem_client/models/gem_gem_content.rb +0 -228
- data/spec/api_client_spec.rb +0 -188
- data/spec/configuration_spec.rb +0 -42
- 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
|
-
|
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[:
|
60
|
+
post_body = opts[:debug_body]
|
61
61
|
|
62
62
|
# return_type
|
63
|
-
return_type = opts[:
|
63
|
+
return_type = opts[:debug_return_type] || 'AsyncOperationResponse'
|
64
64
|
|
65
65
|
# auth_names
|
66
|
-
auth_names = opts[:
|
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
|
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 * `pulp_id` - Pulp id * `-pulp_id` - Pulp id (descending) * `pulp_created` - Pulp created * `-pulp_created` - Pulp created (descending) * `pulp_last_updated` - Pulp last updated * `-pulp_last_updated` - Pulp last updated (descending) * `number` - Number * `-number` - Number (descending) * `complete` - Complete * `-complete` - Complete (descending) * `info` - Info * `-info` - Info (descending) * `pk` - Pk * `-pk` - Pk (descending)
|
99
|
-
# @option opts [
|
100
|
-
# @option opts [
|
101
|
-
# @option opts [
|
102
|
-
# @option opts [
|
103
|
-
# @option opts [
|
104
|
-
# @option opts [
|
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
|
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 * `pulp_id` - Pulp id * `-pulp_id` - Pulp id (descending) * `pulp_created` - Pulp created * `-pulp_created` - Pulp created (descending) * `pulp_last_updated` - Pulp last updated * `-pulp_last_updated` - Pulp last updated (descending) * `number` - Number * `-number` - Number (descending) * `complete` - Complete * `-complete` - Complete (descending) * `info` - Info * `-info` - Info (descending) * `pk` - Pk * `-pk` - Pk (descending)
|
130
|
-
# @option opts [
|
131
|
-
# @option opts [
|
132
|
-
# @option opts [
|
133
|
-
# @option opts [
|
134
|
-
# @option opts [
|
135
|
-
# @option opts [
|
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[:
|
196
|
+
post_body = opts[:debug_body]
|
190
197
|
|
191
198
|
# return_type
|
192
|
-
return_type = opts[:
|
199
|
+
return_type = opts[:debug_return_type] || 'PaginatedRepositoryVersionResponseList'
|
193
200
|
|
194
201
|
# auth_names
|
195
|
-
auth_names = opts[:
|
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[:
|
265
|
+
post_body = opts[:debug_body]
|
258
266
|
|
259
267
|
# return_type
|
260
|
-
return_type = opts[:
|
268
|
+
return_type = opts[:debug_return_type] || 'RepositoryVersionResponse'
|
261
269
|
|
262
270
|
# auth_names
|
263
|
-
auth_names = opts[:
|
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
|
-
|
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[:
|
337
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(repair)
|
326
338
|
|
327
339
|
# return_type
|
328
|
-
return_type = opts[:
|
340
|
+
return_type = opts[:debug_return_type] || 'AsyncOperationResponse'
|
329
341
|
|
330
342
|
# auth_names
|
331
|
-
auth_names = opts[:
|
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
|
-
|
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
|
-
|
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
|
74
|
-
|
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(:
|
81
|
-
:
|
68
|
+
fail ApiError.new(code: 0,
|
69
|
+
message: response.return_message)
|
82
70
|
else
|
83
|
-
fail ApiError.new(:
|
84
|
-
:
|
85
|
-
:
|
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 [
|
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
|
129
|
-
|
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
|
-
|
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
|
-
|
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 =~
|
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
|
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 '
|
306
|
+
when 'Time'
|
235
307
|
# parse date time (expecting ISO 8601 format)
|
236
|
-
|
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
|
255
|
-
PulpGemClient.const_get(return_type)
|
256
|
-
|
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.
|
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
|
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`
|
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
|
-
#
|
352
|
-
return
|
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
|
-
|
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
|
|