DatabaseAccountArgs

data class DatabaseAccountArgs(val accountName: Output<String>? = null, val analyticalStorageConfiguration: Output<AnalyticalStorageConfigurationArgs>? = null, val apiProperties: Output<ApiPropertiesArgs>? = null, val backupPolicy: Output<Either<ContinuousModeBackupPolicyArgs, PeriodicModeBackupPolicyArgs>>? = null, val capabilities: Output<List<CapabilityArgs>>? = null, val capacity: Output<CapacityArgs>? = null, val connectorOffer: Output<Either<String, ConnectorOffer>>? = null, val consistencyPolicy: Output<ConsistencyPolicyArgs>? = null, val cors: Output<List<CorsPolicyArgs>>? = null, val createMode: Output<Either<String, CreateMode>>? = null, val databaseAccountOfferType: Output<DatabaseAccountOfferType>? = null, val defaultIdentity: Output<String>? = null, val disableKeyBasedMetadataWriteAccess: Output<Boolean>? = null, val disableLocalAuth: Output<Boolean>? = null, val enableAnalyticalStorage: Output<Boolean>? = null, val enableAutomaticFailover: Output<Boolean>? = null, val enableCassandraConnector: Output<Boolean>? = null, val enableFreeTier: Output<Boolean>? = null, val enableMultipleWriteLocations: Output<Boolean>? = null, val enablePartitionMerge: Output<Boolean>? = null, val identity: Output<ManagedServiceIdentityArgs>? = null, val ipRules: Output<List<IpAddressOrRangeArgs>>? = null, val isVirtualNetworkFilterEnabled: Output<Boolean>? = null, val keyVaultKeyUri: Output<String>? = null, val kind: Output<Either<String, DatabaseAccountKind>>? = null, val location: Output<String>? = null, val locations: Output<List<LocationArgs>>? = null, val minimalTlsVersion: Output<Either<String, MinimalTlsVersion>>? = null, val networkAclBypass: Output<NetworkAclBypass>? = null, val networkAclBypassResourceIds: Output<List<String>>? = null, val publicNetworkAccess: Output<Either<String, PublicNetworkAccess>>? = null, val resourceGroupName: Output<String>? = null, val restoreParameters: Output<RestoreParametersArgs>? = null, val tags: Output<Map<String, String>>? = null, val virtualNetworkRules: Output<List<VirtualNetworkRuleArgs>>? = null) : ConvertibleToJava<DatabaseAccountArgs>

An Azure Cosmos DB database account. Uses Azure REST API version 2023-04-15. In version 1.x of the Azure Native provider, it used API version 2021-03-15. Other available API versions: 2021-04-01-preview, 2023-03-15-preview, 2023-09-15, 2023-09-15-preview, 2023-11-15, 2023-11-15-preview, 2024-02-15-preview, 2024-05-15, 2024-05-15-preview, 2024-08-15, 2024-09-01-preview, 2024-11-15, 2024-12-01-preview.

Example Usage

