com.pulumi.alicloud.kvstore.kotlin.Account.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-alicloud-kotlin Show documentation
Show all versions of pulumi-alicloud-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.alicloud.kvstore.kotlin
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.Map
/**
* Builder for [Account].
*/
@PulumiTagMarker
public class AccountResourceBuilder internal constructor() {
public var name: String? = null
public var args: AccountArgs = AccountArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend AccountArgsBuilder.() -> Unit) {
val builder = AccountArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): Account {
val builtJavaResource = com.pulumi.alicloud.kvstore.Account(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return Account(builtJavaResource)
}
}
/**
* Provides a KVStore Account resource.
* For information about KVStore Account and how to use it, see [What is Account](https://www.alibabacloud.com/help/doc-detail/95973.htm).
* > **NOTE:** Available since v1.66.0.
* ## Example Usage
* Basic Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as alicloud from "@pulumi/alicloud";
* const config = new pulumi.Config();
* const name = config.get("name") || "tf-example";
* const default = alicloud.kvstore.getZones({});
* const defaultGetResourceGroups = alicloud.resourcemanager.getResourceGroups({
* status: "OK",
* });
* const defaultNetwork = new alicloud.vpc.Network("default", {
* vpcName: name,
* cidrBlock: "10.4.0.0/16",
* });
* const defaultSwitch = new alicloud.vpc.Switch("default", {
* vswitchName: name,
* cidrBlock: "10.4.0.0/24",
* vpcId: defaultNetwork.id,
* zoneId: _default.then(_default => _default.zones?.[0]?.id),
* });
* const defaultInstance = new alicloud.kvstore.Instance("default", {
* dbInstanceName: name,
* vswitchId: defaultSwitch.id,
* resourceGroupId: defaultGetResourceGroups.then(defaultGetResourceGroups => defaultGetResourceGroups.ids?.[0]),
* zoneId: _default.then(_default => _default.zones?.[0]?.id),
* instanceClass: "redis.master.large.default",
* instanceType: "Redis",
* engineVersion: "5.0",
* securityIps: ["10.23.12.24"],
* config: {
* appendonly: "yes",
* "lazyfree-lazy-eviction": "yes",
* },
* tags: {
* Created: "TF",
* For: "example",
* },
* });
* const defaultAccount = new alicloud.kvstore.Account("default", {
* accountName: "tfexamplename",
* accountPassword: "YourPassword_123",
* instanceId: defaultInstance.id,
* });
* ```
* ```python
* import pulumi
* import pulumi_alicloud as alicloud
* config = pulumi.Config()
* name = config.get("name")
* if name is None:
* name = "tf-example"
* default = alicloud.kvstore.get_zones()
* default_get_resource_groups = alicloud.resourcemanager.get_resource_groups(status="OK")
* default_network = alicloud.vpc.Network("default",
* vpc_name=name,
* cidr_block="10.4.0.0/16")
* default_switch = alicloud.vpc.Switch("default",
* vswitch_name=name,
* cidr_block="10.4.0.0/24",
* vpc_id=default_network.id,
* zone_id=default.zones[0].id)
* default_instance = alicloud.kvstore.Instance("default",
* db_instance_name=name,
* vswitch_id=default_switch.id,
* resource_group_id=default_get_resource_groups.ids[0],
* zone_id=default.zones[0].id,
* instance_class="redis.master.large.default",
* instance_type="Redis",
* engine_version="5.0",
* security_ips=["10.23.12.24"],
* config={
* "appendonly": "yes",
* "lazyfree-lazy-eviction": "yes",
* },
* tags={
* "Created": "TF",
* "For": "example",
* })
* default_account = alicloud.kvstore.Account("default",
* account_name="tfexamplename",
* account_password="YourPassword_123",
* instance_id=default_instance.id)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using AliCloud = Pulumi.AliCloud;
* return await Deployment.RunAsync(() =>
* {
* var config = new Config();
* var name = config.Get("name") ?? "tf-example";
* var @default = AliCloud.KVStore.GetZones.Invoke();
* var defaultGetResourceGroups = AliCloud.ResourceManager.GetResourceGroups.Invoke(new()
* {
* Status = "OK",
* });
* var defaultNetwork = new AliCloud.Vpc.Network("default", new()
* {
* VpcName = name,
* CidrBlock = "10.4.0.0/16",
* });
* var defaultSwitch = new AliCloud.Vpc.Switch("default", new()
* {
* VswitchName = name,
* CidrBlock = "10.4.0.0/24",
* VpcId = defaultNetwork.Id,
* ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
* });
* var defaultInstance = new AliCloud.KVStore.Instance("default", new()
* {
* DbInstanceName = name,
* VswitchId = defaultSwitch.Id,
* ResourceGroupId = defaultGetResourceGroups.Apply(getResourceGroupsResult => getResourceGroupsResult.Ids[0]),
* ZoneId = @default.Apply(@default => @default.Apply(getZonesResult => getZonesResult.Zones[0]?.Id)),
* InstanceClass = "redis.master.large.default",
* InstanceType = "Redis",
* EngineVersion = "5.0",
* SecurityIps = new[]
* {
* "10.23.12.24",
* },
* Config =
* {
* { "appendonly", "yes" },
* { "lazyfree-lazy-eviction", "yes" },
* },
* Tags =
* {
* { "Created", "TF" },
* { "For", "example" },
* },
* });
* var defaultAccount = new AliCloud.KVStore.Account("default", new()
* {
* AccountName = "tfexamplename",
* AccountPassword = "YourPassword_123",
* InstanceId = defaultInstance.Id,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/kvstore"
* "github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/resourcemanager"
* "github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* cfg := config.New(ctx, "")
* name := "tf-example"
* if param := cfg.Get("name"); param != "" {
* name = param
* }
* _default, err := kvstore.GetZones(ctx, nil, nil)
* if err != nil {
* return err
* }
* defaultGetResourceGroups, err := resourcemanager.GetResourceGroups(ctx, &resourcemanager.GetResourceGroupsArgs{
* Status: pulumi.StringRef("OK"),
* }, nil)
* if err != nil {
* return err
* }
* defaultNetwork, err := vpc.NewNetwork(ctx, "default", &vpc.NetworkArgs{
* VpcName: pulumi.String(name),
* CidrBlock: pulumi.String("10.4.0.0/16"),
* })
* if err != nil {
* return err
* }
* defaultSwitch, err := vpc.NewSwitch(ctx, "default", &vpc.SwitchArgs{
* VswitchName: pulumi.String(name),
* CidrBlock: pulumi.String("10.4.0.0/24"),
* VpcId: defaultNetwork.ID(),
* ZoneId: pulumi.String(_default.Zones[0].Id),
* })
* if err != nil {
* return err
* }
* defaultInstance, err := kvstore.NewInstance(ctx, "default", &kvstore.InstanceArgs{
* DbInstanceName: pulumi.String(name),
* VswitchId: defaultSwitch.ID(),
* ResourceGroupId: pulumi.String(defaultGetResourceGroups.Ids[0]),
* ZoneId: pulumi.String(_default.Zones[0].Id),
* InstanceClass: pulumi.String("redis.master.large.default"),
* InstanceType: pulumi.String("Redis"),
* EngineVersion: pulumi.String("5.0"),
* SecurityIps: pulumi.StringArray{
* pulumi.String("10.23.12.24"),
* },
* Config: pulumi.StringMap{
* "appendonly": pulumi.String("yes"),
* "lazyfree-lazy-eviction": pulumi.String("yes"),
* },
* Tags: pulumi.StringMap{
* "Created": pulumi.String("TF"),
* "For": pulumi.String("example"),
* },
* })
* if err != nil {
* return err
* }
* _, err = kvstore.NewAccount(ctx, "default", &kvstore.AccountArgs{
* AccountName: pulumi.String("tfexamplename"),
* AccountPassword: pulumi.String("YourPassword_123"),
* InstanceId: defaultInstance.ID(),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.alicloud.kvstore.KvstoreFunctions;
* import com.pulumi.alicloud.kvstore.inputs.GetZonesArgs;
* import com.pulumi.alicloud.resourcemanager.ResourcemanagerFunctions;
* import com.pulumi.alicloud.resourcemanager.inputs.GetResourceGroupsArgs;
* import com.pulumi.alicloud.vpc.Network;
* import com.pulumi.alicloud.vpc.NetworkArgs;
* import com.pulumi.alicloud.vpc.Switch;
* import com.pulumi.alicloud.vpc.SwitchArgs;
* import com.pulumi.alicloud.kvstore.Instance;
* import com.pulumi.alicloud.kvstore.InstanceArgs;
* import com.pulumi.alicloud.kvstore.Account;
* import com.pulumi.alicloud.kvstore.AccountArgs;
* 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) {
* final var config = ctx.config();
* final var name = config.get("name").orElse("tf-example");
* final var default = KvstoreFunctions.getZones();
* final var defaultGetResourceGroups = ResourcemanagerFunctions.getResourceGroups(GetResourceGroupsArgs.builder()
* .status("OK")
* .build());
* var defaultNetwork = new Network("defaultNetwork", NetworkArgs.builder()
* .vpcName(name)
* .cidrBlock("10.4.0.0/16")
* .build());
* var defaultSwitch = new Switch("defaultSwitch", SwitchArgs.builder()
* .vswitchName(name)
* .cidrBlock("10.4.0.0/24")
* .vpcId(defaultNetwork.id())
* .zoneId(default_.zones()[0].id())
* .build());
* var defaultInstance = new Instance("defaultInstance", InstanceArgs.builder()
* .dbInstanceName(name)
* .vswitchId(defaultSwitch.id())
* .resourceGroupId(defaultGetResourceGroups.applyValue(getResourceGroupsResult -> getResourceGroupsResult.ids()[0]))
* .zoneId(default_.zones()[0].id())
* .instanceClass("redis.master.large.default")
* .instanceType("Redis")
* .engineVersion("5.0")
* .securityIps("10.23.12.24")
* .config(Map.ofEntries(
* Map.entry("appendonly", "yes"),
* Map.entry("lazyfree-lazy-eviction", "yes")
* ))
* .tags(Map.ofEntries(
* Map.entry("Created", "TF"),
* Map.entry("For", "example")
* ))
* .build());
* var defaultAccount = new Account("defaultAccount", AccountArgs.builder()
* .accountName("tfexamplename")
* .accountPassword("YourPassword_123")
* .instanceId(defaultInstance.id())
* .build());
* }
* }
* ```
* ```yaml
* configuration:
* name:
* type: string
* default: tf-example
* resources:
* defaultNetwork:
* type: alicloud:vpc:Network
* name: default
* properties:
* vpcName: ${name}
* cidrBlock: 10.4.0.0/16
* defaultSwitch:
* type: alicloud:vpc:Switch
* name: default
* properties:
* vswitchName: ${name}
* cidrBlock: 10.4.0.0/24
* vpcId: ${defaultNetwork.id}
* zoneId: ${default.zones[0].id}
* defaultInstance:
* type: alicloud:kvstore:Instance
* name: default
* properties:
* dbInstanceName: ${name}
* vswitchId: ${defaultSwitch.id}
* resourceGroupId: ${defaultGetResourceGroups.ids[0]}
* zoneId: ${default.zones[0].id}
* instanceClass: redis.master.large.default
* instanceType: Redis
* engineVersion: '5.0'
* securityIps:
* - 10.23.12.24
* config:
* appendonly: yes
* lazyfree-lazy-eviction: yes
* tags:
* Created: TF
* For: example
* defaultAccount:
* type: alicloud:kvstore:Account
* name: default
* properties:
* accountName: tfexamplename
* accountPassword: YourPassword_123
* instanceId: ${defaultInstance.id}
* variables:
* default:
* fn::invoke:
* Function: alicloud:kvstore:getZones
* Arguments: {}
* defaultGetResourceGroups:
* fn::invoke:
* Function: alicloud:resourcemanager:getResourceGroups
* Arguments:
* status: OK
* ```
*
* ## Import
* KVStore account can be imported using the id, e.g.
* ```sh
* $ pulumi import alicloud:kvstore/account:Account example :
* ```
*/
public class Account internal constructor(
override val javaResource: com.pulumi.alicloud.kvstore.Account,
) : KotlinCustomResource(javaResource, AccountMapper) {
/**
* The name of the account. The name must meet the following requirements:
* * The name can contain lowercase letters, digits, and hyphens (-), and must start with a lowercase letter.
* * The name can be up to 100 characters in length.
* * The name cannot be one of the reserved words in the [Reserved words for Redis account names](https://www.alibabacloud.com/help/zh/doc-detail/92665.htm) section.
*/
public val accountName: Output
get() = javaResource.accountName().applyValue({ args0 -> args0 })
/**
* The password of the account. The password must be 8 to 32 characters in length. It must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Special characters include `!@ # $ % ^ & * ( ) _ + - =`. You have to specify one of `account_password` and `kms_encrypted_password` fields.
*/
public val accountPassword: Output?
get() = javaResource.accountPassword().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The privilege of account access database. Default value: `RoleReadWrite`
* - `RoleReadOnly`: This value is only for Redis and Memcache
* - `RoleReadWrite`: This value is only for Redis and Memcache
*/
public val accountPrivilege: Output?
get() = javaResource.accountPrivilege().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Privilege type of account.
* - Normal: Common privilege.
* Default to Normal.
*/
public val accountType: Output?
get() = javaResource.accountType().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Database description. It cannot begin with https://. It must start with a Chinese character or English letter. It can include Chinese and English characters, underlines (_), hyphens (-), and numbers. The length may be 2-256 characters.
*/
public val description: Output?
get() = javaResource.description().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The Id of instance in which account belongs (The engine version of instance must be 4.0 or 4.0+).
*/
public val instanceId: Output
get() = javaResource.instanceId().applyValue({ args0 -> args0 })
/**
* An KMS encrypts password used to a KVStore account. If the `account_password` is filled in, this field will be ignored.
*/
public val kmsEncryptedPassword: Output?
get() = javaResource.kmsEncryptedPassword().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* An KMS encryption context used to decrypt `kms_encrypted_password` before creating or updating a KVStore account with `kms_encrypted_password`. See [Encryption Context](https://www.alibabacloud.com/help/doc-detail/42975.htm). It is valid when `kms_encrypted_password` is set.
*/
public val kmsEncryptionContext: Output