@@ -217,10 +217,61 @@ export interface MssManifest {
217
217
StreamSelection ?: StreamSelection ;
218
218
}
219
219
220
+ export enum PresetSpeke20Audio {
221
+ PRESET_AUDIO_1 = "PRESET-AUDIO-1" ,
222
+ PRESET_AUDIO_2 = "PRESET-AUDIO-2" ,
223
+ PRESET_AUDIO_3 = "PRESET-AUDIO-3" ,
224
+ SHARED = "SHARED" ,
225
+ UNENCRYPTED = "UNENCRYPTED" ,
226
+ }
227
+
228
+ export enum PresetSpeke20Video {
229
+ PRESET_VIDEO_1 = "PRESET-VIDEO-1" ,
230
+ PRESET_VIDEO_2 = "PRESET-VIDEO-2" ,
231
+ PRESET_VIDEO_3 = "PRESET-VIDEO-3" ,
232
+ PRESET_VIDEO_4 = "PRESET-VIDEO-4" ,
233
+ PRESET_VIDEO_5 = "PRESET-VIDEO-5" ,
234
+ PRESET_VIDEO_6 = "PRESET-VIDEO-6" ,
235
+ PRESET_VIDEO_7 = "PRESET-VIDEO-7" ,
236
+ PRESET_VIDEO_8 = "PRESET-VIDEO-8" ,
237
+ SHARED = "SHARED" ,
238
+ UNENCRYPTED = "UNENCRYPTED" ,
239
+ }
240
+
241
+ /**
242
+ * Use encryptionContractConfiguration to configure one or more content encryption keys for your endpoints that use SPEKE 2.0.
243
+ * The encryption contract defines which content keys are used to encrypt the audio and video tracks in your stream.
244
+ * To configure the encryption contract, specify which audio and video encryption presets to use.
245
+ * Note the following considerations when using encryptionContractConfiguration:
246
+ * encryptionContractConfiguration can be used for DASH endpoints that use SPEKE 2.0. SPEKE 2.0 relies on the CPIX 2.3 specification.
247
+ * You must disable key rotation for this endpoint by setting keyRotationIntervalSeconds to 0.
248
+ */
249
+ export interface EncryptionContractConfiguration {
250
+ /**
251
+ * A collection of audio encryption presets.
252
+ */
253
+ PresetSpeke20Audio : PresetSpeke20Audio | string | undefined ;
254
+
255
+ /**
256
+ * A collection of video encryption presets.
257
+ */
258
+ PresetSpeke20Video : PresetSpeke20Video | string | undefined ;
259
+ }
260
+
220
261
/**
221
262
* A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that will provide encryption keys.
222
263
*/
223
264
export interface SpekeKeyProvider {
265
+ /**
266
+ * Use encryptionContractConfiguration to configure one or more content encryption keys for your endpoints that use SPEKE 2.0.
267
+ * The encryption contract defines which content keys are used to encrypt the audio and video tracks in your stream.
268
+ * To configure the encryption contract, specify which audio and video encryption presets to use.
269
+ * Note the following considerations when using encryptionContractConfiguration:
270
+ * encryptionContractConfiguration can be used for DASH endpoints that use SPEKE 2.0. SPEKE 2.0 relies on the CPIX 2.3 specification.
271
+ * You must disable key rotation for this endpoint by setting keyRotationIntervalSeconds to 0.
272
+ */
273
+ EncryptionContractConfiguration ?: EncryptionContractConfiguration ;
274
+
224
275
/**
225
276
* An Amazon Resource Name (ARN) of an IAM role that AWS Elemental
226
277
* MediaPackage will assume when accessing the key provider service.
@@ -1298,6 +1349,13 @@ export const MssManifestFilterSensitiveLog = (obj: MssManifest): any => ({
1298
1349
...obj ,
1299
1350
} ) ;
1300
1351
1352
+ /**
1353
+ * @internal
1354
+ */
1355
+ export const EncryptionContractConfigurationFilterSensitiveLog = ( obj : EncryptionContractConfiguration ) : any => ( {
1356
+ ...obj ,
1357
+ } ) ;
1358
+
1301
1359
/**
1302
1360
* @internal
1303
1361
*/
0 commit comments