CosmosDBDatabaseAccountCreateMin

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var databaseAccount = new AzureNative.DocumentDB.DatabaseAccount("databaseAccount", new()
{
AccountName = "ddb1",
CreateMode = AzureNative.DocumentDB.CreateMode.Default,
DatabaseAccountOfferType = AzureNative.DocumentDB.DatabaseAccountOfferType.Standard,
Location = "westus",
Locations = new[]
{
new AzureNative.DocumentDB.Inputs.LocationArgs
{
FailoverPriority = 0,
IsZoneRedundant = false,
LocationName = "southcentralus",
},
},
ResourceGroupName = "rg1",
});
});
package main
import (
documentdb "github.com/pulumi/pulumi-azure-native-sdk/documentdb/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := documentdb.NewDatabaseAccount(ctx, "databaseAccount", &documentdb.DatabaseAccountArgs{
AccountName: pulumi.String("ddb1"),
CreateMode: pulumi.String(documentdb.CreateModeDefault),
DatabaseAccountOfferType: documentdb.DatabaseAccountOfferTypeStandard,
Location: pulumi.String("westus"),
Locations: documentdb.LocationArray{
&documentdb.LocationArgs{
FailoverPriority: pulumi.Int(0),
IsZoneRedundant: pulumi.Bool(false),
LocationName: pulumi.String("southcentralus"),
},
},
ResourceGroupName: pulumi.String("rg1"),
})
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.documentdb.DatabaseAccount;
import com.pulumi.azurenative.documentdb.DatabaseAccountArgs;
import com.pulumi.azurenative.documentdb.inputs.LocationArgs;
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 databaseAccount = new DatabaseAccount("databaseAccount", DatabaseAccountArgs.builder()
.accountName("ddb1")
.createMode("Default")
.databaseAccountOfferType("Standard")
.location("westus")
.locations(LocationArgs.builder()
.failoverPriority(0)
.isZoneRedundant(false)
.locationName("southcentralus")
.build())
.resourceGroupName("rg1")
.build());
}
}

