github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/rds/proxy.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package rds
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides an RDS DB proxy resource. For additional information, see the [RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-proxy.html).
    16  //
    17  // ## Example Usage
    18  //
    19  // <!--Start PulumiCodeChooser -->
    20  // ```go
    21  // package main
    22  //
    23  // import (
    24  //
    25  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
    26  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    27  //
    28  // )
    29  //
    30  //	func main() {
    31  //		pulumi.Run(func(ctx *pulumi.Context) error {
    32  //			_, err := rds.NewProxy(ctx, "example", &rds.ProxyArgs{
    33  //				Name:              pulumi.String("example"),
    34  //				DebugLogging:      pulumi.Bool(false),
    35  //				EngineFamily:      pulumi.String("MYSQL"),
    36  //				IdleClientTimeout: pulumi.Int(1800),
    37  //				RequireTls:        pulumi.Bool(true),
    38  //				RoleArn:           pulumi.Any(exampleAwsIamRole.Arn),
    39  //				VpcSecurityGroupIds: pulumi.StringArray{
    40  //					exampleAwsSecurityGroup.Id,
    41  //				},
    42  //				VpcSubnetIds: pulumi.StringArray{
    43  //					exampleAwsSubnet.Id,
    44  //				},
    45  //				Auths: rds.ProxyAuthArray{
    46  //					&rds.ProxyAuthArgs{
    47  //						AuthScheme:  pulumi.String("SECRETS"),
    48  //						Description: pulumi.String("example"),
    49  //						IamAuth:     pulumi.String("DISABLED"),
    50  //						SecretArn:   pulumi.Any(exampleAwsSecretsmanagerSecret.Arn),
    51  //					},
    52  //				},
    53  //				Tags: pulumi.StringMap{
    54  //					"Name": pulumi.String("example"),
    55  //					"Key":  pulumi.String("value"),
    56  //				},
    57  //			})
    58  //			if err != nil {
    59  //				return err
    60  //			}
    61  //			return nil
    62  //		})
    63  //	}
    64  //
    65  // ```
    66  // <!--End PulumiCodeChooser -->
    67  //
    68  // ## Import
    69  //
    70  // Using `pulumi import`, import DB proxies using the `name`. For example:
    71  //
    72  // ```sh
    73  // $ pulumi import aws:rds/proxy:Proxy example example
    74  // ```
    75  type Proxy struct {
    76  	pulumi.CustomResourceState
    77  
    78  	// The Amazon Resource Name (ARN) for the proxy.
    79  	Arn pulumi.StringOutput `pulumi:"arn"`
    80  	// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below.
    81  	Auths ProxyAuthArrayOutput `pulumi:"auths"`
    82  	// Whether the proxy includes detailed information about SQL statements in its logs. This information 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 through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.
    83  	DebugLogging pulumi.BoolPtrOutput `pulumi:"debugLogging"`
    84  	// The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application.
    85  	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
    86  	// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify `MYSQL`. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify `POSTGRESQL`. For RDS for Microsoft SQL Server, specify `SQLSERVER`. Valid values are `MYSQL`, `POSTGRESQL`, and `SQLSERVER`.
    87  	EngineFamily pulumi.StringOutput `pulumi:"engineFamily"`
    88  	// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.
    89  	IdleClientTimeout pulumi.IntOutput `pulumi:"idleClientTimeout"`
    90  	// 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 ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.
    91  	Name pulumi.StringOutput `pulumi:"name"`
    92  	// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.
    93  	RequireTls pulumi.BoolPtrOutput `pulumi:"requireTls"`
    94  	// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.
    95  	RoleArn pulumi.StringOutput `pulumi:"roleArn"`
    96  	// A mapping of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    97  	Tags pulumi.StringMapOutput `pulumi:"tags"`
    98  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
    99  	//
   100  	// Deprecated: Please use `tags` instead.
   101  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   102  	// One or more VPC security group IDs to associate with the new proxy.
   103  	VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"`
   104  	// One or more VPC subnet IDs to associate with the new proxy.
   105  	VpcSubnetIds pulumi.StringArrayOutput `pulumi:"vpcSubnetIds"`
   106  }
   107  
   108  // NewProxy registers a new resource with the given unique name, arguments, and options.
   109  func NewProxy(ctx *pulumi.Context,
   110  	name string, args *ProxyArgs, opts ...pulumi.ResourceOption) (*Proxy, error) {
   111  	if args == nil {
   112  		return nil, errors.New("missing one or more required arguments")
   113  	}
   114  
   115  	if args.Auths == nil {
   116  		return nil, errors.New("invalid value for required argument 'Auths'")
   117  	}
   118  	if args.EngineFamily == nil {
   119  		return nil, errors.New("invalid value for required argument 'EngineFamily'")
   120  	}
   121  	if args.RoleArn == nil {
   122  		return nil, errors.New("invalid value for required argument 'RoleArn'")
   123  	}
   124  	if args.VpcSubnetIds == nil {
   125  		return nil, errors.New("invalid value for required argument 'VpcSubnetIds'")
   126  	}
   127  	opts = internal.PkgResourceDefaultOpts(opts)
   128  	var resource Proxy
   129  	err := ctx.RegisterResource("aws:rds/proxy:Proxy", name, args, &resource, opts...)
   130  	if err != nil {
   131  		return nil, err
   132  	}
   133  	return &resource, nil
   134  }
   135  
   136  // GetProxy gets an existing Proxy resource's state with the given name, ID, and optional
   137  // state properties that are used to uniquely qualify the lookup (nil if not required).
   138  func GetProxy(ctx *pulumi.Context,
   139  	name string, id pulumi.IDInput, state *ProxyState, opts ...pulumi.ResourceOption) (*Proxy, error) {
   140  	var resource Proxy
   141  	err := ctx.ReadResource("aws:rds/proxy:Proxy", name, id, state, &resource, opts...)
   142  	if err != nil {
   143  		return nil, err
   144  	}
   145  	return &resource, nil
   146  }
   147  
   148  // Input properties used for looking up and filtering Proxy resources.
   149  type proxyState struct {
   150  	// The Amazon Resource Name (ARN) for the proxy.
   151  	Arn *string `pulumi:"arn"`
   152  	// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below.
   153  	Auths []ProxyAuth `pulumi:"auths"`
   154  	// Whether the proxy includes detailed information about SQL statements in its logs. This information 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 through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.
   155  	DebugLogging *bool `pulumi:"debugLogging"`
   156  	// The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application.
   157  	Endpoint *string `pulumi:"endpoint"`
   158  	// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify `MYSQL`. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify `POSTGRESQL`. For RDS for Microsoft SQL Server, specify `SQLSERVER`. Valid values are `MYSQL`, `POSTGRESQL`, and `SQLSERVER`.
   159  	EngineFamily *string `pulumi:"engineFamily"`
   160  	// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.
   161  	IdleClientTimeout *int `pulumi:"idleClientTimeout"`
   162  	// 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 ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.
   163  	Name *string `pulumi:"name"`
   164  	// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.
   165  	RequireTls *bool `pulumi:"requireTls"`
   166  	// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.
   167  	RoleArn *string `pulumi:"roleArn"`
   168  	// A mapping of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   169  	Tags map[string]string `pulumi:"tags"`
   170  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   171  	//
   172  	// Deprecated: Please use `tags` instead.
   173  	TagsAll map[string]string `pulumi:"tagsAll"`
   174  	// One or more VPC security group IDs to associate with the new proxy.
   175  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   176  	// One or more VPC subnet IDs to associate with the new proxy.
   177  	VpcSubnetIds []string `pulumi:"vpcSubnetIds"`
   178  }
   179  
   180  type ProxyState struct {
   181  	// The Amazon Resource Name (ARN) for the proxy.
   182  	Arn pulumi.StringPtrInput
   183  	// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below.
   184  	Auths ProxyAuthArrayInput
   185  	// Whether the proxy includes detailed information about SQL statements in its logs. This information 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 through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.
   186  	DebugLogging pulumi.BoolPtrInput
   187  	// The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application.
   188  	Endpoint pulumi.StringPtrInput
   189  	// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify `MYSQL`. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify `POSTGRESQL`. For RDS for Microsoft SQL Server, specify `SQLSERVER`. Valid values are `MYSQL`, `POSTGRESQL`, and `SQLSERVER`.
   190  	EngineFamily pulumi.StringPtrInput
   191  	// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.
   192  	IdleClientTimeout pulumi.IntPtrInput
   193  	// 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 ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.
   194  	Name pulumi.StringPtrInput
   195  	// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.
   196  	RequireTls pulumi.BoolPtrInput
   197  	// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.
   198  	RoleArn pulumi.StringPtrInput
   199  	// A mapping of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   200  	Tags pulumi.StringMapInput
   201  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   202  	//
   203  	// Deprecated: Please use `tags` instead.
   204  	TagsAll pulumi.StringMapInput
   205  	// One or more VPC security group IDs to associate with the new proxy.
   206  	VpcSecurityGroupIds pulumi.StringArrayInput
   207  	// One or more VPC subnet IDs to associate with the new proxy.
   208  	VpcSubnetIds pulumi.StringArrayInput
   209  }
   210  
   211  func (ProxyState) ElementType() reflect.Type {
   212  	return reflect.TypeOf((*proxyState)(nil)).Elem()
   213  }
   214  
   215  type proxyArgs struct {
   216  	// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below.
   217  	Auths []ProxyAuth `pulumi:"auths"`
   218  	// Whether the proxy includes detailed information about SQL statements in its logs. This information 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 through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.
   219  	DebugLogging *bool `pulumi:"debugLogging"`
   220  	// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify `MYSQL`. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify `POSTGRESQL`. For RDS for Microsoft SQL Server, specify `SQLSERVER`. Valid values are `MYSQL`, `POSTGRESQL`, and `SQLSERVER`.
   221  	EngineFamily string `pulumi:"engineFamily"`
   222  	// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.
   223  	IdleClientTimeout *int `pulumi:"idleClientTimeout"`
   224  	// 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 ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.
   225  	Name *string `pulumi:"name"`
   226  	// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.
   227  	RequireTls *bool `pulumi:"requireTls"`
   228  	// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.
   229  	RoleArn string `pulumi:"roleArn"`
   230  	// A mapping of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   231  	Tags map[string]string `pulumi:"tags"`
   232  	// One or more VPC security group IDs to associate with the new proxy.
   233  	VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"`
   234  	// One or more VPC subnet IDs to associate with the new proxy.
   235  	VpcSubnetIds []string `pulumi:"vpcSubnetIds"`
   236  }
   237  
   238  // The set of arguments for constructing a Proxy resource.
   239  type ProxyArgs struct {
   240  	// Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below.
   241  	Auths ProxyAuthArrayInput
   242  	// Whether the proxy includes detailed information about SQL statements in its logs. This information 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 through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.
   243  	DebugLogging pulumi.BoolPtrInput
   244  	// The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify `MYSQL`. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify `POSTGRESQL`. For RDS for Microsoft SQL Server, specify `SQLSERVER`. Valid values are `MYSQL`, `POSTGRESQL`, and `SQLSERVER`.
   245  	EngineFamily pulumi.StringInput
   246  	// The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.
   247  	IdleClientTimeout pulumi.IntPtrInput
   248  	// 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 ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.
   249  	Name pulumi.StringPtrInput
   250  	// A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.
   251  	RequireTls pulumi.BoolPtrInput
   252  	// The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.
   253  	RoleArn pulumi.StringInput
   254  	// A mapping of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   255  	Tags pulumi.StringMapInput
   256  	// One or more VPC security group IDs to associate with the new proxy.
   257  	VpcSecurityGroupIds pulumi.StringArrayInput
   258  	// One or more VPC subnet IDs to associate with the new proxy.
   259  	VpcSubnetIds pulumi.StringArrayInput
   260  }
   261  
   262  func (ProxyArgs) ElementType() reflect.Type {
   263  	return reflect.TypeOf((*proxyArgs)(nil)).Elem()
   264  }
   265  
   266  type ProxyInput interface {
   267  	pulumi.Input
   268  
   269  	ToProxyOutput() ProxyOutput
   270  	ToProxyOutputWithContext(ctx context.Context) ProxyOutput
   271  }
   272  
   273  func (*Proxy) ElementType() reflect.Type {
   274  	return reflect.TypeOf((**Proxy)(nil)).Elem()
   275  }
   276  
   277  func (i *Proxy) ToProxyOutput() ProxyOutput {
   278  	return i.ToProxyOutputWithContext(context.Background())
   279  }
   280  
   281  func (i *Proxy) ToProxyOutputWithContext(ctx context.Context) ProxyOutput {
   282  	return pulumi.ToOutputWithContext(ctx, i).(ProxyOutput)
   283  }
   284  
   285  // ProxyArrayInput is an input type that accepts ProxyArray and ProxyArrayOutput values.
   286  // You can construct a concrete instance of `ProxyArrayInput` via:
   287  //
   288  //	ProxyArray{ ProxyArgs{...} }
   289  type ProxyArrayInput interface {
   290  	pulumi.Input
   291  
   292  	ToProxyArrayOutput() ProxyArrayOutput
   293  	ToProxyArrayOutputWithContext(context.Context) ProxyArrayOutput
   294  }
   295  
   296  type ProxyArray []ProxyInput
   297  
   298  func (ProxyArray) ElementType() reflect.Type {
   299  	return reflect.TypeOf((*[]*Proxy)(nil)).Elem()
   300  }
   301  
   302  func (i ProxyArray) ToProxyArrayOutput() ProxyArrayOutput {
   303  	return i.ToProxyArrayOutputWithContext(context.Background())
   304  }
   305  
   306  func (i ProxyArray) ToProxyArrayOutputWithContext(ctx context.Context) ProxyArrayOutput {
   307  	return pulumi.ToOutputWithContext(ctx, i).(ProxyArrayOutput)
   308  }
   309  
   310  // ProxyMapInput is an input type that accepts ProxyMap and ProxyMapOutput values.
   311  // You can construct a concrete instance of `ProxyMapInput` via:
   312  //
   313  //	ProxyMap{ "key": ProxyArgs{...} }
   314  type ProxyMapInput interface {
   315  	pulumi.Input
   316  
   317  	ToProxyMapOutput() ProxyMapOutput
   318  	ToProxyMapOutputWithContext(context.Context) ProxyMapOutput
   319  }
   320  
   321  type ProxyMap map[string]ProxyInput
   322  
   323  func (ProxyMap) ElementType() reflect.Type {
   324  	return reflect.TypeOf((*map[string]*Proxy)(nil)).Elem()
   325  }
   326  
   327  func (i ProxyMap) ToProxyMapOutput() ProxyMapOutput {
   328  	return i.ToProxyMapOutputWithContext(context.Background())
   329  }
   330  
   331  func (i ProxyMap) ToProxyMapOutputWithContext(ctx context.Context) ProxyMapOutput {
   332  	return pulumi.ToOutputWithContext(ctx, i).(ProxyMapOutput)
   333  }
   334  
   335  type ProxyOutput struct{ *pulumi.OutputState }
   336  
   337  func (ProxyOutput) ElementType() reflect.Type {
   338  	return reflect.TypeOf((**Proxy)(nil)).Elem()
   339  }
   340  
   341  func (o ProxyOutput) ToProxyOutput() ProxyOutput {
   342  	return o
   343  }
   344  
   345  func (o ProxyOutput) ToProxyOutputWithContext(ctx context.Context) ProxyOutput {
   346  	return o
   347  }
   348  
   349  // The Amazon Resource Name (ARN) for the proxy.
   350  func (o ProxyOutput) Arn() pulumi.StringOutput {
   351  	return o.ApplyT(func(v *Proxy) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   352  }
   353  
   354  // Configuration block(s) with authorization mechanisms to connect to the associated instances or clusters. Described below.
   355  func (o ProxyOutput) Auths() ProxyAuthArrayOutput {
   356  	return o.ApplyT(func(v *Proxy) ProxyAuthArrayOutput { return v.Auths }).(ProxyAuthArrayOutput)
   357  }
   358  
   359  // Whether the proxy includes detailed information about SQL statements in its logs. This information 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 through the proxy. Thus, only enable this setting when needed for debugging, and only when you have security measures in place to safeguard any sensitive information that appears in the logs.
   360  func (o ProxyOutput) DebugLogging() pulumi.BoolPtrOutput {
   361  	return o.ApplyT(func(v *Proxy) pulumi.BoolPtrOutput { return v.DebugLogging }).(pulumi.BoolPtrOutput)
   362  }
   363  
   364  // The endpoint that you can use to connect to the proxy. You include the endpoint value in the connection string for a database client application.
   365  func (o ProxyOutput) Endpoint() pulumi.StringOutput {
   366  	return o.ApplyT(func(v *Proxy) pulumi.StringOutput { return v.Endpoint }).(pulumi.StringOutput)
   367  }
   368  
   369  // The kinds of databases that the proxy can connect to. This value determines which database network protocol the proxy recognizes when it interprets network traffic to and from the database. For Aurora MySQL, RDS for MariaDB, and RDS for MySQL databases, specify `MYSQL`. For Aurora PostgreSQL and RDS for PostgreSQL databases, specify `POSTGRESQL`. For RDS for Microsoft SQL Server, specify `SQLSERVER`. Valid values are `MYSQL`, `POSTGRESQL`, and `SQLSERVER`.
   370  func (o ProxyOutput) EngineFamily() pulumi.StringOutput {
   371  	return o.ApplyT(func(v *Proxy) pulumi.StringOutput { return v.EngineFamily }).(pulumi.StringOutput)
   372  }
   373  
   374  // The number of seconds that a connection to the proxy can be inactive before the proxy disconnects it. You can set this value higher or lower than the connection timeout limit for the associated database.
   375  func (o ProxyOutput) IdleClientTimeout() pulumi.IntOutput {
   376  	return o.ApplyT(func(v *Proxy) pulumi.IntOutput { return v.IdleClientTimeout }).(pulumi.IntOutput)
   377  }
   378  
   379  // 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 ASCII letters, digits, and hyphens; it can't end with a hyphen or contain two consecutive hyphens.
   380  func (o ProxyOutput) Name() pulumi.StringOutput {
   381  	return o.ApplyT(func(v *Proxy) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   382  }
   383  
   384  // A Boolean parameter that specifies whether Transport Layer Security (TLS) encryption is required for connections to the proxy. By enabling this setting, you can enforce encrypted TLS connections to the proxy.
   385  func (o ProxyOutput) RequireTls() pulumi.BoolPtrOutput {
   386  	return o.ApplyT(func(v *Proxy) pulumi.BoolPtrOutput { return v.RequireTls }).(pulumi.BoolPtrOutput)
   387  }
   388  
   389  // The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in AWS Secrets Manager.
   390  func (o ProxyOutput) RoleArn() pulumi.StringOutput {
   391  	return o.ApplyT(func(v *Proxy) pulumi.StringOutput { return v.RoleArn }).(pulumi.StringOutput)
   392  }
   393  
   394  // A mapping of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   395  func (o ProxyOutput) Tags() pulumi.StringMapOutput {
   396  	return o.ApplyT(func(v *Proxy) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   397  }
   398  
   399  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   400  //
   401  // Deprecated: Please use `tags` instead.
   402  func (o ProxyOutput) TagsAll() pulumi.StringMapOutput {
   403  	return o.ApplyT(func(v *Proxy) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   404  }
   405  
   406  // One or more VPC security group IDs to associate with the new proxy.
   407  func (o ProxyOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput {
   408  	return o.ApplyT(func(v *Proxy) pulumi.StringArrayOutput { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput)
   409  }
   410  
   411  // One or more VPC subnet IDs to associate with the new proxy.
   412  func (o ProxyOutput) VpcSubnetIds() pulumi.StringArrayOutput {
   413  	return o.ApplyT(func(v *Proxy) pulumi.StringArrayOutput { return v.VpcSubnetIds }).(pulumi.StringArrayOutput)
   414  }
   415  
   416  type ProxyArrayOutput struct{ *pulumi.OutputState }
   417  
   418  func (ProxyArrayOutput) ElementType() reflect.Type {
   419  	return reflect.TypeOf((*[]*Proxy)(nil)).Elem()
   420  }
   421  
   422  func (o ProxyArrayOutput) ToProxyArrayOutput() ProxyArrayOutput {
   423  	return o
   424  }
   425  
   426  func (o ProxyArrayOutput) ToProxyArrayOutputWithContext(ctx context.Context) ProxyArrayOutput {
   427  	return o
   428  }
   429  
   430  func (o ProxyArrayOutput) Index(i pulumi.IntInput) ProxyOutput {
   431  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Proxy {
   432  		return vs[0].([]*Proxy)[vs[1].(int)]
   433  	}).(ProxyOutput)
   434  }
   435  
   436  type ProxyMapOutput struct{ *pulumi.OutputState }
   437  
   438  func (ProxyMapOutput) ElementType() reflect.Type {
   439  	return reflect.TypeOf((*map[string]*Proxy)(nil)).Elem()
   440  }
   441  
   442  func (o ProxyMapOutput) ToProxyMapOutput() ProxyMapOutput {
   443  	return o
   444  }
   445  
   446  func (o ProxyMapOutput) ToProxyMapOutputWithContext(ctx context.Context) ProxyMapOutput {
   447  	return o
   448  }
   449  
   450  func (o ProxyMapOutput) MapIndex(k pulumi.StringInput) ProxyOutput {
   451  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Proxy {
   452  		return vs[0].(map[string]*Proxy)[vs[1].(string)]
   453  	}).(ProxyOutput)
   454  }
   455  
   456  func init() {
   457  	pulumi.RegisterInputType(reflect.TypeOf((*ProxyInput)(nil)).Elem(), &Proxy{})
   458  	pulumi.RegisterInputType(reflect.TypeOf((*ProxyArrayInput)(nil)).Elem(), ProxyArray{})
   459  	pulumi.RegisterInputType(reflect.TypeOf((*ProxyMapInput)(nil)).Elem(), ProxyMap{})
   460  	pulumi.RegisterOutputType(ProxyOutput{})
   461  	pulumi.RegisterOutputType(ProxyArrayOutput{})
   462  	pulumi.RegisterOutputType(ProxyMapOutput{})
   463  }