kaltura-client 3.1.6 → 3.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README +0 -1
- data/agpl.txt +67 -80
- data/kaltura.yml +5 -5
- data/lib/kaltura_client.rb +451 -84
- data/lib/kaltura_client_base.rb +1 -1
- data/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_admin_console_client_plugin.rb +356 -0
- data/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +1 -26
- data/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +3 -7
- data/lib/kaltura_plugins/kaltura_document_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +1 -2
- data/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_event_cue_point_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +3 -1
- data/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_kaltura_internal_tools_client_plugin.rb +108 -0
- data/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_like_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +1 -2
- data/lib/kaltura_plugins/kaltura_scheduled_task_client_plugin.rb +14 -1
- data/lib/kaltura_plugins/kaltura_scheduled_task_content_distribution_client_plugin.rb +42 -0
- data/lib/kaltura_plugins/kaltura_scheduled_task_event_notification_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_scheduled_task_metadata_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_system_partner_client_plugin.rb +575 -0
- data/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +1 -1
- data/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +1 -4
- metadata +6 -2
data/lib/kaltura_client_base.rb
CHANGED
@@ -368,7 +368,7 @@ module Kaltura
|
|
368
368
|
def initialize(partner_id = -1,service_url="http://www.kaltura.com")
|
369
369
|
@service_url = service_url
|
370
370
|
@format = 2 # xml
|
371
|
-
@client_tag = "ruby:
|
371
|
+
@client_tag = "ruby:15-03-23"
|
372
372
|
@timeout = 120
|
373
373
|
@partner_id = partner_id
|
374
374
|
@requestHeaders = {}
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -0,0 +1,356 @@
|
|
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-2015 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_file_sync_client_plugin.rb'
|
30
|
+
|
31
|
+
module Kaltura
|
32
|
+
|
33
|
+
class KalturaTrackEntryEventType
|
34
|
+
UPLOADED_FILE = 1
|
35
|
+
WEBCAM_COMPLETED = 2
|
36
|
+
IMPORT_STARTED = 3
|
37
|
+
ADD_ENTRY = 4
|
38
|
+
UPDATE_ENTRY = 5
|
39
|
+
DELETED_ENTRY = 6
|
40
|
+
end
|
41
|
+
|
42
|
+
class KalturaUiConfAdminOrderBy
|
43
|
+
CREATED_AT_ASC = "+createdAt"
|
44
|
+
UPDATED_AT_ASC = "+updatedAt"
|
45
|
+
CREATED_AT_DESC = "-createdAt"
|
46
|
+
UPDATED_AT_DESC = "-updatedAt"
|
47
|
+
end
|
48
|
+
|
49
|
+
class KalturaTrackEntry < KalturaObjectBase
|
50
|
+
attr_accessor :id
|
51
|
+
attr_accessor :track_event_type
|
52
|
+
attr_accessor :ps_version
|
53
|
+
attr_accessor :context
|
54
|
+
attr_accessor :partner_id
|
55
|
+
attr_accessor :entry_id
|
56
|
+
attr_accessor :host_name
|
57
|
+
attr_accessor :user_id
|
58
|
+
attr_accessor :changed_properties
|
59
|
+
attr_accessor :param_str1
|
60
|
+
attr_accessor :param_str2
|
61
|
+
attr_accessor :param_str3
|
62
|
+
attr_accessor :ks
|
63
|
+
attr_accessor :description
|
64
|
+
attr_accessor :created_at
|
65
|
+
attr_accessor :updated_at
|
66
|
+
attr_accessor :user_ip
|
67
|
+
|
68
|
+
def id=(val)
|
69
|
+
@id = val.to_i
|
70
|
+
end
|
71
|
+
def track_event_type=(val)
|
72
|
+
@track_event_type = val.to_i
|
73
|
+
end
|
74
|
+
def partner_id=(val)
|
75
|
+
@partner_id = val.to_i
|
76
|
+
end
|
77
|
+
def created_at=(val)
|
78
|
+
@created_at = val.to_i
|
79
|
+
end
|
80
|
+
def updated_at=(val)
|
81
|
+
@updated_at = val.to_i
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
class KalturaTrackEntryListResponse < KalturaObjectBase
|
86
|
+
attr_accessor :objects
|
87
|
+
attr_accessor :total_count
|
88
|
+
|
89
|
+
def total_count=(val)
|
90
|
+
@total_count = val.to_i
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
class KalturaUiConfAdmin < KalturaUiConf
|
95
|
+
attr_accessor :is_public
|
96
|
+
|
97
|
+
def is_public=(val)
|
98
|
+
@is_public = to_b(val)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
class KalturaUiConfAdminListResponse < KalturaObjectBase
|
103
|
+
attr_accessor :objects
|
104
|
+
attr_accessor :total_count
|
105
|
+
|
106
|
+
def total_count=(val)
|
107
|
+
@total_count = val.to_i
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
class KalturaUiConfAdminBaseFilter < KalturaUiConfFilter
|
112
|
+
|
113
|
+
end
|
114
|
+
|
115
|
+
class KalturaUiConfAdminFilter < KalturaUiConfAdminBaseFilter
|
116
|
+
|
117
|
+
end
|
118
|
+
|
119
|
+
|
120
|
+
# Entry Admin service
|
121
|
+
#
|
122
|
+
class KalturaEntryAdminService < KalturaServiceBase
|
123
|
+
def initialize(client)
|
124
|
+
super(client)
|
125
|
+
end
|
126
|
+
|
127
|
+
# Get base entry by ID with no filters.
|
128
|
+
#
|
129
|
+
def get(entry_id, version=-1)
|
130
|
+
kparams = {}
|
131
|
+
# Entry id
|
132
|
+
client.add_param(kparams, 'entryId', entry_id);
|
133
|
+
# Desired version of the data
|
134
|
+
client.add_param(kparams, 'version', version);
|
135
|
+
client.queue_service_action_call('adminconsole_entryadmin', 'get', kparams);
|
136
|
+
if (client.is_multirequest)
|
137
|
+
return nil;
|
138
|
+
end
|
139
|
+
return client.do_queue();
|
140
|
+
end
|
141
|
+
|
142
|
+
# Get base entry by flavor ID with no filters.
|
143
|
+
#
|
144
|
+
def get_by_flavor_id(flavor_id, version=-1)
|
145
|
+
kparams = {}
|
146
|
+
client.add_param(kparams, 'flavorId', flavor_id);
|
147
|
+
# Desired version of the data
|
148
|
+
client.add_param(kparams, 'version', version);
|
149
|
+
client.queue_service_action_call('adminconsole_entryadmin', 'getByFlavorId', kparams);
|
150
|
+
if (client.is_multirequest)
|
151
|
+
return nil;
|
152
|
+
end
|
153
|
+
return client.do_queue();
|
154
|
+
end
|
155
|
+
|
156
|
+
# Get base entry by ID with no filters.
|
157
|
+
#
|
158
|
+
def get_tracks(entry_id)
|
159
|
+
kparams = {}
|
160
|
+
# Entry id
|
161
|
+
client.add_param(kparams, 'entryId', entry_id);
|
162
|
+
client.queue_service_action_call('adminconsole_entryadmin', 'getTracks', kparams);
|
163
|
+
if (client.is_multirequest)
|
164
|
+
return nil;
|
165
|
+
end
|
166
|
+
return client.do_queue();
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
# UiConf Admin service
|
171
|
+
#
|
172
|
+
class KalturaUiConfAdminService < KalturaServiceBase
|
173
|
+
def initialize(client)
|
174
|
+
super(client)
|
175
|
+
end
|
176
|
+
|
177
|
+
# Adds new UIConf with no partner limitation
|
178
|
+
#
|
179
|
+
def add(ui_conf)
|
180
|
+
kparams = {}
|
181
|
+
client.add_param(kparams, 'uiConf', ui_conf);
|
182
|
+
client.queue_service_action_call('adminconsole_uiconfadmin', 'add', kparams);
|
183
|
+
if (client.is_multirequest)
|
184
|
+
return nil;
|
185
|
+
end
|
186
|
+
return client.do_queue();
|
187
|
+
end
|
188
|
+
|
189
|
+
# Update an existing UIConf with no partner limitation
|
190
|
+
#
|
191
|
+
def update(id, ui_conf)
|
192
|
+
kparams = {}
|
193
|
+
client.add_param(kparams, 'id', id);
|
194
|
+
client.add_param(kparams, 'uiConf', ui_conf);
|
195
|
+
client.queue_service_action_call('adminconsole_uiconfadmin', 'update', kparams);
|
196
|
+
if (client.is_multirequest)
|
197
|
+
return nil;
|
198
|
+
end
|
199
|
+
return client.do_queue();
|
200
|
+
end
|
201
|
+
|
202
|
+
# Retrieve a UIConf by id with no partner limitation
|
203
|
+
#
|
204
|
+
def get(id)
|
205
|
+
kparams = {}
|
206
|
+
client.add_param(kparams, 'id', id);
|
207
|
+
client.queue_service_action_call('adminconsole_uiconfadmin', 'get', kparams);
|
208
|
+
if (client.is_multirequest)
|
209
|
+
return nil;
|
210
|
+
end
|
211
|
+
return client.do_queue();
|
212
|
+
end
|
213
|
+
|
214
|
+
# Delete an existing UIConf with no partner limitation
|
215
|
+
#
|
216
|
+
def delete(id)
|
217
|
+
kparams = {}
|
218
|
+
client.add_param(kparams, 'id', id);
|
219
|
+
client.queue_service_action_call('adminconsole_uiconfadmin', 'delete', kparams);
|
220
|
+
if (client.is_multirequest)
|
221
|
+
return nil;
|
222
|
+
end
|
223
|
+
return client.do_queue();
|
224
|
+
end
|
225
|
+
|
226
|
+
# Retrieve a list of available UIConfs with no partner limitation
|
227
|
+
#
|
228
|
+
def list(filter=KalturaNotImplemented, pager=KalturaNotImplemented)
|
229
|
+
kparams = {}
|
230
|
+
client.add_param(kparams, 'filter', filter);
|
231
|
+
client.add_param(kparams, 'pager', pager);
|
232
|
+
client.queue_service_action_call('adminconsole_uiconfadmin', 'list', kparams);
|
233
|
+
if (client.is_multirequest)
|
234
|
+
return nil;
|
235
|
+
end
|
236
|
+
return client.do_queue();
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
class KalturaReportAdminService < KalturaServiceBase
|
241
|
+
def initialize(client)
|
242
|
+
super(client)
|
243
|
+
end
|
244
|
+
|
245
|
+
def add(report)
|
246
|
+
kparams = {}
|
247
|
+
client.add_param(kparams, 'report', report);
|
248
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'add', kparams);
|
249
|
+
if (client.is_multirequest)
|
250
|
+
return nil;
|
251
|
+
end
|
252
|
+
return client.do_queue();
|
253
|
+
end
|
254
|
+
|
255
|
+
def get(id)
|
256
|
+
kparams = {}
|
257
|
+
client.add_param(kparams, 'id', id);
|
258
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'get', kparams);
|
259
|
+
if (client.is_multirequest)
|
260
|
+
return nil;
|
261
|
+
end
|
262
|
+
return client.do_queue();
|
263
|
+
end
|
264
|
+
|
265
|
+
def list(filter=KalturaNotImplemented, pager=KalturaNotImplemented)
|
266
|
+
kparams = {}
|
267
|
+
client.add_param(kparams, 'filter', filter);
|
268
|
+
client.add_param(kparams, 'pager', pager);
|
269
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'list', kparams);
|
270
|
+
if (client.is_multirequest)
|
271
|
+
return nil;
|
272
|
+
end
|
273
|
+
return client.do_queue();
|
274
|
+
end
|
275
|
+
|
276
|
+
def update(id, report)
|
277
|
+
kparams = {}
|
278
|
+
client.add_param(kparams, 'id', id);
|
279
|
+
client.add_param(kparams, 'report', report);
|
280
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'update', kparams);
|
281
|
+
if (client.is_multirequest)
|
282
|
+
return nil;
|
283
|
+
end
|
284
|
+
return client.do_queue();
|
285
|
+
end
|
286
|
+
|
287
|
+
def delete(id)
|
288
|
+
kparams = {}
|
289
|
+
client.add_param(kparams, 'id', id);
|
290
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'delete', kparams);
|
291
|
+
if (client.is_multirequest)
|
292
|
+
return nil;
|
293
|
+
end
|
294
|
+
return client.do_queue();
|
295
|
+
end
|
296
|
+
|
297
|
+
def execute_debug(id, params=KalturaNotImplemented)
|
298
|
+
kparams = {}
|
299
|
+
client.add_param(kparams, 'id', id);
|
300
|
+
params.each do |obj|
|
301
|
+
client.add_param(kparams, 'params', obj);
|
302
|
+
end
|
303
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'executeDebug', kparams);
|
304
|
+
if (client.is_multirequest)
|
305
|
+
return nil;
|
306
|
+
end
|
307
|
+
return client.do_queue();
|
308
|
+
end
|
309
|
+
|
310
|
+
def get_parameters(id)
|
311
|
+
kparams = {}
|
312
|
+
client.add_param(kparams, 'id', id);
|
313
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'getParameters', kparams);
|
314
|
+
if (client.is_multirequest)
|
315
|
+
return nil;
|
316
|
+
end
|
317
|
+
return client.do_queue();
|
318
|
+
end
|
319
|
+
|
320
|
+
def get_csv_url(id, report_partner_id)
|
321
|
+
kparams = {}
|
322
|
+
client.add_param(kparams, 'id', id);
|
323
|
+
client.add_param(kparams, 'reportPartnerId', report_partner_id);
|
324
|
+
client.queue_service_action_call('adminconsole_reportadmin', 'getCsvUrl', kparams);
|
325
|
+
if (client.is_multirequest)
|
326
|
+
return nil;
|
327
|
+
end
|
328
|
+
return client.do_queue();
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
332
|
+
class KalturaClient < KalturaClientBase
|
333
|
+
attr_reader :entry_admin_service
|
334
|
+
def entry_admin_service
|
335
|
+
if (@entry_admin_service == nil)
|
336
|
+
@entry_admin_service = KalturaEntryAdminService.new(self)
|
337
|
+
end
|
338
|
+
return @entry_admin_service
|
339
|
+
end
|
340
|
+
attr_reader :ui_conf_admin_service
|
341
|
+
def ui_conf_admin_service
|
342
|
+
if (@ui_conf_admin_service == nil)
|
343
|
+
@ui_conf_admin_service = KalturaUiConfAdminService.new(self)
|
344
|
+
end
|
345
|
+
return @ui_conf_admin_service
|
346
|
+
end
|
347
|
+
attr_reader :report_admin_service
|
348
|
+
def report_admin_service
|
349
|
+
if (@report_admin_service == nil)
|
350
|
+
@report_admin_service = KalturaReportAdminService.new(self)
|
351
|
+
end
|
352
|
+
return @report_admin_service
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
356
|
+
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|
@@ -8,7 +8,7 @@
|
|
8
8
|
# to do with audio, video, and animation what Wiki platfroms allow them to do with
|
9
9
|
# text.
|
10
10
|
#
|
11
|
-
# Copyright (C) 2006-
|
11
|
+
# Copyright (C) 2006-2015 Kaltura Inc.
|
12
12
|
#
|
13
13
|
# This program is free software: you can redistribute it and/or modify
|
14
14
|
# it under the terms of the GNU Affero General Public License as
|