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

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

package io.github.vigoo.zioaws.elasticbeanstalk.model
import zio.ZIO
import io.github.vigoo.zioaws.elasticbeanstalk.model.primitives.{
  ConfigurationTemplateName,
  ApplicationName,
  EnvironmentName,
  EventDate,
  EventMessage,
  VersionLabel,
  PlatformArn,
  RequestId
}
import java.time.Instant
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class EventDescription(
    eventDate: Option[EventDate] = None,
    message: Option[EventMessage] = None,
    applicationName: Option[ApplicationName] = None,
    versionLabel: Option[VersionLabel] = None,
    templateName: Option[ConfigurationTemplateName] = None,
    environmentName: Option[EnvironmentName] = None,
    platformArn: Option[PlatformArn] = None,
    requestId: Option[RequestId] = None,
    severity: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.EventSeverity
    ] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.elasticbeanstalk.model.EventDescription = {
    import EventDescription.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticbeanstalk.model.EventDescription
      .builder()
      .optionallyWith(eventDate.map(value => value: Instant))(_.eventDate)
      .optionallyWith(message.map(value => value: java.lang.String))(_.message)
      .optionallyWith(applicationName.map(value => value: java.lang.String))(
        _.applicationName
      )
      .optionallyWith(versionLabel.map(value => value: java.lang.String))(
        _.versionLabel
      )
      .optionallyWith(templateName.map(value => value: java.lang.String))(
        _.templateName
      )
      .optionallyWith(environmentName.map(value => value: java.lang.String))(
        _.environmentName
      )
      .optionallyWith(platformArn.map(value => value: java.lang.String))(
        _.platformArn
      )
      .optionallyWith(requestId.map(value => value: java.lang.String))(
        _.requestId
      )
      .optionallyWith(severity.map(value => value.unwrap))(_.severity)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.elasticbeanstalk.model.EventDescription.ReadOnly =
    io.github.vigoo.zioaws.elasticbeanstalk.model.EventDescription
      .wrap(buildAwsValue())
}
object EventDescription {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.elasticbeanstalk.model.EventDescription
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.elasticbeanstalk.model.EventDescription =
      io.github.vigoo.zioaws.elasticbeanstalk.model.EventDescription(
        eventDateValue.map(value => value),
        messageValue.map(value => value),
        applicationNameValue.map(value => value),
        versionLabelValue.map(value => value),
        templateNameValue.map(value => value),
        environmentNameValue.map(value => value),
        platformArnValue.map(value => value),
        requestIdValue.map(value => value),
        severityValue.map(value => value)
      )
    def eventDateValue: Option[EventDate]
    def messageValue: Option[EventMessage]
    def applicationNameValue: Option[ApplicationName]
    def versionLabelValue: Option[VersionLabel]
    def templateNameValue: Option[ConfigurationTemplateName]
    def environmentNameValue: Option[EnvironmentName]
    def platformArnValue: Option[PlatformArn]
    def requestIdValue: Option[RequestId]
    def severityValue
        : Option[io.github.vigoo.zioaws.elasticbeanstalk.model.EventSeverity]
    def eventDate: ZIO[Any, AwsError, EventDate] =
      AwsError.unwrapOptionField("eventDate", eventDateValue)
    def message: ZIO[Any, AwsError, EventMessage] =
      AwsError.unwrapOptionField("message", messageValue)
    def applicationName: ZIO[Any, AwsError, ApplicationName] =
      AwsError.unwrapOptionField("applicationName", applicationNameValue)
    def versionLabel: ZIO[Any, AwsError, VersionLabel] =
      AwsError.unwrapOptionField("versionLabel", versionLabelValue)
    def templateName: ZIO[Any, AwsError, ConfigurationTemplateName] =
      AwsError.unwrapOptionField("templateName", templateNameValue)
    def environmentName: ZIO[Any, AwsError, EnvironmentName] =
      AwsError.unwrapOptionField("environmentName", environmentNameValue)
    def platformArn: ZIO[Any, AwsError, PlatformArn] =
      AwsError.unwrapOptionField("platformArn", platformArnValue)
    def requestId: ZIO[Any, AwsError, RequestId] =
      AwsError.unwrapOptionField("requestId", requestIdValue)
    def severity: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.EventSeverity
    ] = AwsError.unwrapOptionField("severity", severityValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.EventDescription
  ) extends io.github.vigoo.zioaws.elasticbeanstalk.model.EventDescription.ReadOnly {
    override def eventDateValue: Option[EventDate] =
      scala.Option(impl.eventDate()).map(value => value: EventDate)
    override def messageValue: Option[EventMessage] =
      scala.Option(impl.message()).map(value => value: EventMessage)
    override def applicationNameValue: Option[ApplicationName] =
      scala.Option(impl.applicationName()).map(value => value: ApplicationName)
    override def versionLabelValue: Option[VersionLabel] =
      scala.Option(impl.versionLabel()).map(value => value: VersionLabel)
    override def templateNameValue: Option[ConfigurationTemplateName] = scala
      .Option(impl.templateName())
      .map(value => value: ConfigurationTemplateName)
    override def environmentNameValue: Option[EnvironmentName] =
      scala.Option(impl.environmentName()).map(value => value: EnvironmentName)
    override def platformArnValue: Option[PlatformArn] =
      scala.Option(impl.platformArn()).map(value => value: PlatformArn)
    override def requestIdValue: Option[RequestId] =
      scala.Option(impl.requestId()).map(value => value: RequestId)
    override def severityValue
        : Option[io.github.vigoo.zioaws.elasticbeanstalk.model.EventSeverity] =
      scala
        .Option(impl.severity())
        .map(value =>
          io.github.vigoo.zioaws.elasticbeanstalk.model.EventSeverity
            .wrap(value)
        )
  }
  def wrap(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.EventDescription
  ): io.github.vigoo.zioaws.elasticbeanstalk.model.EventDescription.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy