StreamingPolicyArgs

data class StreamingPolicyArgs(val accountName: Output<String>? = null, val commonEncryptionCbcs: Output<CommonEncryptionCbcsArgs>? = null, val commonEncryptionCenc: Output<CommonEncryptionCencArgs>? = null, val defaultContentKeyPolicyName: Output<String>? = null, val envelopeEncryption: Output<EnvelopeEncryptionArgs>? = null, val noEncryption: Output<NoEncryptionArgs>? = null, val resourceGroupName: Output<String>? = null, val streamingPolicyName: Output<String>? = null) : ConvertibleToJava<StreamingPolicyArgs>

A Streaming Policy resource Uses Azure REST API version 2023-01-01. In version 2.x of the Azure Native provider, it used API version 2023-01-01. Other available API versions: 2018-03-30-preview, 2018-06-01-preview, 2018-07-01, 2020-05-01, 2021-06-01, 2021-11-01, 2022-08-01. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native media [ApiVersion]. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.

Example Usage

Creates a Streaming Policy with ClearKey encryption in commonEncryptionCbcs.

using System.Collections.Generic;
using System.Linq;
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
{
ClearKeyEncryptionConfiguration = new AzureNative.Media.Inputs.ClearKeyEncryptionConfigurationArgs
{
CustomKeysAcquisitionUrlTemplate = "https://contoso.com/{AlternativeMediaId}/clearkey/",
},
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "cbcsDefaultKey",
},
},
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = false,
Download = false,
Hls = true,
SmoothStreaming = false,
},
},
DefaultContentKeyPolicyName = "PolicyWithMultipleOptions",
ResourceGroupName = "contosorg",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media/v2"
"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"),
CommonEncryptionCbcs: &media.CommonEncryptionCbcsArgs{
ClearKeyEncryptionConfiguration: &media.ClearKeyEncryptionConfigurationArgs{
CustomKeysAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AlternativeMediaId}/clearkey/"),
},
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("cbcsDefaultKey"),
},
},
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(false),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(true),
SmoothStreaming: pulumi.Bool(false),
},
},
DefaultContentKeyPolicyName: pulumi.String("PolicyWithMultipleOptions"),
ResourceGroupName: pulumi.String("contosorg"),
StreamingPolicyName: pulumi.String("UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly"),
})
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 com.pulumi.azurenative.media.inputs.CommonEncryptionCbcsArgs;
import com.pulumi.azurenative.media.inputs.ClearKeyEncryptionConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyContentKeysArgs;
import com.pulumi.azurenative.media.inputs.DefaultKeyArgs;
import com.pulumi.azurenative.media.inputs.EnabledProtocolsArgs;
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(CommonEncryptionCbcsArgs.builder()
.clearKeyEncryptionConfiguration(ClearKeyEncryptionConfigurationArgs.builder()
.customKeysAcquisitionUrlTemplate("https://contoso.com/{AlternativeMediaId}/clearkey/")
.build())
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("cbcsDefaultKey")
.build())
.build())
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(false)
.download(false)
.hls(true)
.smoothStreaming(false)
.build())
.build())
.defaultContentKeyPolicyName("PolicyWithMultipleOptions")
.resourceGroupName("contosorg")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly")
.build());
}
}

Creates a Streaming Policy with ClearKey encryption in commonEncryptionCenc.

