/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Specifies the settings that control the size and behavior of the connection
* pool associated with a DBProxyTargetGroup.See Also:
* AWS
* API Reference
The maximum size of the connection pool for each target in a target group.
* For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 100
Constraints: * between 1 and 100
*/ inline int GetMaxConnectionsPercent() const{ return m_maxConnectionsPercent; } /** *The maximum size of the connection pool for each target in a target group.
* For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 100
Constraints: * between 1 and 100
*/ inline bool MaxConnectionsPercentHasBeenSet() const { return m_maxConnectionsPercentHasBeenSet; } /** *The maximum size of the connection pool for each target in a target group.
* For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 100
Constraints: * between 1 and 100
*/ inline void SetMaxConnectionsPercent(int value) { m_maxConnectionsPercentHasBeenSet = true; m_maxConnectionsPercent = value; } /** *The maximum size of the connection pool for each target in a target group.
* For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 100
Constraints: * between 1 and 100
*/ inline ConnectionPoolConfiguration& WithMaxConnectionsPercent(int value) { SetMaxConnectionsPercent(value); return *this;} /** * Controls how actively the proxy closes idle database connections in the
* connection pool. A high value enables the proxy to leave a high percentage of
* idle connections open. A low value causes the proxy to close idle client
* connections and return the underlying database connections to the connection
* pool. For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 50
Constraints:
* between 0 and MaxConnectionsPercent
Controls how actively the proxy closes idle database connections in the
* connection pool. A high value enables the proxy to leave a high percentage of
* idle connections open. A low value causes the proxy to close idle client
* connections and return the underlying database connections to the connection
* pool. For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 50
Constraints:
* between 0 and MaxConnectionsPercent
Controls how actively the proxy closes idle database connections in the
* connection pool. A high value enables the proxy to leave a high percentage of
* idle connections open. A low value causes the proxy to close idle client
* connections and return the underlying database connections to the connection
* pool. For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 50
Constraints:
* between 0 and MaxConnectionsPercent
Controls how actively the proxy closes idle database connections in the
* connection pool. A high value enables the proxy to leave a high percentage of
* idle connections open. A low value causes the proxy to close idle client
* connections and return the underlying database connections to the connection
* pool. For Aurora MySQL, it is expressed as a percentage of the
* max_connections setting for the RDS DB instance or Aurora DB
* cluster used by the target group.
Default: 50
Constraints:
* between 0 and MaxConnectionsPercent
The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline int GetConnectionBorrowTimeout() const{ return m_connectionBorrowTimeout; } /** *The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline bool ConnectionBorrowTimeoutHasBeenSet() const { return m_connectionBorrowTimeoutHasBeenSet; } /** *The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline void SetConnectionBorrowTimeout(int value) { m_connectionBorrowTimeoutHasBeenSet = true; m_connectionBorrowTimeout = value; } /** *The number of seconds for a proxy to wait for a connection to become * available in the connection pool. Only applies when the proxy has opened its * maximum number of connections and all connections are busy with client * sessions.
Default: 120
Constraints: between 1 and 3600, or 0 * representing unlimited
*/ inline ConnectionPoolConfiguration& WithConnectionBorrowTimeout(int value) { SetConnectionBorrowTimeout(value); return *this;} /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline const Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline bool SessionPinningFiltersHasBeenSet() const { return m_sessionPinningFiltersHasBeenSet; } /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline void SetSessionPinningFilters(const Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline void SetSessionPinningFilters(Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& WithSessionPinningFilters(const Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& WithSessionPinningFilters(Aws::VectorEach item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& AddSessionPinningFilters(const Aws::String& value) { m_sessionPinningFiltersHasBeenSet = true; m_sessionPinningFilters.push_back(value); return *this; } /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& AddSessionPinningFilters(Aws::String&& value) { m_sessionPinningFiltersHasBeenSet = true; m_sessionPinningFilters.push_back(std::move(value)); return *this; } /** *Each item in the list represents a class of SQL operations that normally * cause all later statements in a session using a proxy to be pinned to the same * underlying database connection. Including an item in the list exempts that class * of SQL operations from the pinning behavior.
Default: no session pinning * filters
*/ inline ConnectionPoolConfiguration& AddSessionPinningFilters(const char* value) { m_sessionPinningFiltersHasBeenSet = true; m_sessionPinningFilters.push_back(value); return *this; } /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline const Aws::String& GetInitQuery() const{ return m_initQuery; } /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline bool InitQueryHasBeenSet() const { return m_initQueryHasBeenSet; } /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline void SetInitQuery(const Aws::String& value) { m_initQueryHasBeenSet = true; m_initQuery = value; } /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline void SetInitQuery(Aws::String&& value) { m_initQueryHasBeenSet = true; m_initQuery = std::move(value); } /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline void SetInitQuery(const char* value) { m_initQueryHasBeenSet = true; m_initQuery.assign(value); } /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline ConnectionPoolConfiguration& WithInitQuery(const Aws::String& value) { SetInitQuery(value); return *this;} /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline ConnectionPoolConfiguration& WithInitQuery(Aws::String&& value) { SetInitQuery(std::move(value)); return *this;} /** * One or more SQL statements for the proxy to run when opening each new
* database connection. Typically used with SET statements to make
* sure that each connection has identical settings such as time zone and character
* set. For multiple statements, use semicolons as the separator. You can also
* include multiple variables in a single SET statement, such as
* SET x=1, y=2.
Default: no initialization query
*/ inline ConnectionPoolConfiguration& WithInitQuery(const char* value) { SetInitQuery(value); return *this;} private: int m_maxConnectionsPercent; bool m_maxConnectionsPercentHasBeenSet; int m_maxIdleConnectionsPercent; bool m_maxIdleConnectionsPercentHasBeenSet; int m_connectionBorrowTimeout; bool m_connectionBorrowTimeoutHasBeenSet; Aws::Vector