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

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

package io.github.vigoo.zioaws.elasticbeanstalk.model
import zio.ZIO
import io.github.vigoo.zioaws.elasticbeanstalk.model.primitives.{
  RefreshedAt,
  Cause,
  EnvironmentName
}
import java.time.Instant
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class DescribeEnvironmentHealthResponse(
    environmentName: Option[EnvironmentName] = None,
    healthStatus: Option[String] = None,
    status: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.EnvironmentHealth
    ] = None,
    color: Option[String] = None,
    causes: Option[Iterable[Cause]] = None,
    applicationMetrics: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics
    ] = None,
    instancesHealth: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.InstanceHealthSummary
    ] = None,
    refreshedAt: Option[RefreshedAt] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.elasticbeanstalk.model.DescribeEnvironmentHealthResponse = {
    import DescribeEnvironmentHealthResponse.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticbeanstalk.model.DescribeEnvironmentHealthResponse
      .builder()
      .optionallyWith(environmentName.map(value => value: java.lang.String))(
        _.environmentName
      )
      .optionallyWith(healthStatus.map(value => value: java.lang.String))(
        _.healthStatus
      )
      .optionallyWith(status.map(value => value.unwrap))(_.status)
      .optionallyWith(color.map(value => value: java.lang.String))(_.color)
      .optionallyWith(
        causes.map(value =>
          value.map { item =>
            item: java.lang.String
          }.asJavaCollection
        )
      )(_.causes)
      .optionallyWith(applicationMetrics.map(value => value.buildAwsValue()))(
        _.applicationMetrics
      )
      .optionallyWith(instancesHealth.map(value => value.buildAwsValue()))(
        _.instancesHealth
      )
      .optionallyWith(refreshedAt.map(value => value: Instant))(_.refreshedAt)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.elasticbeanstalk.model.DescribeEnvironmentHealthResponse.ReadOnly =
    io.github.vigoo.zioaws.elasticbeanstalk.model.DescribeEnvironmentHealthResponse
      .wrap(buildAwsValue())
}
object DescribeEnvironmentHealthResponse {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.elasticbeanstalk.model.DescribeEnvironmentHealthResponse
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.elasticbeanstalk.model.DescribeEnvironmentHealthResponse =
      io.github.vigoo.zioaws.elasticbeanstalk.model
        .DescribeEnvironmentHealthResponse(
          environmentNameValue.map(value => value),
          healthStatusValue.map(value => value),
          statusValue.map(value => value),
          colorValue.map(value => value),
          causesValue.map(value => value),
          applicationMetricsValue.map(value => value.editable),
          instancesHealthValue.map(value => value.editable),
          refreshedAtValue.map(value => value)
        )
    def environmentNameValue: Option[EnvironmentName]
    def healthStatusValue: Option[String]
    def statusValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.EnvironmentHealth
    ]
    def colorValue: Option[String]
    def causesValue: Option[List[Cause]]
    def applicationMetricsValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics.ReadOnly
    ]
    def instancesHealthValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.InstanceHealthSummary.ReadOnly
    ]
    def refreshedAtValue: Option[RefreshedAt]
    def environmentName: ZIO[Any, AwsError, EnvironmentName] =
      AwsError.unwrapOptionField("environmentName", environmentNameValue)
    def healthStatus: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("healthStatus", healthStatusValue)
    def status: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.EnvironmentHealth
    ] = AwsError.unwrapOptionField("status", statusValue)
    def color: ZIO[Any, AwsError, String] =
      AwsError.unwrapOptionField("color", colorValue)
    def causes: ZIO[Any, AwsError, List[Cause]] =
      AwsError.unwrapOptionField("causes", causesValue)
    def applicationMetrics: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.ApplicationMetrics.ReadOnly
    ] =
      AwsError.unwrapOptionField("applicationMetrics", applicationMetricsValue)
    def instancesHealth: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.InstanceHealthSummary.ReadOnly
    ] = AwsError.unwrapOptionField("instancesHealth", instancesHealthValue)
    def refreshedAt: ZIO[Any, AwsError, RefreshedAt] =
      AwsError.unwrapOptionField("refreshedAt", refreshedAtValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.DescribeEnvironmentHealthResponse
  ) extends io.github.vigoo.zioaws.elasticbeanstalk.model.DescribeEnvironmentHealthResponse.ReadOnly {
    override def environmentNameValue: Option[EnvironmentName] =
      scala.Option(impl.environmentName()).map(value => value: EnvironmentName)
    override def healthStatusValue: Option[String] =
      scala.Option(impl.healthStatus()).map(value => value: String)
    override def statusValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.EnvironmentHealth
    ] = scala
      .Option(impl.status())
      .map(value =>
        io.github.vigoo.zioaws.elasticbeanstalk.model.EnvironmentHealth
          .wrap(value)
      )
    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 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 instancesHealthValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.InstanceHealthSummary.ReadOnly
    ] = scala
      .Option(impl.instancesHealth())
      .map(value =>
        io.github.vigoo.zioaws.elasticbeanstalk.model.InstanceHealthSummary
          .wrap(value)
      )
    override def refreshedAtValue: Option[RefreshedAt] =
      scala.Option(impl.refreshedAt()).map(value => value: RefreshedAt)
  }
  def wrap(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.DescribeEnvironmentHealthResponse
  ): io.github.vigoo.zioaws.elasticbeanstalk.model.DescribeEnvironmentHealthResponse.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy