Class: AWSCDK::MediaPackage::CfnOriginEndpoint::SpekeKeyProviderProperty

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

Overview

Key provider settings for DRM.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of SpekeKeyProviderProperty.

Parameters:

  • resource_id (String)

    Unique identifier for this endpoint, as it is configured in the key provider service.

  • 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.

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

    The Amazon Resource Name (ARN) for the certificate that you imported to Certificate Manager to add content key encryption to this endpoint.

  • encryption_contract_configuration (AWSCDK::IResolvable, AWSCDK::MediaPackage::CfnOriginEndpoint::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.



1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
# File 'media_package/cfn_origin_endpoint.rb', line 1741

def initialize(resource_id:, role_arn:, system_ids:, url:, certificate_arn: nil, encryption_contract_configuration: nil)
  @resource_id = resource_id
  Jsii::Type.check_type(@resource_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "resourceId")
  @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")
  @certificate_arn = certificate_arn
  Jsii::Type.check_type(@certificate_arn, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "certificateArn") unless @certificate_arn.nil?
  @encryption_contract_configuration = encryption_contract_configuration.is_a?(Hash) ? ::AWSCDK::MediaPackage::CfnOriginEndpoint::EncryptionContractConfigurationProperty.new(**encryption_contract_configuration.transform_keys(&:to_sym)) : encryption_contract_configuration
  Jsii::Type.check_type(@encryption_contract_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tZWRpYXBhY2thZ2UuQ2ZuT3JpZ2luRW5kcG9pbnQuRW5jcnlwdGlvbkNvbnRyYWN0Q29uZmlndXJhdGlvblByb3BlcnR5In1dfX0=")), "encryptionContractConfiguration") unless @encryption_contract_configuration.nil?
end

Instance Attribute Details

#certificate_arnString? (readonly)

The Amazon Resource Name (ARN) for the certificate that you imported to Certificate Manager to add content key encryption to this endpoint.

For this feature to work, your DRM key provider must support content key encryption.



1786
1787
1788
# File 'media_package/cfn_origin_endpoint.rb', line 1786

def certificate_arn
  @certificate_arn
end

#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.



1791
1792
1793
# File 'media_package/cfn_origin_endpoint.rb', line 1791

def encryption_contract_configuration
  @encryption_contract_configuration
end

#resource_idString (readonly)

Unique identifier for this endpoint, as it is configured in the key provider service.



1760
1761
1762
# File 'media_package/cfn_origin_endpoint.rb', line 1760

def resource_id
  @resource_id
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.

This role must have a trust policy that allows AWS Elemental MediaPackage to assume the role, and it must have a sufficient permissions policy to allow access to the specific key retrieval URL. Valid format: arn:aws:iam::accountID:role/name



1767
1768
1769
# File 'media_package/cfn_origin_endpoint.rb', line 1767

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.



1772
1773
1774
# File 'media_package/cfn_origin_endpoint.rb', line 1772

def system_ids
  @system_ids
end

#urlString (readonly)

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

Must start with https://.



1779
1780
1781
# File 'media_package/cfn_origin_endpoint.rb', line 1779

def url
  @url
end

Class Method Details

.jsii_propertiesObject



1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
# File 'media_package/cfn_origin_endpoint.rb', line 1793

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

Instance Method Details

#to_jsiiObject



1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
# File 'media_package/cfn_origin_endpoint.rb', line 1804

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