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

scala.googleapis.bigquery.ArimaForecastingMetrics.scala Maven / Gradle / Ivy

There is a newer version: 0.6.1-v2-20241111
Show newest version
package googleapis.bigquery

import io.circe._
import io.circe.syntax._

final case class ArimaForecastingMetrics(
    /** Whether Arima model fitted with drift or not. It is always false when d is not 1.
      */
    hasDrift: Option[List[Boolean]] = None,
    /** Seasonal periods. Repeated because multiple periods are supported for one time series.
      */
    seasonalPeriods: Option[List[ArimaForecastingMetricsSeasonalPeriod]] = None,
    /** Non-seasonal order.
      */
    nonSeasonalOrder: Option[List[ArimaOrder]] = None,
    /** Arima model fitting metrics.
      */
    arimaFittingMetrics: Option[List[ArimaFittingMetrics]] = None,
    /** Repeated as there can be many metric sets (one for each model) in auto-arima and the large-scale case.
      */
    arimaSingleModelForecastingMetrics: Option[List[ArimaSingleModelForecastingMetrics]] = None,
    /** Id to differentiate different time series for the large-scale case.
      */
    timeSeriesId: Option[List[String]] = None,
)
object ArimaForecastingMetrics {
  implicit val encoder: Encoder[
    ArimaForecastingMetrics
  ] = Encoder.instance { x =>
    Json.obj(
      "hasDrift" := x.hasDrift,
      "seasonalPeriods" := x.seasonalPeriods,
      "nonSeasonalOrder" := x.nonSeasonalOrder,
      "arimaFittingMetrics" := x.arimaFittingMetrics,
      "arimaSingleModelForecastingMetrics" := x.arimaSingleModelForecastingMetrics,
      "timeSeriesId" := x.timeSeriesId,
    )
  }
  implicit val decoder: Decoder[
    ArimaForecastingMetrics
  ] = Decoder.instance { c =>
    for {
      v0 <- c.get[Option[List[Boolean]]]("hasDrift")
      v1 <- c.get[Option[List[ArimaForecastingMetricsSeasonalPeriod]]]("seasonalPeriods")
      v2 <- c.get[Option[List[ArimaOrder]]]("nonSeasonalOrder")
      v3 <- c.get[Option[List[ArimaFittingMetrics]]]("arimaFittingMetrics")
      v4 <- c.get[Option[List[ArimaSingleModelForecastingMetrics]]](
        "arimaSingleModelForecastingMetrics"
      )
      v5 <- c.get[Option[List[String]]]("timeSeriesId")
    } yield ArimaForecastingMetrics(v0, v1, v2, v3, v4, v5)
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy