
io.k8s.api.batch.v1.JobCondition.scala Maven / Gradle / Ivy
package io.k8s.api.batch.v1
import dev.hnaderi.k8s.utils._
/** JobCondition describes current state of a job. */
final case class JobCondition(
status : String,
`type` : String,
lastProbeTime : Option[io.k8s.apimachinery.pkg.apis.meta.v1.Time] = None,
reason : Option[String] = None,
lastTransitionTime : Option[io.k8s.apimachinery.pkg.apis.meta.v1.Time] = None,
message : Option[String] = None
) {
/** Returns a new data with status set to new value */
def withStatus(value: String) : JobCondition = copy(status = value)
/** transforms status to result of function */
def mapStatus(f: String => String) : JobCondition = copy(status = f(status))
/** Returns a new data with `type` set to new value */
def withType(value: String) : JobCondition = copy(`type` = value)
/** transforms `type` to result of function */
def mapType(f: String => String) : JobCondition = copy(`type` = f(`type`))
/** Returns a new data with lastProbeTime set to new value */
def withLastProbeTime(value: io.k8s.apimachinery.pkg.apis.meta.v1.Time) : JobCondition = copy(lastProbeTime = Some(value))
/** if lastProbeTime has a value, transforms to the result of function*/
def mapLastProbeTime(f: io.k8s.apimachinery.pkg.apis.meta.v1.Time => io.k8s.apimachinery.pkg.apis.meta.v1.Time) : JobCondition = copy(lastProbeTime = lastProbeTime.map(f))
/** Returns a new data with reason set to new value */
def withReason(value: String) : JobCondition = copy(reason = Some(value))
/** if reason has a value, transforms to the result of function*/
def mapReason(f: String => String) : JobCondition = copy(reason = reason.map(f))
/** Returns a new data with lastTransitionTime set to new value */
def withLastTransitionTime(value: io.k8s.apimachinery.pkg.apis.meta.v1.Time) : JobCondition = copy(lastTransitionTime = Some(value))
/** if lastTransitionTime has a value, transforms to the result of function*/
def mapLastTransitionTime(f: io.k8s.apimachinery.pkg.apis.meta.v1.Time => io.k8s.apimachinery.pkg.apis.meta.v1.Time) : JobCondition = copy(lastTransitionTime = lastTransitionTime.map(f))
/** Returns a new data with message set to new value */
def withMessage(value: String) : JobCondition = copy(message = Some(value))
/** if message has a value, transforms to the result of function*/
def mapMessage(f: String => String) : JobCondition = copy(message = message.map(f))
}
object JobCondition {
implicit val encoder : Encoder[io.k8s.api.batch.v1.JobCondition] = new Encoder[io.k8s.api.batch.v1.JobCondition] {
def apply[T : Builder](o: io.k8s.api.batch.v1.JobCondition) : T = {
val obj = ObjectWriter[T]()
obj
.write("status", o.status)
.write("type", o.`type`)
.write("lastProbeTime", o.lastProbeTime)
.write("reason", o.reason)
.write("lastTransitionTime", o.lastTransitionTime)
.write("message", o.message)
.build
}
}
implicit val decoder: Decoder[JobCondition] = new Decoder[JobCondition] {
def apply[T : Reader](t: T): Either[String, JobCondition] = for {
obj <- ObjectReader(t)
status <- obj.read[String]("status")
`type` <- obj.read[String]("type")
lastProbeTime <- obj.readOpt[io.k8s.apimachinery.pkg.apis.meta.v1.Time]("lastProbeTime")
reason <- obj.readOpt[String]("reason")
lastTransitionTime <- obj.readOpt[io.k8s.apimachinery.pkg.apis.meta.v1.Time]("lastTransitionTime")
message <- obj.readOpt[String]("message")
} yield JobCondition (
status = status,
`type` = `type`,
lastProbeTime = lastProbeTime,
reason = reason,
lastTransitionTime = lastTransitionTime,
message = message
)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy