Content Key Policy
Manages a Content Key Policy.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.storage.Account;
import com.pulumi.azure.storage.AccountArgs;
import com.pulumi.azure.media.ServiceAccount;
import com.pulumi.azure.media.ServiceAccountArgs;
import com.pulumi.azure.media.inputs.ServiceAccountStorageAccountArgs;
import com.pulumi.azure.media.ContentKeyPolicy;
import com.pulumi.azure.media.ContentKeyPolicyArgs;
import com.pulumi.azure.media.inputs.ContentKeyPolicyPolicyOptionArgs;
import com.pulumi.azure.media.inputs.ContentKeyPolicyPolicyOptionFairplayConfigurationArgs;
import com.pulumi.azure.media.inputs.ContentKeyPolicyPolicyOptionTokenRestrictionArgs;
import static com.pulumi.codegen.internal.Serialization.*;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleResourceGroup = new ResourceGroup("exampleResourceGroup", ResourceGroupArgs.builder()
.location("West Europe")
.build());
var exampleAccount = new Account("exampleAccount", AccountArgs.builder()
.resourceGroupName(exampleResourceGroup.name())
.location(exampleResourceGroup.location())
.accountTier("Standard")
.accountReplicationType("GRS")
.build());
var exampleServiceAccount = new ServiceAccount("exampleServiceAccount", ServiceAccountArgs.builder()
.location(exampleResourceGroup.location())
.resourceGroupName(exampleResourceGroup.name())
.storageAccounts(ServiceAccountStorageAccountArgs.builder()
.id(exampleAccount.id())
.isPrimary(true)
.build())
.build());
var exampleContentKeyPolicy = new ContentKeyPolicy("exampleContentKeyPolicy", ContentKeyPolicyArgs.builder()
.resourceGroupName(exampleResourceGroup.name())
.mediaServicesAccountName(exampleServiceAccount.name())
.policyOptions(
ContentKeyPolicyPolicyOptionArgs.builder()
.name("fairPlay")
.fairplayConfiguration(ContentKeyPolicyPolicyOptionFairplayConfigurationArgs.builder()
.ask("bb566284cc124a21c435a92cd3c108c4")
.pfx("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")
.pfxPassword("password")
.rentalDurationSeconds(2249)
.rentalAndLeaseKeyType("PersistentUnlimited")
.build())
.openRestrictionEnabled(true)
.build(),
ContentKeyPolicyPolicyOptionArgs.builder()
.name("playReady")
.playreadyConfigurationLicenses(ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicenseArgs.builder()
.allowTestDevices(true)
.beginDate("2017-10-16T18:22:53Z")
.securityLevel("SL150")
.playRight(ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRightArgs.builder()
.scmsRestriction(2)
.digitalVideoOnlyContentRestriction(false)
.imageConstraintForAnalogComponentVideoRestriction(false)
.imageConstraintForAnalogComputerMonitorRestriction(false)
.allowPassingVideoContentToUnknownOutput("NotAllowed")
.uncompressedDigitalVideoOpl(100)
.uncompressedDigitalAudioOpl(100)
.analogVideoOpl(150)
.compressedDigitalAudioOpl(250)
.compressedDigitalVideoOpl(400)
.explicitAnalogTelevisionOutputRestriction(ContentKeyPolicyPolicyOptionPlayreadyConfigurationLicensePlayRightExplicitAnalogTelevisionOutputRestrictionArgs.builder()
.bestEffortEnforced(true)
.controlBits(3)
.build())
.build())
.licenseType("Persistent")
.contentType("UltraVioletDownload")
.contentKeyLocationFromHeaderEnabled(true)
.build())
.openRestrictionEnabled(true)
.build(),
ContentKeyPolicyPolicyOptionArgs.builder()
.name("clearKey")
.clearKeyConfigurationEnabled(true)
.tokenRestriction(ContentKeyPolicyPolicyOptionTokenRestrictionArgs.builder()
.issuer("urn:issuer")
.audience("urn:audience")
.tokenType("Swt")
.primarySymmetricTokenKey("AAAAAAAAAAAAAAAAAAAAAA==")
.alternateKeys(
ContentKeyPolicyPolicyOptionTokenRestrictionAlternateKeyArgs.builder()
.rsaTokenKeyExponent("AQAB")
.rsaTokenKeyModulus("AQAD")
.build(),
ContentKeyPolicyPolicyOptionTokenRestrictionAlternateKeyArgs.builder()
.symmetricTokenKey("BBAAAAAAAAAAAAAAAAAAAA==")
.build())
.build())
.build(),
ContentKeyPolicyPolicyOptionArgs.builder()
.name("widevine")
.widevineConfigurationTemplate(serializeJson(
jsonObject(
jsonProperty("allowed_track_types", "SD_HD"),
jsonProperty("content_key_specs", jsonArray(jsonObject(
jsonProperty("track_type", "SD"),
jsonProperty("security_level", 1),
jsonProperty("required_output_protection", jsonObject(
jsonProperty("hdcp", "HDCP_V2")
))
))),
jsonProperty("policy_overrides", jsonObject(
jsonProperty("can_play", true),
jsonProperty("can_persist", true),
jsonProperty("can_renew", false)
))
)))
.openRestrictionEnabled(true)
.build())
.build());
}
}
Content copied to clipboard
Import
Content Key Policy can be imported using the resource id
, e.g.
$ pulumi import azure:media/contentKeyPolicy:ContentKeyPolicy example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Media/mediaServices/account1/contentKeyPolicies/policy1
Content copied to clipboard