kaltura-client 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README +21 -0
- data/Rakefile +19 -0
- data/agpl.txt +674 -0
- data/kaltura.yml +7 -0
- data/lib/kaltura.rb +31 -0
- data/lib/kaltura_client.rb +15649 -0
- data/lib/kaltura_client_base.rb +432 -0
- data/lib/kaltura_plugins/kaltura_abc_screeners_watermark_access_control_client_plugin.rb +37 -0
- data/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +110 -0
- data/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +239 -0
- data/lib/kaltura_plugins/kaltura_aspera_client_plugin.rb +61 -0
- data/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +227 -0
- data/lib/kaltura_plugins/kaltura_audit_client_plugin.rb +349 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +116 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +55 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +58 -0
- data/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +40 -0
- data/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +406 -0
- data/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +138 -0
- data/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +99 -0
- data/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +1725 -0
- data/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +312 -0
- data/lib/kaltura_plugins/kaltura_document_client_plugin.rb +522 -0
- data/lib/kaltura_plugins/kaltura_drm_client_plugin.rb +401 -0
- data/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +827 -0
- data/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +39 -0
- data/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +273 -0
- data/lib/kaltura_plugins/kaltura_event_cue_point_client_plugin.rb +67 -0
- data/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +415 -0
- data/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +203 -0
- data/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +157 -0
- data/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +309 -0
- data/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +72 -0
- data/lib/kaltura_plugins/kaltura_like_client_plugin.rb +82 -0
- data/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +785 -0
- data/lib/kaltura_plugins/kaltura_multi_centers_client_plugin.rb +45 -0
- data/lib/kaltura_plugins/kaltura_play_ready_client_plugin.rb +347 -0
- data/lib/kaltura_plugins/kaltura_scheduled_task_client_plugin.rb +347 -0
- data/lib/kaltura_plugins/kaltura_scheduled_task_event_notification_client_plugin.rb +45 -0
- data/lib/kaltura_plugins/kaltura_scheduled_task_metadata_client_plugin.rb +51 -0
- data/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +231 -0
- data/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +145 -0
- data/lib/kaltura_plugins/kaltura_thumb_cue_point_client_plugin.rb +105 -0
- data/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +238 -0
- data/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +40 -0
- data/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +263 -0
- data/lib/kaltura_plugins/kaltura_webex_drop_folder_client_plugin.rb +111 -0
- data/lib/kaltura_plugins/kaltura_widevine_client_plugin.rb +195 -0
- data/test/access_control_service_test.rb +75 -0
- data/test/base_entry_service_test.rb +267 -0
- data/test/configuration_test.rb +178 -0
- data/test/cue_point_service_test.rb +67 -0
- data/test/data_service_test.rb +76 -0
- data/test/document_service_test.rb +41 -0
- data/test/media/test.mov +0 -0
- data/test/media/test.pdf +0 -0
- data/test/media/test.png +0 -0
- data/test/media/test.swf +0 -0
- data/test/media/test.wmv +0 -0
- data/test/media_service_test.rb +294 -0
- data/test/metadata_profile_service_test.rb +63 -0
- data/test/test_helper.rb +59 -0
- metadata +132 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2011 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
|
30
|
+
module Kaltura
|
31
|
+
|
32
|
+
class KalturaFileSyncImportJobData < KalturaJobData
|
33
|
+
attr_accessor :source_url
|
34
|
+
attr_accessor :filesync_id
|
35
|
+
attr_accessor :tmp_file_path
|
36
|
+
attr_accessor :dest_file_path
|
37
|
+
attr_accessor :file_size
|
38
|
+
|
39
|
+
def file_size=(val)
|
40
|
+
@file_size = val.to_i
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,347 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2011 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
require File.dirname(__FILE__) + '/kaltura_drm_client_plugin.rb'
|
30
|
+
|
31
|
+
module Kaltura
|
32
|
+
|
33
|
+
class KalturaPlayReadyAnalogVideoOPL
|
34
|
+
MIN_100 = 100
|
35
|
+
MIN_150 = 150
|
36
|
+
MIN_200 = 200
|
37
|
+
end
|
38
|
+
|
39
|
+
class KalturaPlayReadyCompressedDigitalVideoOPL
|
40
|
+
MIN_400 = 400
|
41
|
+
MIN_500 = 500
|
42
|
+
end
|
43
|
+
|
44
|
+
class KalturaPlayReadyDigitalAudioOPL
|
45
|
+
MIN_100 = 100
|
46
|
+
MIN_150 = 150
|
47
|
+
MIN_200 = 200
|
48
|
+
MIN_250 = 250
|
49
|
+
MIN_300 = 300
|
50
|
+
end
|
51
|
+
|
52
|
+
class KalturaPlayReadyLicenseRemovalPolicy
|
53
|
+
FIXED_FROM_EXPIRATION = 1
|
54
|
+
ENTRY_SCHEDULING_END = 2
|
55
|
+
NONE = 3
|
56
|
+
end
|
57
|
+
|
58
|
+
class KalturaPlayReadyMinimumLicenseSecurityLevel
|
59
|
+
NON_COMMERCIAL_QUALITY = 150
|
60
|
+
COMMERCIAL_QUALITY = 2000
|
61
|
+
end
|
62
|
+
|
63
|
+
class KalturaPlayReadyUncompressedDigitalVideoOPL
|
64
|
+
MIN_100 = 100
|
65
|
+
MIN_250 = 250
|
66
|
+
MIN_270 = 270
|
67
|
+
MIN_300 = 300
|
68
|
+
end
|
69
|
+
|
70
|
+
class KalturaPlayReadyAnalogVideoOPId
|
71
|
+
EXPLICIT_ANALOG_TV = "2098DE8D-7DDD-4BAB-96C6-32EBB6FABEA3"
|
72
|
+
BEST_EFFORT_EXPLICIT_ANALOG_TV = "225CD36F-F132-49EF-BA8C-C91EA28E4369"
|
73
|
+
IMAGE_CONSTRAINT_VIDEO = "811C5110-46C8-4C6E-8163-C0482A15D47E"
|
74
|
+
AGC_AND_COLOR_STRIPE = "C3FD11C6-F8B7-4D20-B008-1DB17D61F2DA"
|
75
|
+
IMAGE_CONSTRAINT_MONITOR = "D783A191-E083-4BAF-B2DA-E69F910B3772"
|
76
|
+
end
|
77
|
+
|
78
|
+
class KalturaPlayReadyCopyEnablerType
|
79
|
+
CSS = "3CAF2814-A7AB-467C-B4DF-54ACC56C66DC"
|
80
|
+
PRINTER = "3CF2E054-F4D5-46cd-85A6-FCD152AD5FBE"
|
81
|
+
DEVICE = "6848955D-516B-4EB0-90E8-8F6D5A77B85F"
|
82
|
+
CLIPBOARD = "6E76C588-C3A9-47ea-A875-546D5209FF38"
|
83
|
+
SDC = "79F78A0D-0B69-401e-8A90-8BEF30BCE192"
|
84
|
+
SDC_PREVIEW = "81BD9AD4-A720-4ea1-B510-5D4E6FFB6A4D"
|
85
|
+
AACS = "C3CF56E0-7FF2-4491-809F-53E21D3ABF07"
|
86
|
+
HELIX = "CCB0B4E3-8B46-409e-A998-82556E3F5AF4"
|
87
|
+
CPRM = "CDD801AD-A577-48DB-950E-46D5F1592FAE"
|
88
|
+
PC = "CE480EDE-516B-40B3-90E1-D6CFC47630C5"
|
89
|
+
SDC_LIMITED = "E6785609-64CC-4bfa-B82D-6B619733B746"
|
90
|
+
ORANGE_BOOK_CD = "EC930B7D-1F2D-4682-A38B-8AB977721D0D"
|
91
|
+
end
|
92
|
+
|
93
|
+
class KalturaPlayReadyDigitalAudioOPId
|
94
|
+
SCMS = "6D5CFA59-C250-4426-930E-FAC72C8FCFA6"
|
95
|
+
end
|
96
|
+
|
97
|
+
class KalturaPlayReadyPlayEnablerType
|
98
|
+
HELIX = "002F9772-38A0-43E5-9F79-0F6361DCC62A"
|
99
|
+
HDCP_WIVU = "1B4542E3-B5CF-4C99-B3BA-829AF46C92F8"
|
100
|
+
AIRPLAY = "5ABF0F0D-DC29-4B82-9982-FD8E57525BFC"
|
101
|
+
UNKNOWN = "786627D8-C2A6-44BE-8F88-08AE255B01A"
|
102
|
+
HDCP_MIRACAST = "A340C256-0941-4D4C-AD1D-0B6735C0CB24"
|
103
|
+
UNKNOWN_520 = "B621D91F-EDCC-4035-8D4B-DC71760D43E9"
|
104
|
+
DTCP = "D685030B-0F4F-43A6-BBAD-356F1EA0049A"
|
105
|
+
end
|
106
|
+
|
107
|
+
class KalturaPlayReadyPolicyOrderBy
|
108
|
+
end
|
109
|
+
|
110
|
+
class KalturaPlayReadyProfileOrderBy
|
111
|
+
ID_ASC = "+id"
|
112
|
+
NAME_ASC = "+name"
|
113
|
+
ID_DESC = "-id"
|
114
|
+
NAME_DESC = "-name"
|
115
|
+
end
|
116
|
+
|
117
|
+
class KalturaPlayReadyAnalogVideoOPIdHolder < KalturaObjectBase
|
118
|
+
# The type of the play enabler
|
119
|
+
#
|
120
|
+
attr_accessor :type
|
121
|
+
|
122
|
+
end
|
123
|
+
|
124
|
+
class KalturaPlayReadyContentKey < KalturaObjectBase
|
125
|
+
# Guid - key id of the specific content
|
126
|
+
#
|
127
|
+
attr_accessor :key_id
|
128
|
+
# License content key 64 bit encoded
|
129
|
+
#
|
130
|
+
attr_accessor :content_key
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
class KalturaPlayReadyCopyEnablerHolder < KalturaObjectBase
|
135
|
+
# The type of the copy enabler
|
136
|
+
#
|
137
|
+
attr_accessor :type
|
138
|
+
|
139
|
+
end
|
140
|
+
|
141
|
+
class KalturaPlayReadyDigitalAudioOPIdHolder < KalturaObjectBase
|
142
|
+
# The type of the play enabler
|
143
|
+
#
|
144
|
+
attr_accessor :type
|
145
|
+
|
146
|
+
end
|
147
|
+
|
148
|
+
class KalturaPlayReadyRight < KalturaObjectBase
|
149
|
+
|
150
|
+
end
|
151
|
+
|
152
|
+
class KalturaPlayReadyPolicy < KalturaDrmPolicy
|
153
|
+
attr_accessor :grace_period
|
154
|
+
attr_accessor :license_removal_policy
|
155
|
+
attr_accessor :license_removal_duration
|
156
|
+
attr_accessor :min_security_level
|
157
|
+
attr_accessor :rights
|
158
|
+
|
159
|
+
def grace_period=(val)
|
160
|
+
@grace_period = val.to_i
|
161
|
+
end
|
162
|
+
def license_removal_policy=(val)
|
163
|
+
@license_removal_policy = val.to_i
|
164
|
+
end
|
165
|
+
def license_removal_duration=(val)
|
166
|
+
@license_removal_duration = val.to_i
|
167
|
+
end
|
168
|
+
def min_security_level=(val)
|
169
|
+
@min_security_level = val.to_i
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
class KalturaPlayReadyLicenseDetails < KalturaObjectBase
|
174
|
+
# PlayReady policy object
|
175
|
+
#
|
176
|
+
attr_accessor :policy
|
177
|
+
# License begin date
|
178
|
+
#
|
179
|
+
attr_accessor :begin_date
|
180
|
+
# License expiration date
|
181
|
+
#
|
182
|
+
attr_accessor :expiration_date
|
183
|
+
# License removal date
|
184
|
+
#
|
185
|
+
attr_accessor :removal_date
|
186
|
+
|
187
|
+
def begin_date=(val)
|
188
|
+
@begin_date = val.to_i
|
189
|
+
end
|
190
|
+
def expiration_date=(val)
|
191
|
+
@expiration_date = val.to_i
|
192
|
+
end
|
193
|
+
def removal_date=(val)
|
194
|
+
@removal_date = val.to_i
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
class KalturaPlayReadyPlayEnablerHolder < KalturaObjectBase
|
199
|
+
# The type of the play enabler
|
200
|
+
#
|
201
|
+
attr_accessor :type
|
202
|
+
|
203
|
+
end
|
204
|
+
|
205
|
+
class KalturaAccessControlPlayReadyPolicyAction < KalturaRuleAction
|
206
|
+
# Play ready policy id
|
207
|
+
#
|
208
|
+
attr_accessor :policy_id
|
209
|
+
|
210
|
+
def policy_id=(val)
|
211
|
+
@policy_id = val.to_i
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
class KalturaPlayReadyCopyRight < KalturaPlayReadyRight
|
216
|
+
attr_accessor :copy_count
|
217
|
+
attr_accessor :copy_enablers
|
218
|
+
|
219
|
+
def copy_count=(val)
|
220
|
+
@copy_count = val.to_i
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
class KalturaPlayReadyPlayRight < KalturaPlayReadyRight
|
225
|
+
attr_accessor :analog_video_opl
|
226
|
+
attr_accessor :analog_video_output_protection_list
|
227
|
+
attr_accessor :compressed_digital_audio_opl
|
228
|
+
attr_accessor :compressed_digital_video_opl
|
229
|
+
attr_accessor :digital_audio_output_protection_list
|
230
|
+
attr_accessor :uncompressed_digital_audio_opl
|
231
|
+
attr_accessor :uncompressed_digital_video_opl
|
232
|
+
attr_accessor :first_play_expiration
|
233
|
+
attr_accessor :play_enablers
|
234
|
+
|
235
|
+
def analog_video_opl=(val)
|
236
|
+
@analog_video_opl = val.to_i
|
237
|
+
end
|
238
|
+
def compressed_digital_audio_opl=(val)
|
239
|
+
@compressed_digital_audio_opl = val.to_i
|
240
|
+
end
|
241
|
+
def compressed_digital_video_opl=(val)
|
242
|
+
@compressed_digital_video_opl = val.to_i
|
243
|
+
end
|
244
|
+
def uncompressed_digital_audio_opl=(val)
|
245
|
+
@uncompressed_digital_audio_opl = val.to_i
|
246
|
+
end
|
247
|
+
def uncompressed_digital_video_opl=(val)
|
248
|
+
@uncompressed_digital_video_opl = val.to_i
|
249
|
+
end
|
250
|
+
def first_play_expiration=(val)
|
251
|
+
@first_play_expiration = val.to_i
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
class KalturaPlayReadyProfile < KalturaDrmProfile
|
256
|
+
attr_accessor :key_seed
|
257
|
+
|
258
|
+
end
|
259
|
+
|
260
|
+
class KalturaPlayReadyPolicyBaseFilter < KalturaDrmPolicyFilter
|
261
|
+
|
262
|
+
end
|
263
|
+
|
264
|
+
class KalturaPlayReadyProfileBaseFilter < KalturaDrmProfileFilter
|
265
|
+
|
266
|
+
end
|
267
|
+
|
268
|
+
class KalturaPlayReadyPolicyFilter < KalturaPlayReadyPolicyBaseFilter
|
269
|
+
|
270
|
+
end
|
271
|
+
|
272
|
+
class KalturaPlayReadyProfileFilter < KalturaPlayReadyProfileBaseFilter
|
273
|
+
|
274
|
+
end
|
275
|
+
|
276
|
+
|
277
|
+
class KalturaPlayReadyDrmService < KalturaServiceBase
|
278
|
+
def initialize(client)
|
279
|
+
super(client)
|
280
|
+
end
|
281
|
+
|
282
|
+
# Generate key id and content key for PlayReady encryption
|
283
|
+
#
|
284
|
+
def generate_key()
|
285
|
+
kparams = {}
|
286
|
+
client.queue_service_action_call('playready_playreadydrm', 'generateKey', kparams);
|
287
|
+
if (client.is_multirequest)
|
288
|
+
return nil;
|
289
|
+
end
|
290
|
+
return client.do_queue();
|
291
|
+
end
|
292
|
+
|
293
|
+
# Get content keys for input key ids
|
294
|
+
#
|
295
|
+
def get_content_keys(key_ids)
|
296
|
+
kparams = {}
|
297
|
+
# - comma separated key id's
|
298
|
+
client.add_param(kparams, 'keyIds', key_ids);
|
299
|
+
client.queue_service_action_call('playready_playreadydrm', 'getContentKeys', kparams);
|
300
|
+
if (client.is_multirequest)
|
301
|
+
return nil;
|
302
|
+
end
|
303
|
+
return client.do_queue();
|
304
|
+
end
|
305
|
+
|
306
|
+
# Get content key and key id for the given entry
|
307
|
+
#
|
308
|
+
def get_entry_content_key(entry_id, create_if_missing=false)
|
309
|
+
kparams = {}
|
310
|
+
client.add_param(kparams, 'entryId', entry_id);
|
311
|
+
client.add_param(kparams, 'createIfMissing', create_if_missing);
|
312
|
+
client.queue_service_action_call('playready_playreadydrm', 'getEntryContentKey', kparams);
|
313
|
+
if (client.is_multirequest)
|
314
|
+
return nil;
|
315
|
+
end
|
316
|
+
return client.do_queue();
|
317
|
+
end
|
318
|
+
|
319
|
+
# Get Play Ready policy and dates for license creation
|
320
|
+
#
|
321
|
+
def get_license_details(key_id, device_id, device_type, entry_id=KalturaNotImplemented, referrer=KalturaNotImplemented)
|
322
|
+
kparams = {}
|
323
|
+
client.add_param(kparams, 'keyId', key_id);
|
324
|
+
client.add_param(kparams, 'deviceId', device_id);
|
325
|
+
client.add_param(kparams, 'deviceType', device_type);
|
326
|
+
client.add_param(kparams, 'entryId', entry_id);
|
327
|
+
# 64base encoded
|
328
|
+
client.add_param(kparams, 'referrer', referrer);
|
329
|
+
client.queue_service_action_call('playready_playreadydrm', 'getLicenseDetails', kparams);
|
330
|
+
if (client.is_multirequest)
|
331
|
+
return nil;
|
332
|
+
end
|
333
|
+
return client.do_queue();
|
334
|
+
end
|
335
|
+
end
|
336
|
+
|
337
|
+
class KalturaClient < KalturaClientBase
|
338
|
+
attr_reader :play_ready_drm_service
|
339
|
+
def play_ready_drm_service
|
340
|
+
if (@play_ready_drm_service == nil)
|
341
|
+
@play_ready_drm_service = KalturaPlayReadyDrmService.new(self)
|
342
|
+
end
|
343
|
+
return @play_ready_drm_service
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
end
|
@@ -0,0 +1,347 @@
|
|
1
|
+
# ===================================================================================================
|
2
|
+
# _ __ _ _
|
3
|
+
# | |/ /__ _| | |_ _ _ _ _ __ _
|
4
|
+
# | ' </ _` | | _| || | '_/ _` |
|
5
|
+
# |_|\_\__,_|_|\__|\_,_|_| \__,_|
|
6
|
+
#
|
7
|
+
# This file is part of the Kaltura Collaborative Media Suite which allows users
|
8
|
+
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
|
+
# text.
|
10
|
+
#
|
11
|
+
# Copyright (C) 2006-2011 Kaltura Inc.
|
12
|
+
#
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
14
|
+
# it under the terms of the GNU Affero General Public License as
|
15
|
+
# published by the Free Software Foundation, either version 3 of the
|
16
|
+
# License, or (at your option) any later version.
|
17
|
+
#
|
18
|
+
# This program is distributed in the hope that it will be useful,
|
19
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
20
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
21
|
+
# GNU Affero General Public License for more details.
|
22
|
+
#
|
23
|
+
# You should have received a copy of the GNU Affero General Public License
|
24
|
+
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
|
25
|
+
#
|
26
|
+
# @ignore
|
27
|
+
# ===================================================================================================
|
28
|
+
require 'kaltura_client.rb'
|
29
|
+
|
30
|
+
module Kaltura
|
31
|
+
|
32
|
+
class KalturaDeleteFlavorsLogicType
|
33
|
+
KEEP_LIST_DELETE_OTHERS = 1
|
34
|
+
DELETE_LIST = 2
|
35
|
+
DELETE_KEEP_SMALLEST = 3
|
36
|
+
end
|
37
|
+
|
38
|
+
class KalturaScheduledTaskAddOrRemoveType
|
39
|
+
ADD = 1
|
40
|
+
REMOVE = 2
|
41
|
+
end
|
42
|
+
|
43
|
+
class KalturaScheduledTaskProfileStatus
|
44
|
+
DISABLED = 1
|
45
|
+
ACTIVE = 2
|
46
|
+
DELETED = 3
|
47
|
+
SUSPENDED = 4
|
48
|
+
DRY_RUN_ONLY = 5
|
49
|
+
end
|
50
|
+
|
51
|
+
class KalturaObjectFilterEngineType
|
52
|
+
ENTRY = "1"
|
53
|
+
end
|
54
|
+
|
55
|
+
class KalturaObjectTaskType
|
56
|
+
DISPATCH_EVENT_NOTIFICATION = "scheduledTaskEventNotification.DispatchEventNotification"
|
57
|
+
EXECUTE_METADATA_XSLT = "scheduledTaskMetadata.ExecuteMetadataXslt"
|
58
|
+
DELETE_ENTRY = "1"
|
59
|
+
MODIFY_CATEGORIES = "2"
|
60
|
+
DELETE_ENTRY_FLAVORS = "3"
|
61
|
+
CONVERT_ENTRY_FLAVORS = "4"
|
62
|
+
DELETE_LOCAL_CONTENT = "5"
|
63
|
+
end
|
64
|
+
|
65
|
+
class KalturaScheduledTaskProfileOrderBy
|
66
|
+
CREATED_AT_ASC = "+createdAt"
|
67
|
+
ID_ASC = "+id"
|
68
|
+
LAST_EXECUTION_STARTED_AT_ASC = "+lastExecutionStartedAt"
|
69
|
+
UPDATED_AT_ASC = "+updatedAt"
|
70
|
+
CREATED_AT_DESC = "-createdAt"
|
71
|
+
ID_DESC = "-id"
|
72
|
+
LAST_EXECUTION_STARTED_AT_DESC = "-lastExecutionStartedAt"
|
73
|
+
UPDATED_AT_DESC = "-updatedAt"
|
74
|
+
end
|
75
|
+
|
76
|
+
class KalturaObjectTask < KalturaObjectBase
|
77
|
+
attr_accessor :type
|
78
|
+
|
79
|
+
end
|
80
|
+
|
81
|
+
class KalturaScheduledTaskProfile < KalturaObjectBase
|
82
|
+
attr_accessor :id
|
83
|
+
attr_accessor :partner_id
|
84
|
+
attr_accessor :name
|
85
|
+
attr_accessor :system_name
|
86
|
+
attr_accessor :description
|
87
|
+
attr_accessor :status
|
88
|
+
# The type of engine to use to list objects using the given "objectFilter"
|
89
|
+
#
|
90
|
+
attr_accessor :object_filter_engine_type
|
91
|
+
# A filter object (inherits KalturaFilter) that is used to list objects for scheduled tasks
|
92
|
+
#
|
93
|
+
attr_accessor :object_filter
|
94
|
+
# A list of tasks to execute on the founded objects
|
95
|
+
#
|
96
|
+
attr_accessor :object_tasks
|
97
|
+
attr_accessor :created_at
|
98
|
+
attr_accessor :updated_at
|
99
|
+
attr_accessor :last_execution_started_at
|
100
|
+
# The maximum number of result count allowed to be processed by this profile per execution
|
101
|
+
#
|
102
|
+
attr_accessor :max_total_count_allowed
|
103
|
+
|
104
|
+
def id=(val)
|
105
|
+
@id = val.to_i
|
106
|
+
end
|
107
|
+
def partner_id=(val)
|
108
|
+
@partner_id = val.to_i
|
109
|
+
end
|
110
|
+
def status=(val)
|
111
|
+
@status = val.to_i
|
112
|
+
end
|
113
|
+
def created_at=(val)
|
114
|
+
@created_at = val.to_i
|
115
|
+
end
|
116
|
+
def updated_at=(val)
|
117
|
+
@updated_at = val.to_i
|
118
|
+
end
|
119
|
+
def last_execution_started_at=(val)
|
120
|
+
@last_execution_started_at = val.to_i
|
121
|
+
end
|
122
|
+
def max_total_count_allowed=(val)
|
123
|
+
@max_total_count_allowed = val.to_i
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
class KalturaScheduledTaskProfileListResponse < KalturaObjectBase
|
128
|
+
attr_accessor :objects
|
129
|
+
attr_accessor :total_count
|
130
|
+
|
131
|
+
def total_count=(val)
|
132
|
+
@total_count = val.to_i
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
class KalturaConvertEntryFlavorsObjectTask < KalturaObjectTask
|
137
|
+
# Comma separated list of flavor param ids to convert
|
138
|
+
#
|
139
|
+
attr_accessor :flavor_params_ids
|
140
|
+
# Should reconvert when flavor already exists?
|
141
|
+
#
|
142
|
+
attr_accessor :reconvert
|
143
|
+
|
144
|
+
def reconvert=(val)
|
145
|
+
@reconvert = to_b(val)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
class KalturaDeleteEntryFlavorsObjectTask < KalturaObjectTask
|
150
|
+
# The logic to use to choose the flavors for deletion
|
151
|
+
#
|
152
|
+
attr_accessor :delete_type
|
153
|
+
# Comma separated list of flavor param ids to delete or keep
|
154
|
+
#
|
155
|
+
attr_accessor :flavor_params_ids
|
156
|
+
|
157
|
+
def delete_type=(val)
|
158
|
+
@delete_type = val.to_i
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
class KalturaDeleteEntryObjectTask < KalturaObjectTask
|
163
|
+
|
164
|
+
end
|
165
|
+
|
166
|
+
class KalturaDeleteLocalContentObjectTask < KalturaObjectTask
|
167
|
+
|
168
|
+
end
|
169
|
+
|
170
|
+
class KalturaModifyCategoriesObjectTask < KalturaObjectTask
|
171
|
+
# Should the object task add or remove categories?
|
172
|
+
#
|
173
|
+
attr_accessor :add_remove_type
|
174
|
+
# The list of category ids to add or remove
|
175
|
+
#
|
176
|
+
attr_accessor :category_ids
|
177
|
+
|
178
|
+
def add_remove_type=(val)
|
179
|
+
@add_remove_type = val.to_i
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
class KalturaScheduledTaskJobData < KalturaJobData
|
184
|
+
attr_accessor :max_results
|
185
|
+
attr_accessor :results_file_path
|
186
|
+
attr_accessor :reference_time
|
187
|
+
|
188
|
+
def max_results=(val)
|
189
|
+
@max_results = val.to_i
|
190
|
+
end
|
191
|
+
def reference_time=(val)
|
192
|
+
@reference_time = val.to_i
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
class KalturaScheduledTaskProfileBaseFilter < KalturaFilter
|
197
|
+
attr_accessor :id_equal
|
198
|
+
attr_accessor :id_in
|
199
|
+
attr_accessor :partner_id_equal
|
200
|
+
attr_accessor :partner_id_in
|
201
|
+
attr_accessor :system_name_equal
|
202
|
+
attr_accessor :system_name_in
|
203
|
+
attr_accessor :status_equal
|
204
|
+
attr_accessor :status_in
|
205
|
+
attr_accessor :created_at_greater_than_or_equal
|
206
|
+
attr_accessor :created_at_less_than_or_equal
|
207
|
+
attr_accessor :updated_at_greater_than_or_equal
|
208
|
+
attr_accessor :updated_at_less_than_or_equal
|
209
|
+
attr_accessor :last_execution_started_at_greater_than_or_equal
|
210
|
+
attr_accessor :last_execution_started_at_less_than_or_equal
|
211
|
+
|
212
|
+
def id_equal=(val)
|
213
|
+
@id_equal = val.to_i
|
214
|
+
end
|
215
|
+
def partner_id_equal=(val)
|
216
|
+
@partner_id_equal = val.to_i
|
217
|
+
end
|
218
|
+
def status_equal=(val)
|
219
|
+
@status_equal = val.to_i
|
220
|
+
end
|
221
|
+
def created_at_greater_than_or_equal=(val)
|
222
|
+
@created_at_greater_than_or_equal = val.to_i
|
223
|
+
end
|
224
|
+
def created_at_less_than_or_equal=(val)
|
225
|
+
@created_at_less_than_or_equal = val.to_i
|
226
|
+
end
|
227
|
+
def updated_at_greater_than_or_equal=(val)
|
228
|
+
@updated_at_greater_than_or_equal = val.to_i
|
229
|
+
end
|
230
|
+
def updated_at_less_than_or_equal=(val)
|
231
|
+
@updated_at_less_than_or_equal = val.to_i
|
232
|
+
end
|
233
|
+
def last_execution_started_at_greater_than_or_equal=(val)
|
234
|
+
@last_execution_started_at_greater_than_or_equal = val.to_i
|
235
|
+
end
|
236
|
+
def last_execution_started_at_less_than_or_equal=(val)
|
237
|
+
@last_execution_started_at_less_than_or_equal = val.to_i
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
class KalturaScheduledTaskProfileFilter < KalturaScheduledTaskProfileBaseFilter
|
242
|
+
|
243
|
+
end
|
244
|
+
|
245
|
+
|
246
|
+
# Schedule task service lets you create and manage scheduled task profiles
|
247
|
+
#
|
248
|
+
class KalturaScheduledTaskProfileService < KalturaServiceBase
|
249
|
+
def initialize(client)
|
250
|
+
super(client)
|
251
|
+
end
|
252
|
+
|
253
|
+
# Add a new scheduled task profile
|
254
|
+
#
|
255
|
+
def add(scheduled_task_profile)
|
256
|
+
kparams = {}
|
257
|
+
client.add_param(kparams, 'scheduledTaskProfile', scheduled_task_profile);
|
258
|
+
client.queue_service_action_call('scheduledtask_scheduledtaskprofile', 'add', kparams);
|
259
|
+
if (client.is_multirequest)
|
260
|
+
return nil;
|
261
|
+
end
|
262
|
+
return client.do_queue();
|
263
|
+
end
|
264
|
+
|
265
|
+
# Retrieve a scheduled task profile by id
|
266
|
+
#
|
267
|
+
def get(id)
|
268
|
+
kparams = {}
|
269
|
+
client.add_param(kparams, 'id', id);
|
270
|
+
client.queue_service_action_call('scheduledtask_scheduledtaskprofile', 'get', kparams);
|
271
|
+
if (client.is_multirequest)
|
272
|
+
return nil;
|
273
|
+
end
|
274
|
+
return client.do_queue();
|
275
|
+
end
|
276
|
+
|
277
|
+
# Update an existing scheduled task profile
|
278
|
+
#
|
279
|
+
def update(id, scheduled_task_profile)
|
280
|
+
kparams = {}
|
281
|
+
client.add_param(kparams, 'id', id);
|
282
|
+
client.add_param(kparams, 'scheduledTaskProfile', scheduled_task_profile);
|
283
|
+
client.queue_service_action_call('scheduledtask_scheduledtaskprofile', 'update', kparams);
|
284
|
+
if (client.is_multirequest)
|
285
|
+
return nil;
|
286
|
+
end
|
287
|
+
return client.do_queue();
|
288
|
+
end
|
289
|
+
|
290
|
+
# Delete a scheduled task profile
|
291
|
+
#
|
292
|
+
def delete(id)
|
293
|
+
kparams = {}
|
294
|
+
client.add_param(kparams, 'id', id);
|
295
|
+
client.queue_service_action_call('scheduledtask_scheduledtaskprofile', 'delete', kparams);
|
296
|
+
if (client.is_multirequest)
|
297
|
+
return nil;
|
298
|
+
end
|
299
|
+
return client.do_queue();
|
300
|
+
end
|
301
|
+
|
302
|
+
# List scheduled task profiles
|
303
|
+
#
|
304
|
+
def list(filter=KalturaNotImplemented, pager=KalturaNotImplemented)
|
305
|
+
kparams = {}
|
306
|
+
client.add_param(kparams, 'filter', filter);
|
307
|
+
client.add_param(kparams, 'pager', pager);
|
308
|
+
client.queue_service_action_call('scheduledtask_scheduledtaskprofile', 'list', kparams);
|
309
|
+
if (client.is_multirequest)
|
310
|
+
return nil;
|
311
|
+
end
|
312
|
+
return client.do_queue();
|
313
|
+
end
|
314
|
+
|
315
|
+
def request_dry_run(scheduled_task_profile_id, max_results=500)
|
316
|
+
kparams = {}
|
317
|
+
client.add_param(kparams, 'scheduledTaskProfileId', scheduled_task_profile_id);
|
318
|
+
client.add_param(kparams, 'maxResults', max_results);
|
319
|
+
client.queue_service_action_call('scheduledtask_scheduledtaskprofile', 'requestDryRun', kparams);
|
320
|
+
if (client.is_multirequest)
|
321
|
+
return nil;
|
322
|
+
end
|
323
|
+
return client.do_queue();
|
324
|
+
end
|
325
|
+
|
326
|
+
def get_dry_run_results(request_id)
|
327
|
+
kparams = {}
|
328
|
+
client.add_param(kparams, 'requestId', request_id);
|
329
|
+
client.queue_service_action_call('scheduledtask_scheduledtaskprofile', 'getDryRunResults', kparams);
|
330
|
+
if (client.is_multirequest)
|
331
|
+
return nil;
|
332
|
+
end
|
333
|
+
return client.do_queue();
|
334
|
+
end
|
335
|
+
end
|
336
|
+
|
337
|
+
class KalturaClient < KalturaClientBase
|
338
|
+
attr_reader :scheduled_task_profile_service
|
339
|
+
def scheduled_task_profile_service
|
340
|
+
if (@scheduled_task_profile_service == nil)
|
341
|
+
@scheduled_task_profile_service = KalturaScheduledTaskProfileService.new(self)
|
342
|
+
end
|
343
|
+
return @scheduled_task_profile_service
|
344
|
+
end
|
345
|
+
end
|
346
|
+
|
347
|
+
end
|