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

io.github.vigoo.zioaws.elasticbeanstalk.model.SingleInstanceHealth.scala Maven / Gradle / Ivy

package io.github.vigoo.zioaws.elasticbeanstalk.model
import zio.ZIO
import io.github.vigoo.zioaws.elasticbeanstalk.model.primitives.{
  LaunchedAt,
  Cause,
  InstanceId
}
import java.time.Instant
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class SingleInstanceHealth(
    instanceId: Option[InstanceId] = None,
    healthStatus: Option[String] = None,
    color: Option[String] = None,
    causes: Option[Iterable[Cause]] = None,
    launchedAt: Option[LaunchedAt] = None,
    applicationMetrics: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics
    ] = None,
    system: Option[io.github.vigoo.zioaws.elasticbeanstalk.model.SystemStatus] =
      None,
    deployment: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.Deployment
    ] = None,
    availabilityZone: Option[String] = None,
    instanceType: Option[String] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.elasticbeanstalk.model.SingleInstanceHealth = {
    import SingleInstanceHealth.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticbeanstalk.model.SingleInstanceHealth
      .builder()
      .optionallyWith(instanceId.map(value => value: java.lang.String))(
        _.instanceId
      )
      .optionallyWith(healthStatus.map(value => value: java.lang.String))(
        _.healthStatus
      )
      .optionallyWith(color.map(value => value: java.lang.String))(_.color)
      .optionallyWith(
        causes.map(value =>
          value.map { item =>
            item: java.lang.String
          }.asJavaCollection
        )
      )(_.causes)
      .optionallyWith(launchedAt.map(value => value: Instant))(_.launchedAt)
      .optionallyWith(applicationMetrics.map(value => value.buildAwsValue()))(
        _.applicationMetrics
      )
      .optionallyWith(system.map(value => value.buildAwsValue()))(_.system)
      .optionallyWith(deployment.map(value => value.buildAwsValue()))(
        _.deployment
      )
      .optionallyWith(availabilityZone.map(value => value: java.lang.String))(
        _.availabilityZone
      )
      .optionallyWith(instanceType.map(value => value: java.lang.String))(
        _.instanceType
      )
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.elasticbeanstalk.model.SingleInstanceHealth.ReadOnly =
    io.github.vigoo.zioaws.elasticbeanstalk.model.SingleInstanceHealth
      .wrap(buildAwsValue())
}
object SingleInstanceHealth {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.elasticbeanstalk.model.SingleInstanceHealth
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.elasticbeanstalk.model.SingleInstanceHealth =
      io.github.vigoo.zioaws.elasticbeanstalk.model.SingleInstanceHealth(
        instanceIdValue.map(value => value),
        healthStatusValue.map(value => value),
        colorValue.map(value => value),
        causesValue.map(value => value),
        launchedAtValue.map(value => value),
        applicationMetricsValue.map(value => value.editable),
        systemValue.map(value => value.editable),
        deploymentValue.map(value => value.editable),
        availabilityZoneValue.map(value => value),
        instanceTypeValue.map(value => value)
      )
    def instanceIdValue: Option[InstanceId]
    def healthStatusValue: Option[String]
    def colorValue: Option[String]
    def causesValue: Option[List[Cause]]
    def launchedAtValue: Option[LaunchedAt]
    def applicationMetricsValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics.ReadOnly
    ]
    def systemValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.SystemStatus.ReadOnly
    ]
    def deploymentValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.Deployment.ReadOnly
    ]
    def availabilityZoneValue: Option[String]
    def instanceTypeValue: Option[String]
    def instanceId: ZIO[Any, AwsError, InstanceId] =
      AwsError.unwrapOptionField("instanceId", instanceIdValue)
    def healthStatus: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("healthStatus", healthStatusValue)
    def color: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("color", colorValue)
    def causes: ZIO[Any, AwsError, List[Cause]] =
      AwsError.unwrapOptionField("causes", causesValue)
    def launchedAt: ZIO[Any, AwsError, LaunchedAt] =
      AwsError.unwrapOptionField("launchedAt", launchedAtValue)
    def applicationMetrics: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics.ReadOnly
    ] =
      AwsError.unwrapOptionField("applicationMetrics", applicationMetricsValue)
    def system: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.SystemStatus.ReadOnly
    ] = AwsError.unwrapOptionField("system", systemValue)
    def deployment: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.Deployment.ReadOnly
    ] = AwsError.unwrapOptionField("deployment", deploymentValue)
    def availabilityZone: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("availabilityZone", availabilityZoneValue)
    def instanceType: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("instanceType", instanceTypeValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.SingleInstanceHealth
  ) extends io.github.vigoo.zioaws.elasticbeanstalk.model.SingleInstanceHealth.ReadOnly {
    override def instanceIdValue: Option[InstanceId] =
      scala.Option(impl.instanceId()).map(value => value: InstanceId)
    override def healthStatusValue: Option[String] =
      scala.Option(impl.healthStatus()).map(value => value: String)
    override def colorValue: Option[String] =
      scala.Option(impl.color()).map(value => value: String)
    override def causesValue: Option[List[Cause]] = scala
      .Option(impl.causes())
      .map(value =>
        value.asScala.map { item =>
          item: Cause
        }.toList
      )
    override def launchedAtValue: Option[LaunchedAt] =
      scala.Option(impl.launchedAt()).map(value => value: LaunchedAt)
    override def applicationMetricsValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics.ReadOnly
    ] = scala
      .Option(impl.applicationMetrics())
      .map(value =>
        io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics
          .wrap(value)
      )
    override def systemValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.SystemStatus.ReadOnly
    ] = scala
      .Option(impl.system())
      .map(value =>
        io.github.vigoo.zioaws.elasticbeanstalk.model.SystemStatus.wrap(value)
      )
    override def deploymentValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.Deployment.ReadOnly
    ] = scala
      .Option(impl.deployment())
      .map(value =>
        io.github.vigoo.zioaws.elasticbeanstalk.model.Deployment.wrap(value)
      )
    override def availabilityZoneValue: Option[String] =
      scala.Option(impl.availabilityZone()).map(value => value: String)
    override def instanceTypeValue: Option[String] =
      scala.Option(impl.instanceType()).map(value => value: String)
  }
  def wrap(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.SingleInstanceHealth
  ): io.github.vigoo.zioaws.elasticbeanstalk.model.SingleInstanceHealth.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy