kaltura-client 3.3.0 → 14.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/README +23 -23
  3. data/lib/kaltura_client.rb +2054 -1860
  4. data/lib/kaltura_client_base.rb +4 -1
  5. data/lib/kaltura_enums.rb +612 -36
  6. data/lib/kaltura_plugins/kaltura_activiti_business_process_notification_client_plugin.rb +96 -0
  7. data/lib/kaltura_plugins/kaltura_ad_cue_point_client_plugin.rb +46 -17
  8. data/lib/kaltura_plugins/kaltura_admin_console_client_plugin.rb +61 -251
  9. data/lib/kaltura_plugins/kaltura_annotation_client_plugin.rb +131 -60
  10. data/lib/kaltura_plugins/kaltura_aspera_client_plugin.rb +62 -0
  11. data/lib/kaltura_plugins/kaltura_attachment_client_plugin.rb +83 -55
  12. data/lib/kaltura_plugins/kaltura_audit_client_plugin.rb +613 -0
  13. data/lib/kaltura_plugins/kaltura_avn_distribution_client_plugin.rb +109 -0
  14. data/lib/kaltura_plugins/kaltura_bpm_event_notification_integration_client_plugin.rb +61 -0
  15. data/lib/kaltura_plugins/kaltura_bulk_upload_client_plugin.rb +17 -19
  16. data/lib/kaltura_plugins/kaltura_bulk_upload_csv_client_plugin.rb +7 -6
  17. data/lib/kaltura_plugins/kaltura_bulk_upload_filter_client_plugin.rb +33 -13
  18. data/lib/kaltura_plugins/kaltura_bulk_upload_xml_client_plugin.rb +1 -2
  19. data/lib/kaltura_plugins/kaltura_business_process_notification_client_plugin.rb +545 -0
  20. data/lib/kaltura_plugins/kaltura_caption_client_plugin.rb +235 -114
  21. data/lib/kaltura_plugins/kaltura_caption_search_client_plugin.rb +86 -29
  22. data/lib/kaltura_plugins/kaltura_cielo24client_plugin.rb +39 -17
  23. data/lib/kaltura_plugins/kaltura_code_cue_point_client_plugin.rb +49 -18
  24. data/lib/kaltura_plugins/kaltura_comcast_mrss_distribution_client_plugin.rb +163 -0
  25. data/lib/kaltura_plugins/kaltura_content_distribution_client_plugin.rb +846 -439
  26. data/lib/kaltura_plugins/kaltura_cross_kaltura_distribution_client_plugin.rb +232 -0
  27. data/lib/kaltura_plugins/kaltura_cue_point_client_plugin.rb +229 -74
  28. data/lib/kaltura_plugins/kaltura_dailymotion_distribution_client_plugin.rb +199 -0
  29. data/lib/kaltura_plugins/kaltura_document_client_plugin.rb +140 -97
  30. data/lib/kaltura_plugins/kaltura_double_click_distribution_client_plugin.rb +142 -0
  31. data/lib/kaltura_plugins/kaltura_drm_client_plugin.rb +635 -0
  32. data/lib/kaltura_plugins/kaltura_drop_folder_client_plugin.rb +485 -196
  33. data/lib/kaltura_plugins/kaltura_drop_folder_xml_bulk_upload_client_plugin.rb +19 -1
  34. data/lib/kaltura_plugins/kaltura_elastic_search_client_plugin.rb +1228 -0
  35. data/lib/kaltura_plugins/kaltura_email_notification_client_plugin.rb +178 -89
  36. data/lib/kaltura_plugins/kaltura_event_cue_point_client_plugin.rb +10 -4
  37. data/lib/kaltura_plugins/kaltura_event_notification_client_plugin.rb +205 -95
  38. data/lib/kaltura_plugins/kaltura_external_media_client_plugin.rb +43 -32
  39. data/lib/kaltura_plugins/kaltura_facebook_distribution_client_plugin.rb +183 -0
  40. data/lib/kaltura_plugins/kaltura_fairplay_client_plugin.rb +62 -0
  41. data/lib/kaltura_plugins/kaltura_feed_drop_folder_client_plugin.rb +40 -16
  42. data/lib/kaltura_plugins/kaltura_file_sync_client_plugin.rb +182 -67
  43. data/lib/kaltura_plugins/kaltura_freewheel_distribution_client_plugin.rb +157 -0
  44. data/lib/kaltura_plugins/kaltura_freewheel_generic_distribution_client_plugin.rb +172 -0
  45. data/lib/kaltura_plugins/kaltura_ftp_distribution_client_plugin.rb +258 -0
  46. data/lib/kaltura_plugins/kaltura_http_notification_client_plugin.rb +154 -102
  47. data/lib/kaltura_plugins/kaltura_hulu_distribution_client_plugin.rb +213 -0
  48. data/lib/kaltura_plugins/kaltura_idetic_distribution_client_plugin.rb +131 -0
  49. data/lib/kaltura_plugins/kaltura_integration_client_plugin.rb +19 -10
  50. data/lib/kaltura_plugins/kaltura_kaltura_internal_tools_client_plugin.rb +1 -87
  51. data/lib/kaltura_plugins/kaltura_kontiki_client_plugin.rb +19 -10
  52. data/lib/kaltura_plugins/kaltura_like_client_plugin.rb +45 -25
  53. data/lib/kaltura_plugins/kaltura_metadata_client_plugin.rb +435 -213
  54. data/lib/kaltura_plugins/kaltura_metro_pcs_distribution_client_plugin.rb +155 -0
  55. data/lib/kaltura_plugins/kaltura_msn_distribution_client_plugin.rb +186 -0
  56. data/lib/kaltura_plugins/kaltura_play_ready_client_plugin.rb +482 -0
  57. data/lib/kaltura_plugins/kaltura_poll_client_plugin.rb +116 -0
  58. data/lib/kaltura_plugins/kaltura_push_notification_client_plugin.rb +154 -0
  59. data/lib/kaltura_plugins/kaltura_quick_play_distribution_client_plugin.rb +187 -0
  60. data/lib/kaltura_plugins/kaltura_quiz_client_plugin.rb +155 -58
  61. data/lib/kaltura_plugins/kaltura_schedule_bulk_upload_client_plugin.rb +107 -0
  62. data/lib/kaltura_plugins/kaltura_schedule_client_plugin.rb +1580 -0
  63. data/lib/kaltura_plugins/kaltura_schedule_drop_folder_client_plugin.rb +52 -0
  64. data/lib/kaltura_plugins/kaltura_scheduled_task_client_plugin.rb +277 -71
  65. data/lib/kaltura_plugins/kaltura_scheduled_task_content_distribution_client_plugin.rb +4 -3
  66. data/lib/kaltura_plugins/kaltura_scheduled_task_event_notification_client_plugin.rb +4 -3
  67. data/lib/kaltura_plugins/kaltura_scheduled_task_metadata_client_plugin.rb +10 -7
  68. data/lib/kaltura_plugins/kaltura_short_link_client_plugin.rb +113 -66
  69. data/lib/kaltura_plugins/kaltura_system_partner_client_plugin.rb +81 -517
  70. data/lib/kaltura_plugins/kaltura_tag_search_client_plugin.rb +63 -30
  71. data/lib/kaltura_plugins/kaltura_thumb_cue_point_client_plugin.rb +40 -16
  72. data/lib/kaltura_plugins/kaltura_transcript_client_plugin.rb +44 -8
  73. data/lib/kaltura_plugins/kaltura_unicorn_distribution_client_plugin.rb +212 -0
  74. data/lib/kaltura_plugins/kaltura_var_console_client_plugin.rb +75 -74
  75. data/lib/kaltura_plugins/kaltura_velocix_client_plugin.rb +10 -4
  76. data/lib/kaltura_plugins/kaltura_view_history_client_plugin.rb +112 -0
  77. data/lib/kaltura_plugins/kaltura_virus_scan_client_plugin.rb +119 -59
  78. data/lib/kaltura_plugins/kaltura_voicebase_client_plugin.rb +34 -19
  79. data/lib/kaltura_plugins/kaltura_webex_drop_folder_client_plugin.rb +207 -0
  80. data/lib/kaltura_plugins/kaltura_widevine_client_plugin.rb +299 -0
  81. data/lib/kaltura_plugins/kaltura_wowza_client_plugin.rb +22 -13
  82. data/lib/kaltura_plugins/kaltura_yahoo_distribution_client_plugin.rb +155 -0
  83. data/lib/kaltura_plugins/kaltura_you_tube_distribution_client_plugin.rb +382 -0
  84. data/lib/kaltura_plugins/kaltura_youtube_api_distribution_client_plugin.rb +219 -0
  85. data/lib/kaltura_types.rb +10305 -4858
  86. data/test/access_control_service_test.rb +43 -20
  87. data/test/base_entry_service_test.rb +57 -67
  88. data/test/configuration_test.rb +2 -34
  89. data/test/cue_point_service_test.rb +1 -1
  90. data/test/data_service_test.rb +19 -5
  91. data/test/document_service_test.rb +1 -1
  92. data/test/media_service_test.rb +296 -296
  93. data/test/metadata_profile_service_test.rb +1 -1
  94. metadata +52 -21
@@ -0,0 +1,155 @@
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-2019 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_content_distribution_client_plugin.rb'
30
+
31
+ module Kaltura
32
+
33
+ class KalturaMetroPcsDistributionProfileOrderBy
34
+ CREATED_AT_ASC = "+createdAt"
35
+ UPDATED_AT_ASC = "+updatedAt"
36
+ CREATED_AT_DESC = "-createdAt"
37
+ UPDATED_AT_DESC = "-updatedAt"
38
+ end
39
+
40
+ class KalturaMetroPcsDistributionProviderOrderBy
41
+ end
42
+
43
+ class KalturaMetroPcsDistributionProvider < KalturaDistributionProvider
44
+
45
+
46
+ def from_xml(xml_element)
47
+ super
48
+ end
49
+
50
+ end
51
+
52
+ class KalturaMetroPcsDistributionJobProviderData < KalturaConfigurableDistributionJobProviderData
53
+ attr_accessor :asset_local_paths
54
+ attr_accessor :thumb_urls
55
+
56
+
57
+ def from_xml(xml_element)
58
+ super
59
+ if xml_element.elements['assetLocalPaths'] != nil
60
+ self.asset_local_paths = xml_element.elements['assetLocalPaths'].text
61
+ end
62
+ if xml_element.elements['thumbUrls'] != nil
63
+ self.thumb_urls = xml_element.elements['thumbUrls'].text
64
+ end
65
+ end
66
+
67
+ end
68
+
69
+ class KalturaMetroPcsDistributionProfile < KalturaConfigurableDistributionProfile
70
+ attr_accessor :ftp_host
71
+ attr_accessor :ftp_login
72
+ attr_accessor :ftp_pass
73
+ attr_accessor :ftp_path
74
+ attr_accessor :provider_name
75
+ attr_accessor :provider_id
76
+ attr_accessor :copyright
77
+ attr_accessor :entitlements
78
+ attr_accessor :rating
79
+ attr_accessor :item_type
80
+
81
+
82
+ def from_xml(xml_element)
83
+ super
84
+ if xml_element.elements['ftpHost'] != nil
85
+ self.ftp_host = xml_element.elements['ftpHost'].text
86
+ end
87
+ if xml_element.elements['ftpLogin'] != nil
88
+ self.ftp_login = xml_element.elements['ftpLogin'].text
89
+ end
90
+ if xml_element.elements['ftpPass'] != nil
91
+ self.ftp_pass = xml_element.elements['ftpPass'].text
92
+ end
93
+ if xml_element.elements['ftpPath'] != nil
94
+ self.ftp_path = xml_element.elements['ftpPath'].text
95
+ end
96
+ if xml_element.elements['providerName'] != nil
97
+ self.provider_name = xml_element.elements['providerName'].text
98
+ end
99
+ if xml_element.elements['providerId'] != nil
100
+ self.provider_id = xml_element.elements['providerId'].text
101
+ end
102
+ if xml_element.elements['copyright'] != nil
103
+ self.copyright = xml_element.elements['copyright'].text
104
+ end
105
+ if xml_element.elements['entitlements'] != nil
106
+ self.entitlements = xml_element.elements['entitlements'].text
107
+ end
108
+ if xml_element.elements['rating'] != nil
109
+ self.rating = xml_element.elements['rating'].text
110
+ end
111
+ if xml_element.elements['itemType'] != nil
112
+ self.item_type = xml_element.elements['itemType'].text
113
+ end
114
+ end
115
+
116
+ end
117
+
118
+ class KalturaMetroPcsDistributionProviderBaseFilter < KalturaDistributionProviderFilter
119
+
120
+
121
+ def from_xml(xml_element)
122
+ super
123
+ end
124
+
125
+ end
126
+
127
+ class KalturaMetroPcsDistributionProviderFilter < KalturaMetroPcsDistributionProviderBaseFilter
128
+
129
+
130
+ def from_xml(xml_element)
131
+ super
132
+ end
133
+
134
+ end
135
+
136
+ class KalturaMetroPcsDistributionProfileBaseFilter < KalturaConfigurableDistributionProfileFilter
137
+
138
+
139
+ def from_xml(xml_element)
140
+ super
141
+ end
142
+
143
+ end
144
+
145
+ class KalturaMetroPcsDistributionProfileFilter < KalturaMetroPcsDistributionProfileBaseFilter
146
+
147
+
148
+ def from_xml(xml_element)
149
+ super
150
+ end
151
+
152
+ end
153
+
154
+
155
+ end
@@ -0,0 +1,186 @@
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-2019 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_content_distribution_client_plugin.rb'
30
+
31
+ module Kaltura
32
+
33
+ class KalturaMsnDistributionProfileOrderBy
34
+ CREATED_AT_ASC = "+createdAt"
35
+ UPDATED_AT_ASC = "+updatedAt"
36
+ CREATED_AT_DESC = "-createdAt"
37
+ UPDATED_AT_DESC = "-updatedAt"
38
+ end
39
+
40
+ class KalturaMsnDistributionProviderOrderBy
41
+ end
42
+
43
+ class KalturaMsnDistributionProvider < KalturaDistributionProvider
44
+
45
+
46
+ def from_xml(xml_element)
47
+ super
48
+ end
49
+
50
+ end
51
+
52
+ class KalturaMsnDistributionJobProviderData < KalturaConfigurableDistributionJobProviderData
53
+ attr_accessor :xml
54
+
55
+
56
+ def from_xml(xml_element)
57
+ super
58
+ if xml_element.elements['xml'] != nil
59
+ self.xml = xml_element.elements['xml'].text
60
+ end
61
+ end
62
+
63
+ end
64
+
65
+ class KalturaMsnDistributionProfile < KalturaConfigurableDistributionProfile
66
+ attr_accessor :username
67
+ attr_accessor :password
68
+ attr_accessor :domain
69
+ attr_accessor :cs_id
70
+ attr_accessor :source
71
+ attr_accessor :source_friendly_name
72
+ attr_accessor :page_group
73
+ attr_accessor :source_flavor_params_id
74
+ attr_accessor :wmv_flavor_params_id
75
+ attr_accessor :flv_flavor_params_id
76
+ attr_accessor :sl_flavor_params_id
77
+ attr_accessor :sl_hd_flavor_params_id
78
+ attr_accessor :msnvideo_cat
79
+ attr_accessor :msnvideo_top
80
+ attr_accessor :msnvideo_top_cat
81
+
82
+ def source_flavor_params_id=(val)
83
+ @source_flavor_params_id = val.to_i
84
+ end
85
+ def wmv_flavor_params_id=(val)
86
+ @wmv_flavor_params_id = val.to_i
87
+ end
88
+ def flv_flavor_params_id=(val)
89
+ @flv_flavor_params_id = val.to_i
90
+ end
91
+ def sl_flavor_params_id=(val)
92
+ @sl_flavor_params_id = val.to_i
93
+ end
94
+ def sl_hd_flavor_params_id=(val)
95
+ @sl_hd_flavor_params_id = val.to_i
96
+ end
97
+
98
+ def from_xml(xml_element)
99
+ super
100
+ if xml_element.elements['username'] != nil
101
+ self.username = xml_element.elements['username'].text
102
+ end
103
+ if xml_element.elements['password'] != nil
104
+ self.password = xml_element.elements['password'].text
105
+ end
106
+ if xml_element.elements['domain'] != nil
107
+ self.domain = xml_element.elements['domain'].text
108
+ end
109
+ if xml_element.elements['csId'] != nil
110
+ self.cs_id = xml_element.elements['csId'].text
111
+ end
112
+ if xml_element.elements['source'] != nil
113
+ self.source = xml_element.elements['source'].text
114
+ end
115
+ if xml_element.elements['sourceFriendlyName'] != nil
116
+ self.source_friendly_name = xml_element.elements['sourceFriendlyName'].text
117
+ end
118
+ if xml_element.elements['pageGroup'] != nil
119
+ self.page_group = xml_element.elements['pageGroup'].text
120
+ end
121
+ if xml_element.elements['sourceFlavorParamsId'] != nil
122
+ self.source_flavor_params_id = xml_element.elements['sourceFlavorParamsId'].text
123
+ end
124
+ if xml_element.elements['wmvFlavorParamsId'] != nil
125
+ self.wmv_flavor_params_id = xml_element.elements['wmvFlavorParamsId'].text
126
+ end
127
+ if xml_element.elements['flvFlavorParamsId'] != nil
128
+ self.flv_flavor_params_id = xml_element.elements['flvFlavorParamsId'].text
129
+ end
130
+ if xml_element.elements['slFlavorParamsId'] != nil
131
+ self.sl_flavor_params_id = xml_element.elements['slFlavorParamsId'].text
132
+ end
133
+ if xml_element.elements['slHdFlavorParamsId'] != nil
134
+ self.sl_hd_flavor_params_id = xml_element.elements['slHdFlavorParamsId'].text
135
+ end
136
+ if xml_element.elements['msnvideoCat'] != nil
137
+ self.msnvideo_cat = xml_element.elements['msnvideoCat'].text
138
+ end
139
+ if xml_element.elements['msnvideoTop'] != nil
140
+ self.msnvideo_top = xml_element.elements['msnvideoTop'].text
141
+ end
142
+ if xml_element.elements['msnvideoTopCat'] != nil
143
+ self.msnvideo_top_cat = xml_element.elements['msnvideoTopCat'].text
144
+ end
145
+ end
146
+
147
+ end
148
+
149
+ class KalturaMsnDistributionProviderBaseFilter < KalturaDistributionProviderFilter
150
+
151
+
152
+ def from_xml(xml_element)
153
+ super
154
+ end
155
+
156
+ end
157
+
158
+ class KalturaMsnDistributionProviderFilter < KalturaMsnDistributionProviderBaseFilter
159
+
160
+
161
+ def from_xml(xml_element)
162
+ super
163
+ end
164
+
165
+ end
166
+
167
+ class KalturaMsnDistributionProfileBaseFilter < KalturaConfigurableDistributionProfileFilter
168
+
169
+
170
+ def from_xml(xml_element)
171
+ super
172
+ end
173
+
174
+ end
175
+
176
+ class KalturaMsnDistributionProfileFilter < KalturaMsnDistributionProfileBaseFilter
177
+
178
+
179
+ def from_xml(xml_element)
180
+ super
181
+ end
182
+
183
+ end
184
+
185
+
186
+ end
@@ -0,0 +1,482 @@
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-2019 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
+ attr_accessor :type
120
+
121
+
122
+ def from_xml(xml_element)
123
+ super
124
+ if xml_element.elements['type'] != nil
125
+ self.type = xml_element.elements['type'].text
126
+ end
127
+ end
128
+
129
+ end
130
+
131
+ class KalturaPlayReadyContentKey < KalturaObjectBase
132
+ # Guid - key id of the specific content
133
+ attr_accessor :key_id
134
+ # License content key 64 bit encoded
135
+ attr_accessor :content_key
136
+
137
+
138
+ def from_xml(xml_element)
139
+ super
140
+ if xml_element.elements['keyId'] != nil
141
+ self.key_id = xml_element.elements['keyId'].text
142
+ end
143
+ if xml_element.elements['contentKey'] != nil
144
+ self.content_key = xml_element.elements['contentKey'].text
145
+ end
146
+ end
147
+
148
+ end
149
+
150
+ class KalturaPlayReadyCopyEnablerHolder < KalturaObjectBase
151
+ # The type of the copy enabler
152
+ attr_accessor :type
153
+
154
+
155
+ def from_xml(xml_element)
156
+ super
157
+ if xml_element.elements['type'] != nil
158
+ self.type = xml_element.elements['type'].text
159
+ end
160
+ end
161
+
162
+ end
163
+
164
+ class KalturaPlayReadyDigitalAudioOPIdHolder < KalturaObjectBase
165
+ # The type of the play enabler
166
+ attr_accessor :type
167
+
168
+
169
+ def from_xml(xml_element)
170
+ super
171
+ if xml_element.elements['type'] != nil
172
+ self.type = xml_element.elements['type'].text
173
+ end
174
+ end
175
+
176
+ end
177
+
178
+ class KalturaPlayReadyRight < KalturaObjectBase
179
+
180
+
181
+ def from_xml(xml_element)
182
+ super
183
+ end
184
+
185
+ end
186
+
187
+ class KalturaPlayReadyPolicy < KalturaDrmPolicy
188
+ attr_accessor :grace_period
189
+ attr_accessor :license_removal_policy
190
+ attr_accessor :license_removal_duration
191
+ attr_accessor :min_security_level
192
+ attr_accessor :rights
193
+
194
+ def grace_period=(val)
195
+ @grace_period = val.to_i
196
+ end
197
+ def license_removal_policy=(val)
198
+ @license_removal_policy = val.to_i
199
+ end
200
+ def license_removal_duration=(val)
201
+ @license_removal_duration = val.to_i
202
+ end
203
+ def min_security_level=(val)
204
+ @min_security_level = val.to_i
205
+ end
206
+
207
+ def from_xml(xml_element)
208
+ super
209
+ if xml_element.elements['gracePeriod'] != nil
210
+ self.grace_period = xml_element.elements['gracePeriod'].text
211
+ end
212
+ if xml_element.elements['licenseRemovalPolicy'] != nil
213
+ self.license_removal_policy = xml_element.elements['licenseRemovalPolicy'].text
214
+ end
215
+ if xml_element.elements['licenseRemovalDuration'] != nil
216
+ self.license_removal_duration = xml_element.elements['licenseRemovalDuration'].text
217
+ end
218
+ if xml_element.elements['minSecurityLevel'] != nil
219
+ self.min_security_level = xml_element.elements['minSecurityLevel'].text
220
+ end
221
+ if xml_element.elements['rights'] != nil
222
+ self.rights = KalturaClientBase.object_from_xml(xml_element.elements['rights'], 'KalturaPlayReadyRight')
223
+ end
224
+ end
225
+
226
+ end
227
+
228
+ class KalturaPlayReadyLicenseDetails < KalturaObjectBase
229
+ # PlayReady policy object
230
+ attr_accessor :policy
231
+ # License begin date
232
+ attr_accessor :begin_date
233
+ # License expiration date
234
+ attr_accessor :expiration_date
235
+ # License removal date
236
+ attr_accessor :removal_date
237
+
238
+ def begin_date=(val)
239
+ @begin_date = val.to_i
240
+ end
241
+ def expiration_date=(val)
242
+ @expiration_date = val.to_i
243
+ end
244
+ def removal_date=(val)
245
+ @removal_date = val.to_i
246
+ end
247
+
248
+ def from_xml(xml_element)
249
+ super
250
+ if xml_element.elements['policy'] != nil
251
+ self.policy = KalturaClientBase.object_from_xml(xml_element.elements['policy'], 'KalturaPlayReadyPolicy')
252
+ end
253
+ if xml_element.elements['beginDate'] != nil
254
+ self.begin_date = xml_element.elements['beginDate'].text
255
+ end
256
+ if xml_element.elements['expirationDate'] != nil
257
+ self.expiration_date = xml_element.elements['expirationDate'].text
258
+ end
259
+ if xml_element.elements['removalDate'] != nil
260
+ self.removal_date = xml_element.elements['removalDate'].text
261
+ end
262
+ end
263
+
264
+ end
265
+
266
+ class KalturaPlayReadyPlayEnablerHolder < KalturaObjectBase
267
+ # The type of the play enabler
268
+ attr_accessor :type
269
+
270
+
271
+ def from_xml(xml_element)
272
+ super
273
+ if xml_element.elements['type'] != nil
274
+ self.type = xml_element.elements['type'].text
275
+ end
276
+ end
277
+
278
+ end
279
+
280
+ class KalturaPlayReadyCopyRight < KalturaPlayReadyRight
281
+ attr_accessor :copy_count
282
+ attr_accessor :copy_enablers
283
+
284
+ def copy_count=(val)
285
+ @copy_count = val.to_i
286
+ end
287
+
288
+ def from_xml(xml_element)
289
+ super
290
+ if xml_element.elements['copyCount'] != nil
291
+ self.copy_count = xml_element.elements['copyCount'].text
292
+ end
293
+ if xml_element.elements['copyEnablers'] != nil
294
+ self.copy_enablers = KalturaClientBase.object_from_xml(xml_element.elements['copyEnablers'], 'KalturaPlayReadyCopyEnablerHolder')
295
+ end
296
+ end
297
+
298
+ end
299
+
300
+ class KalturaPlayReadyPlayRight < KalturaPlayReadyRight
301
+ attr_accessor :analog_video_opl
302
+ attr_accessor :analog_video_output_protection_list
303
+ attr_accessor :compressed_digital_audio_opl
304
+ attr_accessor :compressed_digital_video_opl
305
+ attr_accessor :digital_audio_output_protection_list
306
+ attr_accessor :uncompressed_digital_audio_opl
307
+ attr_accessor :uncompressed_digital_video_opl
308
+ attr_accessor :first_play_expiration
309
+ attr_accessor :play_enablers
310
+
311
+ def analog_video_opl=(val)
312
+ @analog_video_opl = val.to_i
313
+ end
314
+ def compressed_digital_audio_opl=(val)
315
+ @compressed_digital_audio_opl = val.to_i
316
+ end
317
+ def compressed_digital_video_opl=(val)
318
+ @compressed_digital_video_opl = val.to_i
319
+ end
320
+ def uncompressed_digital_audio_opl=(val)
321
+ @uncompressed_digital_audio_opl = val.to_i
322
+ end
323
+ def uncompressed_digital_video_opl=(val)
324
+ @uncompressed_digital_video_opl = val.to_i
325
+ end
326
+ def first_play_expiration=(val)
327
+ @first_play_expiration = val.to_i
328
+ end
329
+
330
+ def from_xml(xml_element)
331
+ super
332
+ if xml_element.elements['analogVideoOPL'] != nil
333
+ self.analog_video_opl = xml_element.elements['analogVideoOPL'].text
334
+ end
335
+ if xml_element.elements['analogVideoOutputProtectionList'] != nil
336
+ self.analog_video_output_protection_list = KalturaClientBase.object_from_xml(xml_element.elements['analogVideoOutputProtectionList'], 'KalturaPlayReadyAnalogVideoOPIdHolder')
337
+ end
338
+ if xml_element.elements['compressedDigitalAudioOPL'] != nil
339
+ self.compressed_digital_audio_opl = xml_element.elements['compressedDigitalAudioOPL'].text
340
+ end
341
+ if xml_element.elements['compressedDigitalVideoOPL'] != nil
342
+ self.compressed_digital_video_opl = xml_element.elements['compressedDigitalVideoOPL'].text
343
+ end
344
+ if xml_element.elements['digitalAudioOutputProtectionList'] != nil
345
+ self.digital_audio_output_protection_list = KalturaClientBase.object_from_xml(xml_element.elements['digitalAudioOutputProtectionList'], 'KalturaPlayReadyDigitalAudioOPIdHolder')
346
+ end
347
+ if xml_element.elements['uncompressedDigitalAudioOPL'] != nil
348
+ self.uncompressed_digital_audio_opl = xml_element.elements['uncompressedDigitalAudioOPL'].text
349
+ end
350
+ if xml_element.elements['uncompressedDigitalVideoOPL'] != nil
351
+ self.uncompressed_digital_video_opl = xml_element.elements['uncompressedDigitalVideoOPL'].text
352
+ end
353
+ if xml_element.elements['firstPlayExpiration'] != nil
354
+ self.first_play_expiration = xml_element.elements['firstPlayExpiration'].text
355
+ end
356
+ if xml_element.elements['playEnablers'] != nil
357
+ self.play_enablers = KalturaClientBase.object_from_xml(xml_element.elements['playEnablers'], 'KalturaPlayReadyPlayEnablerHolder')
358
+ end
359
+ end
360
+
361
+ end
362
+
363
+ class KalturaPlayReadyProfile < KalturaDrmProfile
364
+ attr_accessor :key_seed
365
+
366
+
367
+ def from_xml(xml_element)
368
+ super
369
+ if xml_element.elements['keySeed'] != nil
370
+ self.key_seed = xml_element.elements['keySeed'].text
371
+ end
372
+ end
373
+
374
+ end
375
+
376
+ class KalturaPlayReadyPolicyBaseFilter < KalturaDrmPolicyFilter
377
+
378
+
379
+ def from_xml(xml_element)
380
+ super
381
+ end
382
+
383
+ end
384
+
385
+ class KalturaPlayReadyProfileBaseFilter < KalturaDrmProfileFilter
386
+
387
+
388
+ def from_xml(xml_element)
389
+ super
390
+ end
391
+
392
+ end
393
+
394
+ class KalturaPlayReadyPolicyFilter < KalturaPlayReadyPolicyBaseFilter
395
+
396
+
397
+ def from_xml(xml_element)
398
+ super
399
+ end
400
+
401
+ end
402
+
403
+ class KalturaPlayReadyProfileFilter < KalturaPlayReadyProfileBaseFilter
404
+
405
+
406
+ def from_xml(xml_element)
407
+ super
408
+ end
409
+
410
+ end
411
+
412
+
413
+ class KalturaPlayReadyDrmService < KalturaServiceBase
414
+ def initialize(client)
415
+ super(client)
416
+ end
417
+
418
+ # Generate key id and content key for PlayReady encryption
419
+ # @return [KalturaPlayReadyContentKey]
420
+ def generate_key()
421
+ kparams = {}
422
+ client.queue_service_action_call('playready_playreadydrm', 'generateKey', 'KalturaPlayReadyContentKey', kparams)
423
+ if (client.is_multirequest)
424
+ return nil
425
+ end
426
+ return client.do_queue()
427
+ end
428
+
429
+ # Get content keys for input key ids
430
+ # @return [array]
431
+ def get_content_keys(key_ids)
432
+ kparams = {}
433
+ client.add_param(kparams, 'keyIds', key_ids)
434
+ client.queue_service_action_call('playready_playreadydrm', 'getContentKeys', 'KalturaPlayReadyContentKey', kparams)
435
+ if (client.is_multirequest)
436
+ return nil
437
+ end
438
+ return client.do_queue()
439
+ end
440
+
441
+ # Get content key and key id for the given entry
442
+ # @return [KalturaPlayReadyContentKey]
443
+ def get_entry_content_key(entry_id, create_if_missing=false)
444
+ kparams = {}
445
+ client.add_param(kparams, 'entryId', entry_id)
446
+ client.add_param(kparams, 'createIfMissing', create_if_missing)
447
+ client.queue_service_action_call('playready_playreadydrm', 'getEntryContentKey', 'KalturaPlayReadyContentKey', kparams)
448
+ if (client.is_multirequest)
449
+ return nil
450
+ end
451
+ return client.do_queue()
452
+ end
453
+
454
+ # Get Play Ready policy and dates for license creation
455
+ # @return [KalturaPlayReadyLicenseDetails]
456
+ def get_license_details(key_id, device_id, device_type, entry_id=KalturaNotImplemented, referrer=KalturaNotImplemented)
457
+ kparams = {}
458
+ client.add_param(kparams, 'keyId', key_id)
459
+ client.add_param(kparams, 'deviceId', device_id)
460
+ client.add_param(kparams, 'deviceType', device_type)
461
+ client.add_param(kparams, 'entryId', entry_id)
462
+ client.add_param(kparams, 'referrer', referrer)
463
+ client.queue_service_action_call('playready_playreadydrm', 'getLicenseDetails', 'KalturaPlayReadyLicenseDetails', kparams)
464
+ if (client.is_multirequest)
465
+ return nil
466
+ end
467
+ return client.do_queue()
468
+ end
469
+ end
470
+
471
+ class KalturaClient < KalturaClientBase
472
+ attr_reader :play_ready_drm_service
473
+ def play_ready_drm_service
474
+ if (@play_ready_drm_service == nil)
475
+ @play_ready_drm_service = KalturaPlayReadyDrmService.new(self)
476
+ end
477
+ return @play_ready_drm_service
478
+ end
479
+
480
+ end
481
+
482
+ end