All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.snowplowanalytics.snowplow.sinks.kinesis.KinesisSinkConfig.scala Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2023-present Snowplow Analytics Ltd. All rights reserved.
 *
 * This program is licensed to you under the Snowplow Community License Version 1.0,
 * and you may not use this file except in compliance with the Snowplow Community License Version 1.0.
 * You may obtain a copy of the Snowplow Community License Version 1.0 at https://docs.snowplow.io/community-license-1.0
 */
package com.snowplowanalytics.snowplow.sinks.kinesis

import io.circe._
import io.circe.generic.semiauto._
import io.circe.config.syntax._
import scala.concurrent.duration.FiniteDuration

import java.net.URI

case class BackoffPolicy(
  minBackoff: FiniteDuration,
  maxBackoff: FiniteDuration,
  maxRetries: Option[Int]
)

object BackoffPolicy {

  implicit def backoffPolicyDecoder: Decoder[BackoffPolicy] =
    deriveDecoder[BackoffPolicy]
}

case class KinesisSinkConfig(
  streamName: String,
  throttledBackoffPolicy: BackoffPolicy,
  recordLimit: Int,
  byteLimit: Int,
  customEndpoint: Option[URI]
)

object KinesisSinkConfig {
  implicit def decoder: Decoder[KinesisSinkConfig] =
    deriveDecoder[KinesisSinkConfig]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy