commonMain.aws.sdk.kotlin.services.cloudwatchevents.model.PlacementStrategy.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cloudwatchevents-jvm Show documentation
Show all versions of cloudwatchevents-jvm Show documentation
The AWS SDK for Kotlin client for CloudWatch Events
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.cloudwatchevents.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* The task placement strategy for a task or service. To learn more, see [Task Placement Strategies](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) in the Amazon Elastic Container Service Service Developer Guide.
*/
public class PlacementStrategy private constructor(builder: Builder) {
/**
* The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used.
*/
public val field: kotlin.String? = builder.field
/**
* The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task).
*/
public val type: aws.sdk.kotlin.services.cloudwatchevents.model.PlacementStrategyType? = builder.type
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.cloudwatchevents.model.PlacementStrategy = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("PlacementStrategy(")
append("field=$field,")
append("type=$type")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = field?.hashCode() ?: 0
result = 31 * result + (type?.hashCode() ?: 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 PlacementStrategy
if (field != other.field) return false
if (type != other.type) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.cloudwatchevents.model.PlacementStrategy = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The field to apply the placement strategy against. For the spread placement strategy, valid values are instanceId (or host, which has the same effect), or any platform or custom attribute that is applied to a container instance, such as attribute:ecs.availability-zone. For the binpack placement strategy, valid values are cpu and memory. For the random placement strategy, this field is not used.
*/
public var field: kotlin.String? = null
/**
* The type of placement strategy. The random placement strategy randomly places tasks on available candidates. The spread placement strategy spreads placement across available candidates evenly based on the field parameter. The binpack strategy places tasks on available candidates that have the least available amount of the resource that is specified with the field parameter. For example, if you binpack on memory, a task is placed on the instance with the least amount of remaining memory (but still enough to run the task).
*/
public var type: aws.sdk.kotlin.services.cloudwatchevents.model.PlacementStrategyType? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.cloudwatchevents.model.PlacementStrategy) : this() {
this.field = x.field
this.type = x.type
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.cloudwatchevents.model.PlacementStrategy = PlacementStrategy(this)
internal fun correctErrors(): Builder {
return this
}
}
}