cloudinary 1.21.0 → 1.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +12 -2
- data/CHANGELOG.md +23 -0
- data/README.md +87 -237
- data/cloudinary.gemspec +10 -1
- data/lib/cloudinary/account_api.rb +2 -1
- data/lib/cloudinary/api.rb +737 -112
- data/lib/cloudinary/auth_token.rb +1 -1
- data/lib/cloudinary/base_api.rb +18 -2
- data/lib/cloudinary/uploader.rb +15 -7
- data/lib/cloudinary/utils.rb +26 -12
- data/lib/cloudinary/version.rb +1 -1
- data/vendor/assets/javascripts/cloudinary/jquery.cloudinary.js +10 -1
- metadata +4 -3
data/lib/cloudinary/api.rb
CHANGED
@@ -1,21 +1,33 @@
|
|
1
1
|
class Cloudinary::Api
|
2
2
|
extend Cloudinary::BaseApi
|
3
3
|
|
4
|
+
# Tests the reachability of the Cloudinary API.
|
5
|
+
#
|
6
|
+
# @param [Hash] options The optional parameters.
|
7
|
+
#
|
8
|
+
# @return [Cloudinary::Api::Response] The current status of the Cloudinary servers
|
9
|
+
#
|
10
|
+
# @raise [Cloudinary::Api::Error]
|
11
|
+
#
|
12
|
+
# @see https://cloudinary.com/documentation/admin_api#ping
|
4
13
|
def self.ping(options={})
|
5
14
|
call_api(:get, "ping", {}, options)
|
6
15
|
end
|
7
16
|
|
8
|
-
# Gets
|
17
|
+
# Gets cloud usage details.
|
9
18
|
#
|
10
|
-
#
|
11
|
-
# storage, bandwidth, requests, number of
|
19
|
+
# Returns a report detailing your current Cloudinary cloud usage details, including
|
20
|
+
# storage, bandwidth, requests, number of assets, and add-on usage.
|
12
21
|
# Note that numbers are updated periodically.
|
13
22
|
#
|
14
|
-
# @
|
23
|
+
# @param [Hash] options The optional parameters. See the
|
24
|
+
# {https://cloudinary.com/documentation/admin_api#usage Admin API} documentation.
|
15
25
|
#
|
16
|
-
# @param [Hash] options Additional options
|
17
26
|
# @return [Cloudinary::Api::Response]
|
27
|
+
#
|
18
28
|
# @raise [Cloudinary::Api:Error]
|
29
|
+
#
|
30
|
+
# @see https://cloudinary.com/documentation/admin_api#usage
|
19
31
|
def self.usage(options={})
|
20
32
|
uri = 'usage'
|
21
33
|
date = options[:date]
|
@@ -25,10 +37,32 @@ class Cloudinary::Api
|
|
25
37
|
call_api(:get, uri, {}, options)
|
26
38
|
end
|
27
39
|
|
40
|
+
# Lists all uploaded assets filtered by any specified options.
|
41
|
+
#
|
42
|
+
# @param [Hash] options The optional parameters. See the
|
43
|
+
# {https://cloudinary.com/documentation/admin_api#get_resources Admin API} documentation.
|
44
|
+
#
|
45
|
+
# @return [Cloudinary::Api::Response]
|
46
|
+
#
|
47
|
+
# @raise [Cloudinary::Api::Error]
|
48
|
+
#
|
49
|
+
# @see https://cloudinary.com/documentation/admin_api#get_resources
|
28
50
|
def self.resource_types(options={})
|
29
51
|
call_api(:get, "resources", {}, options)
|
30
52
|
end
|
31
53
|
|
54
|
+
# Lists all uploaded assets filtered by any specified options.
|
55
|
+
#
|
56
|
+
# see https://cloudinary.com/documentation/admin_api#get_resources Get all images
|
57
|
+
#
|
58
|
+
# @param [Hash] options The optional parameters. See the
|
59
|
+
# {https://cloudinary.com/documentation/admin_api#get_resources Admin API} documentation.
|
60
|
+
#
|
61
|
+
# @return [Cloudinary::Api::Response]
|
62
|
+
#
|
63
|
+
# @raise [Cloudinary::Api::Error]
|
64
|
+
#
|
65
|
+
# @see https://cloudinary.com/documentation/admin_api#get_resources
|
32
66
|
def self.resources(options={})
|
33
67
|
resource_type = options[:resource_type] || "image"
|
34
68
|
type = options[:type]
|
@@ -37,18 +71,61 @@ class Cloudinary::Api
|
|
37
71
|
call_api(:get, uri, only(options, :next_cursor, :max_results, :prefix, :tags, :context, :moderations, :direction, :start_at, :metadata), options)
|
38
72
|
end
|
39
73
|
|
74
|
+
# Lists assets with the specified tag.
|
75
|
+
#
|
76
|
+
# This method does not return matching deleted assets, even if they have been backed up.
|
77
|
+
#
|
78
|
+
# @param [String] tag The tag value.
|
79
|
+
# @param [Hash] options The optional parameters. See the
|
80
|
+
# {https://cloudinary.com/documentation/admin_api#get_resources_by_tag Admin API} documentation.
|
81
|
+
#
|
82
|
+
# @return [Cloudinary::Api::Response]
|
83
|
+
#
|
84
|
+
# @raise [Cloudinary::Api::Error]
|
85
|
+
#
|
86
|
+
# @see https://cloudinary.com/documentation/admin_api#get_resources_by_tag
|
40
87
|
def self.resources_by_tag(tag, options={})
|
41
88
|
resource_type = options[:resource_type] || "image"
|
42
89
|
uri = "resources/#{resource_type}/tags/#{tag}"
|
43
90
|
call_api(:get, uri, only(options, :next_cursor, :max_results, :tags, :context, :moderations, :direction, :metadata), options)
|
44
91
|
end
|
45
92
|
|
93
|
+
# Lists assets currently in the specified moderation queue and status.
|
94
|
+
#
|
95
|
+
# @param [String] kind Type of image moderation queue to list.
|
96
|
+
# Valid values: "manual", "webpurify", "aws_rek", or "metascan".
|
97
|
+
# @param [String] status Only assets with this moderation status will be returned.
|
98
|
+
# Valid values: "pending", "approved", "rejected".
|
99
|
+
# @param [Hash] options The optional parameters. See the
|
100
|
+
# {https://cloudinary.com/documentation/admin_api#get_resources_in_moderation_queues Admin API} documentation.
|
101
|
+
#
|
102
|
+
# @return [Cloudinary::Api::Response]
|
103
|
+
#
|
104
|
+
# @raise [Cloudinary::Api::Error]
|
105
|
+
#
|
106
|
+
# @see https://cloudinary.com/documentation/admin_api#get_resources_in_moderation_queues
|
46
107
|
def self.resources_by_moderation(kind, status, options={})
|
47
108
|
resource_type = options[:resource_type] || "image"
|
48
109
|
uri = "resources/#{resource_type}/moderations/#{kind}/#{status}"
|
49
110
|
call_api(:get, uri, only(options, :next_cursor, :max_results, :tags, :context, :moderations, :direction, :metadata), options)
|
50
111
|
end
|
51
112
|
|
113
|
+
# Lists assets with the specified contextual metadata.
|
114
|
+
#
|
115
|
+
# This method does not return matching deleted assets, even if they have been backed up.
|
116
|
+
#
|
117
|
+
# @param [String] key Only assets with this context key are returned.
|
118
|
+
# @param [String] value Only assets with this context value for the specified context key are returned.
|
119
|
+
# If this parameter is not provided, all assets with the specified context key are returned,
|
120
|
+
# regardless of the key value.
|
121
|
+
# @param [Hash] options The optional parameters. See the
|
122
|
+
# {https://cloudinary.com/documentation/admin_api#get_resources_by_context Admin API} documentation.
|
123
|
+
#
|
124
|
+
# @return [Cloudinary::Api::Response]
|
125
|
+
#
|
126
|
+
# @raise [Cloudinary::Api::Error]
|
127
|
+
#
|
128
|
+
# @see https://cloudinary.com/documentation/admin_api#get_resources_by_context
|
52
129
|
def self.resources_by_context(key, value=nil, options={})
|
53
130
|
resource_type = options[:resource_type] || "image"
|
54
131
|
uri = "resources/#{resource_type}/context"
|
@@ -58,6 +135,35 @@ class Cloudinary::Api
|
|
58
135
|
call_api(:get, uri, params, options)
|
59
136
|
end
|
60
137
|
|
138
|
+
# Returns the details of the specified asset and all its derived assets by asset id.
|
139
|
+
#
|
140
|
+
# Note that if you only need details about the original asset,
|
141
|
+
# you can also use the Uploader::upload or Uploader::explicit methods, which return the same information and
|
142
|
+
# are not rate limited.
|
143
|
+
#
|
144
|
+
# @param [String] asset_id The Asset ID of the asset.
|
145
|
+
# @param [Hash] options The optional parameters. See the <a href=https://cloudinary.com/documentation/admin_api#get_the_details_of_a_single_resource target="_blank"> Admin API</a> documentation.
|
146
|
+
#
|
147
|
+
# @return [Cloudinary::Api::Response]
|
148
|
+
#
|
149
|
+
# @see https://cloudinary.com/documentation/admin_api#get_the_details_of_a_single_resource
|
150
|
+
def self.resource_by_asset_id(asset_id, options={})
|
151
|
+
uri = "resources/#{asset_id}"
|
152
|
+
params = prepare_resource_details_params(options)
|
153
|
+
call_api(:get, uri, params, options)
|
154
|
+
end
|
155
|
+
|
156
|
+
# Lists assets with the specified public IDs.
|
157
|
+
#
|
158
|
+
# @param [String|Array] public_ids The requested public_ids (up to 100).
|
159
|
+
# @param [Hash] options The optional parameters. See the
|
160
|
+
# {https://cloudinary.com/documentation/admin_api#get_resources Admin API} documentation.
|
161
|
+
#
|
162
|
+
# @return [Cloudinary::Api::Response]
|
163
|
+
#
|
164
|
+
# @raise [Cloudinary::Api::Error]
|
165
|
+
#
|
166
|
+
# @see https://cloudinary.com/documentation/admin_api#get_resources
|
61
167
|
def self.resources_by_ids(public_ids, options={})
|
62
168
|
resource_type = options[:resource_type] || "image"
|
63
169
|
type = options[:type] || "upload"
|
@@ -65,28 +171,58 @@ class Cloudinary::Api
|
|
65
171
|
call_api(:get, uri, only(options, :tags, :context, :moderations).merge(:public_ids => public_ids), options)
|
66
172
|
end
|
67
173
|
|
174
|
+
# Lists assets with the specified asset IDs.
|
175
|
+
#
|
176
|
+
# @param [Object] asset_ids The requested asset IDs.
|
177
|
+
# @param [Hash] options The optional parameters. See the
|
178
|
+
# <a href=https://cloudinary.com/documentation/admin_api#get_resources target="_blank"> Admin API</a> documentation.
|
179
|
+
#
|
180
|
+
# @return [Cloudinary::Api::Response]
|
181
|
+
#
|
182
|
+
# @raise [Cloudinary::Api::Error]
|
183
|
+
#
|
184
|
+
# @see https://cloudinary.com/documentation/admin_api#get_resources
|
185
|
+
def self.resources_by_asset_ids(asset_ids, options={})
|
186
|
+
uri = "resources/by_asset_ids"
|
187
|
+
params = only(options, :public_ids, :tags, :moderations, :context)
|
188
|
+
params[:asset_ids] = asset_ids
|
189
|
+
call_api(:get, uri, params, options)
|
190
|
+
end
|
191
|
+
|
192
|
+
# Returns the details of the specified asset and all its derived assets.
|
193
|
+
#
|
194
|
+
# Note that if you only need details about the original asset,
|
195
|
+
# you can also use the Uploader::upload or Uploader::explicit methods, which return the same information and
|
196
|
+
# are not rate limited.
|
197
|
+
#
|
198
|
+
# @param [String] public_id The public ID of the asset.
|
199
|
+
# @param [Hash] options The optional parameters. See the
|
200
|
+
# {https://cloudinary.com/documentation/admin_api#get_the_details_of_a_single_resource Admin API} documentation.
|
201
|
+
#
|
202
|
+
# @return [Cloudinary::Api::Response]
|
203
|
+
#
|
204
|
+
# @raise [Cloudinary::Api::Error]
|
205
|
+
#
|
206
|
+
# @see https://cloudinary.com/documentation/admin_api#get_the_details_of_a_single_resource
|
68
207
|
def self.resource(public_id, options={})
|
69
208
|
resource_type = options[:resource_type] || "image"
|
70
209
|
type = options[:type] || "upload"
|
71
210
|
uri = "resources/#{resource_type}/#{type}/#{public_id}"
|
72
|
-
call_api(:get, uri,
|
73
|
-
only(options,
|
74
|
-
:cinemagraph_analysis,
|
75
|
-
:colors,
|
76
|
-
:coordinates,
|
77
|
-
:exif,
|
78
|
-
:faces,
|
79
|
-
:image_metadata,
|
80
|
-
:max_results,
|
81
|
-
:pages,
|
82
|
-
:phash,
|
83
|
-
:quality_analysis,
|
84
|
-
:derived_next_cursor,
|
85
|
-
:accessibility_analysis,
|
86
|
-
:versions
|
87
|
-
), options)
|
211
|
+
call_api(:get, uri, prepare_resource_details_params(options), options)
|
88
212
|
end
|
89
213
|
|
214
|
+
# Reverts to the latest backed up version of the specified deleted assets.
|
215
|
+
#
|
216
|
+
# @param [String|Array] public_ids The public IDs of the backed up assets to restore. They can be existing or
|
217
|
+
# deleted assets.
|
218
|
+
# @param [Hash] options The optional parameters. See the
|
219
|
+
# {https://cloudinary.com/documentation/admin_api#restore_resources Admin API} documentation.
|
220
|
+
#
|
221
|
+
# @return [Cloudinary::Api::Response]
|
222
|
+
#
|
223
|
+
# @raise [Cloudinary::Api::Error]
|
224
|
+
#
|
225
|
+
# @see https://cloudinary.com/documentation/admin_api#restore_resources
|
90
226
|
def self.restore(public_ids, options={})
|
91
227
|
resource_type = options[:resource_type] || "image"
|
92
228
|
type = options[:type] || "upload"
|
@@ -94,6 +230,20 @@ class Cloudinary::Api
|
|
94
230
|
call_api(:post, uri, { :public_ids => public_ids, :versions => options[:versions] }, options)
|
95
231
|
end
|
96
232
|
|
233
|
+
# Updates details of an existing asset.
|
234
|
+
#
|
235
|
+
# Update one or more of the attributes associated with a specified asset. Note that you can also update
|
236
|
+
# most attributes of an existing asset using the Uploader::explicit method, which is not rate limited.
|
237
|
+
#
|
238
|
+
# @param [String|Array] public_id The public ID of the asset to update.
|
239
|
+
# @param [Hash] options The optional parameters. See the
|
240
|
+
# {https://cloudinary.com/documentation/admin_api#update_details_of_an_existing_resource Admin API} documentation.
|
241
|
+
#
|
242
|
+
# @return [Cloudinary::Api::Response]
|
243
|
+
#
|
244
|
+
# @raise [Cloudinary::Api::Error]
|
245
|
+
#
|
246
|
+
# @see https://cloudinary.com/documentation/admin_api#update_details_of_an_existing_resource
|
97
247
|
def self.update(public_id, options={})
|
98
248
|
resource_type = options[:resource_type] || "image"
|
99
249
|
type = options[:type] || "upload"
|
@@ -118,6 +268,17 @@ class Cloudinary::Api
|
|
118
268
|
call_api(:post, uri, update_options, options)
|
119
269
|
end
|
120
270
|
|
271
|
+
# Deletes the specified assets.
|
272
|
+
#
|
273
|
+
# @param [String|Array] public_ids The public IDs of the assets to delete (up to 100).
|
274
|
+
# @param [Hash] options The optional parameters. See the
|
275
|
+
# {https://cloudinary.com/documentation/admin_api#sdelete_resources Admin API} documentation.
|
276
|
+
#
|
277
|
+
# @return [Cloudinary::Api::Response]
|
278
|
+
#
|
279
|
+
# @raise [Cloudinary::Api::Error]
|
280
|
+
#
|
281
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_resources
|
121
282
|
def self.delete_resources(public_ids, options={})
|
122
283
|
resource_type = options[:resource_type] || "image"
|
123
284
|
type = options[:type] || "upload"
|
@@ -125,6 +286,20 @@ class Cloudinary::Api
|
|
125
286
|
call_api(:delete, uri, delete_resource_params(options, :public_ids => public_ids ), options)
|
126
287
|
end
|
127
288
|
|
289
|
+
# Deletes assets by prefix.
|
290
|
+
#
|
291
|
+
# Delete up to 1000 original assets, along with their derived assets, where the public ID starts with the
|
292
|
+
# specified prefix.
|
293
|
+
#
|
294
|
+
# @param [String] prefix The Public ID prefix.
|
295
|
+
# @param [Hash] options The optional parameters. See the
|
296
|
+
# {https://cloudinary.com/documentation/admin_api#delete_resources Admin API} documentation.
|
297
|
+
#
|
298
|
+
# @return [Cloudinary::Api::Response]
|
299
|
+
#
|
300
|
+
# @raise [Cloudinary::Api::Error]
|
301
|
+
#
|
302
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_resources
|
128
303
|
def self.delete_resources_by_prefix(prefix, options={})
|
129
304
|
resource_type = options[:resource_type] || "image"
|
130
305
|
type = options[:type] || "upload"
|
@@ -132,6 +307,18 @@ class Cloudinary::Api
|
|
132
307
|
call_api(:delete, uri, delete_resource_params(options, :prefix => prefix), options)
|
133
308
|
end
|
134
309
|
|
310
|
+
# Deletes all assets of the specified asset and delivery type, including their derived assets.
|
311
|
+
#
|
312
|
+
# Supports deleting up to a maximum of 1000 original assets in a single call.
|
313
|
+
#
|
314
|
+
# @param [Hash] options The optional parameters. See the
|
315
|
+
# {https://cloudinary.com/documentation/admin_api#delete_resources Admin API} documentation.
|
316
|
+
#
|
317
|
+
# @return [Cloudinary::Api::Response]
|
318
|
+
#
|
319
|
+
# @raise [Cloudinary::Api::Error]
|
320
|
+
#
|
321
|
+
# https://cloudinary.com/documentation/admin_api#delete_resources
|
135
322
|
def self.delete_all_resources(options={})
|
136
323
|
resource_type = options[:resource_type] || "image"
|
137
324
|
type = options[:type] || "upload"
|
@@ -139,23 +326,53 @@ class Cloudinary::Api
|
|
139
326
|
call_api(:delete, uri, delete_resource_params(options, :all => true ), options)
|
140
327
|
end
|
141
328
|
|
329
|
+
# Deletes assets with the specified tag, including their derived assets.
|
330
|
+
#
|
331
|
+
# Supports deleting up to a maximum of 1000 original assets in a single call.
|
332
|
+
#
|
333
|
+
# @param [String] tag The tag value of the assets to delete.
|
334
|
+
# @param [Hash] options The optional parameters. See the
|
335
|
+
# {https://cloudinary.com/documentation/admin_api#delete_resources_by_tags Admin API} documentation.
|
336
|
+
#
|
337
|
+
# @return [Cloudinary::Api::Response]
|
338
|
+
#
|
339
|
+
# @raise [Cloudinary::Api::Error]
|
340
|
+
#
|
341
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_resources_by_tags
|
142
342
|
def self.delete_resources_by_tag(tag, options={})
|
143
343
|
resource_type = options[:resource_type] || "image"
|
144
344
|
uri = "resources/#{resource_type}/tags/#{tag}"
|
145
345
|
call_api(:delete, uri, delete_resource_params(options), options)
|
146
346
|
end
|
147
347
|
|
348
|
+
# Deletes the specified derived assets by derived asset ID.
|
349
|
+
#
|
350
|
+
# The derived asset IDs for a particular original asset are returned when calling the {.resource} method to
|
351
|
+
# return the details of a single asset.
|
352
|
+
#
|
353
|
+
# @param [String|Array] derived_resource_ids The derived asset IDs (up to 100 ids).
|
354
|
+
# @param [Hash] options The optional parameters.
|
355
|
+
#
|
356
|
+
# @return [Cloudinary::Api::Response]
|
357
|
+
#
|
358
|
+
# @raise [Cloudinary::Api::Error]
|
359
|
+
#
|
360
|
+
# @see https://cloudinary.com/documentation/admin_api##delete_resources
|
148
361
|
def self.delete_derived_resources(derived_resource_ids, options={})
|
149
362
|
uri = "derived_resources"
|
150
363
|
call_api(:delete, uri, { :derived_resource_ids => derived_resource_ids }, options)
|
151
364
|
end
|
152
365
|
|
153
|
-
#
|
154
|
-
#
|
155
|
-
# @param [String|
|
156
|
-
# @param [Hash]
|
157
|
-
# @
|
158
|
-
#
|
366
|
+
# Deletes derived assets identified by transformation and public_ids.
|
367
|
+
#
|
368
|
+
# @param [String|Array] public_ids The public IDs for which you want to delete derived assets.
|
369
|
+
# @param [String|Array|Hash] transformations The transformation(s) associated with the derived assets to delete.
|
370
|
+
# @param [Hash] options The optional parameters. See the
|
371
|
+
# {https://cloudinary.com/documentation/admin_api#resources Admin API} documentation.
|
372
|
+
#
|
373
|
+
# @return [Cloudinary::Api::Response]
|
374
|
+
#
|
375
|
+
# @raise [Cloudinary::Api::Error]
|
159
376
|
def self.delete_derived_by_transformation(public_ids, transformations, options={})
|
160
377
|
resource_type = options[:resource_type] || "image"
|
161
378
|
type = options[:type] || "upload"
|
@@ -166,29 +383,89 @@ class Cloudinary::Api
|
|
166
383
|
call_api(:delete, uri, params, options)
|
167
384
|
end
|
168
385
|
|
386
|
+
# Lists all the tags currently used for a specified asset type.
|
387
|
+
#
|
388
|
+
# @param [Hash] options The optional parameters. See the
|
389
|
+
# {https://cloudinary.com/documentation/admin_api#get_tags Admin API} documentation.
|
390
|
+
#
|
391
|
+
# @return [Cloudinary::Api::Response]
|
392
|
+
#
|
393
|
+
# @raise [Cloudinary::Api::Error]
|
394
|
+
#
|
395
|
+
# @see https://cloudinary.com/documentation/admin_api#get_tags
|
169
396
|
def self.tags(options={})
|
170
397
|
resource_type = options[:resource_type] || "image"
|
171
398
|
uri = "tags/#{resource_type}"
|
172
399
|
call_api(:get, uri, only(options, :next_cursor, :max_results, :prefix), options)
|
173
400
|
end
|
174
401
|
|
402
|
+
# Lists stored transformations.
|
403
|
+
#
|
404
|
+
# @param [Hash] options The optional parameters. See the
|
405
|
+
# {https://cloudinary.com/documentation/admin_api#get_transformations Admin API} documentation.
|
406
|
+
#
|
407
|
+
# @return [Cloudinary::Api::Response]
|
408
|
+
#
|
409
|
+
# @raise [Cloudinary::Api::Error]
|
410
|
+
#
|
411
|
+
# @see https://cloudinary.com/documentation/admin_api#get_transformations
|
175
412
|
def self.transformations(options={})
|
176
413
|
call_api(:get, "transformations", only(options, :named, :next_cursor, :max_results), options)
|
177
414
|
end
|
178
415
|
|
416
|
+
# Returns the details of a single transformation.
|
417
|
+
#
|
418
|
+
# @param [String|Array] transformation The transformation. Can be either a string or an array of parameters.
|
419
|
+
# For example: "w_150,h_100,c_fill" or array("width" => 150, "height" =>
|
420
|
+
# 100,"crop" => "fill").
|
421
|
+
# @param [Hash] options The optional parameters. See the
|
422
|
+
# {https://cloudinary.com/documentation/admin_api#get_transformation_details Admin API} documentation.
|
423
|
+
#
|
424
|
+
# @return [Cloudinary::Api::Response]
|
425
|
+
#
|
426
|
+
# @raise [Cloudinary::Api::Error]
|
427
|
+
#
|
428
|
+
# @see https://cloudinary.com/documentation/admin_api#get_transformation_details
|
179
429
|
def self.transformation(transformation, options={})
|
180
430
|
params = only(options, :next_cursor, :max_results)
|
181
431
|
params[:transformation] = Cloudinary::Utils.build_eager(transformation)
|
182
432
|
call_api(:get, "transformations", params, options)
|
183
433
|
end
|
184
434
|
|
435
|
+
# Deletes the specified stored transformation.
|
436
|
+
#
|
437
|
+
# Deleting a transformation also deletes all the stored derived assets based on this transformation (up to 1000).
|
438
|
+
# The method returns an error if there are more than 1000 derived assets based on this transformation.
|
439
|
+
#
|
440
|
+
# @param [String|Hash] transformation The transformation to delete. Can be either a string or an array of
|
441
|
+
# parameters. For example:
|
442
|
+
# "w_150,h_100,c_fill" or !{"width" => 150, "height" => 100,"crop" => "fill"}.
|
443
|
+
# @param [Hash] options The optional parameters. See the
|
444
|
+
# {https://cloudinary.com/documentation/admin_api#delete_transformation Admin API} documentation.
|
445
|
+
#
|
446
|
+
# @return [Cloudinary::Api::Response]
|
447
|
+
#
|
448
|
+
# @raise [Cloudinary::Api::Error]
|
449
|
+
#
|
450
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_transformation
|
185
451
|
def self.delete_transformation(transformation, options={})
|
186
452
|
call_api(:delete, "transformations", {:transformation => Cloudinary::Utils.build_eager(transformation)}, options)
|
187
453
|
end
|
188
454
|
|
189
|
-
#
|
190
|
-
#
|
191
|
-
#
|
455
|
+
# Updates the specified transformation.
|
456
|
+
#
|
457
|
+
# @param [String|Hash] transformation The transformation. Can be either a string or an array of parameters.
|
458
|
+
# For example: "w_150,h_100,c_fill" or !{"width" => 150, "height" =>
|
459
|
+
# 100,"crop" => "fill"}.
|
460
|
+
# @param [Hash] updates The update parameters. See the
|
461
|
+
# {https://cloudinary.com/documentation/admin_api#update_transformation Admin API} documentation.
|
462
|
+
# @param [Hash] options The optional parameters.
|
463
|
+
#
|
464
|
+
# @return [Cloudinary::Api::Response]
|
465
|
+
#
|
466
|
+
# @raise [Cloudinary::Api::Error]
|
467
|
+
#
|
468
|
+
# @see https://cloudinary.com/documentation/admin_api#update_transformation
|
192
469
|
def self.update_transformation(transformation, updates, options={})
|
193
470
|
params = only(updates, :allowed_for_strict)
|
194
471
|
params[:unsafe_update] = Cloudinary::Utils.build_eager(updates[:unsafe_update]) if updates[:unsafe_update]
|
@@ -196,6 +473,18 @@ class Cloudinary::Api
|
|
196
473
|
call_api(:put, "transformations", params, options)
|
197
474
|
end
|
198
475
|
|
476
|
+
# Creates a named transformation.
|
477
|
+
#
|
478
|
+
# @param [String] name The name of the transformation.
|
479
|
+
# @param [String|Hash] definition The transformation. Can be a string or a hash. For example:
|
480
|
+
# "w_150,h_100,c_fill" or !{"width" => 150, "height" => 100, "crop" => "fill"}.
|
481
|
+
# @param [Hash] options The optional parameters.
|
482
|
+
#
|
483
|
+
# @return [Cloudinary::Api::Response]
|
484
|
+
#
|
485
|
+
# @raise [Cloudinary::Api::Error]
|
486
|
+
#
|
487
|
+
# @see https://cloudinary.com/documentation/admin_api#create_named_transformation
|
199
488
|
def self.create_transformation(name, definition, options={})
|
200
489
|
params = {
|
201
490
|
:name => name,
|
@@ -205,93 +494,302 @@ class Cloudinary::Api
|
|
205
494
|
call_api(:post, "transformations", params, options)
|
206
495
|
end
|
207
496
|
|
208
|
-
# upload presets
|
497
|
+
# Lists existing upload presets.
|
498
|
+
#
|
499
|
+
# @param [Hash] options The optional parameters. See the
|
500
|
+
# {https://cloudinary.com/documentation/admin_api#get_upload_presets Admin API} documentation.
|
501
|
+
#
|
502
|
+
# @return [Cloudinary::Api::Response]
|
503
|
+
#
|
504
|
+
# @raise [Cloudinary::Api::Error]
|
505
|
+
#
|
506
|
+
# @see https://cloudinary.com/documentation/admin_api#get_upload_presets
|
209
507
|
def self.upload_presets(options={})
|
210
508
|
call_api(:get, "upload_presets", only(options, :next_cursor, :max_results), options)
|
211
509
|
end
|
212
510
|
|
511
|
+
# Retrieves the details of the specified upload preset.
|
512
|
+
#
|
513
|
+
# @param [String] name The name of the upload preset.
|
514
|
+
# @param [Hash] options The optional parameters. See the
|
515
|
+
# {https://cloudinary.com/documentation/admin_api#get_the_details_of_a_single_upload_preset Admin API}
|
516
|
+
# documentation.
|
517
|
+
#
|
518
|
+
# @return [Cloudinary::Api::Response]
|
519
|
+
#
|
520
|
+
# @raise [Cloudinary::Api::Error]
|
521
|
+
#
|
522
|
+
# @see https://cloudinary.com/documentation/admin_api#get_the_details_of_a_single_upload_preset
|
213
523
|
def self.upload_preset(name, options={})
|
214
524
|
call_api(:get, "upload_presets/#{name}", only(options, :max_results), options)
|
215
525
|
end
|
216
526
|
|
527
|
+
# Deletes the specified upload preset.
|
528
|
+
#
|
529
|
+
# @param [String] The name of the upload preset to delete.
|
530
|
+
# @param [Hash] options The optional parameters.
|
531
|
+
#
|
532
|
+
# @return [Cloudinary::Api::Response]
|
533
|
+
#
|
534
|
+
# @raise [Cloudinary::Api::Error]
|
535
|
+
#
|
536
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_an_upload_preset
|
217
537
|
def self.delete_upload_preset(name, options={})
|
218
538
|
call_api(:delete, "upload_presets/#{name}", {}, options)
|
219
539
|
end
|
220
540
|
|
541
|
+
# Updates the specified upload preset.
|
542
|
+
#
|
543
|
+
# @param [String] name The name of the upload preset.
|
544
|
+
# @param [Hash] options The optional parameters. See the
|
545
|
+
# {https://cloudinary.com/documentation/admin_api#update_an_upload_preset Admin API} documentation.
|
546
|
+
#
|
547
|
+
# @return [Cloudinary::Api::Response]
|
548
|
+
#
|
549
|
+
# @raise [Cloudinary::Api::Error]
|
550
|
+
#
|
551
|
+
# @see https://cloudinary.com/documentation/admin_api#update_an_upload_preset
|
221
552
|
def self.update_upload_preset(name, options={})
|
222
553
|
params = Cloudinary::Uploader.build_upload_params(options)
|
223
554
|
call_api(:put, "upload_presets/#{name}", params.merge(only(options, :unsigned, :disallow_public_id, :live)), options)
|
224
555
|
end
|
225
556
|
|
557
|
+
# Creates a new upload preset.
|
558
|
+
#
|
559
|
+
# @param [Hash] options The optional parameters. See the
|
560
|
+
# {https://cloudinary.com/documentation/admin_api#create_an_upload_preset Admin API} documentation.
|
561
|
+
#
|
562
|
+
# @return [Cloudinary::Api::Response]
|
563
|
+
#
|
564
|
+
# @raise [Cloudinary::Api::Error]
|
565
|
+
#
|
566
|
+
# @see https://cloudinary.com/documentation/admin_api#create_an_upload_preset
|
226
567
|
def self.create_upload_preset(options={})
|
227
568
|
params = Cloudinary::Uploader.build_upload_params(options)
|
228
569
|
call_api(:post, "upload_presets", params.merge(only(options, :name, :unsigned, :disallow_public_id, :live)), options)
|
229
570
|
end
|
230
571
|
|
572
|
+
# Lists all root folders.
|
573
|
+
#
|
574
|
+
# @param [Hash] options The optional parameters. See the
|
575
|
+
# {https://cloudinary.com/documentation/admin_api#get_root_folders Admin API} documentation.
|
576
|
+
#
|
577
|
+
# @return [Cloudinary::Api::Response]
|
578
|
+
#
|
579
|
+
# @raise [Cloudinary::Api::Error]
|
580
|
+
#
|
581
|
+
# @see https://cloudinary.com/documentation/admin_api#get_root_folders
|
231
582
|
def self.root_folders(options={})
|
232
583
|
params = only(options, :max_results, :next_cursor)
|
233
584
|
call_api(:get, "folders", params, options)
|
234
585
|
end
|
235
586
|
|
587
|
+
# Lists sub-folders.
|
588
|
+
#
|
589
|
+
# Returns the name and path of all the sub-folders of a specified parent folder. Limited to 2000 results.
|
590
|
+
#
|
591
|
+
# @param [String] of_folder_path The parent folder.
|
592
|
+
# @param [Hash] options The optional parameters. See the
|
593
|
+
# {https://cloudinary.com/documentation/admin_api#get_subfolders Admin API} documentation.
|
594
|
+
#
|
595
|
+
# @return [Cloudinary::Api::Response]
|
596
|
+
#
|
597
|
+
# @raise [Cloudinary::Api::Error]
|
598
|
+
#
|
599
|
+
# @see https://cloudinary.com/documentation/admin_api#get_subfolders
|
236
600
|
def self.subfolders(of_folder_path, options={})
|
237
601
|
params = only(options, :max_results, :next_cursor)
|
238
602
|
call_api(:get, "folders/#{of_folder_path}", params, options)
|
239
603
|
end
|
240
604
|
|
605
|
+
# Deletes an empty folder.
|
606
|
+
#
|
607
|
+
# The specified folder cannot contain any assets, but can have empty descendant sub-folders.
|
608
|
+
#
|
609
|
+
# @param [String] path The full path of the empty folder to delete.
|
610
|
+
# @param [Hash] options The optional parameters.
|
611
|
+
#
|
612
|
+
# @return [Cloudinary::Api::Response]
|
613
|
+
#
|
614
|
+
# @raise [Cloudinary::Api::Error]
|
615
|
+
#
|
616
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_folder
|
241
617
|
def self.delete_folder(path, options={})
|
242
618
|
call_api(:delete, "folders/#{path}", {}, options)
|
243
619
|
end
|
244
620
|
|
621
|
+
# Creates a new empty folder.
|
622
|
+
#
|
623
|
+
# @param [String] folder_name The full path of the new folder to create.
|
624
|
+
# @param [Hash] options The optional parameters.
|
625
|
+
#
|
626
|
+
# @return [Cloudinary::Api::Response]
|
627
|
+
#
|
628
|
+
# @raise [Cloudinary::Api::Error]
|
629
|
+
#
|
630
|
+
# @see https://cloudinary.com/documentation/admin_api#create_folder
|
245
631
|
def self.create_folder(folder_name, options={})
|
246
632
|
call_api(:post, "folders/#{folder_name}", {}, options)
|
247
633
|
end
|
248
634
|
|
635
|
+
# Lists upload mappings by folder and its mapped template (URL).
|
636
|
+
#
|
637
|
+
# @param [Hash] options The optional parameters. See the
|
638
|
+
# {https://cloudinary.com/documentation/admin_api#get_upload_mapping Admin API} documentation.
|
639
|
+
#
|
640
|
+
# @return [Cloudinary::Api::Response]
|
641
|
+
#
|
642
|
+
# @raise [Cloudinary::Api::Error]
|
643
|
+
#
|
644
|
+
# @see https://cloudinary.com/documentation/admin_api#get_upload_mappings
|
249
645
|
def self.upload_mappings(options={})
|
250
646
|
params = only(options, :next_cursor, :max_results)
|
251
647
|
call_api(:get, :upload_mappings, params, options)
|
252
648
|
end
|
253
649
|
|
650
|
+
# Returns the details of the specified upload mapping.
|
651
|
+
#
|
652
|
+
# Retrieve the mapped template (URL) of a specified upload mapping folder.
|
653
|
+
#
|
654
|
+
# @param [String] name The name of the upload mapping folder.
|
655
|
+
# @param [Hash] options The optional parameters.
|
656
|
+
#
|
657
|
+
# @return [Cloudinary::Api::Response]
|
658
|
+
#
|
659
|
+
# @raise [Cloudinary::Api::Error]
|
660
|
+
#
|
661
|
+
# @see https://cloudinary.com/documentation/admin_api#get_the_details_of_a_single_upload_mapping
|
254
662
|
def self.upload_mapping(name=nil, options={})
|
255
663
|
call_api(:get, 'upload_mappings', { :folder => name }, options)
|
256
664
|
end
|
257
665
|
|
666
|
+
# Deletes an upload mapping.
|
667
|
+
#
|
668
|
+
# @param [String] name The name of the upload mapping folder to delete.
|
669
|
+
# @param [Hash] options The optional parameters.
|
670
|
+
#
|
671
|
+
# @return [Cloudinary::Api::Response]
|
672
|
+
#
|
673
|
+
# @raise [Cloudinary::Api::Error]
|
674
|
+
#
|
675
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_an_upload_mapping
|
258
676
|
def self.delete_upload_mapping(name, options={})
|
259
677
|
call_api(:delete, 'upload_mappings', { :folder => name }, options)
|
260
678
|
end
|
261
679
|
|
680
|
+
# Updates an existing upload mapping with a new template (URL).
|
681
|
+
#
|
682
|
+
# @param [String] name The name of the upload mapping folder to remap.
|
683
|
+
# @param [Hash] options The optional parameters. See the
|
684
|
+
# {https://cloudinary.com/documentation/admin_api#update_an_upload_mapping Admin API} documentation.
|
685
|
+
#
|
686
|
+
# @return [Cloudinary::Api::Response]
|
687
|
+
#
|
688
|
+
# @raise [Cloudinary::Api::Error]
|
689
|
+
#
|
690
|
+
# @see https://cloudinary.com/documentation/admin_api#update_an_upload_mapping
|
262
691
|
def self.update_upload_mapping(name, options={})
|
263
692
|
params = only(options, :template)
|
264
693
|
params[:folder] = name
|
265
694
|
call_api(:put, 'upload_mappings', params, options)
|
266
695
|
end
|
267
696
|
|
697
|
+
# Creates a new upload mapping.
|
698
|
+
#
|
699
|
+
# @param [String] name The name of the folder to map.
|
700
|
+
# @param [Hash] options The optional parameters. See the
|
701
|
+
# {https://cloudinary.com/documentation/admin_api#create_an_upload_mapping Admin API} documentation.
|
702
|
+
#
|
703
|
+
# @return [Cloudinary::Api::Response]
|
704
|
+
#
|
705
|
+
# @raise [Cloudinary::Api::Error]
|
706
|
+
#
|
707
|
+
# @see https://cloudinary.com/documentation/admin_api#create_an_upload_mapping
|
268
708
|
def self.create_upload_mapping(name, options={})
|
269
709
|
params = only(options, :template)
|
270
710
|
params[:folder] = name
|
271
711
|
call_api(:post, 'upload_mappings', params, options)
|
272
712
|
end
|
273
713
|
|
714
|
+
# Creates a new, custom streaming profile.
|
715
|
+
#
|
716
|
+
# @param [String] name The name to assign to the new streaming profile.
|
717
|
+
# The name is case-insensitive and can contain alphanumeric characters, underscores (_) and
|
718
|
+
# hyphens (-). If the name is of a predefined profile, the profile will be modified.
|
719
|
+
# @param [Hash] options The optional parameters. See the
|
720
|
+
# {https://cloudinary.com/documentation/admin_api#create_a_streaming_profile Admin API} documentation.
|
721
|
+
#
|
722
|
+
# @return [Cloudinary::Api::Response]
|
723
|
+
#
|
724
|
+
# @raise [Cloudinary::Api::Error]
|
725
|
+
#
|
726
|
+
# @see https://cloudinary.com/documentation/admin_api#create_a_streaming_profile
|
274
727
|
def self.create_streaming_profile(name, options={})
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
728
|
+
params = only(options, :display_name, :representations)
|
729
|
+
params[:representations] = params[:representations].map do |r|
|
730
|
+
{:transformation => Cloudinary::Utils.generate_transformation_string(r[:transformation])}
|
731
|
+
end.to_json
|
732
|
+
params[:name] = name
|
733
|
+
call_api(:post, 'streaming_profiles', params, options)
|
281
734
|
end
|
282
735
|
|
736
|
+
# Lists streaming profiles including built-in and custom profiles.
|
737
|
+
#
|
738
|
+
# @return [Cloudinary::Api::Response]
|
739
|
+
#
|
740
|
+
# @raise [Cloudinary::Api::Error]
|
741
|
+
#
|
742
|
+
# @see https://cloudinary.com/documentation/admin_api#get_adaptive_streaming_profiles
|
283
743
|
def self.list_streaming_profiles
|
284
744
|
call_api(:get, 'streaming_profiles', {}, {})
|
285
745
|
end
|
286
746
|
|
747
|
+
# Deletes or reverts the specified streaming profile.
|
748
|
+
#
|
749
|
+
# For custom streaming profiles, deletes the specified profile.
|
750
|
+
# For built-in streaming profiles, if the built-in profile was modified, reverts the profile to the original
|
751
|
+
# settings.
|
752
|
+
# For built-in streaming profiles that have not been modified, the Delete method returns an error.
|
753
|
+
#
|
754
|
+
# @param [String] name The name of the streaming profile to delete or revert.
|
755
|
+
# @param [Hash] options The optional parameters.
|
756
|
+
#
|
757
|
+
# @return [Cloudinary::Api::Response]
|
758
|
+
#
|
759
|
+
# @raise [Cloudinary::Api::Error]
|
760
|
+
#
|
761
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_or_revert_the_specified_streaming_profile
|
287
762
|
def self.delete_streaming_profile(name, options={})
|
288
763
|
call_api(:delete, "streaming_profiles/#{name}", {}, options)
|
289
764
|
end
|
290
765
|
|
766
|
+
# Gets details of a single streaming profile by name.
|
767
|
+
#
|
768
|
+
# @param [String] name The identification name of the streaming profile.
|
769
|
+
# @param [Hash] options The optional parameters.
|
770
|
+
#
|
771
|
+
# @return [Cloudinary::Api::Response]
|
772
|
+
#
|
773
|
+
# @raise [Cloudinary::Api::Error]
|
774
|
+
#
|
775
|
+
# @see https://cloudinary.com/documentation/admin_api#get_details_of_a_single_streaming_profile
|
291
776
|
def self.get_streaming_profile(name, options={})
|
292
777
|
call_api(:get, "streaming_profiles/#{name}", {}, options)
|
293
778
|
end
|
294
779
|
|
780
|
+
# Updates an existing streaming profile.
|
781
|
+
#
|
782
|
+
# You can update both custom and built-in profiles. The specified list of representations replaces the previous list.
|
783
|
+
#
|
784
|
+
# @param [String] name The name of the streaming profile to update.
|
785
|
+
# @param [Hash] options The optional parameters. See the
|
786
|
+
# {https://cloudinary.com/documentation/admin_api#create_a_streaming_profile Admin API} documentation.
|
787
|
+
#
|
788
|
+
# @return [Cloudinary::Api::Response]
|
789
|
+
#
|
790
|
+
# @raise [Cloudinary::Api::Error]
|
791
|
+
#
|
792
|
+
# @see https://cloudinary.com/documentation/admin_api#create_a_streaming_profile
|
295
793
|
def self.update_streaming_profile(name, options={})
|
296
794
|
params = only(options, :display_name, :representations)
|
297
795
|
params[:representations] = params[:representations].map do |r|
|
@@ -300,73 +798,98 @@ class Cloudinary::Api
|
|
300
798
|
call_api(:put, "streaming_profiles/#{name}", params, options)
|
301
799
|
end
|
302
800
|
|
303
|
-
# Update resources access mode. Resources are selected by the prefix
|
304
|
-
#
|
305
|
-
# @param [String]
|
306
|
-
# @param [
|
307
|
-
# @
|
308
|
-
#
|
309
|
-
# @
|
801
|
+
# Update resources access mode. Resources are selected by the prefix.
|
802
|
+
#
|
803
|
+
# @param [String] access_mode The access mode to set the resources to.
|
804
|
+
# @param [String] prefix The prefix by which to filter applicable resources
|
805
|
+
# @param [Hash] options The optional parameters.
|
806
|
+
#
|
807
|
+
# @return [Cloudinary::Api::Response]
|
808
|
+
#
|
809
|
+
# @raise [Cloudinary::Api::Error]
|
810
|
+
#
|
811
|
+
# @see https://cloudinary.com/documentation/admin_api#examples-8
|
310
812
|
def self.update_resources_access_mode_by_prefix(access_mode, prefix, options = {})
|
311
|
-
|
312
|
-
update_resources_access_mode(access_mode, :prefix, prefix, options)
|
813
|
+
update_resources_access_mode(access_mode, :prefix, prefix, options)
|
313
814
|
end
|
314
815
|
|
315
|
-
# Update resources access mode. Resources are selected by the tag
|
316
|
-
#
|
317
|
-
# @param [String]
|
318
|
-
# @param [
|
319
|
-
# @
|
320
|
-
#
|
321
|
-
# @
|
816
|
+
# Update resources access mode. Resources are selected by the tag.
|
817
|
+
#
|
818
|
+
# @param [String] access_mode The access mode to set the resources to.
|
819
|
+
# @param [String] tag The tag by which to filter applicable resources.
|
820
|
+
# @param [Hash] options The optional parameters.
|
821
|
+
#
|
822
|
+
# @return [Cloudinary::Api::Response]
|
823
|
+
#
|
824
|
+
# @raise [Cloudinary::Api::Error]
|
825
|
+
#
|
826
|
+
# @see https://cloudinary.com/documentation/admin_api#examples-8
|
322
827
|
def self.update_resources_access_mode_by_tag(access_mode, tag, options = {})
|
323
|
-
|
324
|
-
update_resources_access_mode(access_mode, :tag, tag, options)
|
828
|
+
update_resources_access_mode(access_mode, :tag, tag, options)
|
325
829
|
end
|
326
830
|
|
327
|
-
# Update resources access mode. Resources are selected by the provided public_ids
|
328
|
-
#
|
329
|
-
# @param [
|
330
|
-
# @param [
|
331
|
-
# @
|
332
|
-
#
|
333
|
-
# @
|
831
|
+
# Update resources access mode. Resources are selected by the provided public_ids.
|
832
|
+
#
|
833
|
+
# @param [String] access_mode The access mode to set the resources to.
|
834
|
+
# @param [Array] public_ids The ids by which to filter applicable resources
|
835
|
+
# @param [Hash] options The optional parameters.
|
836
|
+
#
|
837
|
+
# @return [Cloudinary::Api::Response]
|
838
|
+
#
|
839
|
+
# @raise [Cloudinary::Api::Error]
|
840
|
+
#
|
841
|
+
# @see https://cloudinary.com/documentation/admin_api#examples-8
|
334
842
|
def self.update_resources_access_mode_by_ids(access_mode, public_ids, options = {})
|
335
|
-
|
336
|
-
update_resources_access_mode(access_mode, :public_ids, public_ids, options)
|
843
|
+
update_resources_access_mode(access_mode, :public_ids, public_ids, options)
|
337
844
|
end
|
338
845
|
|
846
|
+
# Gets the breakpoints.
|
847
|
+
#
|
848
|
+
# Returns breakpoints if defined, otherwise checks the cache(if configured), otherwise fall backs to static
|
849
|
+
# calculation.
|
850
|
+
#
|
851
|
+
# @param [String] public_id Resource source.
|
852
|
+
# @param [Hash] options The optional parameters.
|
853
|
+
#
|
854
|
+
# @return [Cloudinary::Api::Response]
|
855
|
+
#
|
856
|
+
# @raise [Cloudinary::Api::Error]
|
857
|
+
#
|
858
|
+
# @internal
|
339
859
|
def self.get_breakpoints(public_id, options)
|
340
860
|
local_options = options.clone
|
341
861
|
base_transformation = Cloudinary::Utils.generate_transformation_string(local_options)
|
342
862
|
srcset = local_options[:srcset]
|
343
863
|
breakpoints = [:min_width, :max_width, :bytes_step, :max_images].map {|k| srcset[k]}.join('_')
|
344
864
|
|
345
|
-
|
346
865
|
local_options[:transformation] = [base_transformation, width: "auto:breakpoints_#{breakpoints}:json"]
|
347
866
|
json_url = Cloudinary::Utils.cloudinary_url public_id, local_options
|
348
867
|
call_json_api('GET', json_url, {}, 60, {})
|
349
868
|
end
|
350
869
|
|
351
|
-
#
|
870
|
+
# Lists all metadata field definitions.
|
352
871
|
#
|
353
|
-
# @
|
872
|
+
# @param [Hash] options The optional parameters.
|
354
873
|
#
|
355
|
-
# @param [Hash] options Additional options
|
356
874
|
# @return [Cloudinary::Api::Response]
|
875
|
+
#
|
357
876
|
# @raise [Cloudinary::Api::Error]
|
877
|
+
#
|
878
|
+
# @see https://cloudinary.com/documentation/admin_api#get_metadata_fields
|
358
879
|
def self.list_metadata_fields(options = {})
|
359
880
|
call_metadata_api(:get, [], {}, options)
|
360
881
|
end
|
361
882
|
|
362
|
-
# Gets a metadata field by external
|
883
|
+
# Gets a single metadata field definition by external ID.
|
363
884
|
#
|
364
|
-
# @
|
885
|
+
# @param [String] field_external_id The external ID of the field to retrieve.
|
886
|
+
# @param [Hash] options The optional parameters.
|
365
887
|
#
|
366
|
-
# @param [String] field_external_id The ID of the metadata field to retrieve
|
367
|
-
# @param [Hash] options Additional options
|
368
888
|
# @return [Cloudinary::Api::Response]
|
889
|
+
#
|
369
890
|
# @raise [Cloudinary::Api::Error]
|
891
|
+
#
|
892
|
+
# @see https://cloudinary.com/documentation/admin_api#get_a_metadata_field_by_external_id
|
370
893
|
def self.metadata_field_by_field_id(field_external_id, options = {})
|
371
894
|
uri = [field_external_id]
|
372
895
|
|
@@ -375,31 +898,33 @@ class Cloudinary::Api
|
|
375
898
|
|
376
899
|
# Creates a new metadata field definition.
|
377
900
|
#
|
378
|
-
# @
|
901
|
+
# @param [Hash] field The field to add.
|
902
|
+
# @param [Hash] options The optional parameters.
|
379
903
|
#
|
380
|
-
# @param [Hash] field The field to add
|
381
|
-
# @param [Hash] options Additional options
|
382
904
|
# @return [Cloudinary::Api::Response]
|
905
|
+
#
|
383
906
|
# @raise [Cloudinary::Api::Error]
|
907
|
+
#
|
908
|
+
# @see https://cloudinary.com/documentation/admin_api#create_a_metadata_field
|
384
909
|
def self.add_metadata_field(field, options = {})
|
385
910
|
params = only(field, :type, :external_id, :label, :mandatory, :default_value, :validation, :datasource)
|
386
911
|
|
387
912
|
call_metadata_api(:post, [], params, options)
|
388
913
|
end
|
389
914
|
|
390
|
-
# Updates a metadata field by external
|
915
|
+
# Updates a metadata field by external ID.
|
391
916
|
#
|
392
917
|
# Updates a metadata field definition (partially, no need to pass the entire object) passed as JSON data.
|
393
|
-
# See https://cloudinary.com/documentation/admin_api#generic_structure_of_a_metadata_field for the generic structure
|
394
|
-
# of a metadata field.
|
395
918
|
#
|
396
|
-
# @
|
919
|
+
# @param [String] field_external_id The ID of the field to update.
|
920
|
+
# @param [Hash] field The field definition.
|
921
|
+
# @param [Hash] options The optional parameters.
|
397
922
|
#
|
398
|
-
# @param [String] field_external_id The id of the metadata field to update
|
399
|
-
# @param [Hash] field The field definition
|
400
|
-
# @param [Hash] options Additional options
|
401
923
|
# @return [Cloudinary::Api::Response]
|
924
|
+
#
|
402
925
|
# @raise [Cloudinary::Api::Error]
|
926
|
+
#
|
927
|
+
# @see https://cloudinary.com/documentation/admin_api#update_a_metadata_field_by_external_id
|
403
928
|
def self.update_metadata_field(field_external_id, field, options = {})
|
404
929
|
uri = [field_external_id]
|
405
930
|
params = only(field, :label, :mandatory, :default_value, :validation)
|
@@ -407,35 +932,40 @@ class Cloudinary::Api
|
|
407
932
|
call_metadata_api(:put, uri, params, options)
|
408
933
|
end
|
409
934
|
|
410
|
-
# Deletes a metadata field definition.
|
935
|
+
# Deletes a metadata field definition by external ID.
|
411
936
|
#
|
412
|
-
# The
|
937
|
+
# The external ID is immutable. Therefore, once deleted, the field's external ID can no longer be used for
|
938
|
+
# future purposes.
|
413
939
|
#
|
414
|
-
# @
|
940
|
+
# @param [String] field_external_id The ID of the field to delete.
|
941
|
+
# @param [Hash] options The optional parameters.
|
942
|
+
#
|
943
|
+
# @return [Cloudinary::Api::Response]
|
415
944
|
#
|
416
|
-
# @param [String] field_external_id The external id of the field to delete
|
417
|
-
# @param [Hash] options Additional options
|
418
|
-
# @return [Cloudinary::Api::Response] A hash with a "message" key. "ok" value indicates a successful deletion
|
419
945
|
# @raise [Cloudinary::Api::Error]
|
946
|
+
#
|
947
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_a_metadata_field_by_external_id
|
420
948
|
def self.delete_metadata_field(field_external_id, options = {})
|
421
949
|
uri = [field_external_id]
|
422
950
|
|
423
951
|
call_metadata_api(:delete, uri, {}, options)
|
424
952
|
end
|
425
953
|
|
426
|
-
# Deletes entries in a metadata field datasource.
|
954
|
+
# Deletes entries in a metadata single or multi-select field's datasource.
|
955
|
+
#
|
956
|
+
# Deletes (blocks) the datasource (list) entries from the specified metadata field definition. Sets the state of
|
957
|
+
# the entries to inactive. This is a soft delete. The entries still exist in the database and can be reactivated
|
958
|
+
# using the restoreDatasourceEntries method.
|
427
959
|
#
|
428
|
-
#
|
429
|
-
#
|
430
|
-
#
|
960
|
+
# @param [String] field_external_id The ID of the field to update.
|
961
|
+
# @param [Array] entries_external_id The IDs of the entries to delete from the data source.
|
962
|
+
# @param [Hash] options The optional parameters.
|
431
963
|
#
|
432
|
-
# @
|
964
|
+
# @return [Cloudinary::Api::Response]
|
433
965
|
#
|
434
|
-
# @param [String] field_external_id The id of the field to update
|
435
|
-
# @param [Array] entries_external_id The ids of all the entries to delete from the datasource
|
436
|
-
# @param [Hash] options Additional options
|
437
|
-
# @return [Cloudinary::Api::Response] The remaining datasource entries
|
438
966
|
# @raise [Cloudinary::Api::Error]
|
967
|
+
#
|
968
|
+
# @see https://cloudinary.com/documentation/admin_api#delete_entries_in_a_metadata_field_datasource
|
439
969
|
def self.delete_datasource_entries(field_external_id, entries_external_id, options = {})
|
440
970
|
uri = [field_external_id, "datasource"]
|
441
971
|
params = {:external_ids => entries_external_id }
|
@@ -445,17 +975,20 @@ class Cloudinary::Api
|
|
445
975
|
|
446
976
|
# Updates a metadata field datasource.
|
447
977
|
#
|
448
|
-
# Updates the datasource of a supported field type (currently
|
978
|
+
# Updates the datasource of a supported field type (currently enum or set), passed as JSON data. The
|
449
979
|
# update is partial: datasource entries with an existing external_id will be updated and entries with new
|
450
980
|
# external_id’s (or without external_id’s) will be appended.
|
451
981
|
#
|
452
|
-
# @
|
982
|
+
# @param [String] field_external_id The ID of the field to update.
|
983
|
+
# @param [Array] entries_external_id A list of datasource entries. Existing entries (according to entry id) will be
|
984
|
+
# updated. New entries will be added.
|
985
|
+
# @param [Hash] options The optional parameters.
|
453
986
|
#
|
454
|
-
# @param [String] field_external_id The external id of the field to update
|
455
|
-
# @param [Array] entries_external_id
|
456
|
-
# @param [Hash] options Additional options
|
457
987
|
# @return [Cloudinary::Api::Response]
|
988
|
+
#
|
458
989
|
# @raise [Cloudinary::Api::Error]
|
990
|
+
#
|
991
|
+
# @see https://cloudinary.com/documentation/admin_api#update_a_metadata_field_datasource
|
459
992
|
def self.update_metadata_field_datasource(field_external_id, entries_external_id, options = {})
|
460
993
|
uri = [field_external_id, "datasource"]
|
461
994
|
|
@@ -467,18 +1000,20 @@ class Cloudinary::Api
|
|
467
1000
|
call_metadata_api(:put, uri, params, options)
|
468
1001
|
end
|
469
1002
|
|
470
|
-
#
|
1003
|
+
# Restore entries in a metadata field datasource.
|
471
1004
|
#
|
472
1005
|
# Restores (unblocks) any previously deleted datasource entries for a specified metadata field definition.
|
473
1006
|
# Sets the state of the entries to active.
|
474
1007
|
#
|
475
|
-
# @
|
1008
|
+
# @param [String] field_external_id The ID of the metadata field.
|
1009
|
+
# @param [Array] entries_external_ids An array of IDs of datasource entries to restore (unblock).
|
1010
|
+
# @param [Hash] options The optional parameters.
|
476
1011
|
#
|
477
|
-
# @param [String] field_external_id The ID of the metadata field
|
478
|
-
# @param [Array] entries_external_ids An array of IDs of datasource entries to restore (unblock)
|
479
|
-
# @param [Hash] options Additional options
|
480
1012
|
# @return [Cloudinary::Api::Response]
|
1013
|
+
#
|
481
1014
|
# @raise [Cloudinary::Api::Error]
|
1015
|
+
#
|
1016
|
+
# @see https://cloudinary.com/documentation/admin_api#restore_entries_in_a_metadata_field_datasource
|
482
1017
|
def self.restore_metadata_field_datasource(field_external_id, entries_external_ids, options = {})
|
483
1018
|
uri = [field_external_id, "datasource_restore"]
|
484
1019
|
params = {:external_ids => entries_external_ids }
|
@@ -503,18 +1038,50 @@ class Cloudinary::Api
|
|
503
1038
|
call_metadata_api(:post, uri, params, options)
|
504
1039
|
end
|
505
1040
|
|
1041
|
+
# Reorders metadata fields.
|
1042
|
+
#
|
1043
|
+
# @param [String] order_by Criteria for the order (one of the fields 'label', 'external_id', 'created_at').
|
1044
|
+
# @param [String] direction Optional (gets either asc or desc).
|
1045
|
+
# @param [Hash] options Configuration options.
|
1046
|
+
#
|
1047
|
+
# @return [Cloudinary::Api::Response]
|
1048
|
+
#
|
1049
|
+
# @raise [Cloudinary::Api::Error]
|
1050
|
+
def self.reorder_metadata_fields(order_by, direction = nil, options = {})
|
1051
|
+
uri = ["order"]
|
1052
|
+
params = { :order_by => order_by, :direction => direction }
|
1053
|
+
|
1054
|
+
call_metadata_api(:put, uri, params, options)
|
1055
|
+
end
|
1056
|
+
|
506
1057
|
protected
|
507
1058
|
|
1059
|
+
# Execute a call api for input params.
|
1060
|
+
# @param [Object] method The method for a request
|
1061
|
+
# @param [Object] uri The uri for a request
|
1062
|
+
# @param [Object] params Additional params
|
1063
|
+
# @param [Object] options Additional options
|
1064
|
+
# @return [Cloudinary::Api::Response] Returned response from Cloudinary
|
1065
|
+
# @raise [Cloudinary::Api::Error]
|
508
1066
|
def self.call_api(method, uri, params, options)
|
509
|
-
cloud_name
|
510
|
-
api_key
|
511
|
-
api_secret
|
1067
|
+
cloud_name = options[:cloud_name] || Cloudinary.config.cloud_name || raise('Must supply cloud_name')
|
1068
|
+
api_key = options[:api_key] || Cloudinary.config.api_key
|
1069
|
+
api_secret = options[:api_secret] || Cloudinary.config.api_secret
|
1070
|
+
oauth_token = options[:oauth_token] || Cloudinary.config.oauth_token
|
1071
|
+
|
1072
|
+
validate_authorization(api_key, api_secret, oauth_token)
|
512
1073
|
|
513
|
-
|
1074
|
+
auth = { :key => api_key, :secret => api_secret, :oauth_token => oauth_token }
|
1075
|
+
|
1076
|
+
call_cloudinary_api(method, uri, auth, params, options) do |cloudinary, inner_uri|
|
514
1077
|
[cloudinary, 'v1_1', cloud_name, inner_uri]
|
515
1078
|
end
|
516
1079
|
end
|
517
1080
|
|
1081
|
+
# Parse a json response.
|
1082
|
+
# @param [Object] response Returned response from Cloudinary
|
1083
|
+
# @return [Hash] Decoded string
|
1084
|
+
# @raise [Cloudinary::Api::GeneralError]
|
518
1085
|
def self.parse_json_response(response)
|
519
1086
|
return Cloudinary::Utils.json_decode(response.body)
|
520
1087
|
rescue => e
|
@@ -529,7 +1096,7 @@ class Cloudinary::Api
|
|
529
1096
|
# @param [Array] uri REST endpoint of the API (without 'metadata_fields')
|
530
1097
|
# @param [Hash] params Query/body parameters passed to the method
|
531
1098
|
# @param [Hash] options Additional options. Can be an override of the configuration, headers, etc.
|
532
|
-
# @return [Cloudinary::Api::Response]
|
1099
|
+
# @return [Cloudinary::Api::Response] Returned response from Cloudinary
|
533
1100
|
# @raise [Cloudinary::Api::Error]
|
534
1101
|
def self.call_metadata_api(method, uri, params, options)
|
535
1102
|
options[:content_type] = :json
|
@@ -538,6 +1105,31 @@ class Cloudinary::Api
|
|
538
1105
|
call_api(method, uri, params, options)
|
539
1106
|
end
|
540
1107
|
|
1108
|
+
# Prepares optional parameters for asset/assetByAssetId API calls.
|
1109
|
+
# @param [Hash] options Additional options
|
1110
|
+
# @return [Object] Optional parameters
|
1111
|
+
def self.prepare_resource_details_params(options)
|
1112
|
+
only(options,
|
1113
|
+
:exif,
|
1114
|
+
:colors,
|
1115
|
+
:faces,
|
1116
|
+
:quality_analysis,
|
1117
|
+
:image_metadata,
|
1118
|
+
:phash,
|
1119
|
+
:pages,
|
1120
|
+
:cinemagraph_analysis,
|
1121
|
+
:coordinates,
|
1122
|
+
:max_results,
|
1123
|
+
:derived_next_cursor,
|
1124
|
+
:accessibility_analysis,
|
1125
|
+
:versions
|
1126
|
+
)
|
1127
|
+
end
|
1128
|
+
|
1129
|
+
# Filter hash with specific keys.
|
1130
|
+
# @param [Object] hash Input hash
|
1131
|
+
# @param [Array] keys Input keys
|
1132
|
+
# @return [Hash] Result of hash filtering
|
541
1133
|
def self.only(hash, *keys)
|
542
1134
|
result = {}
|
543
1135
|
keys.each do |key|
|
@@ -547,32 +1139,65 @@ class Cloudinary::Api
|
|
547
1139
|
result
|
548
1140
|
end
|
549
1141
|
|
1142
|
+
# Merge params with a certain set of options.
|
1143
|
+
# @param [Object] options Set of options
|
1144
|
+
# @param [Hash] params Additional params
|
1145
|
+
# @return [Hash] Result of hash merging
|
550
1146
|
def self.delete_resource_params(options, params ={})
|
551
1147
|
params.merge(only(options, :keep_original, :next_cursor, :invalidate, :transformations))
|
552
1148
|
end
|
553
1149
|
|
1150
|
+
# Generate a transformation string if an input a param is not a string.
|
1151
|
+
# @param [String|Hash] transformation Input transformation param
|
1152
|
+
# @return [String] Result of transformation
|
554
1153
|
def self.transformation_string(transformation)
|
555
1154
|
transformation.is_a?(String) ? transformation : Cloudinary::Utils.generate_transformation_string(transformation.clone)
|
556
1155
|
end
|
557
1156
|
|
1157
|
+
# Publish resources.
|
1158
|
+
# @param [Hash] options Additional options
|
1159
|
+
# @return [Cloudinary::Api::Response] Returned response from Cloudinary
|
1160
|
+
# @raise [Cloudinary::Api::Error]
|
558
1161
|
def self.publish_resources(options = {})
|
559
1162
|
resource_type = options[:resource_type] || "image"
|
560
1163
|
params = only(options, :public_ids, :prefix, :tag, :type, :overwrite, :invalidate)
|
561
1164
|
call_api("post", "resources/#{resource_type}/publish_resources", params, options)
|
562
1165
|
end
|
563
1166
|
|
1167
|
+
# Publish resources by a prefix.
|
1168
|
+
# @param [String] prefix The name of a prefix
|
1169
|
+
# @param [Hash] options Additional options
|
1170
|
+
# @return [Cloudinary::Api::Response] Returned response from Cloudinary
|
1171
|
+
# @raise [Cloudinary::Api::Error]
|
564
1172
|
def self.publish_by_prefix(prefix, options = {})
|
565
1173
|
return self.publish_resources(options.merge(:prefix => prefix))
|
566
1174
|
end
|
567
1175
|
|
1176
|
+
# Publish resources by a tag.
|
1177
|
+
# @param [String] tag The name of a tag
|
1178
|
+
# @param [Hash] options Additional options
|
1179
|
+
# @return [Cloudinary::Api::Response] Returned response from Cloudinary
|
1180
|
+
# @raise [Cloudinary::Api::Error]
|
568
1181
|
def self.publish_by_tag(tag, options = {})
|
569
1182
|
return self.publish_resources(options.merge(:tag => tag))
|
570
1183
|
end
|
571
1184
|
|
1185
|
+
# Publish resources by ids.
|
1186
|
+
# @param [Array] publicIds List of public ids
|
1187
|
+
# @param [Hash] options Additional options
|
1188
|
+
# @return [Cloudinary::Api::Response] Returned response from Cloudinary
|
1189
|
+
# @raise [Cloudinary::Api::Error]
|
572
1190
|
def self.publish_by_ids(publicIds, options = {})
|
573
1191
|
return self.publish_resources(options.merge(:public_ids => publicIds))
|
574
1192
|
end
|
575
1193
|
|
1194
|
+
# Build a link and prepare data for a call.
|
1195
|
+
# @param [String] access_mode The access_mode of resources
|
1196
|
+
# @param [Symbol] by_key The new access mode to be set. Possible values: public, authenticated.
|
1197
|
+
# @param [String|Array<String>] value The value to assign
|
1198
|
+
# @param [Hash] options Additional options
|
1199
|
+
# @return [Cloudinary::Api::Response] Returned response from Cloudinary
|
1200
|
+
# @raise [Cloudinary::Api::Error]
|
576
1201
|
def self.update_resources_access_mode(access_mode, by_key, value, options = {})
|
577
1202
|
resource_type = options[:resource_type] || "image"
|
578
1203
|
type = options[:type] || "upload"
|