using System.Collections.Generic;
using System.Linq;
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
{
ClearKeyEncryptionConfiguration = new AzureNative.Media.Inputs.ClearKeyEncryptionConfigurationArgs
{
CustomKeysAcquisitionUrlTemplate = "https://contoso.com/{AlternativeMediaId}/clearkey/",
},
ClearTracks = new[]
{
new AzureNative.Media.Inputs.TrackSelectionArgs
{
TrackSelections = new[]
{
new AzureNative.Media.Inputs.TrackPropertyConditionArgs
{
Operation = AzureNative.Media.TrackPropertyCompareOperation.Equal,
Property = AzureNative.Media.TrackPropertyType.FourCC,
Value = "hev1",
},
},
},
},
ContentKeys = new AzureNative.Media.Inputs.StreamingPolicyContentKeysArgs
{
DefaultKey = new AzureNative.Media.Inputs.DefaultKeyArgs
{
Label = "cencDefaultKey",
},
},
EnabledProtocols = new AzureNative.Media.Inputs.EnabledProtocolsArgs
{
Dash = true,
Download = false,
Hls = false,
SmoothStreaming = true,
},
},
DefaultContentKeyPolicyName = "PolicyWithPlayReadyOptionAndOpenRestriction",
ResourceGroupName = "contosorg",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media/v2"
"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"),
CommonEncryptionCenc: &media.CommonEncryptionCencArgs{
ClearKeyEncryptionConfiguration: &media.ClearKeyEncryptionConfigurationArgs{
CustomKeysAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AlternativeMediaId}/clearkey/"),
},
ClearTracks: media.TrackSelectionArray{
&media.TrackSelectionArgs{
TrackSelections: media.TrackPropertyConditionArray{
&media.TrackPropertyConditionArgs{
Operation: pulumi.String(media.TrackPropertyCompareOperationEqual),
Property: pulumi.String(media.TrackPropertyTypeFourCC),
Value: pulumi.String("hev1"),
},
},
},
},
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("cencDefaultKey"),
},
},
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(true),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(false),
SmoothStreaming: pulumi.Bool(true),
},
},
DefaultContentKeyPolicyName: pulumi.String("PolicyWithPlayReadyOptionAndOpenRestriction"),
ResourceGroupName: pulumi.String("contosorg"),
StreamingPolicyName: pulumi.String("UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly"),
})
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 com.pulumi.azurenative.media.inputs.CommonEncryptionCencArgs;
import com.pulumi.azurenative.media.inputs.ClearKeyEncryptionConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyContentKeysArgs;
import com.pulumi.azurenative.media.inputs.DefaultKeyArgs;
import com.pulumi.azurenative.media.inputs.EnabledProtocolsArgs;
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(CommonEncryptionCencArgs.builder()
.clearKeyEncryptionConfiguration(ClearKeyEncryptionConfigurationArgs.builder()
.customKeysAcquisitionUrlTemplate("https://contoso.com/{AlternativeMediaId}/clearkey/")
.build())
.clearTracks(TrackSelectionArgs.builder()
.trackSelections(TrackPropertyConditionArgs.builder()
.operation("Equal")
.property("FourCC")
.value("hev1")
.build())
.build())
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("cencDefaultKey")
.build())
.build())
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(true)
.download(false)
.hls(false)
.smoothStreaming(true)
.build())
.build())
.defaultContentKeyPolicyName("PolicyWithPlayReadyOptionAndOpenRestriction")
.resourceGroupName("contosorg")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly")
.build());
}
}

Creates a Streaming Policy with clear streaming

using System.Collections.Generic;
using System.Linq;
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 = "contosorg",
StreamingPolicyName = "clearStreamingPolicy",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media/v2"
"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("contosorg"),
StreamingPolicyName: pulumi.String("clearStreamingPolicy"),
})
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 com.pulumi.azurenative.media.inputs.NoEncryptionArgs;
import com.pulumi.azurenative.media.inputs.EnabledProtocolsArgs;
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(NoEncryptionArgs.builder()
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(true)
.download(true)
.hls(true)
.smoothStreaming(true)
.build())
.build())
.resourceGroupName("contosorg")
.streamingPolicyName("clearStreamingPolicy")
.build());
}
}

Creates a Streaming Policy with commonEncryptionCbcs only

using System.Collections.Generic;
using System.Linq;
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 = "contosorg",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media/v2"
"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"),
CommonEncryptionCbcs: &media.CommonEncryptionCbcsArgs{
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("cbcsDefaultKey"),
},
},
Drm: &media.CbcsDrmConfigurationArgs{
FairPlay: &media.StreamingPolicyFairPlayConfigurationArgs{
AllowPersistentLicense: pulumi.Bool(true),
CustomLicenseAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}"),
},
},
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(false),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(true),
SmoothStreaming: pulumi.Bool(false),
},
},
DefaultContentKeyPolicyName: pulumi.String("PolicyWithMultipleOptions"),
ResourceGroupName: pulumi.String("contosorg"),
StreamingPolicyName: pulumi.String("UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly"),
})
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 com.pulumi.azurenative.media.inputs.CommonEncryptionCbcsArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyContentKeysArgs;
import com.pulumi.azurenative.media.inputs.DefaultKeyArgs;
import com.pulumi.azurenative.media.inputs.CbcsDrmConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyFairPlayConfigurationArgs;
import com.pulumi.azurenative.media.inputs.EnabledProtocolsArgs;
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(CommonEncryptionCbcsArgs.builder()
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("cbcsDefaultKey")
.build())
.build())
.drm(CbcsDrmConfigurationArgs.builder()
.fairPlay(StreamingPolicyFairPlayConfigurationArgs.builder()
.allowPersistentLicense(true)
.customLicenseAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}")
.build())
.build())
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(false)
.download(false)
.hls(true)
.smoothStreaming(false)
.build())
.build())
.defaultContentKeyPolicyName("PolicyWithMultipleOptions")
.resourceGroupName("contosorg")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithCommonEncryptionCbcsOnly")
.build());
}
}

Creates a Streaming Policy with commonEncryptionCenc only

using System.Collections.Generic;
using System.Linq;
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 = AzureNative.Media.TrackPropertyCompareOperation.Equal,
Property = AzureNative.Media.TrackPropertyType.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 = "contosorg",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media/v2"
"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"),
CommonEncryptionCenc: &media.CommonEncryptionCencArgs{
ClearTracks: media.TrackSelectionArray{
&media.TrackSelectionArgs{
TrackSelections: media.TrackPropertyConditionArray{
&media.TrackPropertyConditionArgs{
Operation: pulumi.String(media.TrackPropertyCompareOperationEqual),
Property: pulumi.String(media.TrackPropertyTypeFourCC),
Value: pulumi.String("hev1"),
},
},
},
},
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("cencDefaultKey"),
},
},
Drm: &media.CencDrmConfigurationArgs{
PlayReady: &media.StreamingPolicyPlayReadyConfigurationArgs{
CustomLicenseAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}"),
PlayReadyCustomAttributes: pulumi.String("PlayReady CustomAttributes"),
},
Widevine: &media.StreamingPolicyWidevineConfigurationArgs{
CustomLicenseAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId"),
},
},
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(true),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(false),
SmoothStreaming: pulumi.Bool(true),
},
},
DefaultContentKeyPolicyName: pulumi.String("PolicyWithPlayReadyOptionAndOpenRestriction"),
ResourceGroupName: pulumi.String("contosorg"),
StreamingPolicyName: pulumi.String("UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly"),
})
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 com.pulumi.azurenative.media.inputs.CommonEncryptionCencArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyContentKeysArgs;
import com.pulumi.azurenative.media.inputs.DefaultKeyArgs;
import com.pulumi.azurenative.media.inputs.CencDrmConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyPlayReadyConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyWidevineConfigurationArgs;
import com.pulumi.azurenative.media.inputs.EnabledProtocolsArgs;
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(CommonEncryptionCencArgs.builder()
.clearTracks(TrackSelectionArgs.builder()
.trackSelections(TrackPropertyConditionArgs.builder()
.operation("Equal")
.property("FourCC")
.value("hev1")
.build())
.build())
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("cencDefaultKey")
.build())
.build())
.drm(CencDrmConfigurationArgs.builder()
.playReady(StreamingPolicyPlayReadyConfigurationArgs.builder()
.customLicenseAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}")
.playReadyCustomAttributes("PlayReady CustomAttributes")
.build())
.widevine(StreamingPolicyWidevineConfigurationArgs.builder()
.customLicenseAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId")
.build())
.build())
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(true)
.download(false)
.hls(false)
.smoothStreaming(true)
.build())
.build())
.defaultContentKeyPolicyName("PolicyWithPlayReadyOptionAndOpenRestriction")
.resourceGroupName("contosorg")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithCommonEncryptionCencOnly")
.build());
}
}

Creates a Streaming Policy with envelopeEncryption only

using System.Collections.Generic;
using System.Linq;
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 = "contosorg",
StreamingPolicyName = "UserCreatedSecureStreamingPolicyWithEnvelopeEncryptionOnly",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media/v2"
"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"),
DefaultContentKeyPolicyName: pulumi.String("PolicyWithClearKeyOptionAndTokenRestriction"),
EnvelopeEncryption: &media.EnvelopeEncryptionArgs{
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("aesDefaultKey"),
},
},
CustomKeyAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}"),
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(true),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(true),
SmoothStreaming: pulumi.Bool(true),
},
},
ResourceGroupName: pulumi.String("contosorg"),
StreamingPolicyName: pulumi.String("UserCreatedSecureStreamingPolicyWithEnvelopeEncryptionOnly"),
})
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 com.pulumi.azurenative.media.inputs.EnvelopeEncryptionArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyContentKeysArgs;
import com.pulumi.azurenative.media.inputs.DefaultKeyArgs;
import com.pulumi.azurenative.media.inputs.EnabledProtocolsArgs;
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(EnvelopeEncryptionArgs.builder()
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("aesDefaultKey")
.build())
.build())
.customKeyAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}")
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(true)
.download(false)
.hls(true)
.smoothStreaming(true)
.build())
.build())
.resourceGroupName("contosorg")
.streamingPolicyName("UserCreatedSecureStreamingPolicyWithEnvelopeEncryptionOnly")
.build());
}
}

Creates a Streaming Policy with secure streaming

using System.Collections.Generic;
using System.Linq;
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 = AzureNative.Media.TrackPropertyCompareOperation.Equal,
Property = AzureNative.Media.TrackPropertyType.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 = "contosorg",
StreamingPolicyName = "UserCreatedSecureStreamingPolicy",
});
});
package main
import (
media "github.com/pulumi/pulumi-azure-native-sdk/media/v2"
"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"),
CommonEncryptionCbcs: &media.CommonEncryptionCbcsArgs{
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("cbcsDefaultKey"),
},
},
Drm: &media.CbcsDrmConfigurationArgs{
FairPlay: &media.StreamingPolicyFairPlayConfigurationArgs{
AllowPersistentLicense: pulumi.Bool(true),
CustomLicenseAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}"),
},
},
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(false),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(true),
SmoothStreaming: pulumi.Bool(false),
},
},
CommonEncryptionCenc: &media.CommonEncryptionCencArgs{
ClearTracks: media.TrackSelectionArray{
&media.TrackSelectionArgs{
TrackSelections: media.TrackPropertyConditionArray{
&media.TrackPropertyConditionArgs{
Operation: pulumi.String(media.TrackPropertyCompareOperationEqual),
Property: pulumi.String(media.TrackPropertyTypeFourCC),
Value: pulumi.String("hev1"),
},
},
},
},
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("cencDefaultKey"),
},
},
Drm: &media.CencDrmConfigurationArgs{
PlayReady: &media.StreamingPolicyPlayReadyConfigurationArgs{
CustomLicenseAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}"),
PlayReadyCustomAttributes: pulumi.String("PlayReady CustomAttributes"),
},
Widevine: &media.StreamingPolicyWidevineConfigurationArgs{
CustomLicenseAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId"),
},
},
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(true),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(false),
SmoothStreaming: pulumi.Bool(true),
},
},
DefaultContentKeyPolicyName: pulumi.String("PolicyWithMultipleOptions"),
EnvelopeEncryption: &media.EnvelopeEncryptionArgs{
ContentKeys: &media.StreamingPolicyContentKeysArgs{
DefaultKey: &media.DefaultKeyArgs{
Label: pulumi.String("aesDefaultKey"),
},
},
CustomKeyAcquisitionUrlTemplate: pulumi.String("https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}"),
EnabledProtocols: &media.EnabledProtocolsArgs{
Dash: pulumi.Bool(true),
Download: pulumi.Bool(false),
Hls: pulumi.Bool(true),
SmoothStreaming: pulumi.Bool(true),
},
},
ResourceGroupName: pulumi.String("contosorg"),
StreamingPolicyName: pulumi.String("UserCreatedSecureStreamingPolicy"),
})
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 com.pulumi.azurenative.media.inputs.CommonEncryptionCbcsArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyContentKeysArgs;
import com.pulumi.azurenative.media.inputs.DefaultKeyArgs;
import com.pulumi.azurenative.media.inputs.CbcsDrmConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyFairPlayConfigurationArgs;
import com.pulumi.azurenative.media.inputs.EnabledProtocolsArgs;
import com.pulumi.azurenative.media.inputs.CommonEncryptionCencArgs;
import com.pulumi.azurenative.media.inputs.CencDrmConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyPlayReadyConfigurationArgs;
import com.pulumi.azurenative.media.inputs.StreamingPolicyWidevineConfigurationArgs;
import com.pulumi.azurenative.media.inputs.EnvelopeEncryptionArgs;
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(CommonEncryptionCbcsArgs.builder()
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("cbcsDefaultKey")
.build())
.build())
.drm(CbcsDrmConfigurationArgs.builder()
.fairPlay(StreamingPolicyFairPlayConfigurationArgs.builder()
.allowPersistentLicense(true)
.customLicenseAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/fairplay/{ContentKeyId}")
.build())
.build())
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(false)
.download(false)
.hls(true)
.smoothStreaming(false)
.build())
.build())
.commonEncryptionCenc(CommonEncryptionCencArgs.builder()
.clearTracks(TrackSelectionArgs.builder()
.trackSelections(TrackPropertyConditionArgs.builder()
.operation("Equal")
.property("FourCC")
.value("hev1")
.build())
.build())
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("cencDefaultKey")
.build())
.build())
.drm(CencDrmConfigurationArgs.builder()
.playReady(StreamingPolicyPlayReadyConfigurationArgs.builder()
.customLicenseAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/playready/{ContentKeyId}")
.playReadyCustomAttributes("PlayReady CustomAttributes")
.build())
.widevine(StreamingPolicyWidevineConfigurationArgs.builder()
.customLicenseAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/widevine/{ContentKeyId")
.build())
.build())
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(true)
.download(false)
.hls(false)
.smoothStreaming(true)
.build())
.build())
.defaultContentKeyPolicyName("PolicyWithMultipleOptions")
.envelopeEncryption(EnvelopeEncryptionArgs.builder()
.contentKeys(StreamingPolicyContentKeysArgs.builder()
.defaultKey(DefaultKeyArgs.builder()
.label("aesDefaultKey")
.build())
.build())
.customKeyAcquisitionUrlTemplate("https://contoso.com/{AssetAlternativeId}/envelope/{ContentKeyId}")
.enabledProtocols(EnabledProtocolsArgs.builder()
.dash(true)
.download(false)
.hls(true)
.smoothStreaming(true)
.build())
.build())
.resourceGroupName("contosorg")
.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/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Media/mediaServices/{accountName}/streamingPolicies/{streamingPolicyName}

Constructors

Link copied to clipboard
constructor(accountName: Output<String>? = null, commonEncryptionCbcs: Output<CommonEncryptionCbcsArgs>? = null, commonEncryptionCenc: Output<CommonEncryptionCencArgs>? = null, defaultContentKeyPolicyName: Output<String>? = null, envelopeEncryption: Output<EnvelopeEncryptionArgs>? = null, noEncryption: Output<NoEncryptionArgs>? = null, resourceGroupName: Output<String>? = null, streamingPolicyName: Output<String>? = null)

Properties

Link copied to clipboard
val accountName: Output<String>? = null

The Media Services account name.

Link copied to clipboard

Configuration of CommonEncryptionCbcs

Link copied to clipboard

Configuration of CommonEncryptionCenc

Link copied to clipboard
val defaultContentKeyPolicyName: Output<String>? = null

Default ContentKey used by current Streaming Policy

Link copied to clipboard

Configuration of EnvelopeEncryption

Link copied to clipboard
val noEncryption: Output<NoEncryptionArgs>? = null

Configurations of NoEncryption

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the resource group within the Azure subscription.

Link copied to clipboard
val streamingPolicyName: Output<String>? = null

The Streaming Policy name.

Functions

Link copied to clipboard
open override fun toJava(): StreamingPolicyArgs