PricingArgs

data class PricingArgs(val enforce: Output<Either<String, Enforce>>? = null, val extensions: Output<List<ExtensionArgs>>? = null, val pricingName: Output<String>? = null, val pricingTier: Output<Either<String, PricingTier>>? = null, val scopeId: Output<String>? = null, val subPlan: Output<String>? = null) : ConvertibleToJava<PricingArgs>

Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features. Uses Azure REST API version 2024-01-01. In version 2.x of the Azure Native provider, it used API version 2024-01-01.

Example Usage

Update pricing on resource (example for VirtualMachines plan)

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pricing = new AzureNative.Security.Pricing("pricing", new()
{
PricingName = "virtualMachines",
PricingTier = AzureNative.Security.PricingTier.Standard,
ScopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1",
SubPlan = "P1",
});
});
package main
import (
security "github.com/pulumi/pulumi-azure-native-sdk/security/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := security.NewPricing(ctx, "pricing", &security.PricingArgs{
PricingName: pulumi.String("virtualMachines"),
PricingTier: pulumi.String(security.PricingTierStandard),
ScopeId: pulumi.String("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1"),
SubPlan: pulumi.String("P1"),
})
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.security.Pricing;
import com.pulumi.azurenative.security.PricingArgs;
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 pricing = new Pricing("pricing", PricingArgs.builder()
.pricingName("virtualMachines")
.pricingTier("Standard")
.scopeId("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1")
.subPlan("P1")
.build());
}
}

Update pricing on subscription (example for CloudPosture plan)

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pricing = new AzureNative.Security.Pricing("pricing", new()
{
PricingName = "CloudPosture",
PricingTier = AzureNative.Security.PricingTier.Standard,
ScopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23",
});
});
package main
import (
security "github.com/pulumi/pulumi-azure-native-sdk/security/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := security.NewPricing(ctx, "pricing", &security.PricingArgs{
PricingName: pulumi.String("CloudPosture"),
PricingTier: pulumi.String(security.PricingTierStandard),
ScopeId: pulumi.String("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23"),
})
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.security.Pricing;
import com.pulumi.azurenative.security.PricingArgs;
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 pricing = new Pricing("pricing", PricingArgs.builder()
.pricingName("CloudPosture")
.pricingTier("Standard")
.scopeId("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23")
.build());
}
}

Update pricing on subscription (example for CloudPosture plan) - partial success

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pricing = new AzureNative.Security.Pricing("pricing", new()
{
PricingName = "CloudPosture",
PricingTier = AzureNative.Security.PricingTier.Standard,
ScopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23",
});
});
package main
import (
security "github.com/pulumi/pulumi-azure-native-sdk/security/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := security.NewPricing(ctx, "pricing", &security.PricingArgs{
PricingName: pulumi.String("CloudPosture"),
PricingTier: pulumi.String(security.PricingTierStandard),
ScopeId: pulumi.String("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23"),
})
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.security.Pricing;
import com.pulumi.azurenative.security.PricingArgs;
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 pricing = new Pricing("pricing", PricingArgs.builder()
.pricingName("CloudPosture")
.pricingTier("Standard")
.scopeId("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23")
.build());
}
}

Update pricing on subscription (example for VirtualMachines plan)

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var pricing = new AzureNative.Security.Pricing("pricing", new()
{
Enforce = AzureNative.Security.Enforce.True,
PricingName = "VirtualMachines",
PricingTier = AzureNative.Security.PricingTier.Standard,
ScopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23",
SubPlan = "P2",
});
});
package main
import (
security "github.com/pulumi/pulumi-azure-native-sdk/security/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := security.NewPricing(ctx, "pricing", &security.PricingArgs{
Enforce: pulumi.String(security.EnforceTrue),
PricingName: pulumi.String("VirtualMachines"),
PricingTier: pulumi.String(security.PricingTierStandard),
ScopeId: pulumi.String("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23"),
SubPlan: pulumi.String("P2"),
})
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.security.Pricing;
import com.pulumi.azurenative.security.PricingArgs;
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 pricing = new Pricing("pricing", PricingArgs.builder()
.enforce("True")
.pricingName("VirtualMachines")
.pricingTier("Standard")
.scopeId("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23")
.subPlan("P2")
.build());
}
}

Import

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

$ pulumi import azure-native:security:Pricing VirtualMachines /{scopeId}/providers/Microsoft.Security/pricings/{pricingName}

Constructors

Link copied to clipboard
constructor(enforce: Output<Either<String, Enforce>>? = null, extensions: Output<List<ExtensionArgs>>? = null, pricingName: Output<String>? = null, pricingTier: Output<Either<String, PricingTier>>? = null, scopeId: Output<String>? = null, subPlan: Output<String>? = null)

Properties

Link copied to clipboard
val enforce: Output<Either<String, Enforce>>? = null

If set to "False", it allows the descendants of this scope to override the pricing configuration set on this scope (allows setting inherited="False"). If set to "True", it prevents overrides and forces this pricing configuration on all the descendants of this scope. This field is only available for subscription-level pricing.

Link copied to clipboard
val extensions: Output<List<ExtensionArgs>>? = null

Optional. List of extensions offered under a plan.

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

name of the pricing configuration

Link copied to clipboard
val pricingTier: Output<Either<String, PricingTier>>? = null

Indicates whether the Defender plan is enabled on the selected scope. Microsoft Defender for Cloud is provided in two pricing tiers: free and standard. The standard tier offers advanced security capabilities, while the free tier offers basic security features.

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

The scope id of the pricing. Valid scopes are: subscription (format: 'subscriptions/{subscriptionId}'), or a specific resource (format: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) - Supported resources are (VirtualMachines)

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

The sub-plan selected for a Standard pricing configuration, when more than one sub-plan is available. Each sub-plan enables a set of security features. When not specified, full plan is applied. For VirtualMachines plan, available sub plans are 'P1' & 'P2', where for resource level only 'P1' sub plan is supported.

Functions

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