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

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

package io.github.vigoo.zioaws.elasticbeanstalk.model
import zio.ZIO
import io.github.vigoo.zioaws.elasticbeanstalk.model.primitives.{
  PlatformName,
  PlatformCategory,
  OperatingSystemVersion,
  SolutionStackName,
  SupportedTier,
  PlatformArn,
  UpdateDate,
  Description,
  PlatformLifecycleState,
  SupportedAddon,
  PlatformBranchLifecycleState,
  Maintainer,
  PlatformVersion,
  PlatformOwner,
  OperatingSystemName,
  BranchName,
  CreationDate
}
import java.time.Instant
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class PlatformDescription(
    platformArn: Option[PlatformArn] = None,
    platformOwner: Option[PlatformOwner] = None,
    platformName: Option[PlatformName] = None,
    platformVersion: Option[PlatformVersion] = None,
    solutionStackName: Option[SolutionStackName] = None,
    platformStatus: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformStatus
    ] = None,
    dateCreated: Option[CreationDate] = None,
    dateUpdated: Option[UpdateDate] = None,
    platformCategory: Option[PlatformCategory] = None,
    description: Option[Description] = None,
    maintainer: Option[Maintainer] = None,
    operatingSystemName: Option[OperatingSystemName] = None,
    operatingSystemVersion: Option[OperatingSystemVersion] = None,
    programmingLanguages: Option[Iterable[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformProgrammingLanguage
    ]] = None,
    frameworks: Option[
      Iterable[io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformFramework]
    ] = None,
    customAmiList: Option[
      Iterable[io.github.vigoo.zioaws.elasticbeanstalk.model.CustomAmi]
    ] = None,
    supportedTierList: Option[Iterable[SupportedTier]] = None,
    supportedAddonList: Option[Iterable[SupportedAddon]] = None,
    platformLifecycleState: Option[PlatformLifecycleState] = None,
    platformBranchName: Option[BranchName] = None,
    platformBranchLifecycleState: Option[PlatformBranchLifecycleState] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.elasticbeanstalk.model.PlatformDescription = {
    import PlatformDescription.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticbeanstalk.model.PlatformDescription
      .builder()
      .optionallyWith(platformArn.map(value => value: java.lang.String))(
        _.platformArn
      )
      .optionallyWith(platformOwner.map(value => value: java.lang.String))(
        _.platformOwner
      )
      .optionallyWith(platformName.map(value => value: java.lang.String))(
        _.platformName
      )
      .optionallyWith(platformVersion.map(value => value: java.lang.String))(
        _.platformVersion
      )
      .optionallyWith(solutionStackName.map(value => value: java.lang.String))(
        _.solutionStackName
      )
      .optionallyWith(platformStatus.map(value => value.unwrap))(
        _.platformStatus
      )
      .optionallyWith(dateCreated.map(value => value: Instant))(_.dateCreated)
      .optionallyWith(dateUpdated.map(value => value: Instant))(_.dateUpdated)
      .optionallyWith(platformCategory.map(value => value: java.lang.String))(
        _.platformCategory
      )
      .optionallyWith(description.map(value => value: java.lang.String))(
        _.description
      )
      .optionallyWith(maintainer.map(value => value: java.lang.String))(
        _.maintainer
      )
      .optionallyWith(
        operatingSystemName.map(value => value: java.lang.String)
      )(_.operatingSystemName)
      .optionallyWith(
        operatingSystemVersion.map(value => value: java.lang.String)
      )(_.operatingSystemVersion)
      .optionallyWith(
        programmingLanguages.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.programmingLanguages)
      .optionallyWith(
        frameworks.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.frameworks)
      .optionallyWith(
        customAmiList.map(value =>
          value.map { item =>
            item.buildAwsValue()
          }.asJavaCollection
        )
      )(_.customAmiList)
      .optionallyWith(
        supportedTierList.map(value =>
          value.map { item =>
            item: java.lang.String
          }.asJavaCollection
        )
      )(_.supportedTierList)
      .optionallyWith(
        supportedAddonList.map(value =>
          value.map { item =>
            item: java.lang.String
          }.asJavaCollection
        )
      )(_.supportedAddonList)
      .optionallyWith(
        platformLifecycleState.map(value => value: java.lang.String)
      )(_.platformLifecycleState)
      .optionallyWith(platformBranchName.map(value => value: java.lang.String))(
        _.platformBranchName
      )
      .optionallyWith(
        platformBranchLifecycleState.map(value => value: java.lang.String)
      )(_.platformBranchLifecycleState)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformDescription.ReadOnly =
    io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformDescription
      .wrap(buildAwsValue())
}
object PlatformDescription {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.elasticbeanstalk.model.PlatformDescription
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformDescription =
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformDescription(
        platformArnValue.map(value => value),
        platformOwnerValue.map(value => value),
        platformNameValue.map(value => value),
        platformVersionValue.map(value => value),
        solutionStackNameValue.map(value => value),
        platformStatusValue.map(value => value),
        dateCreatedValue.map(value => value),
        dateUpdatedValue.map(value => value),
        platformCategoryValue.map(value => value),
        descriptionValue.map(value => value),
        maintainerValue.map(value => value),
        operatingSystemNameValue.map(value => value),
        operatingSystemVersionValue.map(value => value),
        programmingLanguagesValue.map(value =>
          value.map { item =>
            item.editable
          }
        ),
        frameworksValue.map(value =>
          value.map { item =>
            item.editable
          }
        ),
        customAmiListValue.map(value =>
          value.map { item =>
            item.editable
          }
        ),
        supportedTierListValue.map(value => value),
        supportedAddonListValue.map(value => value),
        platformLifecycleStateValue.map(value => value),
        platformBranchNameValue.map(value => value),
        platformBranchLifecycleStateValue.map(value => value)
      )
    def platformArnValue: Option[PlatformArn]
    def platformOwnerValue: Option[PlatformOwner]
    def platformNameValue: Option[PlatformName]
    def platformVersionValue: Option[PlatformVersion]
    def solutionStackNameValue: Option[SolutionStackName]
    def platformStatusValue
        : Option[io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformStatus]
    def dateCreatedValue: Option[CreationDate]
    def dateUpdatedValue: Option[UpdateDate]
    def platformCategoryValue: Option[PlatformCategory]
    def descriptionValue: Option[Description]
    def maintainerValue: Option[Maintainer]
    def operatingSystemNameValue: Option[OperatingSystemName]
    def operatingSystemVersionValue: Option[OperatingSystemVersion]
    def programmingLanguagesValue: Option[List[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformProgrammingLanguage.ReadOnly
    ]]
    def frameworksValue: Option[List[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformFramework.ReadOnly
    ]]
    def customAmiListValue: Option[
      List[io.github.vigoo.zioaws.elasticbeanstalk.model.CustomAmi.ReadOnly]
    ]
    def supportedTierListValue: Option[List[SupportedTier]]
    def supportedAddonListValue: Option[List[SupportedAddon]]
    def platformLifecycleStateValue: Option[PlatformLifecycleState]
    def platformBranchNameValue: Option[BranchName]
    def platformBranchLifecycleStateValue: Option[PlatformBranchLifecycleState]
    def platformArn: ZIO[Any, AwsError, PlatformArn] =
      AwsError.unwrapOptionField("platformArn", platformArnValue)
    def platformOwner: ZIO[Any, AwsError, PlatformOwner] =
      AwsError.unwrapOptionField("platformOwner", platformOwnerValue)
    def platformName: ZIO[Any, AwsError, PlatformName] =
      AwsError.unwrapOptionField("platformName", platformNameValue)
    def platformVersion: ZIO[Any, AwsError, PlatformVersion] =
      AwsError.unwrapOptionField("platformVersion", platformVersionValue)
    def solutionStackName: ZIO[Any, AwsError, SolutionStackName] =
      AwsError.unwrapOptionField("solutionStackName", solutionStackNameValue)
    def platformStatus: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformStatus
    ] = AwsError.unwrapOptionField("platformStatus", platformStatusValue)
    def dateCreated: ZIO[Any, AwsError, CreationDate] =
      AwsError.unwrapOptionField("dateCreated", dateCreatedValue)
    def dateUpdated: ZIO[Any, AwsError, UpdateDate] =
      AwsError.unwrapOptionField("dateUpdated", dateUpdatedValue)
    def platformCategory: ZIO[Any, AwsError, PlatformCategory] =
      AwsError.unwrapOptionField("platformCategory", platformCategoryValue)
    def description: ZIO[Any, AwsError, Description] =
      AwsError.unwrapOptionField("description", descriptionValue)
    def maintainer: ZIO[Any, AwsError, Maintainer] =
      AwsError.unwrapOptionField("maintainer", maintainerValue)
    def operatingSystemName: ZIO[Any, AwsError, OperatingSystemName] = AwsError
      .unwrapOptionField("operatingSystemName", operatingSystemNameValue)
    def operatingSystemVersion: ZIO[Any, AwsError, OperatingSystemVersion] =
      AwsError.unwrapOptionField(
        "operatingSystemVersion",
        operatingSystemVersionValue
      )
    def programmingLanguages: ZIO[Any, AwsError, List[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformProgrammingLanguage.ReadOnly
    ]] = AwsError.unwrapOptionField(
      "programmingLanguages",
      programmingLanguagesValue
    )
    def frameworks: ZIO[Any, AwsError, List[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformFramework.ReadOnly
    ]] = AwsError.unwrapOptionField("frameworks", frameworksValue)
    def customAmiList: ZIO[Any, AwsError, List[
      io.github.vigoo.zioaws.elasticbeanstalk.model.CustomAmi.ReadOnly
    ]] = AwsError.unwrapOptionField("customAmiList", customAmiListValue)
    def supportedTierList: ZIO[Any, AwsError, List[SupportedTier]] =
      AwsError.unwrapOptionField("supportedTierList", supportedTierListValue)
    def supportedAddonList: ZIO[Any, AwsError, List[SupportedAddon]] =
      AwsError.unwrapOptionField("supportedAddonList", supportedAddonListValue)
    def platformLifecycleState: ZIO[Any, AwsError, PlatformLifecycleState] =
      AwsError.unwrapOptionField(
        "platformLifecycleState",
        platformLifecycleStateValue
      )
    def platformBranchName: ZIO[Any, AwsError, BranchName] =
      AwsError.unwrapOptionField("platformBranchName", platformBranchNameValue)
    def platformBranchLifecycleState
        : ZIO[Any, AwsError, PlatformBranchLifecycleState] =
      AwsError.unwrapOptionField(
        "platformBranchLifecycleState",
        platformBranchLifecycleStateValue
      )
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.PlatformDescription
  ) extends io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformDescription.ReadOnly {
    override def platformArnValue: Option[PlatformArn] =
      scala.Option(impl.platformArn()).map(value => value: PlatformArn)
    override def platformOwnerValue: Option[PlatformOwner] =
      scala.Option(impl.platformOwner()).map(value => value: PlatformOwner)
    override def platformNameValue: Option[PlatformName] =
      scala.Option(impl.platformName()).map(value => value: PlatformName)
    override def platformVersionValue: Option[PlatformVersion] =
      scala.Option(impl.platformVersion()).map(value => value: PlatformVersion)
    override def solutionStackNameValue: Option[SolutionStackName] = scala
      .Option(impl.solutionStackName())
      .map(value => value: SolutionStackName)
    override def platformStatusValue
        : Option[io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformStatus] =
      scala
        .Option(impl.platformStatus())
        .map(value =>
          io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformStatus
            .wrap(value)
        )
    override def dateCreatedValue: Option[CreationDate] =
      scala.Option(impl.dateCreated()).map(value => value: CreationDate)
    override def dateUpdatedValue: Option[UpdateDate] =
      scala.Option(impl.dateUpdated()).map(value => value: UpdateDate)
    override def platformCategoryValue: Option[PlatformCategory] = scala
      .Option(impl.platformCategory())
      .map(value => value: PlatformCategory)
    override def descriptionValue: Option[Description] =
      scala.Option(impl.description()).map(value => value: Description)
    override def maintainerValue: Option[Maintainer] =
      scala.Option(impl.maintainer()).map(value => value: Maintainer)
    override def operatingSystemNameValue: Option[OperatingSystemName] = scala
      .Option(impl.operatingSystemName())
      .map(value => value: OperatingSystemName)
    override def operatingSystemVersionValue: Option[OperatingSystemVersion] =
      scala
        .Option(impl.operatingSystemVersion())
        .map(value => value: OperatingSystemVersion)
    override def programmingLanguagesValue: Option[List[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformProgrammingLanguage.ReadOnly
    ]] = scala
      .Option(impl.programmingLanguages())
      .map(value =>
        value.asScala.map { item =>
          io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformProgrammingLanguage
            .wrap(item)
        }.toList
      )
    override def frameworksValue: Option[List[
      io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformFramework.ReadOnly
    ]] = scala
      .Option(impl.frameworks())
      .map(value =>
        value.asScala.map { item =>
          io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformFramework
            .wrap(item)
        }.toList
      )
    override def customAmiListValue: Option[
      List[io.github.vigoo.zioaws.elasticbeanstalk.model.CustomAmi.ReadOnly]
    ] = scala
      .Option(impl.customAmiList())
      .map(value =>
        value.asScala.map { item =>
          io.github.vigoo.zioaws.elasticbeanstalk.model.CustomAmi.wrap(item)
        }.toList
      )
    override def supportedTierListValue: Option[List[SupportedTier]] = scala
      .Option(impl.supportedTierList())
      .map(value =>
        value.asScala.map { item =>
          item: SupportedTier
        }.toList
      )
    override def supportedAddonListValue: Option[List[SupportedAddon]] = scala
      .Option(impl.supportedAddonList())
      .map(value =>
        value.asScala.map { item =>
          item: SupportedAddon
        }.toList
      )
    override def platformLifecycleStateValue: Option[PlatformLifecycleState] =
      scala
        .Option(impl.platformLifecycleState())
        .map(value => value: PlatformLifecycleState)
    override def platformBranchNameValue: Option[BranchName] =
      scala.Option(impl.platformBranchName()).map(value => value: BranchName)
    override def platformBranchLifecycleStateValue
        : Option[PlatformBranchLifecycleState] = scala
      .Option(impl.platformBranchLifecycleState())
      .map(value => value: PlatformBranchLifecycleState)
  }
  def wrap(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.PlatformDescription
  ): io.github.vigoo.zioaws.elasticbeanstalk.model.PlatformDescription.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy