/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DatabaseMigrationService { namespace Model { /** *

Provides information that defines a MySQL endpoint.

See Also:

* AWS * API Reference

*/ class MySQLSettings { public: AWS_DATABASEMIGRATIONSERVICE_API MySQLSettings(); AWS_DATABASEMIGRATIONSERVICE_API MySQLSettings(Aws::Utils::Json::JsonView jsonValue); AWS_DATABASEMIGRATIONSERVICE_API MySQLSettings& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DATABASEMIGRATIONSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline const Aws::String& GetAfterConnectScript() const{ return m_afterConnectScript; } /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline bool AfterConnectScriptHasBeenSet() const { return m_afterConnectScriptHasBeenSet; } /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline void SetAfterConnectScript(const Aws::String& value) { m_afterConnectScriptHasBeenSet = true; m_afterConnectScript = value; } /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline void SetAfterConnectScript(Aws::String&& value) { m_afterConnectScriptHasBeenSet = true; m_afterConnectScript = std::move(value); } /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline void SetAfterConnectScript(const char* value) { m_afterConnectScriptHasBeenSet = true; m_afterConnectScript.assign(value); } /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline MySQLSettings& WithAfterConnectScript(const Aws::String& value) { SetAfterConnectScript(value); return *this;} /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline MySQLSettings& WithAfterConnectScript(Aws::String&& value) { SetAfterConnectScript(std::move(value)); return *this;} /** *

Specifies a script to run immediately after DMS connects to the endpoint. The * migration task continues running regardless if the SQL statement succeeds or * fails.

For this parameter, provide the code of the script itself, not the * name of a file containing the script.

*/ inline MySQLSettings& WithAfterConnectScript(const char* value) { SetAfterConnectScript(value); return *this;} /** *

Cleans and recreates table metadata information on the replication instance * when a mismatch occurs. For example, in a situation where running an alter DDL * on the table could result in different information about the table cached in the * replication instance.

*/ inline bool GetCleanSourceMetadataOnMismatch() const{ return m_cleanSourceMetadataOnMismatch; } /** *

Cleans and recreates table metadata information on the replication instance * when a mismatch occurs. For example, in a situation where running an alter DDL * on the table could result in different information about the table cached in the * replication instance.

*/ inline bool CleanSourceMetadataOnMismatchHasBeenSet() const { return m_cleanSourceMetadataOnMismatchHasBeenSet; } /** *

Cleans and recreates table metadata information on the replication instance * when a mismatch occurs. For example, in a situation where running an alter DDL * on the table could result in different information about the table cached in the * replication instance.

*/ inline void SetCleanSourceMetadataOnMismatch(bool value) { m_cleanSourceMetadataOnMismatchHasBeenSet = true; m_cleanSourceMetadataOnMismatch = value; } /** *

Cleans and recreates table metadata information on the replication instance * when a mismatch occurs. For example, in a situation where running an alter DDL * on the table could result in different information about the table cached in the * replication instance.

*/ inline MySQLSettings& WithCleanSourceMetadataOnMismatch(bool value) { SetCleanSourceMetadataOnMismatch(value); return *this;} /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline const Aws::String& GetDatabaseName() const{ return m_databaseName; } /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline bool DatabaseNameHasBeenSet() const { return m_databaseNameHasBeenSet; } /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline void SetDatabaseName(const Aws::String& value) { m_databaseNameHasBeenSet = true; m_databaseName = value; } /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline void SetDatabaseName(Aws::String&& value) { m_databaseNameHasBeenSet = true; m_databaseName = std::move(value); } /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline void SetDatabaseName(const char* value) { m_databaseNameHasBeenSet = true; m_databaseName.assign(value); } /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline MySQLSettings& WithDatabaseName(const Aws::String& value) { SetDatabaseName(value); return *this;} /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline MySQLSettings& WithDatabaseName(Aws::String&& value) { SetDatabaseName(std::move(value)); return *this;} /** *

Database name for the endpoint. For a MySQL source or target endpoint, don't * explicitly specify the database using the DatabaseName request * parameter on either the CreateEndpoint or * ModifyEndpoint API call. Specifying DatabaseName when * you create or modify a MySQL endpoint replicates all the task tables to this * single database. For MySQL endpoints, you specify the database only when you * specify the schema in the table-mapping rules of the DMS task.

*/ inline MySQLSettings& WithDatabaseName(const char* value) { SetDatabaseName(value); return *this;} /** *

Specifies how often to check the binary log for new changes/events when the * database is idle. The default is five seconds.

Example: * eventsPollInterval=5;

In the example, DMS checks for * changes in the binary logs every five seconds.

*/ inline int GetEventsPollInterval() const{ return m_eventsPollInterval; } /** *

Specifies how often to check the binary log for new changes/events when the * database is idle. The default is five seconds.

Example: * eventsPollInterval=5;

In the example, DMS checks for * changes in the binary logs every five seconds.

*/ inline bool EventsPollIntervalHasBeenSet() const { return m_eventsPollIntervalHasBeenSet; } /** *

Specifies how often to check the binary log for new changes/events when the * database is idle. The default is five seconds.

Example: * eventsPollInterval=5;

In the example, DMS checks for * changes in the binary logs every five seconds.

*/ inline void SetEventsPollInterval(int value) { m_eventsPollIntervalHasBeenSet = true; m_eventsPollInterval = value; } /** *

Specifies how often to check the binary log for new changes/events when the * database is idle. The default is five seconds.

Example: * eventsPollInterval=5;

In the example, DMS checks for * changes in the binary logs every five seconds.

*/ inline MySQLSettings& WithEventsPollInterval(int value) { SetEventsPollInterval(value); return *this;} /** *

Specifies where to migrate source tables on the target, either to a single * database or multiple databases. If you specify SPECIFIC_DATABASE, * specify the database name using the DatabaseName parameter of the * Endpoint object.

Example: * targetDbType=MULTIPLE_DATABASES

*/ inline const TargetDbType& GetTargetDbType() const{ return m_targetDbType; } /** *

Specifies where to migrate source tables on the target, either to a single * database or multiple databases. If you specify SPECIFIC_DATABASE, * specify the database name using the DatabaseName parameter of the * Endpoint object.

Example: * targetDbType=MULTIPLE_DATABASES

*/ inline bool TargetDbTypeHasBeenSet() const { return m_targetDbTypeHasBeenSet; } /** *

Specifies where to migrate source tables on the target, either to a single * database or multiple databases. If you specify SPECIFIC_DATABASE, * specify the database name using the DatabaseName parameter of the * Endpoint object.

Example: * targetDbType=MULTIPLE_DATABASES

*/ inline void SetTargetDbType(const TargetDbType& value) { m_targetDbTypeHasBeenSet = true; m_targetDbType = value; } /** *

Specifies where to migrate source tables on the target, either to a single * database or multiple databases. If you specify SPECIFIC_DATABASE, * specify the database name using the DatabaseName parameter of the * Endpoint object.

Example: * targetDbType=MULTIPLE_DATABASES

*/ inline void SetTargetDbType(TargetDbType&& value) { m_targetDbTypeHasBeenSet = true; m_targetDbType = std::move(value); } /** *

Specifies where to migrate source tables on the target, either to a single * database or multiple databases. If you specify SPECIFIC_DATABASE, * specify the database name using the DatabaseName parameter of the * Endpoint object.

Example: * targetDbType=MULTIPLE_DATABASES

*/ inline MySQLSettings& WithTargetDbType(const TargetDbType& value) { SetTargetDbType(value); return *this;} /** *

Specifies where to migrate source tables on the target, either to a single * database or multiple databases. If you specify SPECIFIC_DATABASE, * specify the database name using the DatabaseName parameter of the * Endpoint object.

Example: * targetDbType=MULTIPLE_DATABASES

*/ inline MySQLSettings& WithTargetDbType(TargetDbType&& value) { SetTargetDbType(std::move(value)); return *this;} /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * a MySQL-compatible database.

Example: maxFileSize=512

*/ inline int GetMaxFileSize() const{ return m_maxFileSize; } /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * a MySQL-compatible database.

Example: maxFileSize=512

*/ inline bool MaxFileSizeHasBeenSet() const { return m_maxFileSizeHasBeenSet; } /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * a MySQL-compatible database.

Example: maxFileSize=512

*/ inline void SetMaxFileSize(int value) { m_maxFileSizeHasBeenSet = true; m_maxFileSize = value; } /** *

Specifies the maximum size (in KB) of any .csv file used to transfer data to * a MySQL-compatible database.

Example: maxFileSize=512

*/ inline MySQLSettings& WithMaxFileSize(int value) { SetMaxFileSize(value); return *this;} /** *

Improves performance when loading data into the MySQL-compatible target * database. Specifies how many threads to use to load the data into the * MySQL-compatible target database. Setting a large number of threads can have an * adverse effect on database performance, because a separate connection is * required for each thread. The default is one.

Example: * parallelLoadThreads=1

*/ inline int GetParallelLoadThreads() const{ return m_parallelLoadThreads; } /** *

Improves performance when loading data into the MySQL-compatible target * database. Specifies how many threads to use to load the data into the * MySQL-compatible target database. Setting a large number of threads can have an * adverse effect on database performance, because a separate connection is * required for each thread. The default is one.

Example: * parallelLoadThreads=1

*/ inline bool ParallelLoadThreadsHasBeenSet() const { return m_parallelLoadThreadsHasBeenSet; } /** *

Improves performance when loading data into the MySQL-compatible target * database. Specifies how many threads to use to load the data into the * MySQL-compatible target database. Setting a large number of threads can have an * adverse effect on database performance, because a separate connection is * required for each thread. The default is one.

Example: * parallelLoadThreads=1

*/ inline void SetParallelLoadThreads(int value) { m_parallelLoadThreadsHasBeenSet = true; m_parallelLoadThreads = value; } /** *

Improves performance when loading data into the MySQL-compatible target * database. Specifies how many threads to use to load the data into the * MySQL-compatible target database. Setting a large number of threads can have an * adverse effect on database performance, because a separate connection is * required for each thread. The default is one.

Example: * parallelLoadThreads=1

*/ inline MySQLSettings& WithParallelLoadThreads(int value) { SetParallelLoadThreads(value); return *this;} /** *

Endpoint connection password.

*/ inline const Aws::String& GetPassword() const{ return m_password; } /** *

Endpoint connection password.

*/ inline bool PasswordHasBeenSet() const { return m_passwordHasBeenSet; } /** *

Endpoint connection password.

*/ inline void SetPassword(const Aws::String& value) { m_passwordHasBeenSet = true; m_password = value; } /** *

Endpoint connection password.

*/ inline void SetPassword(Aws::String&& value) { m_passwordHasBeenSet = true; m_password = std::move(value); } /** *

Endpoint connection password.

*/ inline void SetPassword(const char* value) { m_passwordHasBeenSet = true; m_password.assign(value); } /** *

Endpoint connection password.

*/ inline MySQLSettings& WithPassword(const Aws::String& value) { SetPassword(value); return *this;} /** *

Endpoint connection password.

*/ inline MySQLSettings& WithPassword(Aws::String&& value) { SetPassword(std::move(value)); return *this;} /** *

Endpoint connection password.

*/ inline MySQLSettings& WithPassword(const char* value) { SetPassword(value); return *this;} /** *

Endpoint TCP port.

*/ inline int GetPort() const{ return m_port; } /** *

Endpoint TCP port.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

Endpoint TCP port.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

Endpoint TCP port.

*/ inline MySQLSettings& WithPort(int value) { SetPort(value); return *this;} /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline const Aws::String& GetServerName() const{ return m_serverName; } /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline bool ServerNameHasBeenSet() const { return m_serverNameHasBeenSet; } /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline void SetServerName(const Aws::String& value) { m_serverNameHasBeenSet = true; m_serverName = value; } /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline void SetServerName(Aws::String&& value) { m_serverNameHasBeenSet = true; m_serverName = std::move(value); } /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline void SetServerName(const char* value) { m_serverNameHasBeenSet = true; m_serverName.assign(value); } /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline MySQLSettings& WithServerName(const Aws::String& value) { SetServerName(value); return *this;} /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline MySQLSettings& WithServerName(Aws::String&& value) { SetServerName(std::move(value)); return *this;} /** *

The host name of the endpoint database.

For an Amazon RDS MySQL * instance, this is the output of DescribeDBInstances, * in the Endpoint.Address * field.

For an Aurora MySQL instance, this is the output of DescribeDBClusters, * in the Endpoint field.

*/ inline MySQLSettings& WithServerName(const char* value) { SetServerName(value); return *this;} /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline const Aws::String& GetServerTimezone() const{ return m_serverTimezone; } /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline bool ServerTimezoneHasBeenSet() const { return m_serverTimezoneHasBeenSet; } /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline void SetServerTimezone(const Aws::String& value) { m_serverTimezoneHasBeenSet = true; m_serverTimezone = value; } /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline void SetServerTimezone(Aws::String&& value) { m_serverTimezoneHasBeenSet = true; m_serverTimezone = std::move(value); } /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline void SetServerTimezone(const char* value) { m_serverTimezoneHasBeenSet = true; m_serverTimezone.assign(value); } /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline MySQLSettings& WithServerTimezone(const Aws::String& value) { SetServerTimezone(value); return *this;} /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline MySQLSettings& WithServerTimezone(Aws::String&& value) { SetServerTimezone(std::move(value)); return *this;} /** *

Specifies the time zone for the source MySQL database.

Example: * serverTimezone=US/Pacific;

Note: Do not enclose time zones * in single quotes.

*/ inline MySQLSettings& WithServerTimezone(const char* value) { SetServerTimezone(value); return *this;} /** *

Endpoint connection user name.

*/ inline const Aws::String& GetUsername() const{ return m_username; } /** *

Endpoint connection user name.

*/ inline bool UsernameHasBeenSet() const { return m_usernameHasBeenSet; } /** *

Endpoint connection user name.

*/ inline void SetUsername(const Aws::String& value) { m_usernameHasBeenSet = true; m_username = value; } /** *

Endpoint connection user name.

*/ inline void SetUsername(Aws::String&& value) { m_usernameHasBeenSet = true; m_username = std::move(value); } /** *

Endpoint connection user name.

*/ inline void SetUsername(const char* value) { m_usernameHasBeenSet = true; m_username.assign(value); } /** *

Endpoint connection user name.

*/ inline MySQLSettings& WithUsername(const Aws::String& value) { SetUsername(value); return *this;} /** *

Endpoint connection user name.

*/ inline MySQLSettings& WithUsername(Aws::String&& value) { SetUsername(std::move(value)); return *this;} /** *

Endpoint connection user name.

*/ inline MySQLSettings& WithUsername(const char* value) { SetUsername(value); return *this;} /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline const Aws::String& GetSecretsManagerAccessRoleArn() const{ return m_secretsManagerAccessRoleArn; } /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline bool SecretsManagerAccessRoleArnHasBeenSet() const { return m_secretsManagerAccessRoleArnHasBeenSet; } /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline void SetSecretsManagerAccessRoleArn(const Aws::String& value) { m_secretsManagerAccessRoleArnHasBeenSet = true; m_secretsManagerAccessRoleArn = value; } /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline void SetSecretsManagerAccessRoleArn(Aws::String&& value) { m_secretsManagerAccessRoleArnHasBeenSet = true; m_secretsManagerAccessRoleArn = std::move(value); } /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline void SetSecretsManagerAccessRoleArn(const char* value) { m_secretsManagerAccessRoleArnHasBeenSet = true; m_secretsManagerAccessRoleArn.assign(value); } /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline MySQLSettings& WithSecretsManagerAccessRoleArn(const Aws::String& value) { SetSecretsManagerAccessRoleArn(value); return *this;} /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline MySQLSettings& WithSecretsManagerAccessRoleArn(Aws::String&& value) { SetSecretsManagerAccessRoleArn(std::move(value)); return *this;} /** *

The full Amazon Resource Name (ARN) of the IAM role that specifies DMS as the * trusted entity and grants the required permissions to access the value in * SecretsManagerSecret. The role must allow the * iam:PassRole action. SecretsManagerSecret has the * value of the Amazon Web Services Secrets Manager secret that allows access to * the MySQL endpoint.

You can specify one of two sets of values for * these permissions. You can specify the values for this setting and * SecretsManagerSecretId. Or you can specify clear-text values for * UserName, Password, ServerName, and * Port. You can't specify both. For more information on creating this * SecretsManagerSecret and the * SecretsManagerAccessRoleArn and SecretsManagerSecretId * required to access it, see Using * secrets to access Database Migration Service resources in the Database * Migration Service User Guide.

*/ inline MySQLSettings& WithSecretsManagerAccessRoleArn(const char* value) { SetSecretsManagerAccessRoleArn(value); return *this;} /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline const Aws::String& GetSecretsManagerSecretId() const{ return m_secretsManagerSecretId; } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline bool SecretsManagerSecretIdHasBeenSet() const { return m_secretsManagerSecretIdHasBeenSet; } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline void SetSecretsManagerSecretId(const Aws::String& value) { m_secretsManagerSecretIdHasBeenSet = true; m_secretsManagerSecretId = value; } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline void SetSecretsManagerSecretId(Aws::String&& value) { m_secretsManagerSecretIdHasBeenSet = true; m_secretsManagerSecretId = std::move(value); } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline void SetSecretsManagerSecretId(const char* value) { m_secretsManagerSecretIdHasBeenSet = true; m_secretsManagerSecretId.assign(value); } /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline MySQLSettings& WithSecretsManagerSecretId(const Aws::String& value) { SetSecretsManagerSecretId(value); return *this;} /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline MySQLSettings& WithSecretsManagerSecretId(Aws::String&& value) { SetSecretsManagerSecretId(std::move(value)); return *this;} /** *

The full ARN, partial ARN, or friendly name of the * SecretsManagerSecret that contains the MySQL endpoint connection * details.

*/ inline MySQLSettings& WithSecretsManagerSecretId(const char* value) { SetSecretsManagerSecretId(value); return *this;} private: Aws::String m_afterConnectScript; bool m_afterConnectScriptHasBeenSet = false; bool m_cleanSourceMetadataOnMismatch; bool m_cleanSourceMetadataOnMismatchHasBeenSet = false; Aws::String m_databaseName; bool m_databaseNameHasBeenSet = false; int m_eventsPollInterval; bool m_eventsPollIntervalHasBeenSet = false; TargetDbType m_targetDbType; bool m_targetDbTypeHasBeenSet = false; int m_maxFileSize; bool m_maxFileSizeHasBeenSet = false; int m_parallelLoadThreads; bool m_parallelLoadThreadsHasBeenSet = false; Aws::String m_password; bool m_passwordHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_serverName; bool m_serverNameHasBeenSet = false; Aws::String m_serverTimezone; bool m_serverTimezoneHasBeenSet = false; Aws::String m_username; bool m_usernameHasBeenSet = false; Aws::String m_secretsManagerAccessRoleArn; bool m_secretsManagerAccessRoleArnHasBeenSet = false; Aws::String m_secretsManagerSecretId; bool m_secretsManagerSecretIdHasBeenSet = false; }; } // namespace Model } // namespace DatabaseMigrationService } // namespace Aws