random_string (Resource)

The resource random_string generates a random permutation of alphanumeric characters and optionally special characters.

This resource does use a cryptographic random number generator.

Historically this resource's intended usage has been ambiguous as the original example used it in a password. For backwards compatibility it will continue to exist. For unique ids please use random_id, for sensitive random values please use random_password.

Example Usage

// DO NOT EDIT. Code generated by 'cdktf convert' - Please report bugs at https://cdk.tf/bug
import { Construct } from "constructs";
import { TerraformStack } from "cdktf";
/*
 * Provider bindings are generated by running `cdktf get`.
 * See https://cdk.tf/provider-generation for more details.
 */
import { StringResource } from "./.gen/providers/random/string-resource";
class MyConvertedCode extends TerraformStack {
  constructor(scope: Construct, name: string) {
    super(scope, name);
    new StringResource(this, "random", {
      length: 16,
      overrideSpecial: "/@\xA3$",
      special: true,
    });
  }
}

Schema

Required

Optional

Read-Only

Import

Import is supported using the following syntax:

terraform import random_string.test test

Limitations of Import

Any attribute values that are specified within Terraform config will be ignored during import and all attributes that have defaults defined within the schema will have the default assigned.

For instance, using the following config during import:

// DO NOT EDIT. Code generated by 'cdktf convert' - Please report bugs at https://cdk.tf/bug
import { Construct } from "constructs";
import { TerraformStack } from "cdktf";
/*
 * Provider bindings are generated by running `cdktf get`.
 * See https://cdk.tf/provider-generation for more details.
 */
import { StringResource } from "./.gen/providers/random/string-resource";
class MyConvertedCode extends TerraformStack {
  constructor(scope: Construct, name: string) {
    super(scope, name);
    new StringResource(this, "test", {
      length: 16,
      lower: false,
    });
  }
}

Then importing the resource using terraform import random_string.test test, would result in the triggering of a replacement (i.e., destroy-create) during the next terraform apply.

Avoiding Replacement

If the resource were imported using terraform import random_string.test test, replacement can be avoided by using:

  1. Attribute values that match the imported ID and defaults: ```typescript // DO NOT EDIT. Code generated by 'cdktf convert' - Please report bugs at https://cdk.tf/bug import { Construct } from "constructs"; import { TerraformStack } from "cdktf"; /*

2. Attribute values that match the imported ID and omit the attributes with defaults:
    ```typescript
// DO NOT EDIT. Code generated by 'cdktf convert' - Please report bugs at https://cdk.tf/bug
import { Construct } from "constructs";
import { TerraformStack } from "cdktf";
/*
 * Provider bindings are generated by running `cdktf get`.
 * See https://cdk.tf/provider-generation for more details.
 */
import { StringResource } from "./.gen/providers/random/string-resource";
class MyConvertedCode extends TerraformStack {
  constructor(scope: Construct, name: string) {
    super(scope, name);
    new StringResource(this, "test", {
      length: 4,
    });
  }
}

  1. ignore_changes specifying the attributes to ignore: ```typescript // DO NOT EDIT. Code generated by 'cdktf convert' - Please report bugs at https://cdk.tf/bug import { Construct } from "constructs"; import { TerraformStack } from "cdktf"; /*

```

**NOTE** `ignore_changes` is only required until the resource is recreated after import,
after which it will use the configuration values specified.