commonMain.aws.sdk.kotlin.services.glue.model.Action.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.glue.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* Defines an action to be initiated by a trigger.
*/
public class Action private constructor(builder: Builder) {
/**
* The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.
*
* You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.
*
* For information about how to specify and consume your own Job arguments, see the [Calling Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.
*
* For information about the key-value pairs that Glue consumes to set up your job, see the [Special Parameters Used by Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.
*/
public val arguments: Map? = builder.arguments
/**
* The name of the crawler to be used with this action.
*/
public val crawlerName: kotlin.String? = builder.crawlerName
/**
* The name of a job to be run.
*/
public val jobName: kotlin.String? = builder.jobName
/**
* Specifies configuration properties of a job run notification.
*/
public val notificationProperty: aws.sdk.kotlin.services.glue.model.NotificationProperty? = builder.notificationProperty
/**
* The name of the `SecurityConfiguration` structure to be used with this action.
*/
public val securityConfiguration: kotlin.String? = builder.securityConfiguration
/**
* The `JobRun` timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.
*/
public val timeout: kotlin.Int? = builder.timeout
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.glue.model.Action = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("Action(")
append("arguments=$arguments,")
append("crawlerName=$crawlerName,")
append("jobName=$jobName,")
append("notificationProperty=$notificationProperty,")
append("securityConfiguration=$securityConfiguration,")
append("timeout=$timeout")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = arguments?.hashCode() ?: 0
result = 31 * result + (crawlerName?.hashCode() ?: 0)
result = 31 * result + (jobName?.hashCode() ?: 0)
result = 31 * result + (notificationProperty?.hashCode() ?: 0)
result = 31 * result + (securityConfiguration?.hashCode() ?: 0)
result = 31 * result + (timeout ?: 0)
return result
}
override fun equals(other: kotlin.Any?): kotlin.Boolean {
if (this === other) return true
if (other == null || this::class != other::class) return false
other as Action
if (arguments != other.arguments) return false
if (crawlerName != other.crawlerName) return false
if (jobName != other.jobName) return false
if (notificationProperty != other.notificationProperty) return false
if (securityConfiguration != other.securityConfiguration) return false
if (timeout != other.timeout) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.glue.model.Action = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The job arguments used when this trigger fires. For this job run, they replace the default arguments set in the job definition itself.
*
* You can specify arguments here that your own job-execution script consumes, as well as arguments that Glue itself consumes.
*
* For information about how to specify and consume your own Job arguments, see the [Calling Glue APIs in Python](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) topic in the developer guide.
*
* For information about the key-value pairs that Glue consumes to set up your job, see the [Special Parameters Used by Glue](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-glue-arguments.html) topic in the developer guide.
*/
public var arguments: Map? = null
/**
* The name of the crawler to be used with this action.
*/
public var crawlerName: kotlin.String? = null
/**
* The name of a job to be run.
*/
public var jobName: kotlin.String? = null
/**
* Specifies configuration properties of a job run notification.
*/
public var notificationProperty: aws.sdk.kotlin.services.glue.model.NotificationProperty? = null
/**
* The name of the `SecurityConfiguration` structure to be used with this action.
*/
public var securityConfiguration: kotlin.String? = null
/**
* The `JobRun` timeout in minutes. This is the maximum time that a job run can consume resources before it is terminated and enters `TIMEOUT` status. The default is 2,880 minutes (48 hours). This overrides the timeout value set in the parent job.
*/
public var timeout: kotlin.Int? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.glue.model.Action) : this() {
this.arguments = x.arguments
this.crawlerName = x.crawlerName
this.jobName = x.jobName
this.notificationProperty = x.notificationProperty
this.securityConfiguration = x.securityConfiguration
this.timeout = x.timeout
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.glue.model.Action = Action(this)
/**
* construct an [aws.sdk.kotlin.services.glue.model.NotificationProperty] inside the given [block]
*/
public fun notificationProperty(block: aws.sdk.kotlin.services.glue.model.NotificationProperty.Builder.() -> kotlin.Unit) {
this.notificationProperty = aws.sdk.kotlin.services.glue.model.NotificationProperty.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}