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

zio.aws.elasticinference.model.ElasticInferenceAccelerator.scala Maven / Gradle / Ivy

The newest version!
package zio.aws.elasticinference.model
import zio.aws.elasticinference.model.primitives.{
  ResourceArn,
  AvailabilityZone,
  AcceleratorId,
  AcceleratorTypeName
}
import zio.ZIO
import zio.aws.core.{AwsError, BuilderHelper}
import zio.prelude.data.Optional
import scala.jdk.CollectionConverters._
final case class ElasticInferenceAccelerator(
    acceleratorHealth: Optional[
      zio.aws.elasticinference.model.ElasticInferenceAcceleratorHealth
    ] = Optional.Absent,
    acceleratorType: Optional[AcceleratorTypeName] = Optional.Absent,
    acceleratorId: Optional[AcceleratorId] = Optional.Absent,
    availabilityZone: Optional[AvailabilityZone] = Optional.Absent,
    attachedResource: Optional[ResourceArn] = Optional.Absent
) {
  def buildAwsValue()
      : software.amazon.awssdk.services.elasticinference.model.ElasticInferenceAccelerator = {
    import ElasticInferenceAccelerator.zioAwsBuilderHelper.BuilderOps
    software.amazon.awssdk.services.elasticinference.model.ElasticInferenceAccelerator
      .builder()
      .optionallyWith(acceleratorHealth.map(value => value.buildAwsValue()))(
        _.acceleratorHealth
      )
      .optionallyWith(
        acceleratorType.map(value =>
          AcceleratorTypeName.unwrap(value): java.lang.String
        )
      )(_.acceleratorType)
      .optionallyWith(
        acceleratorId.map(value =>
          AcceleratorId.unwrap(value): java.lang.String
        )
      )(_.acceleratorId)
      .optionallyWith(
        availabilityZone.map(value =>
          AvailabilityZone.unwrap(value): java.lang.String
        )
      )(_.availabilityZone)
      .optionallyWith(
        attachedResource.map(value =>
          ResourceArn.unwrap(value): java.lang.String
        )
      )(_.attachedResource)
      .build()
  }
  def asReadOnly
      : zio.aws.elasticinference.model.ElasticInferenceAccelerator.ReadOnly =
    zio.aws.elasticinference.model.ElasticInferenceAccelerator
      .wrap(buildAwsValue())
}
object ElasticInferenceAccelerator {
  private lazy val zioAwsBuilderHelper: BuilderHelper[
    software.amazon.awssdk.services.elasticinference.model.ElasticInferenceAccelerator
  ] = BuilderHelper.apply
  trait ReadOnly {
    def asEditable: zio.aws.elasticinference.model.ElasticInferenceAccelerator =
      zio.aws.elasticinference.model.ElasticInferenceAccelerator(
        acceleratorHealth.map(value => value.asEditable),
        acceleratorType.map(value => value),
        acceleratorId.map(value => value),
        availabilityZone.map(value => value),
        attachedResource.map(value => value)
      )
    def acceleratorHealth: Optional[
      zio.aws.elasticinference.model.ElasticInferenceAcceleratorHealth.ReadOnly
    ]
    def acceleratorType: Optional[AcceleratorTypeName]
    def acceleratorId: Optional[AcceleratorId]
    def availabilityZone: Optional[AvailabilityZone]
    def attachedResource: Optional[ResourceArn]
    def getAcceleratorHealth: ZIO[
      Any,
      AwsError,
      zio.aws.elasticinference.model.ElasticInferenceAcceleratorHealth.ReadOnly
    ] = AwsError.unwrapOptionField("acceleratorHealth", acceleratorHealth)
    def getAcceleratorType: ZIO[Any, AwsError, AcceleratorTypeName] =
      AwsError.unwrapOptionField("acceleratorType", acceleratorType)
    def getAcceleratorId: ZIO[Any, AwsError, AcceleratorId] =
      AwsError.unwrapOptionField("acceleratorId", acceleratorId)
    def getAvailabilityZone: ZIO[Any, AwsError, AvailabilityZone] =
      AwsError.unwrapOptionField("availabilityZone", availabilityZone)
    def getAttachedResource: ZIO[Any, AwsError, ResourceArn] =
      AwsError.unwrapOptionField("attachedResource", attachedResource)
  }
  private final class Wrapper(
      impl: software.amazon.awssdk.services.elasticinference.model.ElasticInferenceAccelerator
  ) extends zio.aws.elasticinference.model.ElasticInferenceAccelerator.ReadOnly {
    override val acceleratorHealth: Optional[
      zio.aws.elasticinference.model.ElasticInferenceAcceleratorHealth.ReadOnly
    ] = zio.aws.core.internal
      .optionalFromNullable(impl.acceleratorHealth())
      .map(value =>
        zio.aws.elasticinference.model.ElasticInferenceAcceleratorHealth
          .wrap(value)
      )
    override val acceleratorType: Optional[AcceleratorTypeName] =
      zio.aws.core.internal
        .optionalFromNullable(impl.acceleratorType())
        .map(value =>
          zio.aws.elasticinference.model.primitives.AcceleratorTypeName(value)
        )
    override val acceleratorId: Optional[AcceleratorId] = zio.aws.core.internal
      .optionalFromNullable(impl.acceleratorId())
      .map(value =>
        zio.aws.elasticinference.model.primitives.AcceleratorId(value)
      )
    override val availabilityZone: Optional[AvailabilityZone] =
      zio.aws.core.internal
        .optionalFromNullable(impl.availabilityZone())
        .map(value =>
          zio.aws.elasticinference.model.primitives.AvailabilityZone(value)
        )
    override val attachedResource: Optional[ResourceArn] = zio.aws.core.internal
      .optionalFromNullable(impl.attachedResource())
      .map(value =>
        zio.aws.elasticinference.model.primitives.ResourceArn(value)
      )
  }
  def wrap(
      impl: software.amazon.awssdk.services.elasticinference.model.ElasticInferenceAccelerator
  ): zio.aws.elasticinference.model.ElasticInferenceAccelerator.ReadOnly =
    new Wrapper(impl)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy