Content Key Policy Args
data class ContentKeyPolicyArgs(val accountName: Output<String>? = null, val contentKeyPolicyName: Output<String>? = null, val description: Output<String>? = null, val options: Output<List<ContentKeyPolicyOptionArgs>>? = null, val resourceGroupName: Output<String>? = null) : ConvertibleToJava<ContentKeyPolicyArgs>
A Content Key Policy resource. API Version: 2020-05-01.
Example Usage
Creates a Content Key Policy with ClearKey option and Token Restriction
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var contentKeyPolicy = new AzureNative.Media.ContentKeyPolicy("contentKeyPolicy", new()
{
AccountName = "contosomedia",
ContentKeyPolicyName = "PolicyWithClearKeyOptionAndSwtTokenRestriction",
Description = "ArmPolicyDescription",
Options = new[]
{
new AzureNative.Media.Inputs.ContentKeyPolicyOptionArgs
{
Configuration = new AzureNative.Media.Inputs.ContentKeyPolicyClearKeyConfigurationArgs
{
OdataType = "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration",
},
Name = "ClearKeyOption",
Restriction = new AzureNative.Media.Inputs.ContentKeyPolicyTokenRestrictionArgs
{
Audience = "urn:audience",
Issuer = "urn:issuer",
OdataType = "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
PrimaryVerificationKey = new AzureNative.Media.Inputs.ContentKeyPolicySymmetricTokenKeyArgs
{
KeyValue = "AAAAAAAAAAAAAAAAAAAAAA==",
OdataType = "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
},
RestrictionTokenType = "Swt",
},
},
},
ResourceGroupName = "contoso",
});
});
Content copied to clipboard
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := media.NewContentKeyPolicy(ctx, "contentKeyPolicy", &media.ContentKeyPolicyArgs{
AccountName: pulumi.String("contosomedia"),
ContentKeyPolicyName: pulumi.String("PolicyWithClearKeyOptionAndSwtTokenRestriction"),
Description: pulumi.String("ArmPolicyDescription"),
Options: []media.ContentKeyPolicyOptionArgs{
{
Configuration: {
OdataType: "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration",
},
Name: pulumi.String("ClearKeyOption"),
Restriction: {
Audience: "urn:audience",
Issuer: "urn:issuer",
OdataType: "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
PrimaryVerificationKey: {
KeyValue: "AAAAAAAAAAAAAAAAAAAAAA==",
OdataType: "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
},
RestrictionTokenType: "Swt",
},
},
},
ResourceGroupName: pulumi.String("contoso"),
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.ContentKeyPolicy;
import com.pulumi.azurenative.media.ContentKeyPolicyArgs;
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 contentKeyPolicy = new ContentKeyPolicy("contentKeyPolicy", ContentKeyPolicyArgs.builder()
.accountName("contosomedia")
.contentKeyPolicyName("PolicyWithClearKeyOptionAndSwtTokenRestriction")
.description("ArmPolicyDescription")
.options(Map.ofEntries(
Map.entry("configuration", Map.of("odataType", "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration")),
Map.entry("name", "ClearKeyOption"),
Map.entry("restriction", Map.ofEntries(
Map.entry("audience", "urn:audience"),
Map.entry("issuer", "urn:issuer"),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicyTokenRestriction"),
Map.entry("primaryVerificationKey", Map.ofEntries(
Map.entry("keyValue", "AAAAAAAAAAAAAAAAAAAAAA=="),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey")
)),
Map.entry("restrictionTokenType", "Swt")
))
))
.resourceGroupName("contoso")
.build());
}
}
Content copied to clipboard
Creates a Content Key Policy with PlayReady option and Open Restriction
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var contentKeyPolicy = new AzureNative.Media.ContentKeyPolicy("contentKeyPolicy", new()
{
AccountName = "contosomedia",
ContentKeyPolicyName = "PolicyWithPlayReadyOptionAndOpenRestriction",
Description = "ArmPolicyDescription",
Options = new[]
{
new AzureNative.Media.Inputs.ContentKeyPolicyOptionArgs
{
Configuration = new AzureNative.Media.Inputs.ContentKeyPolicyPlayReadyConfigurationArgs
{
Licenses = new[]
{
new AzureNative.Media.Inputs.ContentKeyPolicyPlayReadyLicenseArgs
{
AllowTestDevices = true,
BeginDate = "2017-10-16T18:22:53.46Z",
ContentKeyLocation = new AzureNative.Media.Inputs.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeaderArgs
{
OdataType = "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader",
},
ContentType = "UltraVioletDownload",
LicenseType = "Persistent",
PlayRight = new AzureNative.Media.Inputs.ContentKeyPolicyPlayReadyPlayRightArgs
{
AllowPassingVideoContentToUnknownOutput = "NotAllowed",
DigitalVideoOnlyContentRestriction = false,
ImageConstraintForAnalogComponentVideoRestriction = true,
ImageConstraintForAnalogComputerMonitorRestriction = false,
ScmsRestriction = 2,
},
},
},
OdataType = "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
},
Name = "ArmPolicyOptionName",
Restriction = new AzureNative.Media.Inputs.ContentKeyPolicyOpenRestrictionArgs
{
OdataType = "#Microsoft.Media.ContentKeyPolicyOpenRestriction",
},
},
},
ResourceGroupName = "contoso",
});
});
Content copied to clipboard
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := media.NewContentKeyPolicy(ctx, "contentKeyPolicy", &media.ContentKeyPolicyArgs{
AccountName: pulumi.String("contosomedia"),
ContentKeyPolicyName: pulumi.String("PolicyWithPlayReadyOptionAndOpenRestriction"),
Description: pulumi.String("ArmPolicyDescription"),
Options: []media.ContentKeyPolicyOptionArgs{
{
Configuration: {
Licenses: []media.ContentKeyPolicyPlayReadyLicense{
{
AllowTestDevices: true,
BeginDate: "2017-10-16T18:22:53.46Z",
ContentKeyLocation: {
OdataType: "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader",
},
ContentType: "UltraVioletDownload",
LicenseType: "Persistent",
PlayRight: {
AllowPassingVideoContentToUnknownOutput: "NotAllowed",
DigitalVideoOnlyContentRestriction: false,
ImageConstraintForAnalogComponentVideoRestriction: true,
ImageConstraintForAnalogComputerMonitorRestriction: false,
ScmsRestriction: 2,
},
},
},
OdataType: "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration",
},
Name: pulumi.String("ArmPolicyOptionName"),
Restriction: {
OdataType: "#Microsoft.Media.ContentKeyPolicyOpenRestriction",
},
},
},
ResourceGroupName: pulumi.String("contoso"),
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.ContentKeyPolicy;
import com.pulumi.azurenative.media.ContentKeyPolicyArgs;
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 contentKeyPolicy = new ContentKeyPolicy("contentKeyPolicy", ContentKeyPolicyArgs.builder()
.accountName("contosomedia")
.contentKeyPolicyName("PolicyWithPlayReadyOptionAndOpenRestriction")
.description("ArmPolicyDescription")
.options(Map.ofEntries(
Map.entry("configuration", Map.ofEntries(
Map.entry("licenses", Map.ofEntries(
Map.entry("allowTestDevices", true),
Map.entry("beginDate", "2017-10-16T18:22:53.46Z"),
Map.entry("contentKeyLocation", Map.of("odataType", "#Microsoft.Media.ContentKeyPolicyPlayReadyContentEncryptionKeyFromHeader")),
Map.entry("contentType", "UltraVioletDownload"),
Map.entry("licenseType", "Persistent"),
Map.entry("playRight", Map.ofEntries(
Map.entry("allowPassingVideoContentToUnknownOutput", "NotAllowed"),
Map.entry("digitalVideoOnlyContentRestriction", false),
Map.entry("imageConstraintForAnalogComponentVideoRestriction", true),
Map.entry("imageConstraintForAnalogComputerMonitorRestriction", false),
Map.entry("scmsRestriction", 2)
))
)),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicyPlayReadyConfiguration")
)),
Map.entry("name", "ArmPolicyOptionName"),
Map.entry("restriction", Map.of("odataType", "#Microsoft.Media.ContentKeyPolicyOpenRestriction"))
))
.resourceGroupName("contoso")
.build());
}
}
Content copied to clipboard
Creates a Content Key Policy with Widevine option and Token Restriction
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var contentKeyPolicy = new AzureNative.Media.ContentKeyPolicy("contentKeyPolicy", new()
{
AccountName = "contosomedia",
ContentKeyPolicyName = "PolicyWithWidevineOptionAndJwtTokenRestriction",
Description = "ArmPolicyDescription",
Options = new[]
{
new AzureNative.Media.Inputs.ContentKeyPolicyOptionArgs
{
Configuration = new AzureNative.Media.Inputs.ContentKeyPolicyWidevineConfigurationArgs
{
OdataType = "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
WidevineTemplate = "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}",
},
Name = "widevineoption",
Restriction = new AzureNative.Media.Inputs.ContentKeyPolicyTokenRestrictionArgs
{
AlternateVerificationKeys = new[]
{
new AzureNative.Media.Inputs.ContentKeyPolicySymmetricTokenKeyArgs
{
KeyValue = "AAAAAAAAAAAAAAAAAAAAAA==",
OdataType = "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
},
},
Audience = "urn:audience",
Issuer = "urn:issuer",
OdataType = "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
PrimaryVerificationKey = new AzureNative.Media.Inputs.ContentKeyPolicyRsaTokenKeyArgs
{
Exponent = "AQAB",
Modulus = "AQAD",
OdataType = "#Microsoft.Media.ContentKeyPolicyRsaTokenKey",
},
RestrictionTokenType = "Jwt",
},
},
},
ResourceGroupName = "contoso",
});
});
Content copied to clipboard
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := media.NewContentKeyPolicy(ctx, "contentKeyPolicy", &media.ContentKeyPolicyArgs{
AccountName: pulumi.String("contosomedia"),
ContentKeyPolicyName: pulumi.String("PolicyWithWidevineOptionAndJwtTokenRestriction"),
Description: pulumi.String("ArmPolicyDescription"),
Options: []media.ContentKeyPolicyOptionArgs{
{
Configuration: {
OdataType: "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
WidevineTemplate: "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}",
},
Name: pulumi.String("widevineoption"),
Restriction: {
AlternateVerificationKeys: []interface{}{
{
KeyValue: "AAAAAAAAAAAAAAAAAAAAAA==",
OdataType: "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
},
},
Audience: "urn:audience",
Issuer: "urn:issuer",
OdataType: "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
PrimaryVerificationKey: {
Exponent: "AQAB",
Modulus: "AQAD",
OdataType: "#Microsoft.Media.ContentKeyPolicyRsaTokenKey",
},
RestrictionTokenType: "Jwt",
},
},
},
ResourceGroupName: pulumi.String("contoso"),
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.ContentKeyPolicy;
import com.pulumi.azurenative.media.ContentKeyPolicyArgs;
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 contentKeyPolicy = new ContentKeyPolicy("contentKeyPolicy", ContentKeyPolicyArgs.builder()
.accountName("contosomedia")
.contentKeyPolicyName("PolicyWithWidevineOptionAndJwtTokenRestriction")
.description("ArmPolicyDescription")
.options(Map.ofEntries(
Map.entry("configuration", Map.ofEntries(
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration"),
Map.entry("widevineTemplate", "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}")
)),
Map.entry("name", "widevineoption"),
Map.entry("restriction", Map.ofEntries(
Map.entry("alternateVerificationKeys", Map.ofEntries(
Map.entry("keyValue", "AAAAAAAAAAAAAAAAAAAAAA=="),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey")
)),
Map.entry("audience", "urn:audience"),
Map.entry("issuer", "urn:issuer"),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicyTokenRestriction"),
Map.entry("primaryVerificationKey", Map.ofEntries(
Map.entry("exponent", "AQAB"),
Map.entry("modulus", "AQAD"),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicyRsaTokenKey")
)),
Map.entry("restrictionTokenType", "Jwt")
))
))
.resourceGroupName("contoso")
.build());
}
}
Content copied to clipboard
Creates a Content Key Policy with multiple options
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var contentKeyPolicy = new AzureNative.Media.ContentKeyPolicy("contentKeyPolicy", new()
{
AccountName = "contosomedia",
ContentKeyPolicyName = "PolicyCreatedWithMultipleOptions",
Description = "ArmPolicyDescription",
Options = new[]
{
new AzureNative.Media.Inputs.ContentKeyPolicyOptionArgs
{
Configuration = new AzureNative.Media.Inputs.ContentKeyPolicyClearKeyConfigurationArgs
{
OdataType = "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration",
},
Name = "ClearKeyOption",
Restriction = new AzureNative.Media.Inputs.ContentKeyPolicyTokenRestrictionArgs
{
Audience = "urn:audience",
Issuer = "urn:issuer",
OdataType = "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
PrimaryVerificationKey = new AzureNative.Media.Inputs.ContentKeyPolicySymmetricTokenKeyArgs
{
KeyValue = "AAAAAAAAAAAAAAAAAAAAAA==",
OdataType = "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
},
RestrictionTokenType = "Swt",
},
},
new AzureNative.Media.Inputs.ContentKeyPolicyOptionArgs
{
Configuration = new AzureNative.Media.Inputs.ContentKeyPolicyWidevineConfigurationArgs
{
OdataType = "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
WidevineTemplate = "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}",
},
Name = "widevineoption",
Restriction = new AzureNative.Media.Inputs.ContentKeyPolicyOpenRestrictionArgs
{
OdataType = "#Microsoft.Media.ContentKeyPolicyOpenRestriction",
},
},
},
ResourceGroupName = "contoso",
});
});
Content copied to clipboard
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := media.NewContentKeyPolicy(ctx, "contentKeyPolicy", &media.ContentKeyPolicyArgs{
AccountName: pulumi.String("contosomedia"),
ContentKeyPolicyName: pulumi.String("PolicyCreatedWithMultipleOptions"),
Description: pulumi.String("ArmPolicyDescription"),
Options: []media.ContentKeyPolicyOptionArgs{
{
Configuration: {
OdataType: "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration",
},
Name: pulumi.String("ClearKeyOption"),
Restriction: {
Audience: "urn:audience",
Issuer: "urn:issuer",
OdataType: "#Microsoft.Media.ContentKeyPolicyTokenRestriction",
PrimaryVerificationKey: {
KeyValue: "AAAAAAAAAAAAAAAAAAAAAA==",
OdataType: "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey",
},
RestrictionTokenType: "Swt",
},
},
{
Configuration: {
OdataType: "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration",
WidevineTemplate: "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}",
},
Name: pulumi.String("widevineoption"),
Restriction: {
OdataType: "#Microsoft.Media.ContentKeyPolicyOpenRestriction",
},
},
},
ResourceGroupName: pulumi.String("contoso"),
})
if err != nil {
return err
}
return nil
})
}
Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.ContentKeyPolicy;
import com.pulumi.azurenative.media.ContentKeyPolicyArgs;
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 contentKeyPolicy = new ContentKeyPolicy("contentKeyPolicy", ContentKeyPolicyArgs.builder()
.accountName("contosomedia")
.contentKeyPolicyName("PolicyCreatedWithMultipleOptions")
.description("ArmPolicyDescription")
.options(
Map.ofEntries(
Map.entry("configuration", Map.of("odataType", "#Microsoft.Media.ContentKeyPolicyClearKeyConfiguration")),
Map.entry("name", "ClearKeyOption"),
Map.entry("restriction", Map.ofEntries(
Map.entry("audience", "urn:audience"),
Map.entry("issuer", "urn:issuer"),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicyTokenRestriction"),
Map.entry("primaryVerificationKey", Map.ofEntries(
Map.entry("keyValue", "AAAAAAAAAAAAAAAAAAAAAA=="),
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicySymmetricTokenKey")
)),
Map.entry("restrictionTokenType", "Swt")
))
),
Map.ofEntries(
Map.entry("configuration", Map.ofEntries(
Map.entry("odataType", "#Microsoft.Media.ContentKeyPolicyWidevineConfiguration"),
Map.entry("widevineTemplate", "{\"allowed_track_types\":\"SD_HD\",\"content_key_specs\":[{\"track_type\":\"SD\",\"security_level\":1,\"required_output_protection\":{\"hdcp\":\"HDCP_V2\"}}],\"policy_overrides\":{\"can_play\":true,\"can_persist\":true,\"can_renew\":false}}")
)),
Map.entry("name", "widevineoption"),
Map.entry("restriction", Map.of("odataType", "#Microsoft.Media.ContentKeyPolicyOpenRestriction"))
))
.resourceGroupName("contoso")
.build());
}
}
Content copied to clipboard
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:media:ContentKeyPolicy PolicyCreatedWithMultipleOptions /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/contentKeyPolicies/PolicyCreatedWithMultipleOptions
Content copied to clipboard
Properties
Link copied to clipboard
The Media Services account name.
Link copied to clipboard
The Content Key Policy name.
Link copied to clipboard
A description for the Policy.
Link copied to clipboard
The Key Policy options.
Link copied to clipboard
The name of the resource group within the Azure subscription.