StorageAccount

class StorageAccount : KotlinCustomResource

The storage account. Uses Azure REST API version 2024-01-01. In version 2.x of the Azure Native provider, it used API version 2022-09-01. Other available API versions: 2022-09-01, 2023-01-01, 2023-04-01, 2023-05-01. These can be accessed by generating a local SDK package using the CLI command pulumi package add azure-native storage [ApiVersion]. See the ../../../version-guide/#accessing-any-api-version-via-local-packages for details.

Example Usage

NfsV3AccountCreate

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
EnableExtendedGroups = true,
EnableHttpsTrafficOnly = false,
EnableNfsV3 = true,
IsHnsEnabled = true,
Kind = AzureNative.Storage.Kind.BlockBlobStorage,
Location = "eastus",
NetworkRuleSet = new AzureNative.Storage.Inputs.NetworkRuleSetArgs
{
Bypass = AzureNative.Storage.Bypass.AzureServices,
DefaultAction = AzureNative.Storage.DefaultAction.Allow,
IpRules = new() { },
VirtualNetworkRules = new[]
{
new AzureNative.Storage.Inputs.VirtualNetworkRuleArgs
{
VirtualNetworkResourceId = "/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12",
},
},
},
ResourceGroupName = "res9101",
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Premium_LRS,
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
EnableExtendedGroups: pulumi.Bool(true),
EnableHttpsTrafficOnly: pulumi.Bool(false),
EnableNfsV3: pulumi.Bool(true),
IsHnsEnabled: pulumi.Bool(true),
Kind: pulumi.String(storage.KindBlockBlobStorage),
Location: pulumi.String("eastus"),
NetworkRuleSet: &storage.NetworkRuleSetArgs{
Bypass: pulumi.String(storage.BypassAzureServices),
DefaultAction: storage.DefaultActionAllow,
IpRules: storage.IPRuleArray{},
VirtualNetworkRules: storage.VirtualNetworkRuleArray{
&storage.VirtualNetworkRuleArgs{
VirtualNetworkResourceId: pulumi.String("/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12"),
},
},
},
ResourceGroupName: pulumi.String("res9101"),
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Premium_LRS),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.NetworkRuleSetArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.enableExtendedGroups(true)
.enableHttpsTrafficOnly(false)
.enableNfsV3(true)
.isHnsEnabled(true)
.kind("BlockBlobStorage")
.location("eastus")
.networkRuleSet(NetworkRuleSetArgs.builder()
.bypass("AzureServices")
.defaultAction("Allow")
.ipRules()
.virtualNetworkRules(VirtualNetworkRuleArgs.builder()
.virtualNetworkResourceId("/subscriptions/{subscription-id}/resourceGroups/res9101/providers/Microsoft.Network/virtualNetworks/net123/subnets/subnet12")
.build())
.build())
.resourceGroupName("res9101")
.sku(SkuArgs.builder()
.name("Premium_LRS")
.build())
.build());
}
}

