Class: AWSCDK::MediaPackage::CfnOriginEndpoint::HlsEncryptionProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
media_package/cfn_origin_endpoint.rb

Overview

Holds encryption information so that access to the content can be controlled by a DRM solution.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(speke_key_provider:, constant_initialization_vector: nil, encryption_method: nil, key_rotation_interval_seconds: nil, repeat_ext_x_key: nil) ⇒ HlsEncryptionProperty

Returns a new instance of HlsEncryptionProperty.

Parameters:

  • speke_key_provider (AWSCDK::IResolvable, AWSCDK::MediaPackage::CfnOriginEndpoint::SpekeKeyProviderProperty)

    Parameters for the SPEKE key provider.

  • constant_initialization_vector (String, nil) (defaults to: nil)

    A 128-bit, 16-byte hex value represented by a 32-character string, used with the key for encrypting blocks.

  • encryption_method (String, nil) (defaults to: nil)

    HLS encryption type.

  • key_rotation_interval_seconds (Numeric, nil) (defaults to: nil)

    Number of seconds before AWS Elemental MediaPackage rotates to a new key.

  • repeat_ext_x_key (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    Repeat the EXT-X-KEY directive for every media segment.



1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
# File 'media_package/cfn_origin_endpoint.rb', line 1237

def initialize(speke_key_provider:, constant_initialization_vector: nil, encryption_method: nil, key_rotation_interval_seconds: nil, repeat_ext_x_key: nil)
  @speke_key_provider = speke_key_provider.is_a?(Hash) ? ::AWSCDK::MediaPackage::CfnOriginEndpoint::SpekeKeyProviderProperty.new(**speke_key_provider.transform_keys(&:to_sym)) : speke_key_provider
  Jsii::Type.check_type(@speke_key_provider, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tZWRpYXBhY2thZ2UuQ2ZuT3JpZ2luRW5kcG9pbnQuU3Bla2VLZXlQcm92aWRlclByb3BlcnR5In1dfX0=")), "spekeKeyProvider")
  @constant_initialization_vector = constant_initialization_vector
  Jsii::Type.check_type(@constant_initialization_vector, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "constantInitializationVector") unless @constant_initialization_vector.nil?
  @encryption_method = encryption_method
  Jsii::Type.check_type(@encryption_method, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "encryptionMethod") unless @encryption_method.nil?
  @key_rotation_interval_seconds = key_rotation_interval_seconds
  Jsii::Type.check_type(@key_rotation_interval_seconds, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "keyRotationIntervalSeconds") unless @key_rotation_interval_seconds.nil?
  @repeat_ext_x_key = repeat_ext_x_key
  Jsii::Type.check_type(@repeat_ext_x_key, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "repeatExtXKey") unless @repeat_ext_x_key.nil?
end

Instance Attribute Details

#constant_initialization_vectorString? (readonly)

A 128-bit, 16-byte hex value represented by a 32-character string, used with the key for encrypting blocks.



1259
1260
1261
# File 'media_package/cfn_origin_endpoint.rb', line 1259

def constant_initialization_vector
  @constant_initialization_vector
end

#encryption_methodString? (readonly)

HLS encryption type.



1264
1265
1266
# File 'media_package/cfn_origin_endpoint.rb', line 1264

def encryption_method
  @encryption_method
end

#key_rotation_interval_secondsNumeric? (readonly)

Number of seconds before AWS Elemental MediaPackage rotates to a new key.

By default, rotation is set to 60 seconds. Set to 0 to disable key rotation.



1271
1272
1273
# File 'media_package/cfn_origin_endpoint.rb', line 1271

def key_rotation_interval_seconds
  @key_rotation_interval_seconds
end

#repeat_ext_x_keyBoolean, ... (readonly)

Repeat the EXT-X-KEY directive for every media segment.

This might result in an increase in client requests to the DRM server.



1278
1279
1280
# File 'media_package/cfn_origin_endpoint.rb', line 1278

def repeat_ext_x_key
  @repeat_ext_x_key
end

Class Method Details

.jsii_propertiesObject



1280
1281
1282
1283
1284
1285
1286
1287
1288
# File 'media_package/cfn_origin_endpoint.rb', line 1280

def self.jsii_properties
  {
    :speke_key_provider => "spekeKeyProvider",
    :constant_initialization_vector => "constantInitializationVector",
    :encryption_method => "encryptionMethod",
    :key_rotation_interval_seconds => "keyRotationIntervalSeconds",
    :repeat_ext_x_key => "repeatExtXKey",
  }
end

Instance Method Details

#to_jsiiObject



1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
# File 'media_package/cfn_origin_endpoint.rb', line 1290

def to_jsii
  result = {}
  result.merge!({
    "spekeKeyProvider" => @speke_key_provider,
    "constantInitializationVector" => @constant_initialization_vector,
    "encryptionMethod" => @encryption_method,
    "keyRotationIntervalSeconds" => @key_rotation_interval_seconds,
    "repeatExtXKey" => @repeat_ext_x_key,
  })
  result.compact
end