/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.rds.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.AmazonWebServiceRequest; /** * * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class CreateDBProxyRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable { /** *
* The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account * in the specified Amazon Web Services 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. *
*/ private String dBProxyName; /** *
* 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
.
*
* The authorization mechanism that the proxy uses. *
*/ private com.amazonaws.internal.SdkInternalList* The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services * Secrets Manager. *
*/ private String roleArn; /** ** One or more VPC subnet IDs to associate with the new proxy. *
*/ private com.amazonaws.internal.SdkInternalList* One or more VPC security group IDs to associate with the new proxy. *
*/ private com.amazonaws.internal.SdkInternalList* 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. *
*/ private Boolean requireTLS; /** ** 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. *
*/ private Integer idleClientTimeout; /** ** 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. *
*/ private Boolean debugLogging; /** ** An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. *
*/ private com.amazonaws.internal.SdkInternalList* The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account * in the specified Amazon Web Services 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. *
* * @param dBProxyName * The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services * account in the specified Amazon Web Services 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. */ public void setDBProxyName(String dBProxyName) { this.dBProxyName = dBProxyName; } /** ** The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account * in the specified Amazon Web Services 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. *
* * @return The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services * account in the specified Amazon Web Services 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. */ public String getDBProxyName() { return this.dBProxyName; } /** ** The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services account * in the specified Amazon Web Services 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. *
* * @param dBProxyName * The identifier for the proxy. This name must be unique for all proxies owned by your Amazon Web Services * account in the specified Amazon Web Services 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withDBProxyName(String dBProxyName) { setDBProxyName(dBProxyName); return this; } /** *
* 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
.
*
MYSQL
. For Aurora PostgreSQL and
* RDS for PostgreSQL databases, specify POSTGRESQL
. For RDS for Microsoft SQL Server, specify
* SQLSERVER
.
* @see EngineFamily
*/
public void setEngineFamily(String engineFamily) {
this.engineFamily = engineFamily;
}
/**
*
* 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
.
*
MYSQL
. For Aurora PostgreSQL
* and RDS for PostgreSQL databases, specify POSTGRESQL
. For RDS for Microsoft SQL Server,
* specify SQLSERVER
.
* @see EngineFamily
*/
public String getEngineFamily() {
return this.engineFamily;
}
/**
*
* 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
.
*
MYSQL
. For Aurora PostgreSQL and
* RDS for PostgreSQL databases, specify POSTGRESQL
. For RDS for Microsoft SQL Server, specify
* SQLSERVER
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see EngineFamily
*/
public CreateDBProxyRequest withEngineFamily(String engineFamily) {
setEngineFamily(engineFamily);
return this;
}
/**
*
* 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
.
*
MYSQL
. For Aurora PostgreSQL and
* RDS for PostgreSQL databases, specify POSTGRESQL
. For RDS for Microsoft SQL Server, specify
* SQLSERVER
.
* @return Returns a reference to this object so that method calls can be chained together.
* @see EngineFamily
*/
public CreateDBProxyRequest withEngineFamily(EngineFamily engineFamily) {
this.engineFamily = engineFamily.toString();
return this;
}
/**
* * The authorization mechanism that the proxy uses. *
* * @return The authorization mechanism that the proxy uses. */ public java.util.List* The authorization mechanism that the proxy uses. *
* * @param auth * The authorization mechanism that the proxy uses. */ public void setAuth(java.util.Collection* The authorization mechanism that the proxy uses. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setAuth(java.util.Collection)} or {@link #withAuth(java.util.Collection)} if you want to override the * existing values. *
* * @param auth * The authorization mechanism that the proxy uses. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withAuth(UserAuthConfig... auth) { if (this.auth == null) { setAuth(new com.amazonaws.internal.SdkInternalList* The authorization mechanism that the proxy uses. *
* * @param auth * The authorization mechanism that the proxy uses. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withAuth(java.util.Collection* The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services * Secrets Manager. *
* * @param roleArn * The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web * Services Secrets Manager. */ public void setRoleArn(String roleArn) { this.roleArn = roleArn; } /** ** The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services * Secrets Manager. *
* * @return The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web * Services Secrets Manager. */ public String getRoleArn() { return this.roleArn; } /** ** The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web Services * Secrets Manager. *
* * @param roleArn * The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access secrets in Amazon Web * Services Secrets Manager. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withRoleArn(String roleArn) { setRoleArn(roleArn); return this; } /** ** One or more VPC subnet IDs to associate with the new proxy. *
* * @return One or more VPC subnet IDs to associate with the new proxy. */ public java.util.List* One or more VPC subnet IDs to associate with the new proxy. *
* * @param vpcSubnetIds * One or more VPC subnet IDs to associate with the new proxy. */ public void setVpcSubnetIds(java.util.Collection* One or more VPC subnet IDs to associate with the new proxy. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setVpcSubnetIds(java.util.Collection)} or {@link #withVpcSubnetIds(java.util.Collection)} if you want to * override the existing values. *
* * @param vpcSubnetIds * One or more VPC subnet IDs to associate with the new proxy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withVpcSubnetIds(String... vpcSubnetIds) { if (this.vpcSubnetIds == null) { setVpcSubnetIds(new com.amazonaws.internal.SdkInternalList* One or more VPC subnet IDs to associate with the new proxy. *
* * @param vpcSubnetIds * One or more VPC subnet IDs to associate with the new proxy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withVpcSubnetIds(java.util.Collection* One or more VPC security group IDs to associate with the new proxy. *
* * @return One or more VPC security group IDs to associate with the new proxy. */ public java.util.List* One or more VPC security group IDs to associate with the new proxy. *
* * @param vpcSecurityGroupIds * One or more VPC security group IDs to associate with the new proxy. */ public void setVpcSecurityGroupIds(java.util.Collection* One or more VPC security group IDs to associate with the new proxy. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setVpcSecurityGroupIds(java.util.Collection)} or {@link #withVpcSecurityGroupIds(java.util.Collection)} * if you want to override the existing values. *
* * @param vpcSecurityGroupIds * One or more VPC security group IDs to associate with the new proxy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withVpcSecurityGroupIds(String... vpcSecurityGroupIds) { if (this.vpcSecurityGroupIds == null) { setVpcSecurityGroupIds(new com.amazonaws.internal.SdkInternalList* One or more VPC security group IDs to associate with the new proxy. *
* * @param vpcSecurityGroupIds * One or more VPC security group IDs to associate with the new proxy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withVpcSecurityGroupIds(java.util.Collection* 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. *
* * @param requireTLS * 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. */ public void setRequireTLS(Boolean requireTLS) { this.requireTLS = requireTLS; } /** ** 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. *
* * @return 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. */ public Boolean getRequireTLS() { return this.requireTLS; } /** ** 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. *
* * @param requireTLS * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withRequireTLS(Boolean requireTLS) { setRequireTLS(requireTLS); return this; } /** ** 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. *
* * @return 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. */ public Boolean isRequireTLS() { return this.requireTLS; } /** ** 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. *
* * @param idleClientTimeout * 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. */ public void setIdleClientTimeout(Integer idleClientTimeout) { this.idleClientTimeout = idleClientTimeout; } /** ** 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. *
* * @return 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. */ public Integer getIdleClientTimeout() { return this.idleClientTimeout; } /** ** 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. *
* * @param idleClientTimeout * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withIdleClientTimeout(Integer idleClientTimeout) { setIdleClientTimeout(idleClientTimeout); return this; } /** ** 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. *
* * @param debugLogging * 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. */ public void setDebugLogging(Boolean debugLogging) { this.debugLogging = debugLogging; } /** ** 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. *
* * @return 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. */ public Boolean getDebugLogging() { return this.debugLogging; } /** ** 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. *
* * @param debugLogging * 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. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withDebugLogging(Boolean debugLogging) { setDebugLogging(debugLogging); return this; } /** ** 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. *
* * @return 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. */ public Boolean isDebugLogging() { return this.debugLogging; } /** ** An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. *
* * @return An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. */ public java.util.List* An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. *
* * @param tags * An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. */ public void setTags(java.util.Collection* An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *
* * @param tags * An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withTags(Tag... tags) { if (this.tags == null) { setTags(new com.amazonaws.internal.SdkInternalList* An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. *
* * @param tags * An optional set of key-value pairs to associate arbitrary data of your choosing with the proxy. * @return Returns a reference to this object so that method calls can be chained together. */ public CreateDBProxyRequest withTags(java.util.Collection