{
    "connector.class": "com.snowflake.kafka.connector.SnowflakeSinkConnector",
    "tasks.max": "{{ env['MAX_TASKS'] }}",
    "buffer.flush.time": "{{ env['BUFFER_FLUSH_TIME'] }}",
    "buffer.count.records": "{{ env['BUFFER_COUNT_RECORDS'] }}",
    "buffer.size.bytes": "{{ env['BUFFER_SIZE_BYTES'] }}",
    "topics": "{{ env['KAFKA_TOPICS'] }}",
    "snowflake.url.name": "{{ env['SNOWFLAKE_HOST'] }}",
    "snowflake.user.name": "{{ env['SNOWFLAKE_USER'] }}",
    "snowflake.private.key": "${file:/etc/kafka-connect/snowflake.properties:private_key}",
    "snowflake.private.key.passphrase": "${file:/etc/kafka-connect/snowflake.properties:private_key_passphrase}",
    "snowflake.database.name": "{{ env['SNOWFLAKE_DATABASE'] }}",
    "snowflake.schema.name": "{{ env['SNOWFLAKE_SCHEMA'] }}",

    "snowflake.ingestion.method": "{{ env['SNOWFLAKE_INGESTION_METHOD'] }}",
    {% if env['SNOWFLAKE_INGESTION_METHOD'] == 'SNOWPIPE_STREAMING'  -%}
    "snowflake.role.name": "{{ env['SNOWFLAKE_ROLE'] }}",
    "snowflake.streaming.enable.single.buffer": "{{ env['SNOWFLAKE_ENABLE_SINGLE_BUFFER'] }}",
    {% else -%}    
    "key.converter": "{{ env['CONNECT_KEY_CONVERTER'] }}",
    "value.converter": "{{ env['CONNECT_VALUE_CONVERTER'] }}",
    {% endif -%}

    {% if env['CONSUMER_OFFSET_RESET'] -%}
    "consumer.override.auto.offset.reset": "{{ env['CONSUMER_OFFSET_RESET'] }}",
    {% endif -%}
    {% if env['CONSUMER_PARTITION_ASSIGNMENT_STRATEGY'] -%}
    "consumer.override.partition.assignment.strategy": "{{ env['CONSUMER_PARTITION_ASSIGNMENT_STRATEGY'] }}",
    {% endif -%}
    {% if env['CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL'] -%}
    "value.converter.schema.registry.url": "{{ env['CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL'] }}",
    "auto.register.schemas": "false",
    "use.latest.version": "true",
    {% if env['SCHEMA_REGISTRY_AUTH'] == 'true' -%}
    "basic.auth.credentials.source": "USER_INFO",
    "basic.auth.user.info": "${file:/etc/kafka-connect/schema_registry.properties:credentials}",
    {% endif -%}
    {% endif -%}
    "snowflake.topic2table.map": "{{ env['SNOWFLAKE_TOPIC_TABLE_MAP'] }}",
    "snowflake.jdbc.map": "tracing:{{ env['SNOWFLAKE_TRACE_LEVEL'] }}",
    "errors.tolerance": "all",
    {% if env['DLQ_TOPIC_NAME'] -%}
    "errors.deadletterqueue.topic.name": "{{ env['DLQ_TOPIC_NAME'] }}",
    "errors.deadletterqueue.context.headers.enable": "true",
    {% endif -%}
    "errors.log.enable": true,
    "errors.log.include.messages": true,
    "errors.retry.timeout": "15",
    "errors.retry.delay.max.ms": "5000"
}
