pulp_npm_client 0.1.0a4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +24 -10
  3. data/docs/AsyncOperationResponse.md +8 -7
  4. data/docs/ContentPackagesApi.md +126 -64
  5. data/docs/ContentSummaryResponse.md +12 -11
  6. data/docs/DistributionsNpmApi.md +362 -93
  7. data/docs/NpmNpmDistribution.md +18 -15
  8. data/docs/NpmNpmDistributionResponse.md +30 -21
  9. data/docs/NpmNpmRemote.md +48 -47
  10. data/docs/NpmNpmRemoteResponse.md +48 -43
  11. data/docs/NpmNpmRemoteResponseHiddenFieldsInner.md +20 -0
  12. data/docs/NpmNpmRepository.md +16 -15
  13. data/docs/NpmNpmRepositoryResponse.md +28 -23
  14. data/docs/NpmPackageResponse.md +22 -17
  15. data/docs/PaginatedRepositoryVersionResponseList.md +14 -13
  16. data/docs/PaginatednpmNpmDistributionResponseList.md +14 -13
  17. data/docs/PaginatednpmNpmRemoteResponseList.md +14 -13
  18. data/docs/PaginatednpmNpmRepositoryResponseList.md +14 -13
  19. data/docs/PaginatednpmPackageResponseList.md +14 -13
  20. data/docs/PatchednpmNpmDistribution.md +18 -15
  21. data/docs/PatchednpmNpmRemote.md +48 -47
  22. data/docs/PatchednpmNpmRepository.md +16 -15
  23. data/docs/PolicyEnum.md +4 -5
  24. data/docs/RemotesNpmApi.md +364 -99
  25. data/docs/Repair.md +8 -7
  26. data/docs/RepositoriesNpmApi.md +429 -110
  27. data/docs/RepositoriesNpmVersionsApi.md +156 -80
  28. data/docs/RepositoryAddRemoveContent.md +12 -11
  29. data/docs/RepositorySyncURL.md +10 -9
  30. data/docs/RepositoryVersionResponse.md +22 -17
  31. data/docs/SetLabel.md +20 -0
  32. data/docs/SetLabelResponse.md +20 -0
  33. data/docs/UnsetLabel.md +18 -0
  34. data/docs/UnsetLabelResponse.md +20 -0
  35. data/lib/pulp_npm_client/api/content_packages_api.rb +72 -44
  36. data/lib/pulp_npm_client/api/distributions_npm_api.rb +243 -47
  37. data/lib/pulp_npm_client/api/remotes_npm_api.rb +247 -57
  38. data/lib/pulp_npm_client/api/repositories_npm_api.rb +283 -55
  39. data/lib/pulp_npm_client/api/repositories_npm_versions_api.rb +71 -52
  40. data/lib/pulp_npm_client/api_client.rb +137 -102
  41. data/lib/pulp_npm_client/api_error.rb +2 -1
  42. data/lib/pulp_npm_client/configuration.rb +163 -22
  43. data/lib/pulp_npm_client/models/async_operation_response.rb +32 -22
  44. data/lib/pulp_npm_client/models/content_summary_response.rb +36 -22
  45. data/lib/pulp_npm_client/models/npm_npm_distribution.rb +51 -25
  46. data/lib/pulp_npm_client/models/npm_npm_distribution_response.rb +83 -27
  47. data/lib/pulp_npm_client/models/npm_npm_remote.rb +61 -25
  48. data/lib/pulp_npm_client/models/npm_npm_remote_response.rb +99 -41
  49. data/lib/pulp_npm_client/models/npm_npm_remote_response_hidden_fields_inner.rb +237 -0
  50. data/lib/pulp_npm_client/models/npm_npm_repository.rb +37 -25
  51. data/lib/pulp_npm_client/models/npm_npm_repository_response.rb +59 -27
  52. data/lib/pulp_npm_client/models/npm_package_response.rb +58 -24
  53. data/lib/pulp_npm_client/models/paginated_repository_version_response_list.rb +44 -22
  54. data/lib/pulp_npm_client/models/paginatednpm_npm_distribution_response_list.rb +44 -22
  55. data/lib/pulp_npm_client/models/paginatednpm_npm_remote_response_list.rb +44 -22
  56. data/lib/pulp_npm_client/models/paginatednpm_npm_repository_response_list.rb +44 -22
  57. data/lib/pulp_npm_client/models/paginatednpm_package_response_list.rb +44 -22
  58. data/lib/pulp_npm_client/models/patchednpm_npm_distribution.rb +57 -27
  59. data/lib/pulp_npm_client/models/patchednpm_npm_remote.rb +67 -27
  60. data/lib/pulp_npm_client/models/patchednpm_npm_repository.rb +40 -26
  61. data/lib/pulp_npm_client/models/policy_enum.rb +8 -4
  62. data/lib/pulp_npm_client/models/repair.rb +30 -22
  63. data/lib/pulp_npm_client/models/repository_add_remove_content.rb +33 -25
  64. data/lib/pulp_npm_client/models/repository_sync_url.rb +30 -22
  65. data/lib/pulp_npm_client/models/repository_version_response.rb +53 -25
  66. data/lib/pulp_npm_client/models/set_label.rb +264 -0
  67. data/lib/pulp_npm_client/models/set_label_response.rb +255 -0
  68. data/lib/pulp_npm_client/models/unset_label.rb +252 -0
  69. data/lib/pulp_npm_client/models/unset_label_response.rb +252 -0
  70. data/lib/pulp_npm_client/version.rb +2 -2
  71. data/lib/pulp_npm_client.rb +6 -3
  72. data/pulp_npm_client.gemspec +10 -7
  73. data/spec/api/content_packages_api_spec.rb +22 -16
  74. data/spec/api/distributions_npm_api_spec.rb +51 -14
  75. data/spec/api/remotes_npm_api_spec.rb +54 -19
  76. data/spec/api/repositories_npm_api_spec.rb +60 -15
  77. data/spec/api/repositories_npm_versions_api_spec.rb +23 -19
  78. data/spec/models/async_operation_response_spec.rb +7 -12
  79. data/spec/models/content_summary_response_spec.rb +9 -14
  80. data/spec/models/npm_npm_distribution_response_spec.rb +38 -19
  81. data/spec/models/npm_npm_distribution_spec.rb +17 -16
  82. data/spec/models/npm_npm_remote_response_hidden_fields_inner_spec.rb +42 -0
  83. data/spec/models/npm_npm_remote_response_spec.rb +42 -35
  84. data/spec/models/npm_npm_remote_spec.rb +27 -32
  85. data/spec/models/npm_npm_repository_response_spec.rb +27 -20
  86. data/spec/models/npm_npm_repository_spec.rb +11 -16
  87. data/spec/models/npm_package_response_spec.rb +24 -17
  88. data/spec/models/paginated_repository_version_response_list_spec.rb +10 -15
  89. data/spec/models/paginatednpm_npm_distribution_response_list_spec.rb +10 -15
  90. data/spec/models/paginatednpm_npm_remote_response_list_spec.rb +10 -15
  91. data/spec/models/paginatednpm_npm_repository_response_list_spec.rb +10 -15
  92. data/spec/models/paginatednpm_package_response_list_spec.rb +10 -15
  93. data/spec/models/patchednpm_npm_distribution_spec.rb +17 -16
  94. data/spec/models/patchednpm_npm_remote_spec.rb +27 -32
  95. data/spec/models/patchednpm_npm_repository_spec.rb +11 -16
  96. data/spec/models/policy_enum_spec.rb +6 -11
  97. data/spec/models/repair_spec.rb +7 -12
  98. data/spec/models/repository_add_remove_content_spec.rb +9 -14
  99. data/spec/models/repository_sync_url_spec.rb +8 -13
  100. data/spec/models/repository_version_response_spec.rb +24 -17
  101. data/spec/models/set_label_response_spec.rb +42 -0
  102. data/spec/models/set_label_spec.rb +42 -0
  103. data/spec/models/unset_label_response_spec.rb +42 -0
  104. data/spec/models/unset_label_spec.rb +36 -0
  105. data/spec/spec_helper.rb +1 -1
  106. metadata +94 -59
  107. data/docs/NpmPackage.md +0 -29
  108. data/docs/PulpNpmPackagesApi.md +0 -60
  109. data/git_push.sh +0 -58
  110. data/lib/pulp_npm_client/api/pulp_npm_packages_api.rb +0 -86
  111. data/lib/pulp_npm_client/models/npm_package.rb +0 -337
  112. data/spec/api/pulp_npm_packages_api_spec.rb +0 -48
  113. data/spec/api_client_spec.rb +0 -188
  114. data/spec/configuration_spec.rb +0 -42
  115. data/spec/models/npm_package_spec.rb +0 -77
@@ -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 PulpNpmClient
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 => :"RepositoriesNpmVersionsApi.delete",
69
70
  :header_params => header_params,
70
71
  :query_params => query_params,
71
72
  :form_params => form_params,
@@ -85,25 +86,29 @@ module PulpNpmClient
85
86
  # A ViewSet for a NpmRepositoryVersion represents a single Npm repository version.
86
87
  # @param npm_npm_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
- # @option opts [Integer] :number
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
93
94
  # @option opts [Integer] :number__gte Filter results where number is greater than or equal to value
94
95
  # @option opts [Integer] :number__lt Filter results where number is less than value
95
96
  # @option opts [Integer] :number__lte Filter results where number is less than or equal to value
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
- # @option opts [Array<String>] :ordering Ordering
99
- # @option opts [DateTime] :pulp_created ISO 8601 formatted dates are supported
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
105
- # @option opts [String] :fields A list of fields to include in the response.
106
- # @option opts [String] :exclude_fields A list of fields to exclude from the response.
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)
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
108
+ # @option opts [Array<String>] :pulp_href__in Multiple values may be separated by commas.
109
+ # @option opts [String] :q Filter results by using NOT, AND and OR operations on other filters
110
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
111
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
107
112
  # @return [PaginatedRepositoryVersionResponseList]
108
113
  def list(npm_npm_repository_href, opts = {})
109
114
  data, _status_code, _headers = list_with_http_info(npm_npm_repository_href, opts)
@@ -114,25 +119,29 @@ module PulpNpmClient
114
119
  # A ViewSet for a NpmRepositoryVersion represents a single Npm repository version.
115
120
  # @param npm_npm_repository_href [String]
116
121
  # @param [Hash] opts the optional parameters
117
- # @option opts [String] :content Content Unit referenced by HREF
118
- # @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.
119
124
  # @option opts [Integer] :limit Number of results to return per page.
120
- # @option opts [Integer] :number
125
+ # @option opts [Integer] :number Filter results where number matches value
121
126
  # @option opts [Integer] :number__gt Filter results where number is greater than value
122
127
  # @option opts [Integer] :number__gte Filter results where number is greater than or equal to value
123
128
  # @option opts [Integer] :number__lt Filter results where number is less than value
124
129
  # @option opts [Integer] :number__lte Filter results where number is less than or equal to value
125
130
  # @option opts [Array<Integer>] :number__range Filter results where number is between two comma separated values
126
131
  # @option opts [Integer] :offset The initial index from which to return the results.
127
- # @option opts [Array<String>] :ordering Ordering
128
- # @option opts [DateTime] :pulp_created ISO 8601 formatted dates are supported
129
- # @option opts [DateTime] :pulp_created__gt Filter results where pulp_created is greater than value
130
- # @option opts [DateTime] :pulp_created__gte Filter results where pulp_created is greater than or equal to value
131
- # @option opts [DateTime] :pulp_created__lt Filter results where pulp_created is less than value
132
- # @option opts [DateTime] :pulp_created__lte Filter results where pulp_created is less than or equal to value
133
- # @option opts [Array<DateTime>] :pulp_created__range Filter results where pulp_created is between two comma separated values
134
- # @option opts [String] :fields A list of fields to include in the response.
135
- # @option opts [String] :exclude_fields A list of fields to exclude from the response.
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)
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
141
+ # @option opts [Array<String>] :pulp_href__in Multiple values may be separated by commas.
142
+ # @option opts [String] :q Filter results by using NOT, AND and OR operations on other filters
143
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
144
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
136
145
  # @return [Array<(PaginatedRepositoryVersionResponseList, Integer, Hash)>] PaginatedRepositoryVersionResponseList data, response status code and response headers
137
146
  def list_with_http_info(npm_npm_repository_href, opts = {})
138
147
  if @api_client.config.debugging
@@ -142,7 +151,7 @@ module PulpNpmClient
142
151
  if @api_client.config.client_side_validation && npm_npm_repository_href.nil?
143
152
  fail ArgumentError, "Missing the required parameter 'npm_npm_repository_href' when calling RepositoriesNpmVersionsApi.list"
144
153
  end
145
- allowable_values = ["-added_memberships", "-base_version", "-complete", "-counts", "-distribution", "-group_roles", "-number", "-pk", "-publication", "-pulp_created", "-pulp_id", "-pulp_labels", "-pulp_last_updated", "-removed_memberships", "-repository", "-user_roles", "-versions", "added_memberships", "base_version", "complete", "counts", "distribution", "group_roles", "number", "pk", "publication", "pulp_created", "pulp_id", "pulp_labels", "pulp_last_updated", "removed_memberships", "repository", "user_roles", "versions"]
154
+ allowable_values = ["-complete", "-info", "-number", "-pk", "-pulp_created", "-pulp_id", "-pulp_last_updated", "complete", "info", "number", "pk", "pulp_created", "pulp_id", "pulp_last_updated"]
146
155
  if @api_client.config.client_side_validation && opts[:'ordering'] && !opts[:'ordering'].all? { |item| allowable_values.include?(item) }
147
156
  fail ArgumentError, "invalid value for \"ordering\", must include one of #{allowable_values}"
148
157
  end
@@ -152,7 +161,7 @@ module PulpNpmClient
152
161
  # query parameters
153
162
  query_params = opts[:query_params] || {}
154
163
  query_params[:'content'] = opts[:'content'] if !opts[:'content'].nil?
155
- 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?
156
165
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
157
166
  query_params[:'number'] = opts[:'number'] if !opts[:'number'].nil?
158
167
  query_params[:'number__gt'] = opts[:'number__gt'] if !opts[:'number__gt'].nil?
@@ -162,33 +171,38 @@ module PulpNpmClient
162
171
  query_params[:'number__range'] = @api_client.build_collection_param(opts[:'number__range'], :csv) if !opts[:'number__range'].nil?
163
172
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
164
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?
165
175
  query_params[:'pulp_created'] = opts[:'pulp_created'] if !opts[:'pulp_created'].nil?
166
176
  query_params[:'pulp_created__gt'] = opts[:'pulp_created__gt'] if !opts[:'pulp_created__gt'].nil?
167
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?
168
179
  query_params[:'pulp_created__lt'] = opts[:'pulp_created__lt'] if !opts[:'pulp_created__lt'].nil?
169
180
  query_params[:'pulp_created__lte'] = opts[:'pulp_created__lte'] if !opts[:'pulp_created__lte'].nil?
170
181
  query_params[:'pulp_created__range'] = @api_client.build_collection_param(opts[:'pulp_created__range'], :csv) if !opts[:'pulp_created__range'].nil?
171
- query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
172
- query_params[:'exclude_fields'] = opts[:'exclude_fields'] if !opts[:'exclude_fields'].nil?
182
+ query_params[:'pulp_href__in'] = @api_client.build_collection_param(opts[:'pulp_href__in'], :csv) if !opts[:'pulp_href__in'].nil?
183
+ query_params[:'q'] = opts[:'q'] if !opts[:'q'].nil?
184
+ query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :multi) if !opts[:'fields'].nil?
185
+ query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :multi) if !opts[:'exclude_fields'].nil?
173
186
 
174
187
  # header parameters
175
188
  header_params = opts[:header_params] || {}
176
189
  # HTTP header 'Accept' (if needed)
177
- 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']
178
191
 
179
192
  # form parameters
180
193
  form_params = opts[:form_params] || {}
181
194
 
182
195
  # http body (model)
183
- post_body = opts[:body]
196
+ post_body = opts[:debug_body]
184
197
 
185
198
  # return_type
186
- return_type = opts[:return_type] || 'PaginatedRepositoryVersionResponseList'
199
+ return_type = opts[:debug_return_type] || 'PaginatedRepositoryVersionResponseList'
187
200
 
188
201
  # auth_names
189
- auth_names = opts[:auth_names] || ['basicAuth']
202
+ auth_names = opts[:debug_auth_names] || ['basicAuth']
190
203
 
191
204
  new_options = opts.merge(
205
+ :operation => :"RepositoriesNpmVersionsApi.list",
192
206
  :header_params => header_params,
193
207
  :query_params => query_params,
194
208
  :form_params => form_params,
@@ -208,8 +222,8 @@ module PulpNpmClient
208
222
  # A ViewSet for a NpmRepositoryVersion represents a single Npm repository version.
209
223
  # @param npm_npm_repository_version_href [String]
210
224
  # @param [Hash] opts the optional parameters
211
- # @option opts [String] :fields A list of fields to include in the response.
212
- # @option opts [String] :exclude_fields A list of fields to exclude from the response.
225
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
226
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
213
227
  # @return [RepositoryVersionResponse]
214
228
  def read(npm_npm_repository_version_href, opts = {})
215
229
  data, _status_code, _headers = read_with_http_info(npm_npm_repository_version_href, opts)
@@ -220,8 +234,8 @@ module PulpNpmClient
220
234
  # A ViewSet for a NpmRepositoryVersion represents a single Npm repository version.
221
235
  # @param npm_npm_repository_version_href [String]
222
236
  # @param [Hash] opts the optional parameters
223
- # @option opts [String] :fields A list of fields to include in the response.
224
- # @option opts [String] :exclude_fields A list of fields to exclude from the response.
237
+ # @option opts [Array<String>] :fields A list of fields to include in the response.
238
+ # @option opts [Array<String>] :exclude_fields A list of fields to exclude from the response.
225
239
  # @return [Array<(RepositoryVersionResponse, Integer, Hash)>] RepositoryVersionResponse data, response status code and response headers
226
240
  def read_with_http_info(npm_npm_repository_version_href, opts = {})
227
241
  if @api_client.config.debugging
@@ -236,27 +250,28 @@ module PulpNpmClient
236
250
 
237
251
  # query parameters
238
252
  query_params = opts[:query_params] || {}
239
- query_params[:'fields'] = opts[:'fields'] if !opts[:'fields'].nil?
240
- query_params[:'exclude_fields'] = opts[:'exclude_fields'] if !opts[:'exclude_fields'].nil?
253
+ query_params[:'fields'] = @api_client.build_collection_param(opts[:'fields'], :multi) if !opts[:'fields'].nil?
254
+ query_params[:'exclude_fields'] = @api_client.build_collection_param(opts[:'exclude_fields'], :multi) if !opts[:'exclude_fields'].nil?
241
255
 
242
256
  # header parameters
243
257
  header_params = opts[:header_params] || {}
244
258
  # HTTP header 'Accept' (if needed)
245
- 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']
246
260
 
247
261
  # form parameters
248
262
  form_params = opts[:form_params] || {}
249
263
 
250
264
  # http body (model)
251
- post_body = opts[:body]
265
+ post_body = opts[:debug_body]
252
266
 
253
267
  # return_type
254
- return_type = opts[:return_type] || 'RepositoryVersionResponse'
268
+ return_type = opts[:debug_return_type] || 'RepositoryVersionResponse'
255
269
 
256
270
  # auth_names
257
- auth_names = opts[:auth_names] || ['basicAuth']
271
+ auth_names = opts[:debug_auth_names] || ['basicAuth']
258
272
 
259
273
  new_options = opts.merge(
274
+ :operation => :"RepositoriesNpmVersionsApi.read",
260
275
  :header_params => header_params,
261
276
  :query_params => query_params,
262
277
  :form_params => form_params,
@@ -308,23 +323,27 @@ module PulpNpmClient
308
323
  # header parameters
309
324
  header_params = opts[:header_params] || {}
310
325
  # HTTP header 'Accept' (if needed)
311
- 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']
312
327
  # HTTP header 'Content-Type'
313
- 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
314
332
 
315
333
  # form parameters
316
334
  form_params = opts[:form_params] || {}
317
335
 
318
336
  # http body (model)
319
- post_body = opts[:body] || @api_client.object_to_http_body(repair)
337
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(repair)
320
338
 
321
339
  # return_type
322
- return_type = opts[:return_type] || 'AsyncOperationResponse'
340
+ return_type = opts[:debug_return_type] || 'AsyncOperationResponse'
323
341
 
324
342
  # auth_names
325
- auth_names = opts[:auth_names] || ['basicAuth']
343
+ auth_names = opts[:debug_auth_names] || ['basicAuth']
326
344
 
327
345
  new_options = opts.merge(
346
+ :operation => :"RepositoriesNpmVersionsApi.repair",
328
347
  :header_params => header_params,
329
348
  :query_params => query_params,
330
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 PulpNpmClient
20
25
  class ApiClient
@@ -46,51 +51,38 @@ module PulpNpmClient
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 PulpNpmClient
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 PulpNpmClient
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 PulpNpmClient
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::UploadIO.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 PulpNpmClient
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 PulpNpmClient
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 PulpNpmClient
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 PulpNpmClient
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 PulpNpmClient
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 PulpNpmClient
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
- PulpNpmClient.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 = PulpNpmClient.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 PulpNpmClient
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 PulpNpmClient
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 PulpNpmClient
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