@aws-cdk/aws-redshift-alpha 2.22.0-alpha.0 → 2.24.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "^2.22.0",
11
+ "aws-cdk-lib": "^2.24.1",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -1510,6 +1510,19 @@
1510
1510
  }
1511
1511
  }
1512
1512
  },
1513
+ "aws-cdk-lib.aws_iottwinmaker": {
1514
+ "targets": {
1515
+ "dotnet": {
1516
+ "namespace": "Amazon.CDK.AWS.IoTTwinMaker"
1517
+ },
1518
+ "java": {
1519
+ "package": "software.amazon.awscdk.services.iottwinmaker"
1520
+ },
1521
+ "python": {
1522
+ "module": "aws_cdk.aws_iottwinmaker"
1523
+ }
1524
+ }
1525
+ },
1513
1526
  "aws-cdk-lib.aws_iotwireless": {
1514
1527
  "targets": {
1515
1528
  "dotnet": {
@@ -2972,7 +2985,7 @@
2972
2985
  "stability": "experimental"
2973
2986
  },
2974
2987
  "homepage": "https://github.com/aws/aws-cdk",
2975
- "jsiiVersion": "1.57.0 (build f614666)",
2988
+ "jsiiVersion": "1.58.0 (build f8ba112)",
2976
2989
  "keywords": [
2977
2990
  "aws",
2978
2991
  "cdk",
@@ -2993,7 +3006,7 @@
2993
3006
  },
2994
3007
  "name": "@aws-cdk/aws-redshift-alpha",
2995
3008
  "readme": {
2996
- "markdown": "# Amazon Redshift Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## Starting a Redshift Cluster Database\n\nTo set up a Redshift cluster, define a `Cluster`. It will be launched in a VPC.\nYou can specify a VPC, otherwise one will be created. The nodes are always launched in private subnets and are encrypted by default.\n\n```ts\nimport * as ec2 from 'aws-cdk-lib/aws-ec2';\n\nconst vpc = new ec2.Vpc(this, 'Vpc');\nconst cluster = new Cluster(this, 'Redshift', {\n masterUser: {\n masterUsername: 'admin',\n },\n vpc\n});\n```\n\nBy default, the master password will be generated and stored in AWS Secrets Manager.\n\nA default database named `default_db` will be created in the cluster. To change the name of this database set the `defaultDatabaseName` attribute in the constructor properties.\n\nBy default, the cluster will not be publicly accessible.\nDepending on your use case, you can make the cluster publicly accessible with the `publiclyAccessible` property.\n\n## Connecting\n\nTo control who can access the cluster, use the `.connections` attribute. Redshift Clusters have\na default port, so you don't need to specify the port:\n\n```ts fixture=cluster\ncluster.connections.allowDefaultPortFromAnyIpv4('Open to the world');\n```\n\nThe endpoint to access your database cluster will be available as the `.clusterEndpoint` attribute:\n\n```ts fixture=cluster\ncluster.clusterEndpoint.socketAddress; // \"HOSTNAME:PORT\"\n```\n\n## Rotating credentials\n\nWhen the master password is generated and stored in AWS Secrets Manager, it can be rotated automatically:\n\n```ts fixture=cluster\ncluster.addRotationSingleUser(); // Will rotate automatically after 30 days\n```\n\nThe multi user rotation scheme is also available:\n\n```ts fixture=cluster\nimport * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';\n\ncluster.addRotationMultiUser('MyUser', {\n secret: secretsmanager.Secret.fromSecretNameV2(this, 'Imported Secret', 'my-secret'),\n});\n```\n\n## Database Resources\n\nThis module allows for the creation of non-CloudFormation database resources such as users\nand tables. This allows you to manage identities, permissions, and stateful resources\nwithin your Redshift cluster from your CDK application.\n\nBecause these resources are not available in CloudFormation, this library leverages\n[custom\nresources](https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html)\nto manage them. In addition to the IAM permissions required to make Redshift service\ncalls, the execution role for the custom resource handler requires database credentials to\ncreate resources within the cluster.\n\nThese database credentials can be supplied explicitly through the `adminUser` properties\nof the various database resource constructs. Alternatively, the credentials can be\nautomatically pulled from the Redshift cluster's default administrator\ncredentials. However, this option is only available if the password for the credentials\nwas generated by the CDK application (ie., no value vas provided for [the `masterPassword`\nproperty](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-redshift.Login.html#masterpasswordspan-classapi-icon-api-icon-experimental-titlethis-api-element-is-experimental-it-may-change-without-noticespan)\nof\n[`Cluster.masterUser`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-redshift.Cluster.html#masteruserspan-classapi-icon-api-icon-experimental-titlethis-api-element-is-experimental-it-may-change-without-noticespan)).\n\n### Creating Users\n\nCreate a user within a Redshift cluster database by instantiating a `User` construct. This\nwill generate a username and password, store the credentials in a [AWS Secrets Manager\n`Secret`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.Secret.html),\nand make a query to the Redshift cluster to create a new database user with the\ncredentials.\n\n```ts fixture=cluster\nnew User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nBy default, the user credentials are encrypted with your AWS account's default Secrets\nManager encryption key. You can specify the encryption key used for this purpose by\nsupplying a key in the `encryptionKey` property.\n\n```ts fixture=cluster\nimport * as kms from 'aws-cdk-lib/aws-kms';\n\nconst encryptionKey = new kms.Key(this, 'Key');\nnew User(this, 'User', {\n encryptionKey: encryptionKey,\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nBy default, a username is automatically generated from the user construct ID and its path\nin the construct tree. You can specify a particular username by providing a value for the\n`username` property. Usernames must be valid identifiers; see: [Names and\nidentifiers](https://docs.aws.amazon.com/redshift/latest/dg/r_names.html) in the *Amazon\nRedshift Database Developer Guide*.\n\n```ts fixture=cluster\nnew User(this, 'User', {\n username: 'myuser',\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nThe user password is generated by AWS Secrets Manager using the default configuration\nfound in\n[`secretsmanager.SecretStringGenerator`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.SecretStringGenerator.html),\nexcept with password length `30` and some SQL-incompliant characters excluded. The\nplaintext for the password will never be present in the CDK application; instead, a\n[CloudFormation Dynamic\nReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html)\nwill be used wherever the password value is required.\n\n### Creating Tables\n\nCreate a table within a Redshift cluster database by instantiating a `Table`\nconstruct. This will make a query to the Redshift cluster to create a new database table\nwith the supplied schema.\n\n```ts fixture=cluster\nnew Table(this, 'Table', {\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nThe table can be configured to have distStyle attribute and a distKey column:\n\n```ts fixture=cluster\nnew Table(this, 'Table', {\n tableColumns: [\n { name: 'col1', dataType: 'varchar(4)', distKey: true },\n { name: 'col2', dataType: 'float' },\n ],\n cluster: cluster,\n databaseName: 'databaseName',\n distStyle: TableDistStyle.KEY,\n});\n```\n\nThe table can also be configured to have sortStyle attribute and sortKey columns:\n\n```ts fixture=cluster\nnew Table(this, 'Table', {\n tableColumns: [\n { name: 'col1', dataType: 'varchar(4)', sortKey: true },\n { name: 'col2', dataType: 'float', sortKey: true },\n ],\n cluster: cluster,\n databaseName: 'databaseName',\n sortStyle: TableSortStyle.COMPOUND,\n});\n```\n\n### Granting Privileges\n\nYou can give a user privileges to perform certain actions on a table by using the\n`Table.grant()` method.\n\n```ts fixture=cluster\nconst user = new User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\nconst table = new Table(this, 'Table', {\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: 'databaseName',\n});\n\ntable.grant(user, TableAction.DROP, TableAction.SELECT);\n```\n\nTake care when managing privileges via the CDK, as attempting to manage a user's\nprivileges on the same table in multiple CDK applications could lead to accidentally\noverriding these permissions. Consider the following two CDK applications which both refer\nto the same user and table. In application 1, the resources are created and the user is\ngiven `INSERT` permissions on the table:\n\n```ts fixture=cluster\nconst databaseName = 'databaseName';\nconst username = 'myuser'\nconst tableName = 'mytable'\n\nconst user = new User(this, 'User', {\n username: username,\n cluster: cluster,\n databaseName: databaseName,\n});\nconst table = new Table(this, 'Table', {\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: databaseName,\n});\ntable.grant(user, TableAction.INSERT);\n```\n\nIn application 2, the resources are imported and the user is given `INSERT` permissions on\nthe table:\n\n```ts fixture=cluster\nconst databaseName = 'databaseName';\nconst username = 'myuser'\nconst tableName = 'mytable'\n\nconst user = User.fromUserAttributes(this, 'User', {\n username: username,\n password: SecretValue.unsafePlainText('NOT_FOR_PRODUCTION'),\n cluster: cluster,\n databaseName: databaseName,\n});\nconst table = Table.fromTableAttributes(this, 'Table', {\n tableName: tableName,\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: 'databaseName',\n});\ntable.grant(user, TableAction.INSERT);\n```\n\nBoth applications attempt to grant the user the appropriate privilege on the table by\nsubmitting a `GRANT USER` SQL query to the Redshift cluster. Note that the latter of these\ntwo calls will have no effect since the user has already been granted the privilege.\n\nNow, if application 1 were to remove the call to `grant`, a `REVOKE USER` SQL query is\nsubmitted to the Redshift cluster. In general, application 1 does not know that\napplication 2 has also granted this permission and thus cannot decide not to issue the\nrevocation. This leads to the undesirable state where application 2 still contains the\ncall to `grant` but the user does not have the specified permission.\n\nNote that this does not occur when duplicate privileges are granted within the same\napplication, as such privileges are de-duplicated before any SQL query is submitted.\n"
3009
+ "markdown": "# Amazon Redshift Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\n## Starting a Redshift Cluster Database\n\nTo set up a Redshift cluster, define a `Cluster`. It will be launched in a VPC.\nYou can specify a VPC, otherwise one will be created. The nodes are always launched in private subnets and are encrypted by default.\n\n```ts\nimport * as ec2 from 'aws-cdk-lib/aws-ec2';\n\nconst vpc = new ec2.Vpc(this, 'Vpc');\nconst cluster = new Cluster(this, 'Redshift', {\n masterUser: {\n masterUsername: 'admin',\n },\n vpc\n});\n```\n\nBy default, the master password will be generated and stored in AWS Secrets Manager.\n\nA default database named `default_db` will be created in the cluster. To change the name of this database set the `defaultDatabaseName` attribute in the constructor properties.\n\nBy default, the cluster will not be publicly accessible.\nDepending on your use case, you can make the cluster publicly accessible with the `publiclyAccessible` property.\n\n## Connecting\n\nTo control who can access the cluster, use the `.connections` attribute. Redshift Clusters have\na default port, so you don't need to specify the port:\n\n```ts fixture=cluster\ncluster.connections.allowDefaultPortFromAnyIpv4('Open to the world');\n```\n\nThe endpoint to access your database cluster will be available as the `.clusterEndpoint` attribute:\n\n```ts fixture=cluster\ncluster.clusterEndpoint.socketAddress; // \"HOSTNAME:PORT\"\n```\n\n## Database Resources\n\nThis module allows for the creation of non-CloudFormation database resources such as users\nand tables. This allows you to manage identities, permissions, and stateful resources\nwithin your Redshift cluster from your CDK application.\n\nBecause these resources are not available in CloudFormation, this library leverages\n[custom\nresources](https://docs.aws.amazon.com/cdk/api/latest/docs/custom-resources-readme.html)\nto manage them. In addition to the IAM permissions required to make Redshift service\ncalls, the execution role for the custom resource handler requires database credentials to\ncreate resources within the cluster.\n\nThese database credentials can be supplied explicitly through the `adminUser` properties\nof the various database resource constructs. Alternatively, the credentials can be\nautomatically pulled from the Redshift cluster's default administrator\ncredentials. However, this option is only available if the password for the credentials\nwas generated by the CDK application (ie., no value vas provided for [the `masterPassword`\nproperty](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-redshift.Login.html#masterpasswordspan-classapi-icon-api-icon-experimental-titlethis-api-element-is-experimental-it-may-change-without-noticespan)\nof\n[`Cluster.masterUser`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-redshift.Cluster.html#masteruserspan-classapi-icon-api-icon-experimental-titlethis-api-element-is-experimental-it-may-change-without-noticespan)).\n\n### Creating Users\n\nCreate a user within a Redshift cluster database by instantiating a `User` construct. This\nwill generate a username and password, store the credentials in a [AWS Secrets Manager\n`Secret`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.Secret.html),\nand make a query to the Redshift cluster to create a new database user with the\ncredentials.\n\n```ts fixture=cluster\nnew User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nBy default, the user credentials are encrypted with your AWS account's default Secrets\nManager encryption key. You can specify the encryption key used for this purpose by\nsupplying a key in the `encryptionKey` property.\n\n```ts fixture=cluster\nimport * as kms from 'aws-cdk-lib/aws-kms';\n\nconst encryptionKey = new kms.Key(this, 'Key');\nnew User(this, 'User', {\n encryptionKey: encryptionKey,\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nBy default, a username is automatically generated from the user construct ID and its path\nin the construct tree. You can specify a particular username by providing a value for the\n`username` property. Usernames must be valid identifiers; see: [Names and\nidentifiers](https://docs.aws.amazon.com/redshift/latest/dg/r_names.html) in the *Amazon\nRedshift Database Developer Guide*.\n\n```ts fixture=cluster\nnew User(this, 'User', {\n username: 'myuser',\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nThe user password is generated by AWS Secrets Manager using the default configuration\nfound in\n[`secretsmanager.SecretStringGenerator`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-secretsmanager.SecretStringGenerator.html),\nexcept with password length `30` and some SQL-incompliant characters excluded. The\nplaintext for the password will never be present in the CDK application; instead, a\n[CloudFormation Dynamic\nReference](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html)\nwill be used wherever the password value is required.\n\n### Creating Tables\n\nCreate a table within a Redshift cluster database by instantiating a `Table`\nconstruct. This will make a query to the Redshift cluster to create a new database table\nwith the supplied schema.\n\n```ts fixture=cluster\nnew Table(this, 'Table', {\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: 'databaseName',\n});\n```\n\nThe table can be configured to have distStyle attribute and a distKey column:\n\n```ts fixture=cluster\nnew Table(this, 'Table', {\n tableColumns: [\n { name: 'col1', dataType: 'varchar(4)', distKey: true },\n { name: 'col2', dataType: 'float' },\n ],\n cluster: cluster,\n databaseName: 'databaseName',\n distStyle: TableDistStyle.KEY,\n});\n```\n\nThe table can also be configured to have sortStyle attribute and sortKey columns:\n\n```ts fixture=cluster\nnew Table(this, 'Table', {\n tableColumns: [\n { name: 'col1', dataType: 'varchar(4)', sortKey: true },\n { name: 'col2', dataType: 'float', sortKey: true },\n ],\n cluster: cluster,\n databaseName: 'databaseName',\n sortStyle: TableSortStyle.COMPOUND,\n});\n```\n\n### Granting Privileges\n\nYou can give a user privileges to perform certain actions on a table by using the\n`Table.grant()` method.\n\n```ts fixture=cluster\nconst user = new User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\nconst table = new Table(this, 'Table', {\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: 'databaseName',\n});\n\ntable.grant(user, TableAction.DROP, TableAction.SELECT);\n```\n\nTake care when managing privileges via the CDK, as attempting to manage a user's\nprivileges on the same table in multiple CDK applications could lead to accidentally\noverriding these permissions. Consider the following two CDK applications which both refer\nto the same user and table. In application 1, the resources are created and the user is\ngiven `INSERT` permissions on the table:\n\n```ts fixture=cluster\nconst databaseName = 'databaseName';\nconst username = 'myuser'\nconst tableName = 'mytable'\n\nconst user = new User(this, 'User', {\n username: username,\n cluster: cluster,\n databaseName: databaseName,\n});\nconst table = new Table(this, 'Table', {\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: databaseName,\n});\ntable.grant(user, TableAction.INSERT);\n```\n\nIn application 2, the resources are imported and the user is given `INSERT` permissions on\nthe table:\n\n```ts fixture=cluster\nconst databaseName = 'databaseName';\nconst username = 'myuser'\nconst tableName = 'mytable'\n\nconst user = User.fromUserAttributes(this, 'User', {\n username: username,\n password: SecretValue.unsafePlainText('NOT_FOR_PRODUCTION'),\n cluster: cluster,\n databaseName: databaseName,\n});\nconst table = Table.fromTableAttributes(this, 'Table', {\n tableName: tableName,\n tableColumns: [{ name: 'col1', dataType: 'varchar(4)' }, { name: 'col2', dataType: 'float' }],\n cluster: cluster,\n databaseName: 'databaseName',\n});\ntable.grant(user, TableAction.INSERT);\n```\n\nBoth applications attempt to grant the user the appropriate privilege on the table by\nsubmitting a `GRANT USER` SQL query to the Redshift cluster. Note that the latter of these\ntwo calls will have no effect since the user has already been granted the privilege.\n\nNow, if application 1 were to remove the call to `grant`, a `REVOKE USER` SQL query is\nsubmitted to the Redshift cluster. In general, application 1 does not know that\napplication 2 has also granted this permission and thus cannot decide not to issue the\nrevocation. This leads to the undesirable state where application 2 still contains the\ncall to `grant` but the user does not have the specified permission.\n\nNote that this does not occur when duplicate privileges are granted within the same\napplication, as such privileges are de-duplicated before any SQL query is submitted.\n\n## Rotating credentials\n\nWhen the master password is generated and stored in AWS Secrets Manager, it can be rotated automatically:\n\n```ts fixture=cluster\ncluster.addRotationSingleUser(); // Will rotate automatically after 30 days\n```\n\nThe multi user rotation scheme is also available:\n\n```ts fixture=cluster\n\nconst user = new User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\ncluster.addRotationMultiUser('MultiUserRotation', {\n secret: user.secret,\n});\n```\n"
2997
3010
  },
2998
3011
  "repository": {
2999
3012
  "directory": "packages/individual-packages/aws-redshift",
@@ -4783,7 +4796,7 @@
4783
4796
  "kind": "interface",
4784
4797
  "locationInModule": {
4785
4798
  "filename": "lib/user.ts",
4786
- "line": 47
4799
+ "line": 48
4787
4800
  },
4788
4801
  "methods": [
4789
4802
  {
@@ -4794,7 +4807,7 @@
4794
4807
  },
4795
4808
  "locationInModule": {
4796
4809
  "filename": "lib/user.ts",
4797
- "line": 71
4810
+ "line": 72
4798
4811
  },
4799
4812
  "name": "addTablePrivileges",
4800
4813
  "parameters": [
@@ -4826,7 +4839,7 @@
4826
4839
  "immutable": true,
4827
4840
  "locationInModule": {
4828
4841
  "filename": "lib/user.ts",
4829
- "line": 61
4842
+ "line": 62
4830
4843
  },
4831
4844
  "name": "cluster",
4832
4845
  "type": {
@@ -4842,7 +4855,7 @@
4842
4855
  "immutable": true,
4843
4856
  "locationInModule": {
4844
4857
  "filename": "lib/user.ts",
4845
- "line": 66
4858
+ "line": 67
4846
4859
  },
4847
4860
  "name": "databaseName",
4848
4861
  "type": {
@@ -4858,7 +4871,7 @@
4858
4871
  "immutable": true,
4859
4872
  "locationInModule": {
4860
4873
  "filename": "lib/user.ts",
4861
- "line": 56
4874
+ "line": 57
4862
4875
  },
4863
4876
  "name": "password",
4864
4877
  "type": {
@@ -4874,7 +4887,7 @@
4874
4887
  "immutable": true,
4875
4888
  "locationInModule": {
4876
4889
  "filename": "lib/user.ts",
4877
- "line": 51
4890
+ "line": 52
4878
4891
  },
4879
4892
  "name": "username",
4880
4893
  "type": {
@@ -4891,7 +4904,7 @@
4891
4904
  "custom": {
4892
4905
  "exampleMetadata": "fixture=cluster infused"
4893
4906
  },
4894
- "example": "import * as kms from 'aws-cdk-lib/aws-kms';\n\nconst encryptionKey = new kms.Key(this, 'Key');\nnew User(this, 'User', {\n encryptionKey: encryptionKey,\n cluster: cluster,\n databaseName: 'databaseName',\n});",
4907
+ "example": "\nconst user = new User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\ncluster.addRotationMultiUser('MultiUserRotation', {\n secret: user.secret,\n});",
4895
4908
  "stability": "experimental",
4896
4909
  "summary": "Username and password combination."
4897
4910
  },
@@ -5046,7 +5059,7 @@
5046
5059
  "custom": {
5047
5060
  "exampleMetadata": "fixture=cluster infused"
5048
5061
  },
5049
- "example": "import * as secretsmanager from 'aws-cdk-lib/aws-secretsmanager';\n\ncluster.addRotationMultiUser('MyUser', {\n secret: secretsmanager.Secret.fromSecretNameV2(this, 'Imported Secret', 'my-secret'),\n});",
5062
+ "example": "\nconst user = new User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\ncluster.addRotationMultiUser('MultiUserRotation', {\n secret: user.secret,\n});",
5050
5063
  "stability": "experimental",
5051
5064
  "summary": "Options to add the multi user rotation."
5052
5065
  },
@@ -5684,7 +5697,7 @@
5684
5697
  "custom": {
5685
5698
  "exampleMetadata": "fixture=cluster infused"
5686
5699
  },
5687
- "example": "import * as kms from 'aws-cdk-lib/aws-kms';\n\nconst encryptionKey = new kms.Key(this, 'Key');\nnew User(this, 'User', {\n encryptionKey: encryptionKey,\n cluster: cluster,\n databaseName: 'databaseName',\n});",
5700
+ "example": "\nconst user = new User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\ncluster.addRotationMultiUser('MultiUserRotation', {\n secret: user.secret,\n});",
5688
5701
  "stability": "experimental",
5689
5702
  "summary": "A user in a Redshift cluster."
5690
5703
  },
@@ -5695,7 +5708,7 @@
5695
5708
  },
5696
5709
  "locationInModule": {
5697
5710
  "filename": "lib/user.ts",
5698
- "line": 141
5711
+ "line": 148
5699
5712
  },
5700
5713
  "parameters": [
5701
5714
  {
@@ -5724,7 +5737,7 @@
5724
5737
  "kind": "class",
5725
5738
  "locationInModule": {
5726
5739
  "filename": "lib/user.ts",
5727
- "line": 119
5740
+ "line": 120
5728
5741
  },
5729
5742
  "methods": [
5730
5743
  {
@@ -5734,7 +5747,7 @@
5734
5747
  },
5735
5748
  "locationInModule": {
5736
5749
  "filename": "lib/user.ts",
5737
- "line": 123
5750
+ "line": 124
5738
5751
  },
5739
5752
  "name": "fromUserAttributes",
5740
5753
  "parameters": [
@@ -5771,7 +5784,7 @@
5771
5784
  },
5772
5785
  "locationInModule": {
5773
5786
  "filename": "lib/user.ts",
5774
- "line": 104
5787
+ "line": 105
5775
5788
  },
5776
5789
  "name": "addTablePrivileges",
5777
5790
  "overrides": "@aws-cdk/aws-redshift-alpha.IUser",
@@ -5800,7 +5813,7 @@
5800
5813
  },
5801
5814
  "locationInModule": {
5802
5815
  "filename": "lib/user.ts",
5803
- "line": 182
5816
+ "line": 190
5804
5817
  },
5805
5818
  "name": "applyRemovalPolicy",
5806
5819
  "parameters": [
@@ -5823,7 +5836,7 @@
5823
5836
  "immutable": true,
5824
5837
  "locationInModule": {
5825
5838
  "filename": "lib/user.ts",
5826
- "line": 135
5839
+ "line": 136
5827
5840
  },
5828
5841
  "name": "cluster",
5829
5842
  "overrides": "@aws-cdk/aws-redshift-alpha.IUser",
@@ -5839,7 +5852,7 @@
5839
5852
  "immutable": true,
5840
5853
  "locationInModule": {
5841
5854
  "filename": "lib/user.ts",
5842
- "line": 136
5855
+ "line": 137
5843
5856
  },
5844
5857
  "name": "databaseName",
5845
5858
  "overrides": "@aws-cdk/aws-redshift-alpha.IUser",
@@ -5855,7 +5868,7 @@
5855
5868
  "immutable": true,
5856
5869
  "locationInModule": {
5857
5870
  "filename": "lib/user.ts",
5858
- "line": 134
5871
+ "line": 135
5859
5872
  },
5860
5873
  "name": "password",
5861
5874
  "overrides": "@aws-cdk/aws-redshift-alpha.IUser",
@@ -5863,6 +5876,24 @@
5863
5876
  "fqn": "aws-cdk-lib.SecretValue"
5864
5877
  }
5865
5878
  },
5879
+ {
5880
+ "docs": {
5881
+ "custom": {
5882
+ "attribute": "true"
5883
+ },
5884
+ "stability": "experimental",
5885
+ "summary": "The Secrets Manager secret of the user."
5886
+ },
5887
+ "immutable": true,
5888
+ "locationInModule": {
5889
+ "filename": "lib/user.ts",
5890
+ "line": 144
5891
+ },
5892
+ "name": "secret",
5893
+ "type": {
5894
+ "fqn": "aws-cdk-lib.aws_secretsmanager.ISecret"
5895
+ }
5896
+ },
5866
5897
  {
5867
5898
  "docs": {
5868
5899
  "stability": "experimental",
@@ -5871,7 +5902,7 @@
5871
5902
  "immutable": true,
5872
5903
  "locationInModule": {
5873
5904
  "filename": "lib/user.ts",
5874
- "line": 133
5905
+ "line": 134
5875
5906
  },
5876
5907
  "name": "username",
5877
5908
  "overrides": "@aws-cdk/aws-redshift-alpha.IUser",
@@ -5885,7 +5916,7 @@
5885
5916
  },
5886
5917
  "locationInModule": {
5887
5918
  "filename": "lib/user.ts",
5888
- "line": 137
5919
+ "line": 138
5889
5920
  },
5890
5921
  "name": "databaseProps",
5891
5922
  "protected": true,
@@ -5914,7 +5945,7 @@
5914
5945
  "kind": "interface",
5915
5946
  "locationInModule": {
5916
5947
  "filename": "lib/user.ts",
5917
- "line": 77
5948
+ "line": 78
5918
5949
  },
5919
5950
  "name": "UserAttributes",
5920
5951
  "properties": [
@@ -5928,7 +5959,7 @@
5928
5959
  "immutable": true,
5929
5960
  "locationInModule": {
5930
5961
  "filename": "lib/user.ts",
5931
- "line": 88
5962
+ "line": 89
5932
5963
  },
5933
5964
  "name": "password",
5934
5965
  "type": {
@@ -5944,7 +5975,7 @@
5944
5975
  "immutable": true,
5945
5976
  "locationInModule": {
5946
5977
  "filename": "lib/user.ts",
5947
- "line": 81
5978
+ "line": 82
5948
5979
  },
5949
5980
  "name": "username",
5950
5981
  "type": {
@@ -5961,7 +5992,7 @@
5961
5992
  "custom": {
5962
5993
  "exampleMetadata": "fixture=cluster infused"
5963
5994
  },
5964
- "example": "import * as kms from 'aws-cdk-lib/aws-kms';\n\nconst encryptionKey = new kms.Key(this, 'Key');\nnew User(this, 'User', {\n encryptionKey: encryptionKey,\n cluster: cluster,\n databaseName: 'databaseName',\n});",
5995
+ "example": "\nconst user = new User(this, 'User', {\n cluster: cluster,\n databaseName: 'databaseName',\n});\ncluster.addRotationMultiUser('MultiUserRotation', {\n secret: user.secret,\n});",
5965
5996
  "stability": "experimental",
5966
5997
  "summary": "Properties for configuring a Redshift user."
5967
5998
  },
@@ -5972,7 +6003,7 @@
5972
6003
  "kind": "interface",
5973
6004
  "locationInModule": {
5974
6005
  "filename": "lib/user.ts",
5975
- "line": 19
6006
+ "line": 20
5976
6007
  },
5977
6008
  "name": "UserProps",
5978
6009
  "properties": [
@@ -5986,7 +6017,7 @@
5986
6017
  "immutable": true,
5987
6018
  "locationInModule": {
5988
6019
  "filename": "lib/user.ts",
5989
- "line": 34
6020
+ "line": 35
5990
6021
  },
5991
6022
  "name": "encryptionKey",
5992
6023
  "optional": true,
@@ -6004,7 +6035,7 @@
6004
6035
  "immutable": true,
6005
6036
  "locationInModule": {
6006
6037
  "filename": "lib/user.ts",
6007
- "line": 41
6038
+ "line": 42
6008
6039
  },
6009
6040
  "name": "removalPolicy",
6010
6041
  "optional": true,
@@ -6023,7 +6054,7 @@
6023
6054
  "immutable": true,
6024
6055
  "locationInModule": {
6025
6056
  "filename": "lib/user.ts",
6026
- "line": 27
6057
+ "line": 28
6027
6058
  },
6028
6059
  "name": "username",
6029
6060
  "optional": true,
@@ -6035,6 +6066,6 @@
6035
6066
  "symbolId": "lib/user:UserProps"
6036
6067
  }
6037
6068
  },
6038
- "version": "2.22.0-alpha.0",
6069
+ "version": "2.24.1-alpha.0",
6039
6070
  "fingerprint": "**********"
6040
6071
  }