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

Additional connection options for the connector.

See Also:

* AWS * API Reference

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

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline const Aws::String& GetFilterPredicate() const{ return m_filterPredicate; } /** *

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline bool FilterPredicateHasBeenSet() const { return m_filterPredicateHasBeenSet; } /** *

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline void SetFilterPredicate(const Aws::String& value) { m_filterPredicateHasBeenSet = true; m_filterPredicate = value; } /** *

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline void SetFilterPredicate(Aws::String&& value) { m_filterPredicateHasBeenSet = true; m_filterPredicate = std::move(value); } /** *

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline void SetFilterPredicate(const char* value) { m_filterPredicateHasBeenSet = true; m_filterPredicate.assign(value); } /** *

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline JDBCConnectorOptions& WithFilterPredicate(const Aws::String& value) { SetFilterPredicate(value); return *this;} /** *

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline JDBCConnectorOptions& WithFilterPredicate(Aws::String&& value) { SetFilterPredicate(std::move(value)); return *this;} /** *

Extra condition clause to filter data from source. For example:

* BillingCity='Mountain View'

When using a query instead of a * table name, you should validate that the query works with the specified * filterPredicate.

*/ inline JDBCConnectorOptions& WithFilterPredicate(const char* value) { SetFilterPredicate(value); return *this;} /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline const Aws::String& GetPartitionColumn() const{ return m_partitionColumn; } /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline bool PartitionColumnHasBeenSet() const { return m_partitionColumnHasBeenSet; } /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline void SetPartitionColumn(const Aws::String& value) { m_partitionColumnHasBeenSet = true; m_partitionColumn = value; } /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline void SetPartitionColumn(Aws::String&& value) { m_partitionColumnHasBeenSet = true; m_partitionColumn = std::move(value); } /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline void SetPartitionColumn(const char* value) { m_partitionColumnHasBeenSet = true; m_partitionColumn.assign(value); } /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline JDBCConnectorOptions& WithPartitionColumn(const Aws::String& value) { SetPartitionColumn(value); return *this;} /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline JDBCConnectorOptions& WithPartitionColumn(Aws::String&& value) { SetPartitionColumn(std::move(value)); return *this;} /** *

The name of an integer column that is used for partitioning. This option * works only when it's included with lowerBound, * upperBound, and numPartitions. This option works the * same way as in the Spark SQL JDBC reader.

*/ inline JDBCConnectorOptions& WithPartitionColumn(const char* value) { SetPartitionColumn(value); return *this;} /** *

The minimum value of partitionColumn that is used to decide * partition stride.

*/ inline long long GetLowerBound() const{ return m_lowerBound; } /** *

The minimum value of partitionColumn that is used to decide * partition stride.

*/ inline bool LowerBoundHasBeenSet() const { return m_lowerBoundHasBeenSet; } /** *

The minimum value of partitionColumn that is used to decide * partition stride.

*/ inline void SetLowerBound(long long value) { m_lowerBoundHasBeenSet = true; m_lowerBound = value; } /** *

The minimum value of partitionColumn that is used to decide * partition stride.

*/ inline JDBCConnectorOptions& WithLowerBound(long long value) { SetLowerBound(value); return *this;} /** *

The maximum value of partitionColumn that is used to decide * partition stride.

*/ inline long long GetUpperBound() const{ return m_upperBound; } /** *

The maximum value of partitionColumn that is used to decide * partition stride.

*/ inline bool UpperBoundHasBeenSet() const { return m_upperBoundHasBeenSet; } /** *

The maximum value of partitionColumn that is used to decide * partition stride.

*/ inline void SetUpperBound(long long value) { m_upperBoundHasBeenSet = true; m_upperBound = value; } /** *

The maximum value of partitionColumn that is used to decide * partition stride.

*/ inline JDBCConnectorOptions& WithUpperBound(long long value) { SetUpperBound(value); return *this;} /** *

The number of partitions. This value, along with lowerBound * (inclusive) and upperBound (exclusive), form partition strides for * generated WHERE clause expressions that are used to split the * partitionColumn.

*/ inline long long GetNumPartitions() const{ return m_numPartitions; } /** *

The number of partitions. This value, along with lowerBound * (inclusive) and upperBound (exclusive), form partition strides for * generated WHERE clause expressions that are used to split the * partitionColumn.

*/ inline bool NumPartitionsHasBeenSet() const { return m_numPartitionsHasBeenSet; } /** *

The number of partitions. This value, along with lowerBound * (inclusive) and upperBound (exclusive), form partition strides for * generated WHERE clause expressions that are used to split the * partitionColumn.

*/ inline void SetNumPartitions(long long value) { m_numPartitionsHasBeenSet = true; m_numPartitions = value; } /** *

The number of partitions. This value, along with lowerBound * (inclusive) and upperBound (exclusive), form partition strides for * generated WHERE clause expressions that are used to split the * partitionColumn.

*/ inline JDBCConnectorOptions& WithNumPartitions(long long value) { SetNumPartitions(value); return *this;} /** *

The name of the job bookmark keys on which to sort.

*/ inline const Aws::Vector& GetJobBookmarkKeys() const{ return m_jobBookmarkKeys; } /** *

The name of the job bookmark keys on which to sort.

*/ inline bool JobBookmarkKeysHasBeenSet() const { return m_jobBookmarkKeysHasBeenSet; } /** *

The name of the job bookmark keys on which to sort.

*/ inline void SetJobBookmarkKeys(const Aws::Vector& value) { m_jobBookmarkKeysHasBeenSet = true; m_jobBookmarkKeys = value; } /** *

The name of the job bookmark keys on which to sort.

*/ inline void SetJobBookmarkKeys(Aws::Vector&& value) { m_jobBookmarkKeysHasBeenSet = true; m_jobBookmarkKeys = std::move(value); } /** *

The name of the job bookmark keys on which to sort.

*/ inline JDBCConnectorOptions& WithJobBookmarkKeys(const Aws::Vector& value) { SetJobBookmarkKeys(value); return *this;} /** *

The name of the job bookmark keys on which to sort.

*/ inline JDBCConnectorOptions& WithJobBookmarkKeys(Aws::Vector&& value) { SetJobBookmarkKeys(std::move(value)); return *this;} /** *

The name of the job bookmark keys on which to sort.

*/ inline JDBCConnectorOptions& AddJobBookmarkKeys(const Aws::String& value) { m_jobBookmarkKeysHasBeenSet = true; m_jobBookmarkKeys.push_back(value); return *this; } /** *

The name of the job bookmark keys on which to sort.

*/ inline JDBCConnectorOptions& AddJobBookmarkKeys(Aws::String&& value) { m_jobBookmarkKeysHasBeenSet = true; m_jobBookmarkKeys.push_back(std::move(value)); return *this; } /** *

The name of the job bookmark keys on which to sort.

*/ inline JDBCConnectorOptions& AddJobBookmarkKeys(const char* value) { m_jobBookmarkKeysHasBeenSet = true; m_jobBookmarkKeys.push_back(value); return *this; } /** *

Specifies an ascending or descending sort order.

*/ inline const Aws::String& GetJobBookmarkKeysSortOrder() const{ return m_jobBookmarkKeysSortOrder; } /** *

Specifies an ascending or descending sort order.

*/ inline bool JobBookmarkKeysSortOrderHasBeenSet() const { return m_jobBookmarkKeysSortOrderHasBeenSet; } /** *

Specifies an ascending or descending sort order.

*/ inline void SetJobBookmarkKeysSortOrder(const Aws::String& value) { m_jobBookmarkKeysSortOrderHasBeenSet = true; m_jobBookmarkKeysSortOrder = value; } /** *

Specifies an ascending or descending sort order.

*/ inline void SetJobBookmarkKeysSortOrder(Aws::String&& value) { m_jobBookmarkKeysSortOrderHasBeenSet = true; m_jobBookmarkKeysSortOrder = std::move(value); } /** *

Specifies an ascending or descending sort order.

*/ inline void SetJobBookmarkKeysSortOrder(const char* value) { m_jobBookmarkKeysSortOrderHasBeenSet = true; m_jobBookmarkKeysSortOrder.assign(value); } /** *

Specifies an ascending or descending sort order.

*/ inline JDBCConnectorOptions& WithJobBookmarkKeysSortOrder(const Aws::String& value) { SetJobBookmarkKeysSortOrder(value); return *this;} /** *

Specifies an ascending or descending sort order.

*/ inline JDBCConnectorOptions& WithJobBookmarkKeysSortOrder(Aws::String&& value) { SetJobBookmarkKeysSortOrder(std::move(value)); return *this;} /** *

Specifies an ascending or descending sort order.

*/ inline JDBCConnectorOptions& WithJobBookmarkKeysSortOrder(const char* value) { SetJobBookmarkKeysSortOrder(value); return *this;} /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline const Aws::Map& GetDataTypeMapping() const{ return m_dataTypeMapping; } /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline bool DataTypeMappingHasBeenSet() const { return m_dataTypeMappingHasBeenSet; } /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline void SetDataTypeMapping(const Aws::Map& value) { m_dataTypeMappingHasBeenSet = true; m_dataTypeMapping = value; } /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline void SetDataTypeMapping(Aws::Map&& value) { m_dataTypeMappingHasBeenSet = true; m_dataTypeMapping = std::move(value); } /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline JDBCConnectorOptions& WithDataTypeMapping(const Aws::Map& value) { SetDataTypeMapping(value); return *this;} /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline JDBCConnectorOptions& WithDataTypeMapping(Aws::Map&& value) { SetDataTypeMapping(std::move(value)); return *this;} /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline JDBCConnectorOptions& AddDataTypeMapping(const JDBCDataType& key, const GlueRecordType& value) { m_dataTypeMappingHasBeenSet = true; m_dataTypeMapping.emplace(key, value); return *this; } /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline JDBCConnectorOptions& AddDataTypeMapping(JDBCDataType&& key, const GlueRecordType& value) { m_dataTypeMappingHasBeenSet = true; m_dataTypeMapping.emplace(std::move(key), value); return *this; } /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline JDBCConnectorOptions& AddDataTypeMapping(const JDBCDataType& key, GlueRecordType&& value) { m_dataTypeMappingHasBeenSet = true; m_dataTypeMapping.emplace(key, std::move(value)); return *this; } /** *

Custom data type mapping that builds a mapping from a JDBC data type to an * Glue data type. For example, the option * "dataTypeMapping":{"FLOAT":"STRING"} maps data fields of JDBC type * FLOAT into the Java String type by calling the * ResultSet.getString() method of the driver, and uses it to build * the Glue record. The ResultSet object is implemented by each * driver, so the behavior is specific to the driver you use. Refer to the * documentation for your JDBC driver to understand how the driver performs the * conversions.

*/ inline JDBCConnectorOptions& AddDataTypeMapping(JDBCDataType&& key, GlueRecordType&& value) { m_dataTypeMappingHasBeenSet = true; m_dataTypeMapping.emplace(std::move(key), std::move(value)); return *this; } private: Aws::String m_filterPredicate; bool m_filterPredicateHasBeenSet = false; Aws::String m_partitionColumn; bool m_partitionColumnHasBeenSet = false; long long m_lowerBound; bool m_lowerBoundHasBeenSet = false; long long m_upperBound; bool m_upperBoundHasBeenSet = false; long long m_numPartitions; bool m_numPartitionsHasBeenSet = false; Aws::Vector m_jobBookmarkKeys; bool m_jobBookmarkKeysHasBeenSet = false; Aws::String m_jobBookmarkKeysSortOrder; bool m_jobBookmarkKeysSortOrderHasBeenSet = false; Aws::Map m_dataTypeMapping; bool m_dataTypeMappingHasBeenSet = false; }; } // namespace Model } // namespace Glue } // namespace Aws