CosmosDBRestoreDatabaseAccountCreateUpdate.json

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var databaseAccount = new AzureNative.DocumentDB.DatabaseAccount("databaseAccount", new()
{
AccountName = "ddb1",
ApiProperties = new AzureNative.DocumentDB.Inputs.ApiPropertiesArgs
{
ServerVersion = AzureNative.DocumentDB.ServerVersion.ServerVersion_3_2,
},
BackupPolicy = new AzureNative.DocumentDB.Inputs.ContinuousModeBackupPolicyArgs
{
ContinuousModeProperties = new AzureNative.DocumentDB.Inputs.ContinuousModePropertiesArgs
{
Tier = AzureNative.DocumentDB.ContinuousTier.Continuous30Days,
},
Type = "Continuous",
},
ConsistencyPolicy = new AzureNative.DocumentDB.Inputs.ConsistencyPolicyArgs
{
DefaultConsistencyLevel = AzureNative.DocumentDB.DefaultConsistencyLevel.BoundedStaleness,
MaxIntervalInSeconds = 10,
MaxStalenessPrefix = 200,
},
CreateMode = "Restore",
DatabaseAccountOfferType = AzureNative.DocumentDB.DatabaseAccountOfferType.Standard,
EnableAnalyticalStorage = true,
EnableFreeTier = false,
KeyVaultKeyUri = "https://myKeyVault.vault.azure.net",
Kind = AzureNative.DocumentDB.DatabaseAccountKind.GlobalDocumentDB,
Location = "westus",
Locations = new[]
{
new AzureNative.DocumentDB.Inputs.LocationArgs
{
FailoverPriority = 0,
IsZoneRedundant = false,
LocationName = "southcentralus",
},
},
MinimalTlsVersion = AzureNative.DocumentDB.MinimalTlsVersion.Tls,
ResourceGroupName = "rg1",
RestoreParameters = new AzureNative.DocumentDB.Inputs.RestoreParametersArgs
{
DatabasesToRestore = new[]
{
new AzureNative.DocumentDB.Inputs.DatabaseRestoreResourceArgs
{
CollectionNames = new[]
{
"collection1",
"collection2",
},
DatabaseName = "db1",
},
new AzureNative.DocumentDB.Inputs.DatabaseRestoreResourceArgs
{
CollectionNames = new[]
{
"collection3",
"collection4",
},
DatabaseName = "db2",
},
},
RestoreMode = AzureNative.DocumentDB.RestoreMode.PointInTime,
RestoreSource = "/subscriptions/subid/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/1a97b4bb-f6a0-430e-ade1-638d781830cc",
RestoreTimestampInUtc = "2021-03-11T22:05:09Z",
},
Tags = null,
});
});
package main
import (
documentdb "github.com/pulumi/pulumi-azure-native-sdk/documentdb/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := documentdb.NewDatabaseAccount(ctx, "databaseAccount", &documentdb.DatabaseAccountArgs{
AccountName: pulumi.String("ddb1"),
ApiProperties: &documentdb.ApiPropertiesArgs{
ServerVersion: pulumi.String(documentdb.ServerVersion_3_2),
},
BackupPolicy: &documentdb.ContinuousModeBackupPolicyArgs{
ContinuousModeProperties: &documentdb.ContinuousModePropertiesArgs{
Tier: pulumi.String(documentdb.ContinuousTierContinuous30Days),
},
Type: pulumi.String("Continuous"),
},
ConsistencyPolicy: &documentdb.ConsistencyPolicyArgs{
DefaultConsistencyLevel: documentdb.DefaultConsistencyLevelBoundedStaleness,
MaxIntervalInSeconds: pulumi.Int(10),
MaxStalenessPrefix: pulumi.Float64(200),
},
CreateMode: pulumi.String("Restore"),
DatabaseAccountOfferType: documentdb.DatabaseAccountOfferTypeStandard,
EnableAnalyticalStorage: pulumi.Bool(true),
EnableFreeTier: pulumi.Bool(false),
KeyVaultKeyUri: pulumi.String("https://myKeyVault.vault.azure.net"),
Kind: pulumi.String(documentdb.DatabaseAccountKindGlobalDocumentDB),
Location: pulumi.String("westus"),
Locations: documentdb.LocationArray{
&documentdb.LocationArgs{
FailoverPriority: pulumi.Int(0),
IsZoneRedundant: pulumi.Bool(false),
LocationName: pulumi.String("southcentralus"),
},
},
MinimalTlsVersion: pulumi.String(documentdb.MinimalTlsVersionTls),
ResourceGroupName: pulumi.String("rg1"),
RestoreParameters: &documentdb.RestoreParametersArgs{
DatabasesToRestore: documentdb.DatabaseRestoreResourceArray{
&documentdb.DatabaseRestoreResourceArgs{
CollectionNames: pulumi.StringArray{
pulumi.String("collection1"),
pulumi.String("collection2"),
},
DatabaseName: pulumi.String("db1"),
},
&documentdb.DatabaseRestoreResourceArgs{
CollectionNames: pulumi.StringArray{
pulumi.String("collection3"),
pulumi.String("collection4"),
},
DatabaseName: pulumi.String("db2"),
},
},
RestoreMode: pulumi.String(documentdb.RestoreModePointInTime),
RestoreSource: pulumi.String("/subscriptions/subid/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/1a97b4bb-f6a0-430e-ade1-638d781830cc"),
RestoreTimestampInUtc: pulumi.String("2021-03-11T22:05:09Z"),
},
Tags: pulumi.StringMap{},
})
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.documentdb.DatabaseAccount;
import com.pulumi.azurenative.documentdb.DatabaseAccountArgs;
import com.pulumi.azurenative.documentdb.inputs.ApiPropertiesArgs;
import com.pulumi.azurenative.documentdb.inputs.ConsistencyPolicyArgs;
import com.pulumi.azurenative.documentdb.inputs.LocationArgs;
import com.pulumi.azurenative.documentdb.inputs.RestoreParametersArgs;
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 databaseAccount = new DatabaseAccount("databaseAccount", DatabaseAccountArgs.builder()
.accountName("ddb1")
.apiProperties(ApiPropertiesArgs.builder()
.serverVersion("3.2")
.build())
.backupPolicy(ContinuousModeBackupPolicyArgs.builder()
.continuousModeProperties(ContinuousModePropertiesArgs.builder()
.tier("Continuous30Days")
.build())
.type("Continuous")
.build())
.consistencyPolicy(ConsistencyPolicyArgs.builder()
.defaultConsistencyLevel("BoundedStaleness")
.maxIntervalInSeconds(10)
.maxStalenessPrefix(200)
.build())
.createMode("Restore")
.databaseAccountOfferType("Standard")
.enableAnalyticalStorage(true)
.enableFreeTier(false)
.keyVaultKeyUri("https://myKeyVault.vault.azure.net")
.kind("GlobalDocumentDB")
.location("westus")
.locations(LocationArgs.builder()
.failoverPriority(0)
.isZoneRedundant(false)
.locationName("southcentralus")
.build())
.minimalTlsVersion("Tls")
.resourceGroupName("rg1")
.restoreParameters(RestoreParametersArgs.builder()
.databasesToRestore(
DatabaseRestoreResourceArgs.builder()
.collectionNames(
"collection1",
"collection2")
.databaseName("db1")
.build(),
DatabaseRestoreResourceArgs.builder()
.collectionNames(
"collection3",
"collection4")
.databaseName("db2")
.build())
.restoreMode("PointInTime")
.restoreSource("/subscriptions/subid/providers/Microsoft.DocumentDB/locations/westus/restorableDatabaseAccounts/1a97b4bb-f6a0-430e-ade1-638d781830cc")
.restoreTimestampInUtc("2021-03-11T22:05:09Z")
.build())
.tags()
.build());
}
}

