{
    "connector.class": "io.confluent.connect.jdbc.JdbcSourceConnector",
    "connection.url": "{{ env['DATABASE_CONNECTION_URL'] }}",
    {% if env['AWS_SECRETS_MANAGER'] == 'true' -%}
        "config.providers": "aws",
        "config.providers.aws.class": "io.lenses.connect.secrets.providers.AWSSecretProvider",
        "config.providers.aws.param.aws.auth.method": "default",
        "config.providers.aws.param.aws.access.key": "dummy-client-key",
        "config.providers.aws.param.aws.secret.key": "dummy-secret-key",
        "config.providers.aws.param.aws.region": "{{ env['AWS_REGION'] }}",
    {% endif -%}
    {% if env['AWS_SECRETS_MANAGER'] == 'true' and env['SNOWFLAKE_CONFIGURATION'] != 'true' -%}
        "connection.user": "${aws:{{ env['Environment'] }}/{{ env['SERVICE_NAME'] }}/DATABASE_CREDENTIALS:user}",
        "connection.password": "${aws:{{ env['Environment'] }}/{{ env['SERVICE_NAME'] }}/DATABASE_CREDENTIALS:password}",
    {% elif env['SNOWFLAKE_CONFIGURATION'] != 'true' -%}
        "connection.user": "{{ env['DATABASE_USER'] }}",
        "connection.password": "{{ env['DATABASE_PASSWORD'] }}",
    {% endif -%}
    "connection.attempts": {{ env['CONNECTION_ATTEMPTS'] }},

    {% if env['DATABASE_CATALOG_PATTERN'] and env['DATABASE_TABLE_WHITELIST'] -%}
        "catalog.pattern": "{{ env['DATABASE_CATALOG_PATTERN'] }}",
        {% if env['DATABASE_SCHEMA_PATTERN'] -%}
            "schema.pattern": "{{ env['DATABASE_SCHEMA_PATTERN'] }}",
        {% endif -%}
        "table.whitelist": "{{ env['DATABASE_TABLE_WHITELIST'] }}",
    {% elif env['QUERY'] -%}
        "query": "{{ env['QUERY'] }}",
        {% if env['QUERY_SUFFIX'] -%}
            "query.suffix": {{ env['QUERY_SUFFIX'] }},
        {% endif -%}
        "query.retry.attempts": {{ env['QUERY_RETRY_ATTEMPTS'] }},
    {% endif -%}
    {% if env['DATABASE_TABLE_TYPES'] -%}
        "table.types": "{{ env['DATABASE_TABLE_TYPES'] }}",
    {% endif -%}
    "mode": "{{ env['MODE'] }}",
    {% if env['MODE'] == 'timestamp' -%}
        "timestamp.column.name": "{{ env['TIMESTAMP_COLUMN_NAME'] }}",
        {% if env['TIMESTAMP_INITIAL'] -%}
            "timestamp.initial": {{ env['TIMESTAMP_INITIAL'] }},
        {% endif -%}
    {% elif env['MODE'] == 'incrementing' -%}
        "incrementing.column.name": "{{ env['INCREMENTING_COLUMN_NAME'] }}",
    {% elif env['MODE'] == 'timestamp+incrementing' -%}
        "timestamp.column.name": "{{ env['TIMESTAMP_COLUMN_NAME'] }}",
        "incrementing.column.name": "{{ env['INCREMENTING_COLUMN_NAME'] }}",
        {% if env['TIMESTAMP_INITIAL'] -%}
            "timestamp.initial": {{ env['TIMESTAMP_INITIAL'] }},
        {% endif -%}
    {% endif -%}
    {% if env['MODE'] in ['timestamp', 'incrementing', 'timestamp+incrementing'] -%}
        "validate.non.null": "{{ env['VALIDATE_NON_NULL'] }}",
    {% endif -%}
    {% if env['QUOTE_SQL_IDENTIFIERS'] -%}
        "quote.sql.identifiers": "{{ env['QUOTE_SQL_IDENTIFIERS'] }}",
    {% endif -%}
    {% if env['POLL_INTERVAL_MS'] -%}
        "poll.interval.ms": {{ env['POLL_INTERVAL_MS'] }},
    {% endif -%}
    {% if env['BATCH_MAX_ROWS'] -%}
        "batch.max.rows": {{ env['BATCH_MAX_ROWS'] }},
    {% endif -%}
    "value.converter": "{{ env['TRANSFORMS_VALUE_CONVERTER'] }}",
    {% if env['VALUE_CONVERTER_SCHEMAS_ENABLE'] -%}
        "value.converter.schemas.enable": "{{ env['VALUE_CONVERTER_SCHEMAS_ENABLE'] }}",
    {% else -%}
        "value.converter.schemas.enable": "false",
    {% endif -%}
    {% if env['EXTRACT_NESTED_OBJECT'] == 'true' -%}
        "transforms": "{{ env['TRANSFORMS'] }}",
        "transforms.createKey.type": "org.apache.kafka.connect.transforms.ValueToKey",
        "transforms.createKey.fields": "{{ env['FIELD_NAME_FOR_KEY'] }}",
        "transforms.extractInt.type": "org.apache.kafka.connect.transforms.ExtractField$Key",
        "transforms.extractInt.field": "{{ env['FIELD_NAME_FOR_KEY'] }}",
        {% if env['FIELD_NAME_FOR_VALUE'] -%}
        "transforms.extractField.type": "org.apache.kafka.connect.transforms.ExtractField$Value",
        "transforms.extractField.field": "{{ env['FIELD_NAME_FOR_VALUE'] }}",
        {% endif -%}
        "key.converter": "org.apache.kafka.connect.storage.StringConverter",
        "key.converter.schemas.enable": "false",
    {% endif -%}
    "topic.prefix": "{{ env['TOPIC_PREFIX'] }}"
}
