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

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

package io.github.vigoo.zioaws.elasticbeanstalk.model
import java.lang.Integer
import zio.ZIO
import io.github.vigoo.zioaws.elasticbeanstalk.model.primitives.{
  ConfigurationOptionName,
  ConfigurationOptionDefaultValue,
  ConfigurationOptionPossibleValue,
  OptionRestrictionMaxLength,
  UserDefinedOption,
  OptionNamespace,
  ConfigurationOptionSeverity,
  OptionRestrictionMinValue,
  OptionRestrictionMaxValue
}
import io.github.vigoo.zioaws.core.{AwsError, BuilderHelper}
import scala.jdk.CollectionConverters._
final case class ConfigurationOptionDescription(
    namespace: Option[OptionNamespace] = None,
    name: Option[ConfigurationOptionName] = None,
    defaultValue: Option[ConfigurationOptionDefaultValue] = None,
    changeSeverity: Option[ConfigurationOptionSeverity] = None,
    userDefined: Option[UserDefinedOption] = None,
    valueType: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionValueType
    ] = None,
    valueOptions: Option[Iterable[ConfigurationOptionPossibleValue]] = None,
    minValue: Option[OptionRestrictionMinValue] = None,
    maxValue: Option[OptionRestrictionMaxValue] = None,
    maxLength: Option[OptionRestrictionMaxLength] = None,
    regex: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.OptionRestrictionRegex
    ] = None
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.elasticbeanstalk.model.ConfigurationOptionDescription = {
    import ConfigurationOptionDescription.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticbeanstalk.model.ConfigurationOptionDescription
      .builder()
      .optionallyWith(namespace.map(value => value: java.lang.String))(
        _.namespace
      )
      .optionallyWith(name.map(value => value: java.lang.String))(_.name)
      .optionallyWith(defaultValue.map(value => value: java.lang.String))(
        _.defaultValue
      )
      .optionallyWith(changeSeverity.map(value => value: java.lang.String))(
        _.changeSeverity
      )
      .optionallyWith(userDefined.map(value => value: java.lang.Boolean))(
        _.userDefined
      )
      .optionallyWith(valueType.map(value => value.unwrap))(_.valueType)
      .optionallyWith(
        valueOptions.map(value =>
          value.map { item =>
            item: java.lang.String
          }.asJavaCollection
        )
      )(_.valueOptions)
      .optionallyWith(minValue.map(value => value: Integer))(_.minValue)
      .optionallyWith(maxValue.map(value => value: Integer))(_.maxValue)
      .optionallyWith(maxLength.map(value => value: Integer))(_.maxLength)
      .optionallyWith(regex.map(value => value.buildAwsValue()))(_.regex)
      .build()
  }
  def asReadOnly
      : io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionDescription.ReadOnly =
    io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionDescription
      .wrap(buildAwsValue())
}
object ConfigurationOptionDescription {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.elasticbeanstalk.model.ConfigurationOptionDescription
  ] = BuilderHelper.apply
  trait ReadOnly {
    def editable
        : io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionDescription =
      io.github.vigoo.zioaws.elasticbeanstalk.model
        .ConfigurationOptionDescription(
          namespaceValue.map(value => value),
          nameValue.map(value => value),
          defaultValueValue.map(value => value),
          changeSeverityValue.map(value => value),
          userDefinedValue.map(value => value),
          valueTypeValue.map(value => value),
          valueOptionsValue.map(value => value),
          minValueValue.map(value => value),
          maxValueValue.map(value => value),
          maxLengthValue.map(value => value),
          regexValue.map(value => value.editable)
        )
    def namespaceValue: Option[OptionNamespace]
    def nameValue: Option[ConfigurationOptionName]
    def defaultValueValue: Option[ConfigurationOptionDefaultValue]
    def changeSeverityValue: Option[ConfigurationOptionSeverity]
    def userDefinedValue: Option[UserDefinedOption]
    def valueTypeValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionValueType
    ]
    def valueOptionsValue: Option[List[ConfigurationOptionPossibleValue]]
    def minValueValue: Option[OptionRestrictionMinValue]
    def maxValueValue: Option[OptionRestrictionMaxValue]
    def maxLengthValue: Option[OptionRestrictionMaxLength]
    def regexValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.OptionRestrictionRegex.ReadOnly
    ]
    def namespace: ZIO[Any, AwsError, OptionNamespace] =
      AwsError.unwrapOptionField("namespace", namespaceValue)
    def name: ZIO[Any, AwsError, ConfigurationOptionName] =
      AwsError.unwrapOptionField("name", nameValue)
    def defaultValue: ZIO[Any, AwsError, ConfigurationOptionDefaultValue] =
      AwsError.unwrapOptionField("defaultValue", defaultValueValue)
    def changeSeverity: ZIO[Any, AwsError, ConfigurationOptionSeverity] =
      AwsError.unwrapOptionField("changeSeverity", changeSeverityValue)
    def userDefined: ZIO[Any, AwsError, UserDefinedOption] =
      AwsError.unwrapOptionField("userDefined", userDefinedValue)
    def valueType: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionValueType
    ] = AwsError.unwrapOptionField("valueType", valueTypeValue)
    def valueOptions
        : ZIO[Any, AwsError, List[ConfigurationOptionPossibleValue]] =
      AwsError.unwrapOptionField("valueOptions", valueOptionsValue)
    def minValue: ZIO[Any, AwsError, OptionRestrictionMinValue] =
      AwsError.unwrapOptionField("minValue", minValueValue)
    def maxValue: ZIO[Any, AwsError, OptionRestrictionMaxValue] =
      AwsError.unwrapOptionField("maxValue", maxValueValue)
    def maxLength: ZIO[Any, AwsError, OptionRestrictionMaxLength] =
      AwsError.unwrapOptionField("maxLength", maxLengthValue)
    def regex: ZIO[
      Any,
      AwsError,
      io.github.vigoo.zioaws.elasticbeanstalk.model.OptionRestrictionRegex.ReadOnly
    ] = AwsError.unwrapOptionField("regex", regexValue)
  }
  private class Wrapper(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.ConfigurationOptionDescription
  ) extends io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionDescription.ReadOnly {
    override def namespaceValue: Option[OptionNamespace] =
      scala.Option(impl.namespace()).map(value => value: OptionNamespace)
    override def nameValue: Option[ConfigurationOptionName] =
      scala.Option(impl.name()).map(value => value: ConfigurationOptionName)
    override def defaultValueValue: Option[ConfigurationOptionDefaultValue] =
      scala
        .Option(impl.defaultValue())
        .map(value => value: ConfigurationOptionDefaultValue)
    override def changeSeverityValue: Option[ConfigurationOptionSeverity] =
      scala
        .Option(impl.changeSeverity())
        .map(value => value: ConfigurationOptionSeverity)
    override def userDefinedValue: Option[UserDefinedOption] =
      scala.Option(impl.userDefined()).map(value => value: UserDefinedOption)
    override def valueTypeValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionValueType
    ] = scala
      .Option(impl.valueType())
      .map(value =>
        io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionValueType
          .wrap(value)
      )
    override def valueOptionsValue
        : Option[List[ConfigurationOptionPossibleValue]] = scala
      .Option(impl.valueOptions())
      .map(value =>
        value.asScala.map { item =>
          item: ConfigurationOptionPossibleValue
        }.toList
      )
    override def minValueValue: Option[OptionRestrictionMinValue] = scala
      .Option(impl.minValue())
      .map(value => value: OptionRestrictionMinValue)
    override def maxValueValue: Option[OptionRestrictionMaxValue] = scala
      .Option(impl.maxValue())
      .map(value => value: OptionRestrictionMaxValue)
    override def maxLengthValue: Option[OptionRestrictionMaxLength] = scala
      .Option(impl.maxLength())
      .map(value => value: OptionRestrictionMaxLength)
    override def regexValue: Option[
      io.github.vigoo.zioaws.elasticbeanstalk.model.OptionRestrictionRegex.ReadOnly
    ] = scala
      .Option(impl.regex())
      .map(value =>
        io.github.vigoo.zioaws.elasticbeanstalk.model.OptionRestrictionRegex
          .wrap(value)
      )
  }
  def wrap(
      impl: software.amazon.awssdk.services.elasticbeanstalk.model.ConfigurationOptionDescription
  ): io.github.vigoo.zioaws.elasticbeanstalk.model.ConfigurationOptionDescription.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy