
io.github.vigoo.zioaws.lambda.model.InvokeRequest.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.lambda.model
import scala.jdk.CollectionConverters.*
import java.time.Instant
import zio.{ Chunk, ZIO }
import software.amazon.awssdk.core.SdkBytes
final case class InvokeRequest(functionName: primitives.NamespacedFunctionName, invocationType: scala.Option[InvocationType] = None, logType: scala.Option[LogType] = None, clientContext: scala.Option[String] = None, payload: scala.Option[primitives.Blob] = None, qualifier: scala.Option[primitives.Qualifier] = None) {
def buildAwsValue(): software.amazon.awssdk.services.lambda.model.InvokeRequest = {
import InvokeRequest.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.lambda.model.InvokeRequest.builder().functionName(functionName: java.lang.String).optionallyWith(invocationType.map(value => value.unwrap))(_.invocationType).optionallyWith(logType.map(value => value.unwrap))(_.logType).optionallyWith(clientContext.map(value => value: java.lang.String))(_.clientContext).optionallyWith(payload.map(value => SdkBytes.fromByteArrayUnsafe(value.toArray[Byte])))(_.payload).optionallyWith(qualifier.map(value => value: java.lang.String))(_.qualifier).build()
}
def asReadOnly: InvokeRequest.ReadOnly = InvokeRequest.wrap(buildAwsValue())
}
object InvokeRequest {
private lazy val zioAwsBuilderHelper: io.github.vigoo.zioaws.core.BuilderHelper[software.amazon.awssdk.services.lambda.model.InvokeRequest] = io.github.vigoo.zioaws.core.BuilderHelper.apply
trait ReadOnly {
def editable: InvokeRequest = InvokeRequest(functionNameValue, invocationTypeValue.map(value => value), logTypeValue.map(value => value), clientContextValue.map(value => value), payloadValue.map(value => value), qualifierValue.map(value => value))
def functionNameValue: primitives.NamespacedFunctionName
def invocationTypeValue: scala.Option[InvocationType]
def logTypeValue: scala.Option[LogType]
def clientContextValue: scala.Option[String]
def payloadValue: scala.Option[primitives.Blob]
def qualifierValue: scala.Option[primitives.Qualifier]
def functionName: ZIO[Any, Nothing, primitives.NamespacedFunctionName] = ZIO.succeed(functionNameValue)
def invocationType: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, InvocationType] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("invocationType", invocationTypeValue)
def logType: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, LogType] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("logType", logTypeValue)
def clientContext: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, String] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("clientContext", clientContextValue)
def payload: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Blob] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("payload", payloadValue)
def qualifier: ZIO[Any, io.github.vigoo.zioaws.core.AwsError, primitives.Qualifier] = io.github.vigoo.zioaws.core.AwsError.unwrapOptionField("qualifier", qualifierValue)
}
private class Wrapper(impl: software.amazon.awssdk.services.lambda.model.InvokeRequest) extends InvokeRequest.ReadOnly {
override def functionNameValue: primitives.NamespacedFunctionName = impl.functionName(): primitives.NamespacedFunctionName
override def invocationTypeValue: scala.Option[InvocationType] = scala.Option(impl.invocationType()).map(value => InvocationType.wrap(value))
override def logTypeValue: scala.Option[LogType] = scala.Option(impl.logType()).map(value => LogType.wrap(value))
override def clientContextValue: scala.Option[String] = scala.Option(impl.clientContext()).map(value => value: String)
override def payloadValue: scala.Option[primitives.Blob] = scala.Option(impl.payload()).map(value => Chunk.fromArray(value.asByteArrayUnsafe()))
override def qualifierValue: scala.Option[primitives.Qualifier] = scala.Option(impl.qualifier()).map(value => value: primitives.Qualifier)
}
def wrap(impl: software.amazon.awssdk.services.lambda.model.InvokeRequest): ReadOnly = new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy