/*
 * Copyright (c) 2022 Airbyte, Inc., all rights reserved.
 */

package io.airbyte.integrations.destination.s3.writer;

import com.amazonaws.services.s3.AmazonS3;
import io.airbyte.integrations.destination.s3.S3DestinationConfig;
import io.airbyte.protocol.models.ConfiguredAirbyteStream;
import java.sql.Timestamp;

/**
 * Create different {@link DestinationFileWriter} based on {@link S3DestinationConfig}.
 */
public interface S3WriterFactory {

  DestinationFileWriter create(S3DestinationConfig config,
                               AmazonS3 s3Client,
                               ConfiguredAirbyteStream configuredStream,
                               Timestamp uploadTimestamp)
      throws Exception;

}
