StreamingPolicy

A Streaming Policy resource API Version: 2020-05-01.

Example Usage

Creates a Streaming Policy with clear streaming

using System.Collections.Generic;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var streamingPolicy = new AzureNative.Media.StreamingPolicy("streamingPolicy", new()
{
AccountName = "contosomedia",
NoEncryption = new AzureNative.Media.Inputs.NoEncryptionArgs
{
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = true,
Download = true,
Hls = true,
SmoothStreaming = true,
},
},
ResourceGroupName = "contoso",
StreamingPolicyName = "UserCreatedClearStreamingPolicy",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native/sdk/go/azure/media"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := media.NewStreamingPolicy(ctx, "streamingPolicy", &media.StreamingPolicyArgs{
AccountName: pulumi.String("contosomedia"),
NoEncryption: &media.NoEncryptionArgs{
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(true),
Download: pulumi.Bool(true),
Hls: pulumi.Bool(true),
SmoothStreaming: pulumi.Bool(true),
},
},
ResourceGroupName: pulumi.String("contoso"),
StreamingPolicyName: pulumi.String("UserCreatedClearStreamingPolicy"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.StreamingPolicy;
import com.pulumi.azurenative.media.StreamingPolicyArgs;
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 streamingPolicy = new StreamingPolicy("streamingPolicy", StreamingPolicyArgs.builder()
.accountName("contosomedia")
.noEncryption(Map.of("enabledProtocols", Map.ofEntries(
Map.entry("dash", true),
Map.entry("download", true),
Map.entry("hls", true),
Map.entry("smoothStreaming", true)
)))
.resourceGroupName("contoso")
.streamingPolicyName("UserCreatedClearStreamingPolicy")
.build());
}
}

Creates a Streaming Policy with commonEncryptionCbcs only

using System.Collections.Generic;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var streamingPolicy = new AzureNative.Media.StreamingPolicy("streamingPolicy", new()
{
AccountName = "contosomedia",
CommonEncryptionCbcs = new AzureNative.Media.Inputs.CommonEncryptionCbcsArgs
{
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "cbcsDefaultKey",
},
},
Drm = new AzureNative.Media.Inputs.CbcsDrmConfigurationArgs
{
FairPlay = new AzureNative.Media.Inputs.StreamingPolicyFairPlayConfigurationArgs
{
AllowPersistentLicense = true,
CustomLicenseAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}",
},
},
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = false,
Download = false,
Hls = true,
SmoothStreaming = false,
},
},
DefaultContentKeyPolicyName = "PolicyWithMultipleOptions",
ResourceGroupName = "contoso",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.StreamingPolicy;
import com.pulumi.azurenative.media.StreamingPolicyArgs;
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 streamingPolicy = new StreamingPolicy("streamingPolicy", StreamingPolicyArgs.builder()
.accountName("contosomedia")
.commonEncryptionCbcs(Map.ofEntries(
Map.entry("contentKeys", Map.of("defaultKey", Map.of("label", "cbcsDefaultKey"))),
Map.entry("drm", Map.of("fairPlay", Map.ofEntries(
Map.entry("allowPersistentLicense", true),
Map.entry("customLicenseAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}")
))),
Map.entry("enabledProtocols", Map.ofEntries(
Map.entry("dash", false),
Map.entry("download", false),
Map.entry("hls", true),
Map.entry("smoothStreaming", false)
))
))
.defaultContentKeyPolicyName("PolicyWithMultipleOptions")
.resourceGroupName("contoso")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly")
.build());
}
}

Creates a Streaming Policy with commonEncryptionCenc only

using System.Collections.Generic;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var streamingPolicy = new AzureNative.Media.StreamingPolicy("streamingPolicy", new()
{
AccountName = "contosomedia",
CommonEncryptionCenc = new AzureNative.Media.Inputs.CommonEncryptionCencArgs
{
ClearTracks = new[]
{
new AzureNative.Media.Inputs.TrackSelectionArgs
{
TrackSelections = new[]
{
new AzureNative.Media.Inputs.TrackPropertyConditionArgs
{
Operation = "Equal",
Property = "FourCC",
Value = "hev1",
},
},
},
},
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "cencDefaultKey",
},
},
Drm = new AzureNative.Media.Inputs.CencDrmConfigurationArgs
{
PlayReady = new AzureNative.Media.Inputs.StreamingPolicyPlayReadyConfigurationArgs
{
CustomLicenseAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}",
PlayReadyCustomAttributes = "PlayReady CustomAttributes",
},
Widevine = new AzureNative.Media.Inputs.StreamingPolicyWidevineConfigurationArgs
{
CustomLicenseAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId",
},
},
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = true,
Download = false,
Hls = false,
SmoothStreaming = true,
},
},
DefaultContentKeyPolicyName = "PolicyWithPlayReadyOptionAndOpenRestriction",
ResourceGroupName = "contoso",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.StreamingPolicy;
import com.pulumi.azurenative.media.StreamingPolicyArgs;
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 streamingPolicy = new StreamingPolicy("streamingPolicy", StreamingPolicyArgs.builder()
.accountName("contosomedia")
.commonEncryptionCenc(Map.ofEntries(
Map.entry("clearTracks", Map.of("trackSelections", Map.ofEntries(
Map.entry("operation", "Equal"),
Map.entry("property", "FourCC"),
Map.entry("value", "hev1")
))),
Map.entry("contentKeys", Map.of("defaultKey", Map.of("label", "cencDefaultKey"))),
Map.entry("drm", Map.ofEntries(
Map.entry("playReady", Map.ofEntries(
Map.entry("customLicenseAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}"),
Map.entry("playReadyCustomAttributes", "PlayReady CustomAttributes")
)),
Map.entry("widevine", Map.of("customLicenseAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId"))
)),
Map.entry("enabledProtocols", Map.ofEntries(
Map.entry("dash", true),
Map.entry("download", false),
Map.entry("hls", false),
Map.entry("smoothStreaming", true)
))
))
.defaultContentKeyPolicyName("PolicyWithPlayReadyOptionAndOpenRestriction")
.resourceGroupName("contoso")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly")
.build());
}
}

Creates a Streaming Policy with envelopeEncryption only

using System.Collections.Generic;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var streamingPolicy = new AzureNative.Media.StreamingPolicy("streamingPolicy", new()
{
AccountName = "contosomedia",
DefaultContentKeyPolicyName = "PolicyWithClearKeyOptionAndTokenRestriction",
EnvelopeEncryption = new AzureNative.Media.Inputs.EnvelopeEncryptionArgs
{
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "aesDefaultKey",
},
},
CustomKeyAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}",
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = true,
Download = false,
Hls = true,
SmoothStreaming = true,
},
},
ResourceGroupName = "contoso",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithEnvelopeEncryptionOnly",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.StreamingPolicy;
import com.pulumi.azurenative.media.StreamingPolicyArgs;
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 streamingPolicy = new StreamingPolicy("streamingPolicy", StreamingPolicyArgs.builder()
.accountName("contosomedia")
.defaultContentKeyPolicyName("PolicyWithClearKeyOptionAndTokenRestriction")
.envelopeEncryption(Map.ofEntries(
Map.entry("contentKeys", Map.of("defaultKey", Map.of("label", "aesDefaultKey"))),
Map.entry("customKeyAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}"),
Map.entry("enabledProtocols", Map.ofEntries(
Map.entry("dash", true),
Map.entry("download", false),
Map.entry("hls", true),
Map.entry("smoothStreaming", true)
))
))
.resourceGroupName("contoso")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithEnvelopeEncryptionOnly")
.build());
}
}

Creates a Streaming Policy with secure streaming

