import * as core from "@terrascript/core"; export interface AuthArgs extends core.SchemaArgs { authScheme?: string | core.StringOut; description?: string | core.StringOut; iamAuth?: string | core.StringOut; secretArn?: string | core.StringOut; username?: string | core.StringOut; } export class Auth extends core.Schema { @core.attr(String) public authScheme?: string | core.StringOut; @core.attr(String) public description?: string | core.StringOut; @core.attr(String) public iamAuth?: string | core.StringOut; @core.attr(String) public secretArn?: string | core.StringOut; @core.attr(String) public username?: string | core.StringOut; } export interface DbProxyArgs extends core.ResourceArgs { /** * (Required) Configuration block(s) with authorization mechanisms to connect to the associated instanc * es or clusters. Described below. */ auth: core.Array | core.ArrayOut; /** * (Optional) Whether the proxy includes detailed information about SQL statements in its logs. This in * formation helps you to debug issues involving SQL behavior or the performance and scalability of the * proxy connections. The debug information includes the text of SQL statements that you submit throug * h the proxy. Thus, only enable this setting when needed for debugging, and only when you have securi * ty measures in place to safeguard any sensitive information that appears in the logs. */ debugLogging?: boolean | core.BooleanOut; /** * (Required, Forces new resource) The kinds of databases that the proxy can connect to. This value det * ermines which database network protocol the proxy recognizes when it interprets network traffic to a * nd from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Val * id values are `MYSQL` and `POSTGRESQL`. */ engineFamily: string | core.StringOut; /** * (Optional) The number of seconds that a connection to the proxy can be inactive before the proxy dis * connects it. You can set this value higher or lower than the connection timeout limit for the associ * ated database. */ idleClientTimeout?: number | core.NumberOut; /** * (Required) The identifier for the proxy. This name must be unique for all proxies owned by your AWS * account in the specified AWS Region. An identifier must begin with a letter and must contain only AS * CII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens. */ name: string | core.StringOut; /** * (Optional) A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is r * equired for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connec * tions to the proxy. */ requireTls?: boolean | core.BooleanOut; /** * (Required) The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in A * WS Secrets Manager. */ roleArn: string | core.StringOut; /** * (Optional) A mapping of tags to assign to the resource. If configured with a provider [`default_tags * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tag * s-configuration-block) present, tags with matching keys will overwrite those defined at the provider * level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Optional) One or more VPC security group IDs to associate with the new proxy. */ vpcSecurityGroupIds?: core.Array | core.ArrayOut; /** * (Required) One or more VPC subnet IDs to associate with the new proxy. */ vpcSubnetIds: core.Array | core.ArrayOut; } export class DbProxy extends core.Resource { /** * The Amazon Resource Name (ARN) for the proxy. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Required) Configuration block(s) with authorization mechanisms to connect to the associated instanc * es or clusters. Described below. */ @core.attr(Auth, { kind: "array" }) public auth!: core.Array | core.ArrayOut; /** * (Optional) Whether the proxy includes detailed information about SQL statements in its logs. This in * formation helps you to debug issues involving SQL behavior or the performance and scalability of the * proxy connections. The debug information includes the text of SQL statements that you submit throug * h the proxy. Thus, only enable this setting when needed for debugging, and only when you have securi * ty measures in place to safeguard any sensitive information that appears in the logs. */ @core.attr(Boolean) public debugLogging?: boolean | core.BooleanOut; /** * The endpoint that you can use to connect to the proxy. You include the endpoint value in the connect * ion string for a database client application. */ @core.attr(String, { computed: true }) public endpoint!: string | core.StringOut; /** * (Required, Forces new resource) The kinds of databases that the proxy can connect to. This value det * ermines which database network protocol the proxy recognizes when it interprets network traffic to a * nd from the database. The engine family applies to MySQL and PostgreSQL for both RDS and Aurora. Val * id values are `MYSQL` and `POSTGRESQL`. */ @core.attr(String) public engineFamily!: string | core.StringOut; /** * The Amazon Resource Name (ARN) for the proxy. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The number of seconds that a connection to the proxy can be inactive before the proxy dis * connects it. You can set this value higher or lower than the connection timeout limit for the associ * ated database. */ @core.attr(Number, { computed: true }) public idleClientTimeout?: number | core.NumberOut; /** * (Required) The identifier for the proxy. This name must be unique for all proxies owned by your AWS * account in the specified AWS Region. An identifier must begin with a letter and must contain only AS * CII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens. */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is r * equired for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connec * tions to the proxy. */ @core.attr(Boolean) public requireTls?: boolean | core.BooleanOut; /** * (Required) The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in A * WS Secrets Manager. */ @core.attr(String) public roleArn!: string | core.StringOut; /** * (Optional) A mapping of tags to assign to the resource. If configured with a provider [`default_tags * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tag * s-configuration-block) present, tags with matching keys will overwrite those defined at the provider * level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Optional) One or more VPC security group IDs to associate with the new proxy. */ @core.attr(String, { computed: true, kind: "array" }) public vpcSecurityGroupIds?: | core.Array | core.ArrayOut; /** * (Required) One or more VPC subnet IDs to associate with the new proxy. */ @core.attr(String, { kind: "array" }) public vpcSubnetIds!: core.Array | core.ArrayOut; constructor(name: string, args?: DbProxyArgs) { super(name, "aws_db_proxy", args); } public override getNamespace(): string { return "aws_rds"; } }