Import

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

$ pulumi import azure-native:documentdb:DatabaseAccount ddb1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DocumentDB/databaseAccounts/{accountName}

Constructors

Link copied to clipboard
constructor(accountName: Output<String>? = null, analyticalStorageConfiguration: Output<AnalyticalStorageConfigurationArgs>? = null, apiProperties: Output<ApiPropertiesArgs>? = null, backupPolicy: Output<Either<ContinuousModeBackupPolicyArgs, PeriodicModeBackupPolicyArgs>>? = null, capabilities: Output<List<CapabilityArgs>>? = null, capacity: Output<CapacityArgs>? = null, connectorOffer: Output<Either<String, ConnectorOffer>>? = null, consistencyPolicy: Output<ConsistencyPolicyArgs>? = null, cors: Output<List<CorsPolicyArgs>>? = null, createMode: Output<Either<String, CreateMode>>? = null, databaseAccountOfferType: Output<DatabaseAccountOfferType>? = null, defaultIdentity: Output<String>? = null, disableKeyBasedMetadataWriteAccess: Output<Boolean>? = null, disableLocalAuth: Output<Boolean>? = null, enableAnalyticalStorage: Output<Boolean>? = null, enableAutomaticFailover: Output<Boolean>? = null, enableCassandraConnector: Output<Boolean>? = null, enableFreeTier: Output<Boolean>? = null, enableMultipleWriteLocations: Output<Boolean>? = null, enablePartitionMerge: Output<Boolean>? = null, identity: Output<ManagedServiceIdentityArgs>? = null, ipRules: Output<List<IpAddressOrRangeArgs>>? = null, isVirtualNetworkFilterEnabled: Output<Boolean>? = null, keyVaultKeyUri: Output<String>? = null, kind: Output<Either<String, DatabaseAccountKind>>? = null, location: Output<String>? = null, locations: Output<List<LocationArgs>>? = null, minimalTlsVersion: Output<Either<String, MinimalTlsVersion>>? = null, networkAclBypass: Output<NetworkAclBypass>? = null, networkAclBypassResourceIds: Output<List<String>>? = null, publicNetworkAccess: Output<Either<String, PublicNetworkAccess>>? = null, resourceGroupName: Output<String>? = null, restoreParameters: Output<RestoreParametersArgs>? = null, tags: Output<Map<String, String>>? = null, virtualNetworkRules: Output<List<VirtualNetworkRuleArgs>>? = null)

Properties

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

Cosmos DB database account name.

Link copied to clipboard

Analytical storage specific properties.

Link copied to clipboard
val apiProperties: Output<ApiPropertiesArgs>? = null

API specific properties. Currently, supported only for MongoDB API.

Link copied to clipboard

The object representing the policy for taking backups on an account.