using System.Collections.Generic;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var streamingPolicy = new AzureNative.Media.StreamingPolicy("streamingPolicy", new()
{
AccountName = "contosomedia",
CommonEncryptionCbcs = new AzureNative.Media.Inputs.CommonEncryptionCbcsArgs
{
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "cbcsDefaultKey",
},
},
Drm = new AzureNative.Media.Inputs.CbcsDrmConfigurationArgs
{
FairPlay = new AzureNative.Media.Inputs.StreamingPolicyFairPlayConfigurationArgs
{
AllowPersistentLicense = true,
CustomLicenseAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}",
},
},
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = false,
Download = false,
Hls = true,
SmoothStreaming = false,
},
},
CommonEncryptionCenc = new AzureNative.Media.Inputs.CommonEncryptionCencArgs
{
ClearTracks = new[]
{
new AzureNative.Media.Inputs.TrackSelectionArgs
{
TrackSelections = new[]
{
new AzureNative.Media.Inputs.TrackPropertyConditionArgs
{
Operation = "Equal",
Property = "FourCC",
Value = "hev1",
},
},
},
},
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "cencDefaultKey",
},
},
Drm = new AzureNative.Media.Inputs.CencDrmConfigurationArgs
{
PlayReady = new AzureNative.Media.Inputs.StreamingPolicyPlayReadyConfigurationArgs
{
CustomLicenseAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}",
PlayReadyCustomAttributes = "PlayReady CustomAttributes",
},
Widevine = new AzureNative.Media.Inputs.StreamingPolicyWidevineConfigurationArgs
{
CustomLicenseAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId",
},
},
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = true,
Download = false,
Hls = false,
SmoothStreaming = true,
},
},
DefaultContentKeyPolicyName = "PolicyWithMultipleOptions",
EnvelopeEncryption = new AzureNative.Media.Inputs.EnvelopeEncryptionArgs
{
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "aesDefaultKey",
},
},
CustomKeyAcquisitionUrlTemplate = "https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}",
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = true,
Download = false,
Hls = true,
SmoothStreaming = true,
},
},
ResourceGroupName = "contoso",
StreamingPolicyName = "UserCreatedSecureStreamingPolicy",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.media.StreamingPolicy;
import com.pulumi.azurenative.media.StreamingPolicyArgs;
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 streamingPolicy = new StreamingPolicy("streamingPolicy", StreamingPolicyArgs.builder()
.accountName("contosomedia")
.commonEncryptionCbcs(Map.ofEntries(
Map.entry("contentKeys", Map.of("defaultKey", Map.of("label", "cbcsDefaultKey"))),
Map.entry("drm", Map.of("fairPlay", Map.ofEntries(
Map.entry("allowPersistentLicense", true),
Map.entry("customLicenseAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}")
))),
Map.entry("enabledProtocols", Map.ofEntries(
Map.entry("dash", false),
Map.entry("download", false),
Map.entry("hls", true),
Map.entry("smoothStreaming", false)
))
))
.commonEncryptionCenc(Map.ofEntries(
Map.entry("clearTracks", Map.of("trackSelections", Map.ofEntries(
Map.entry("operation", "Equal"),
Map.entry("property", "FourCC"),
Map.entry("value", "hev1")
))),
Map.entry("contentKeys", Map.of("defaultKey", Map.of("label", "cencDefaultKey"))),
Map.entry("drm", Map.ofEntries(
Map.entry("playReady", Map.ofEntries(
Map.entry("customLicenseAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}"),
Map.entry("playReadyCustomAttributes", "PlayReady CustomAttributes")
)),
Map.entry("widevine", Map.of("customLicenseAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId"))
)),
Map.entry("enabledProtocols", Map.ofEntries(
Map.entry("dash", true),
Map.entry("download", false),
Map.entry("hls", false),
Map.entry("smoothStreaming", true)
))
))
.defaultContentKeyPolicyName("PolicyWithMultipleOptions")
.envelopeEncryption(Map.ofEntries(
Map.entry("contentKeys", Map.of("defaultKey", Map.of("label", "aesDefaultKey"))),
Map.entry("customKeyAcquisitionUrlTemplate", "https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}"),
Map.entry("enabledProtocols", Map.ofEntries(
Map.entry("dash", true),
Map.entry("download", false),
Map.entry("hls", true),
Map.entry("smoothStreaming", true)
))
))
.resourceGroupName("contoso")
.streamingPolicyName("UserCreatedSecureStreamingPolicy")
.build());
}
}

Import

An existing resource can be imported using its type token, name, and identifier, e.g.

$ pulumi import azure-native:media:StreamingPolicy UserCreatedSecureStreamingPolicy /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/contoso/providers/Microsoft.Media/mediaservices/contosomedia/streamingPolicies/UserCreatedSecureStreamingPolicy

Properties

Link copied to clipboard

Configuration of CommonEncryptionCbcs

Link copied to clipboard

Configuration of CommonEncryptionCenc

Link copied to clipboard
val created: Output<String>

Creation time of Streaming Policy

Link copied to clipboard

Default ContentKey used by current Streaming Policy

Link copied to clipboard

Configuration of EnvelopeEncryption

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

The name of the resource

Link copied to clipboard

Configurations of NoEncryption

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

The system metadata relating to this resource.

Link copied to clipboard
val type: Output<String>

The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"

Link copied to clipboard
val urn: Output<String>