Class: AWSCDK::MediaPackagev2::CfnOriginEndpoint::SpekeKeyProviderProperty

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

Overview

The parameters for the SPEKE key provider.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

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

Returns a new instance of SpekeKeyProviderProperty.

Parameters:

  • drm_systems (Array<String>)

    The DRM solution provider you're using to protect your content during distribution.

  • encryption_contract_configuration (AWSCDK::IResolvable, AWSCDK::MediaPackagev2::CfnOriginEndpoint::EncryptionContractConfigurationProperty)

    The encryption contract configuration associated with the SPEKE key provider.

  • resource_id (String)

    The unique identifier for the content.

  • role_arn (String)

    The ARN for the IAM role granted by the key provider that provides access to the key provider API.

  • url (String)

    The URL of the SPEKE key provider.

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

    The ARN for the certificate that you imported to Amazon Web Services Certificate Manager to add content key encryption to this endpoint.



2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2310

def initialize(drm_systems:, encryption_contract_configuration:, resource_id:, role_arn:, url:, certificate_arn: nil)
  @drm_systems = drm_systems
  Jsii::Type.check_type(@drm_systems, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "drmSystems")
  @encryption_contract_configuration = encryption_contract_configuration.is_a?(Hash) ? ::AWSCDK::MediaPackagev2::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("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19tZWRpYXBhY2thZ2V2Mi5DZm5PcmlnaW5FbmRwb2ludC5FbmNyeXB0aW9uQ29udHJhY3RDb25maWd1cmF0aW9uUHJvcGVydHkifV19fQ==")), "encryptionContractConfiguration")
  @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")
  @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?
end

Instance Attribute Details

#certificate_arnString? (readonly)

The ARN for the certificate that you imported to Amazon Web Services Certificate Manager to add content key encryption to this endpoint. For this feature to work, your DRM key provider must support content key encryption.



2364
2365
2366
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2364

def certificate_arn
  @certificate_arn
end

#drm_systemsArray<String> (readonly)

The DRM solution provider you're using to protect your content during distribution.



2329
2330
2331
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2329

def drm_systems
  @drm_systems
end

#encryption_contract_configurationAWSCDK::IResolvable, AWSCDK::MediaPackagev2::CfnOriginEndpoint::EncryptionContractConfigurationProperty (readonly)

The encryption contract configuration associated with the SPEKE key provider.



2334
2335
2336
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2334

def encryption_contract_configuration
  @encryption_contract_configuration
end

#resource_idString (readonly)

The unique identifier for the content.

The service sends this identifier to the key server to identify the current endpoint. How unique you make this identifier depends on how fine-grained you want access controls to be. The service does not permit you to use the same ID for two simultaneous encryption processes. The resource ID is also known as the content ID.

The following example shows a resource ID: MovieNight20171126093045



2343
2344
2345
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2343

def resource_id
  @resource_id
end

#role_arnString (readonly)

The ARN for the IAM role granted by the key provider that provides access to the key provider API.

This role must have a trust policy that allows MediaPackage to assume the role, and it must have a sufficient permissions policy to allow access to the specific key retrieval URL. Get this from your DRM solution provider.

Valid format: arn:aws:iam::{accountID}:role/{name} . The following example shows a role ARN: arn:aws:iam::444455556666:role/SpekeAccess



2352
2353
2354
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2352

def role_arn
  @role_arn
end

#urlString (readonly)

The URL of the SPEKE key provider.



2357
2358
2359
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2357

def url
  @url
end

Class Method Details

.jsii_propertiesObject



2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2366

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

Instance Method Details

#to_jsiiObject



2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
# File 'media_packagev2/cfn_origin_endpoint.rb', line 2377

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