Link copied to clipboard
val capabilities: Output<List<CapabilityArgs>>? = null

List of Cosmos DB capabilities for the account

Link copied to clipboard
val capacity: Output<CapacityArgs>? = null

The object that represents all properties related to capacity enforcement on an account.

Link copied to clipboard
val connectorOffer: Output<Either<String, ConnectorOffer>>? = null

The cassandra connector offer type for the Cosmos DB database C* account.

Link copied to clipboard

The consistency policy for the Cosmos DB account.

Link copied to clipboard
val cors: Output<List<CorsPolicyArgs>>? = null

The CORS policy for the Cosmos DB database account.

Link copied to clipboard
val createMode: Output<Either<String, CreateMode>>? = null

Enum to indicate the mode of account creation.

Link copied to clipboard

The offer type for the database

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

The default identity for accessing key vault used in features like customer managed keys. The default identity needs to be explicitly set by the users. It can be "FirstPartyIdentity", "SystemAssignedIdentity" and more.

Link copied to clipboard

Disable write operations on metadata resources (databases, containers, throughput) via account keys

Link copied to clipboard
val disableLocalAuth: Output<Boolean>? = null

Opt-out of local authentication and ensure only MSI and AAD can be used exclusively for authentication.

Link copied to clipboard
val enableAnalyticalStorage: Output<Boolean>? = null

Flag to indicate whether to enable storage analytics.

Link copied to clipboard
val enableAutomaticFailover: Output<Boolean>? = null

Enables automatic failover of the write region in the rare event that the region is unavailable due to an outage. Automatic failover will result in a new write region for the account and is chosen based on the failover priorities configured for the account.

Link copied to clipboard
val enableCassandraConnector: Output<Boolean>? = null

Enables the cassandra connector on the Cosmos DB C* account

Link copied to clipboard
val enableFreeTier: Output<Boolean>? = null

Flag to indicate whether Free Tier is enabled.

Link copied to clipboard

Enables the account to write in multiple locations

Link copied to clipboard
val enablePartitionMerge: Output<Boolean>? = null

Flag to indicate enabling/disabling of Partition Merge feature on the account

Link copied to clipboard

Identity for the resource.

Link copied to clipboard
val ipRules: Output<List<IpAddressOrRangeArgs>>? = null

List of IpRules.

Link copied to clipboard

Flag to indicate whether to enable/disable Virtual Network ACL rules.

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

The URI of the key vault

Link copied to clipboard
val kind: Output<Either<String, DatabaseAccountKind>>? = null

Indicates the type of database account. This can only be set at database account creation.

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

The location of the resource group to which the resource belongs.

Link copied to clipboard
val locations: Output<List<LocationArgs>>? = null

An array that contains the georeplication locations enabled for the Cosmos DB account.

Link copied to clipboard
val minimalTlsVersion: Output<Either<String, MinimalTlsVersion>>? = null

Indicates the minimum allowed Tls version. The default value is Tls 1.2. Cassandra and Mongo APIs only work with Tls 1.2.

Link copied to clipboard
val networkAclBypass: Output<NetworkAclBypass>? = null

Indicates what services are allowed to bypass firewall checks.

Link copied to clipboard

An array that contains the Resource Ids for Network Acl Bypass for the Cosmos DB account.

Link copied to clipboard
val publicNetworkAccess: Output<Either<String, PublicNetworkAccess>>? = null

Whether requests from Public Network are allowed

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

The name of the resource group. The name is case insensitive.

Link copied to clipboard

Parameters to indicate the information about the restore.

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

Tags are a list of key-value pairs that describe the resource. These tags can be used in viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key no greater than 128 characters and value no greater than 256 characters. For example, the default experience for a template type is set with "defaultExperience": "Cassandra". Current "defaultExperience" values also include "Table", "Graph", "DocumentDB", and "MongoDB".

Link copied to clipboard

List of Virtual Network ACL rules configured for the Cosmos DB account.

Functions

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