StorageAccountCreate

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowBlobPublicAccess = false,
AllowSharedKeyAccess = true,
DefaultToOAuthAuthentication = false,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
ExtendedLocation = new AzureNative.Storage.Inputs.ExtendedLocationArgs
{
Name = "losangeles001",
Type = AzureNative.Storage.ExtendedLocationTypes.EdgeZone,
},
IsHnsEnabled = true,
IsSftpEnabled = true,
KeyPolicy = new AzureNative.Storage.Inputs.KeyPolicyArgs
{
KeyExpirationPeriodInDays = 20,
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
ResourceGroupName = "res9101",
RoutingPreference = new AzureNative.Storage.Inputs.RoutingPreferenceArgs
{
PublishInternetEndpoints = true,
PublishMicrosoftEndpoints = true,
RoutingChoice = AzureNative.Storage.RoutingChoice.MicrosoftRouting,
},
SasPolicy = new AzureNative.Storage.Inputs.SasPolicyArgs
{
ExpirationAction = AzureNative.Storage.ExpirationAction.Log,
SasExpirationPeriod = "1.15:59:59",
},
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowBlobPublicAccess: pulumi.Bool(false),
AllowSharedKeyAccess: pulumi.Bool(true),
DefaultToOAuthAuthentication: pulumi.Bool(false),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
ExtendedLocation: &storage.ExtendedLocationArgs{
Name: pulumi.String("losangeles001"),
Type: pulumi.String(storage.ExtendedLocationTypesEdgeZone),
},
IsHnsEnabled: pulumi.Bool(true),
IsSftpEnabled: pulumi.Bool(true),
KeyPolicy: &storage.KeyPolicyArgs{
KeyExpirationPeriodInDays: pulumi.Int(20),
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
ResourceGroupName: pulumi.String("res9101"),
RoutingPreference: &storage.RoutingPreferenceArgs{
PublishInternetEndpoints: pulumi.Bool(true),
PublishMicrosoftEndpoints: pulumi.Bool(true),
RoutingChoice: pulumi.String(storage.RoutingChoiceMicrosoftRouting),
},
SasPolicy: &storage.SasPolicyArgs{
ExpirationAction: pulumi.String(storage.ExpirationActionLog),
SasExpirationPeriod: pulumi.String("1.15:59:59"),
},
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowBlobPublicAccess(false)
.allowSharedKeyAccess(true)
.defaultToOAuthAuthentication(false)
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.extendedLocation(ExtendedLocationArgs.builder()
.name("losangeles001")
.type("EdgeZone")
.build())
.isHnsEnabled(true)
.isSftpEnabled(true)
.keyPolicy(KeyPolicyArgs.builder()
.keyExpirationPeriodInDays(20)
.build())
.kind("Storage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.resourceGroupName("res9101")
.routingPreference(RoutingPreferenceArgs.builder()
.publishInternetEndpoints(true)
.publishMicrosoftEndpoints(true)
.routingChoice("MicrosoftRouting")
.build())
.sasPolicy(SasPolicyArgs.builder()
.expirationAction("Log")
.sasExpirationPeriod("1.15:59:59")
.build())
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreateAllowedCopyScopeToAAD

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowBlobPublicAccess = false,
AllowSharedKeyAccess = true,
AllowedCopyScope = AzureNative.Storage.AllowedCopyScope.AAD,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
IsHnsEnabled = true,
KeyPolicy = new AzureNative.Storage.Inputs.KeyPolicyArgs
{
KeyExpirationPeriodInDays = 20,
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
ResourceGroupName = "res9101",
RoutingPreference = new AzureNative.Storage.Inputs.RoutingPreferenceArgs
{
PublishInternetEndpoints = true,
PublishMicrosoftEndpoints = true,
RoutingChoice = AzureNative.Storage.RoutingChoice.MicrosoftRouting,
},
SasPolicy = new AzureNative.Storage.Inputs.SasPolicyArgs
{
ExpirationAction = AzureNative.Storage.ExpirationAction.Log,
SasExpirationPeriod = "1.15:59:59",
},
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowBlobPublicAccess: pulumi.Bool(false),
AllowSharedKeyAccess: pulumi.Bool(true),
AllowedCopyScope: pulumi.String(storage.AllowedCopyScopeAAD),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
IsHnsEnabled: pulumi.Bool(true),
KeyPolicy: &storage.KeyPolicyArgs{
KeyExpirationPeriodInDays: pulumi.Int(20),
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
ResourceGroupName: pulumi.String("res9101"),
RoutingPreference: &storage.RoutingPreferenceArgs{
PublishInternetEndpoints: pulumi.Bool(true),
PublishMicrosoftEndpoints: pulumi.Bool(true),
RoutingChoice: pulumi.String(storage.RoutingChoiceMicrosoftRouting),
},
SasPolicy: &storage.SasPolicyArgs{
ExpirationAction: pulumi.String(storage.ExpirationActionLog),
SasExpirationPeriod: pulumi.String("1.15:59:59"),
},
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowBlobPublicAccess(false)
.allowSharedKeyAccess(true)
.allowedCopyScope("AAD")
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.isHnsEnabled(true)
.keyPolicy(KeyPolicyArgs.builder()
.keyExpirationPeriodInDays(20)
.build())
.kind("Storage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.resourceGroupName("res9101")
.routingPreference(RoutingPreferenceArgs.builder()
.publishInternetEndpoints(true)
.publishMicrosoftEndpoints(true)
.routingChoice("MicrosoftRouting")
.build())
.sasPolicy(SasPolicyArgs.builder()
.expirationAction("Log")
.sasExpirationPeriod("1.15:59:59")
.build())
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreateAllowedCopyScopeToPrivateLink

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowBlobPublicAccess = false,
AllowSharedKeyAccess = true,
AllowedCopyScope = AzureNative.Storage.AllowedCopyScope.PrivateLink,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
IsHnsEnabled = true,
KeyPolicy = new AzureNative.Storage.Inputs.KeyPolicyArgs
{
KeyExpirationPeriodInDays = 20,
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
ResourceGroupName = "res9101",
RoutingPreference = new AzureNative.Storage.Inputs.RoutingPreferenceArgs
{
PublishInternetEndpoints = true,
PublishMicrosoftEndpoints = true,
RoutingChoice = AzureNative.Storage.RoutingChoice.MicrosoftRouting,
},
SasPolicy = new AzureNative.Storage.Inputs.SasPolicyArgs
{
ExpirationAction = AzureNative.Storage.ExpirationAction.Log,
SasExpirationPeriod = "1.15:59:59",
},
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowBlobPublicAccess: pulumi.Bool(false),
AllowSharedKeyAccess: pulumi.Bool(true),
AllowedCopyScope: pulumi.String(storage.AllowedCopyScopePrivateLink),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
IsHnsEnabled: pulumi.Bool(true),
KeyPolicy: &storage.KeyPolicyArgs{
KeyExpirationPeriodInDays: pulumi.Int(20),
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
ResourceGroupName: pulumi.String("res9101"),
RoutingPreference: &storage.RoutingPreferenceArgs{
PublishInternetEndpoints: pulumi.Bool(true),
PublishMicrosoftEndpoints: pulumi.Bool(true),
RoutingChoice: pulumi.String(storage.RoutingChoiceMicrosoftRouting),
},
SasPolicy: &storage.SasPolicyArgs{
ExpirationAction: pulumi.String(storage.ExpirationActionLog),
SasExpirationPeriod: pulumi.String("1.15:59:59"),
},
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowBlobPublicAccess(false)
.allowSharedKeyAccess(true)
.allowedCopyScope("PrivateLink")
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.isHnsEnabled(true)
.keyPolicy(KeyPolicyArgs.builder()
.keyExpirationPeriodInDays(20)
.build())
.kind("Storage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.resourceGroupName("res9101")
.routingPreference(RoutingPreferenceArgs.builder()
.publishInternetEndpoints(true)
.publishMicrosoftEndpoints(true)
.routingChoice("MicrosoftRouting")
.build())
.sasPolicy(SasPolicyArgs.builder()
.expirationAction("Log")
.sasExpirationPeriod("1.15:59:59")
.build())
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreateDisallowPublicNetworkAccess

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowBlobPublicAccess = false,
AllowSharedKeyAccess = true,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
ExtendedLocation = new AzureNative.Storage.Inputs.ExtendedLocationArgs
{
Name = "losangeles001",
Type = AzureNative.Storage.ExtendedLocationTypes.EdgeZone,
},
IsHnsEnabled = true,
KeyPolicy = new AzureNative.Storage.Inputs.KeyPolicyArgs
{
KeyExpirationPeriodInDays = 20,
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
PublicNetworkAccess = AzureNative.Storage.PublicNetworkAccess.Disabled,
ResourceGroupName = "res9101",
RoutingPreference = new AzureNative.Storage.Inputs.RoutingPreferenceArgs
{
PublishInternetEndpoints = true,
PublishMicrosoftEndpoints = true,
RoutingChoice = AzureNative.Storage.RoutingChoice.MicrosoftRouting,
},
SasPolicy = new AzureNative.Storage.Inputs.SasPolicyArgs
{
ExpirationAction = AzureNative.Storage.ExpirationAction.Log,
SasExpirationPeriod = "1.15:59:59",
},
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowBlobPublicAccess: pulumi.Bool(false),
AllowSharedKeyAccess: pulumi.Bool(true),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
ExtendedLocation: &storage.ExtendedLocationArgs{
Name: pulumi.String("losangeles001"),
Type: pulumi.String(storage.ExtendedLocationTypesEdgeZone),
},
IsHnsEnabled: pulumi.Bool(true),
KeyPolicy: &storage.KeyPolicyArgs{
KeyExpirationPeriodInDays: pulumi.Int(20),
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
PublicNetworkAccess: pulumi.String(storage.PublicNetworkAccessDisabled),
ResourceGroupName: pulumi.String("res9101"),
RoutingPreference: &storage.RoutingPreferenceArgs{
PublishInternetEndpoints: pulumi.Bool(true),
PublishMicrosoftEndpoints: pulumi.Bool(true),
RoutingChoice: pulumi.String(storage.RoutingChoiceMicrosoftRouting),
},
SasPolicy: &storage.SasPolicyArgs{
ExpirationAction: pulumi.String(storage.ExpirationActionLog),
SasExpirationPeriod: pulumi.String("1.15:59:59"),
},
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowBlobPublicAccess(false)
.allowSharedKeyAccess(true)
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.extendedLocation(ExtendedLocationArgs.builder()
.name("losangeles001")
.type("EdgeZone")
.build())
.isHnsEnabled(true)
.keyPolicy(KeyPolicyArgs.builder()
.keyExpirationPeriodInDays(20)
.build())
.kind("Storage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.publicNetworkAccess("Disabled")
.resourceGroupName("res9101")
.routingPreference(RoutingPreferenceArgs.builder()
.publishInternetEndpoints(true)
.publishMicrosoftEndpoints(true)
.routingChoice("MicrosoftRouting")
.build())
.sasPolicy(SasPolicyArgs.builder()
.expirationAction("Log")
.sasExpirationPeriod("1.15:59:59")
.build())
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreateDnsEndpointTypeToAzureDnsZone

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowBlobPublicAccess = false,
AllowSharedKeyAccess = true,
DefaultToOAuthAuthentication = false,
DnsEndpointType = AzureNative.Storage.DnsEndpointType.AzureDnsZone,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
ExtendedLocation = new AzureNative.Storage.Inputs.ExtendedLocationArgs
{
Name = "losangeles001",
Type = AzureNative.Storage.ExtendedLocationTypes.EdgeZone,
},
IsHnsEnabled = true,
IsSftpEnabled = true,
KeyPolicy = new AzureNative.Storage.Inputs.KeyPolicyArgs
{
KeyExpirationPeriodInDays = 20,
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
ResourceGroupName = "res9101",
RoutingPreference = new AzureNative.Storage.Inputs.RoutingPreferenceArgs
{
PublishInternetEndpoints = true,
PublishMicrosoftEndpoints = true,
RoutingChoice = AzureNative.Storage.RoutingChoice.MicrosoftRouting,
},
SasPolicy = new AzureNative.Storage.Inputs.SasPolicyArgs
{
ExpirationAction = AzureNative.Storage.ExpirationAction.Log,
SasExpirationPeriod = "1.15:59:59",
},
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowBlobPublicAccess: pulumi.Bool(false),
AllowSharedKeyAccess: pulumi.Bool(true),
DefaultToOAuthAuthentication: pulumi.Bool(false),
DnsEndpointType: pulumi.String(storage.DnsEndpointTypeAzureDnsZone),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
ExtendedLocation: &storage.ExtendedLocationArgs{
Name: pulumi.String("losangeles001"),
Type: pulumi.String(storage.ExtendedLocationTypesEdgeZone),
},
IsHnsEnabled: pulumi.Bool(true),
IsSftpEnabled: pulumi.Bool(true),
KeyPolicy: &storage.KeyPolicyArgs{
KeyExpirationPeriodInDays: pulumi.Int(20),
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
ResourceGroupName: pulumi.String("res9101"),
RoutingPreference: &storage.RoutingPreferenceArgs{
PublishInternetEndpoints: pulumi.Bool(true),
PublishMicrosoftEndpoints: pulumi.Bool(true),
RoutingChoice: pulumi.String(storage.RoutingChoiceMicrosoftRouting),
},
SasPolicy: &storage.SasPolicyArgs{
ExpirationAction: pulumi.String(storage.ExpirationActionLog),
SasExpirationPeriod: pulumi.String("1.15:59:59"),
},
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowBlobPublicAccess(false)
.allowSharedKeyAccess(true)
.defaultToOAuthAuthentication(false)
.dnsEndpointType("AzureDnsZone")
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.extendedLocation(ExtendedLocationArgs.builder()
.name("losangeles001")
.type("EdgeZone")
.build())
.isHnsEnabled(true)
.isSftpEnabled(true)
.keyPolicy(KeyPolicyArgs.builder()
.keyExpirationPeriodInDays(20)
.build())
.kind("Storage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.resourceGroupName("res9101")
.routingPreference(RoutingPreferenceArgs.builder()
.publishInternetEndpoints(true)
.publishMicrosoftEndpoints(true)
.routingChoice("MicrosoftRouting")
.build())
.sasPolicy(SasPolicyArgs.builder()
.expirationAction("Log")
.sasExpirationPeriod("1.15:59:59")
.build())
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreateDnsEndpointTypeToStandard

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowBlobPublicAccess = false,
AllowSharedKeyAccess = true,
DefaultToOAuthAuthentication = false,
DnsEndpointType = AzureNative.Storage.DnsEndpointType.Standard,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
ExtendedLocation = new AzureNative.Storage.Inputs.ExtendedLocationArgs
{
Name = "losangeles001",
Type = AzureNative.Storage.ExtendedLocationTypes.EdgeZone,
},
IsHnsEnabled = true,
IsSftpEnabled = true,
KeyPolicy = new AzureNative.Storage.Inputs.KeyPolicyArgs
{
KeyExpirationPeriodInDays = 20,
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
ResourceGroupName = "res9101",
RoutingPreference = new AzureNative.Storage.Inputs.RoutingPreferenceArgs
{
PublishInternetEndpoints = true,
PublishMicrosoftEndpoints = true,
RoutingChoice = AzureNative.Storage.RoutingChoice.MicrosoftRouting,
},
SasPolicy = new AzureNative.Storage.Inputs.SasPolicyArgs
{
ExpirationAction = AzureNative.Storage.ExpirationAction.Log,
SasExpirationPeriod = "1.15:59:59",
},
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowBlobPublicAccess: pulumi.Bool(false),
AllowSharedKeyAccess: pulumi.Bool(true),
DefaultToOAuthAuthentication: pulumi.Bool(false),
DnsEndpointType: pulumi.String(storage.DnsEndpointTypeStandard),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
ExtendedLocation: &storage.ExtendedLocationArgs{
Name: pulumi.String("losangeles001"),
Type: pulumi.String(storage.ExtendedLocationTypesEdgeZone),
},
IsHnsEnabled: pulumi.Bool(true),
IsSftpEnabled: pulumi.Bool(true),
KeyPolicy: &storage.KeyPolicyArgs{
KeyExpirationPeriodInDays: pulumi.Int(20),
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
ResourceGroupName: pulumi.String("res9101"),
RoutingPreference: &storage.RoutingPreferenceArgs{
PublishInternetEndpoints: pulumi.Bool(true),
PublishMicrosoftEndpoints: pulumi.Bool(true),
RoutingChoice: pulumi.String(storage.RoutingChoiceMicrosoftRouting),
},
SasPolicy: &storage.SasPolicyArgs{
ExpirationAction: pulumi.String(storage.ExpirationActionLog),
SasExpirationPeriod: pulumi.String("1.15:59:59"),
},
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowBlobPublicAccess(false)
.allowSharedKeyAccess(true)
.defaultToOAuthAuthentication(false)
.dnsEndpointType("Standard")
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.extendedLocation(ExtendedLocationArgs.builder()
.name("losangeles001")
.type("EdgeZone")
.build())
.isHnsEnabled(true)
.isSftpEnabled(true)
.keyPolicy(KeyPolicyArgs.builder()
.keyExpirationPeriodInDays(20)
.build())
.kind("Storage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.resourceGroupName("res9101")
.routingPreference(RoutingPreferenceArgs.builder()
.publishInternetEndpoints(true)
.publishMicrosoftEndpoints(true)
.routingChoice("MicrosoftRouting")
.build())
.sasPolicy(SasPolicyArgs.builder()
.expirationAction("Log")
.sasExpirationPeriod("1.15:59:59")
.build())
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreateEnablePublicNetworkAccess

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowBlobPublicAccess = false,
AllowSharedKeyAccess = true,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
ExtendedLocation = new AzureNative.Storage.Inputs.ExtendedLocationArgs
{
Name = "losangeles001",
Type = AzureNative.Storage.ExtendedLocationTypes.EdgeZone,
},
IsHnsEnabled = true,
KeyPolicy = new AzureNative.Storage.Inputs.KeyPolicyArgs
{
KeyExpirationPeriodInDays = 20,
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
PublicNetworkAccess = AzureNative.Storage.PublicNetworkAccess.Enabled,
ResourceGroupName = "res9101",
RoutingPreference = new AzureNative.Storage.Inputs.RoutingPreferenceArgs
{
PublishInternetEndpoints = true,
PublishMicrosoftEndpoints = true,
RoutingChoice = AzureNative.Storage.RoutingChoice.MicrosoftRouting,
},
SasPolicy = new AzureNative.Storage.Inputs.SasPolicyArgs
{
ExpirationAction = AzureNative.Storage.ExpirationAction.Log,
SasExpirationPeriod = "1.15:59:59",
},
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowBlobPublicAccess: pulumi.Bool(false),
AllowSharedKeyAccess: pulumi.Bool(true),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
ExtendedLocation: &storage.ExtendedLocationArgs{
Name: pulumi.String("losangeles001"),
Type: pulumi.String(storage.ExtendedLocationTypesEdgeZone),
},
IsHnsEnabled: pulumi.Bool(true),
KeyPolicy: &storage.KeyPolicyArgs{
KeyExpirationPeriodInDays: pulumi.Int(20),
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
PublicNetworkAccess: pulumi.String(storage.PublicNetworkAccessEnabled),
ResourceGroupName: pulumi.String("res9101"),
RoutingPreference: &storage.RoutingPreferenceArgs{
PublishInternetEndpoints: pulumi.Bool(true),
PublishMicrosoftEndpoints: pulumi.Bool(true),
RoutingChoice: pulumi.String(storage.RoutingChoiceMicrosoftRouting),
},
SasPolicy: &storage.SasPolicyArgs{
ExpirationAction: pulumi.String(storage.ExpirationActionLog),
SasExpirationPeriod: pulumi.String("1.15:59:59"),
},
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.storage.inputs.KeyPolicyArgs;
import com.pulumi.azurenative.storage.inputs.RoutingPreferenceArgs;
import com.pulumi.azurenative.storage.inputs.SasPolicyArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowBlobPublicAccess(false)
.allowSharedKeyAccess(true)
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.extendedLocation(ExtendedLocationArgs.builder()
.name("losangeles001")
.type("EdgeZone")
.build())
.isHnsEnabled(true)
.keyPolicy(KeyPolicyArgs.builder()
.keyExpirationPeriodInDays(20)
.build())
.kind("Storage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.publicNetworkAccess("Enabled")
.resourceGroupName("res9101")
.routingPreference(RoutingPreferenceArgs.builder()
.publishInternetEndpoints(true)
.publishMicrosoftEndpoints(true)
.routingChoice("MicrosoftRouting")
.build())
.sasPolicy(SasPolicyArgs.builder()
.expirationAction("Log")
.sasExpirationPeriod("1.15:59:59")
.build())
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreatePremiumBlockBlobStorage

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
AllowSharedKeyAccess = true,
Encryption = new AzureNative.Storage.Inputs.EncryptionArgs
{
KeySource = AzureNative.Storage.KeySource.Microsoft_Storage,
RequireInfrastructureEncryption = false,
Services = new AzureNative.Storage.Inputs.EncryptionServicesArgs
{
Blob = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
File = new AzureNative.Storage.Inputs.EncryptionServiceArgs
{
Enabled = true,
KeyType = AzureNative.Storage.KeyType.Account,
},
},
},
Kind = AzureNative.Storage.Kind.BlockBlobStorage,
Location = "eastus",
MinimumTlsVersion = AzureNative.Storage.MinimumTlsVersion.TLS1_2,
ResourceGroupName = "res9101",
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Premium_LRS,
},
Tags =
{
{ "key1", "value1" },
{ "key2", "value2" },
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
AllowSharedKeyAccess: pulumi.Bool(true),
Encryption: &storage.EncryptionArgs{
KeySource: pulumi.String(storage.KeySource_Microsoft_Storage),
RequireInfrastructureEncryption: pulumi.Bool(false),
Services: &storage.EncryptionServicesArgs{
Blob: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
File: &storage.EncryptionServiceArgs{
Enabled: pulumi.Bool(true),
KeyType: pulumi.String(storage.KeyTypeAccount),
},
},
},
Kind: pulumi.String(storage.KindBlockBlobStorage),
Location: pulumi.String("eastus"),
MinimumTlsVersion: pulumi.String(storage.MinimumTlsVersion_TLS1_2),
ResourceGroupName: pulumi.String("res9101"),
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Premium_LRS),
},
Tags: pulumi.StringMap{
"key1": pulumi.String("value1"),
"key2": pulumi.String("value2"),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServicesArgs;
import com.pulumi.azurenative.storage.inputs.EncryptionServiceArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.allowSharedKeyAccess(true)
.encryption(EncryptionArgs.builder()
.keySource("Microsoft.Storage")
.requireInfrastructureEncryption(false)
.services(EncryptionServicesArgs.builder()
.blob(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.file(EncryptionServiceArgs.builder()
.enabled(true)
.keyType("Account")
.build())
.build())
.build())
.kind("BlockBlobStorage")
.location("eastus")
.minimumTlsVersion("TLS1_2")
.resourceGroupName("res9101")
.sku(SkuArgs.builder()
.name("Premium_LRS")
.build())
.tags(Map.ofEntries(
Map.entry("key1", "value1"),
Map.entry("key2", "value2")
))
.build());
}
}

StorageAccountCreateWithImmutabilityPolicy

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var storageAccount = new AzureNative.Storage.StorageAccount("storageAccount", new()
{
AccountName = "sto4445",
ExtendedLocation = new AzureNative.Storage.Inputs.ExtendedLocationArgs
{
Name = "losangeles001",
Type = AzureNative.Storage.ExtendedLocationTypes.EdgeZone,
},
ImmutableStorageWithVersioning = new AzureNative.Storage.Inputs.ImmutableStorageAccountArgs
{
Enabled = true,
ImmutabilityPolicy = new AzureNative.Storage.Inputs.AccountImmutabilityPolicyPropertiesArgs
{
AllowProtectedAppendWrites = true,
ImmutabilityPeriodSinceCreationInDays = 15,
State = AzureNative.Storage.AccountImmutabilityPolicyState.Unlocked,
},
},
Kind = AzureNative.Storage.Kind.Storage,
Location = "eastus",
ResourceGroupName = "res9101",
Sku = new AzureNative.Storage.Inputs.SkuArgs
{
Name = AzureNative.Storage.SkuName.Standard_GRS,
},
});
});
package main
import (
storage "github.com/pulumi/pulumi-azure-native-sdk/storage/v3"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := storage.NewStorageAccount(ctx, "storageAccount", &storage.StorageAccountArgs{
AccountName: pulumi.String("sto4445"),
ExtendedLocation: &storage.ExtendedLocationArgs{
Name: pulumi.String("losangeles001"),
Type: pulumi.String(storage.ExtendedLocationTypesEdgeZone),
},
ImmutableStorageWithVersioning: &storage.ImmutableStorageAccountArgs{
Enabled: pulumi.Bool(true),
ImmutabilityPolicy: &storage.AccountImmutabilityPolicyPropertiesArgs{
AllowProtectedAppendWrites: pulumi.Bool(true),
ImmutabilityPeriodSinceCreationInDays: pulumi.Int(15),
State: pulumi.String(storage.AccountImmutabilityPolicyStateUnlocked),
},
},
Kind: pulumi.String(storage.KindStorage),
Location: pulumi.String("eastus"),
ResourceGroupName: pulumi.String("res9101"),
Sku: &storage.SkuArgs{
Name: pulumi.String(storage.SkuName_Standard_GRS),
},
})
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.storage.StorageAccount;
import com.pulumi.azurenative.storage.StorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.ExtendedLocationArgs;
import com.pulumi.azurenative.storage.inputs.ImmutableStorageAccountArgs;
import com.pulumi.azurenative.storage.inputs.AccountImmutabilityPolicyPropertiesArgs;
import com.pulumi.azurenative.storage.inputs.SkuArgs;
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 storageAccount = new StorageAccount("storageAccount", StorageAccountArgs.builder()
.accountName("sto4445")
.extendedLocation(ExtendedLocationArgs.builder()
.name("losangeles001")
.type("EdgeZone")
.build())
.immutableStorageWithVersioning(ImmutableStorageAccountArgs.builder()
.enabled(true)
.immutabilityPolicy(AccountImmutabilityPolicyPropertiesArgs.builder()
.allowProtectedAppendWrites(true)
.immutabilityPeriodSinceCreationInDays(15)
.state("Unlocked")
.build())
.build())
.kind("Storage")
.location("eastus")
.resourceGroupName("res9101")
.sku(SkuArgs.builder()
.name("Standard_GRS")
.build())
.build());
}
}

Import

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

$ pulumi import azure-native:storage:StorageAccount sto4445 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{accountName}

Properties

Link copied to clipboard
val accessTier: Output<String>

Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type.

Link copied to clipboard

If customer initiated account migration is in progress, the value will be true else it will be null.

Link copied to clipboard

Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is false for this property.

Link copied to clipboard

Allow or disallow cross AAD tenant object replication. Set this property to true for new or existing accounts only if object replication policies will involve storage accounts in different AAD tenants. The default interpretation is false for new accounts to follow best security practices by default.

Link copied to clipboard
val allowedCopyScope: Output<String>?

Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet.

Link copied to clipboard

Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true.

Link copied to clipboard
val azureApiVersion: Output<String>

The Azure API version of the resource.

Link copied to clipboard

Provides the identity based authentication settings for Azure Files.

Link copied to clipboard

Blob restore status

Link copied to clipboard
val creationTime: Output<String>

Gets the creation date and time of the storage account in UTC.

Link copied to clipboard

Gets the custom domain the user assigned to this storage account.

Link copied to clipboard

A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property.

Link copied to clipboard
val dnsEndpointType: Output<String>?

Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier.

Link copied to clipboard

Enables extended group support with local users feature, if set to true

Link copied to clipboard

Allows https traffic only to storage service if sets to true.

Link copied to clipboard
val enableNfsV3: Output<Boolean>?

NFS 3.0 protocol support enabled if set to true.

Link copied to clipboard

Encryption settings to be used for server-side encryption for the storage account.

Link copied to clipboard

The extendedLocation of the resource.

Link copied to clipboard

If the failover is in progress, the value will be true, otherwise, it will be null.

Link copied to clipboard

Geo Replication Stats

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

The identity of the resource.

Link copied to clipboard

The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the containers in the account by default.

Link copied to clipboard
val isHnsEnabled: Output<Boolean>?

Account HierarchicalNamespace enabled if sets to true.

Link copied to clipboard

Enables local users feature, if set to true

Link copied to clipboard
val isSftpEnabled: Output<Boolean>?

Enables Secure File Transfer Protocol, if set to true

Link copied to clipboard

This property will be set to true or false on an event of ongoing migration. Default value is null.

Link copied to clipboard

Storage account keys creation time.

Link copied to clipboard

KeyPolicy assigned to the storage account.

Link copied to clipboard
val kind: Output<String>

Gets the Kind.

Link copied to clipboard

Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled.

Link copied to clipboard

Gets the timestamp of the most recent instance of a failover to the secondary location. Only the most recent timestamp is retained. This element is not returned if there has never been a failover instance. Only available if the accountType is Standard_GRS or Standard_RAGRS.

Link copied to clipboard
val location: Output<String>

The geo-location where the resource lives

Link copied to clipboard

Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property.

Link copied to clipboard
val name: Output<String>

The name of the resource

Link copied to clipboard

Network rule set

Link copied to clipboard

Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object. Note that Standard_ZRS and Premium_LRS accounts only return the blob endpoint.

Link copied to clipboard
val primaryLocation: Output<String>

Gets the location of the primary data center for the storage account.

Link copied to clipboard

List of private endpoint connection associated with the specified storage account

Link copied to clipboard

Gets the status of the storage account at the time the operation was called.

Link copied to clipboard

Allow, disallow, or let Network Security Perimeter configuration to evaluate public network access to Storage Account.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Maintains information about the network routing choice opted by the user for data transfer

Link copied to clipboard

SasPolicy assigned to the storage account.

Link copied to clipboard

Gets the URLs that are used to perform a retrieval of a public blob, queue, or table object from the secondary location of the storage account. Only available if the SKU name is Standard_RAGRS.

Link copied to clipboard

Gets the location of the geo-replicated secondary for the storage account. Only available if the accountType is Standard_GRS or Standard_RAGRS.

Link copied to clipboard
val sku: Output<SkuResponse>

Gets the SKU.

Link copied to clipboard
val statusOfPrimary: Output<String>

Gets the status indicating whether the primary location of the storage account is available or unavailable.

Link copied to clipboard

Gets the status indicating whether the secondary location of the storage account is available or unavailable. Only available if the SKU name is Standard_GRS or Standard_RAGRS.

Link copied to clipboard

This property is readOnly and is set by server during asynchronous storage account sku conversion operations.

Link copied to clipboard
val tags: Output<Map<String, String>>?

Resource tags.

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>