
io.github.vigoo.zioaws.codepipeline.model.WebhookDefinition.scala Maven / Gradle / Ivy
package io.github.vigoo.zioaws.codepipeline.model
import zio.ZIO
import io.github.vigoo.zioaws.codepipeline.model.primitives.{
ActionName,
PipelineName,
WebhookName
}
import io.github.vigoo.zioaws.core.BuilderHelper
import scala.jdk.CollectionConverters._
final case class WebhookDefinition(
name: WebhookName,
targetPipeline: PipelineName,
targetAction: ActionName,
filters: Iterable[
io.github.vigoo.zioaws.codepipeline.model.WebhookFilterRule
],
authentication: io.github.vigoo.zioaws.codepipeline.model.WebhookAuthenticationType,
authenticationConfiguration: io.github.vigoo.zioaws.codepipeline.model.WebhookAuthConfiguration
) {
def buildAwsValue()
: software.amazon.awssdk.services.codepipeline.model.WebhookDefinition = {
import WebhookDefinition.zioAwsBuilderHelper.BuilderOps
software.amazon.awssdk.services.codepipeline.model.WebhookDefinition
.builder()
.name(name: java.lang.String)
.targetPipeline(targetPipeline: java.lang.String)
.targetAction(targetAction: java.lang.String)
.filters(filters.map { item =>
item.buildAwsValue()
}.asJavaCollection)
.authentication(authentication.unwrap)
.authenticationConfiguration(authenticationConfiguration.buildAwsValue())
.build()
}
def asReadOnly
: io.github.vigoo.zioaws.codepipeline.model.WebhookDefinition.ReadOnly =
io.github.vigoo.zioaws.codepipeline.model.WebhookDefinition
.wrap(buildAwsValue())
}
object WebhookDefinition {
private lazy val zioAwsBuilderHelper: BuilderHelper[
software.amazon.awssdk.services.codepipeline.model.WebhookDefinition
] = BuilderHelper.apply
trait ReadOnly {
def editable: io.github.vigoo.zioaws.codepipeline.model.WebhookDefinition =
io.github.vigoo.zioaws.codepipeline.model.WebhookDefinition(
nameValue,
targetPipelineValue,
targetActionValue,
filtersValue.map { item =>
item.editable
},
authenticationValue,
authenticationConfigurationValue.editable
)
def nameValue: WebhookName
def targetPipelineValue: PipelineName
def targetActionValue: ActionName
def filtersValue: List[
io.github.vigoo.zioaws.codepipeline.model.WebhookFilterRule.ReadOnly
]
def authenticationValue
: io.github.vigoo.zioaws.codepipeline.model.WebhookAuthenticationType
def authenticationConfigurationValue
: io.github.vigoo.zioaws.codepipeline.model.WebhookAuthConfiguration.ReadOnly
def name: ZIO[Any, Nothing, WebhookName] = ZIO.succeed(nameValue)
def targetPipeline: ZIO[Any, Nothing, PipelineName] =
ZIO.succeed(targetPipelineValue)
def targetAction: ZIO[Any, Nothing, ActionName] =
ZIO.succeed(targetActionValue)
def filters: ZIO[Any, Nothing, List[
io.github.vigoo.zioaws.codepipeline.model.WebhookFilterRule.ReadOnly
]] = ZIO.succeed(filtersValue)
def authentication: ZIO[
Any,
Nothing,
io.github.vigoo.zioaws.codepipeline.model.WebhookAuthenticationType
] = ZIO.succeed(authenticationValue)
def authenticationConfiguration: ZIO[
Any,
Nothing,
io.github.vigoo.zioaws.codepipeline.model.WebhookAuthConfiguration.ReadOnly
] = ZIO.succeed(authenticationConfigurationValue)
}
private class Wrapper(
impl: software.amazon.awssdk.services.codepipeline.model.WebhookDefinition
) extends io.github.vigoo.zioaws.codepipeline.model.WebhookDefinition.ReadOnly {
override def nameValue: WebhookName = impl.name(): WebhookName
override def targetPipelineValue: PipelineName =
impl.targetPipeline(): PipelineName
override def targetActionValue: ActionName = impl.targetAction(): ActionName
override def filtersValue: List[
io.github.vigoo.zioaws.codepipeline.model.WebhookFilterRule.ReadOnly
] = impl
.filters()
.asScala
.map { item =>
io.github.vigoo.zioaws.codepipeline.model.WebhookFilterRule.wrap(item)
}
.toList
override def authenticationValue
: io.github.vigoo.zioaws.codepipeline.model.WebhookAuthenticationType =
io.github.vigoo.zioaws.codepipeline.model.WebhookAuthenticationType
.wrap(impl.authentication())
override def authenticationConfigurationValue
: io.github.vigoo.zioaws.codepipeline.model.WebhookAuthConfiguration.ReadOnly =
io.github.vigoo.zioaws.codepipeline.model.WebhookAuthConfiguration
.wrap(impl.authenticationConfiguration())
}
def wrap(
impl: software.amazon.awssdk.services.codepipeline.model.WebhookDefinition
): io.github.vigoo.zioaws.codepipeline.model.WebhookDefinition.ReadOnly =
new Wrapper(impl)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy