Class: AWSCDK::MediaPackage::CfnPackagingConfiguration::SpekeKeyProviderProperty

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

Overview

A configuration for accessing an external Secure Packager and Encoder Key Exchange (SPEKE) service that provides encryption keys.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(role_arn:, system_ids:, url:, encryption_contract_configuration: nil) ⇒ SpekeKeyProviderProperty

Returns a new instance of SpekeKeyProviderProperty.

Parameters:

  • role_arn (String)

    The ARN for the IAM role that's granted by the key provider to provide access to the key provider API.

  • system_ids (Array<String>)

    List of unique identifiers for the DRM systems to use, as defined in the CPIX specification.

  • url (String)

    URL for the key provider's key retrieval API endpoint.

  • encryption_contract_configuration (AWSCDK::IResolvable, AWSCDK::MediaPackage::CfnPackagingConfiguration::EncryptionContractConfigurationProperty, nil) (defaults to: nil)

    Use encryptionContractConfiguration to configure one or more content encryption keys for your endpoints that use SPEKE Version 2.0. The encryption contract defines which content keys are used to encrypt the audio and video tracks in your stream. To configure the encryption contract, specify which audio and video encryption presets to use.



1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
# File 'media_package/cfn_packaging_configuration.rb', line 1369

def initialize(role_arn:, system_ids:, url:, encryption_contract_configuration: nil)
  @role_arn = role_arn
  Jsii::Type.check_type(@role_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "roleArn")
  @system_ids = system_ids
  Jsii::Type.check_type(@system_ids, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "systemIds")
  @url = url
  Jsii::Type.check_type(@url, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "url")
  @encryption_contract_configuration = encryption_contract_configuration.is_a?(Hash) ? ::AWSCDK::MediaPackage::CfnPackagingConfiguration::EncryptionContractConfigurationProperty.new(**encryption_contract_configuration.transform_keys(&:to_sym)) : encryption_contract_configuration
  Jsii::Type.check_type(@encryption_contract_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tZWRpYXBhY2thZ2UuQ2ZuUGFja2FnaW5nQ29uZmlndXJhdGlvbi5FbmNyeXB0aW9uQ29udHJhY3RDb25maWd1cmF0aW9uUHJvcGVydHkifV19fQ==")), "encryptionContractConfiguration") unless @encryption_contract_configuration.nil?
end

Instance Attribute Details

#encryption_contract_configurationAWSCDK::IResolvable, ... (readonly)

Use encryptionContractConfiguration to configure one or more content encryption keys for your endpoints that use SPEKE Version 2.0. The encryption contract defines which content keys are used to encrypt the audio and video tracks in your stream. To configure the encryption contract, specify which audio and video encryption presets to use.



1403
1404
1405
# File 'media_package/cfn_packaging_configuration.rb', line 1403

def encryption_contract_configuration
  @encryption_contract_configuration
end

#role_arnString (readonly)

The ARN for the IAM role that's granted by the key provider to provide access to the key provider API.

Valid format: arn:aws:iam::accountID:role/name



1386
1387
1388
# File 'media_package/cfn_packaging_configuration.rb', line 1386

def role_arn
  @role_arn
end

#system_idsArray<String> (readonly)

List of unique identifiers for the DRM systems to use, as defined in the CPIX specification.



1391
1392
1393
# File 'media_package/cfn_packaging_configuration.rb', line 1391

def system_ids
  @system_ids
end

#urlString (readonly)

URL for the key provider's key retrieval API endpoint.

Must start with https://.



1398
1399
1400
# File 'media_package/cfn_packaging_configuration.rb', line 1398

def url
  @url
end

Class Method Details

.jsii_propertiesObject



1405
1406
1407
1408
1409
1410
1411
1412
# File 'media_package/cfn_packaging_configuration.rb', line 1405

def self.jsii_properties
  {
    :role_arn => "roleArn",
    :system_ids => "systemIds",
    :url => "url",
    :encryption_contract_configuration => "encryptionContractConfiguration",
  }
end

Instance Method Details

#to_jsiiObject



1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
# File 'media_package/cfn_packaging_configuration.rb', line 1414

def to_jsii
  result = {}
  result.merge!({
    "roleArn" => @role_arn,
    "systemIds" => @system_ids,
    "url" => @url,
    "encryptionContractConfiguration" => @encryption_contract_configuration,
  })
  result.compact
end