
commonMain.aws.sdk.kotlin.services.deadline.model.ServiceManagedEc2InstanceCapabilities.kt Maven / Gradle / Ivy
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.deadline.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* The Amazon EC2 instance capabilities.
*/
public class ServiceManagedEc2InstanceCapabilities private constructor(builder: Builder) {
/**
* The allowable Amazon EC2 instance types.
*/
public val allowedInstanceTypes: List? = builder.allowedInstanceTypes
/**
* The CPU architecture type.
*/
public val cpuArchitectureType: aws.sdk.kotlin.services.deadline.model.CpuArchitectureType = requireNotNull(builder.cpuArchitectureType) { "A non-null value must be provided for cpuArchitectureType" }
/**
* The custom capability amounts to require for instances in this fleet.
*/
public val customAmounts: List? = builder.customAmounts
/**
* The custom capability attributes to require for instances in this fleet.
*/
public val customAttributes: List? = builder.customAttributes
/**
* The instance types to exclude from the fleet.
*/
public val excludedInstanceTypes: List? = builder.excludedInstanceTypes
/**
* The memory, as MiB, for the Amazon EC2 instance type.
*/
public val memoryMib: aws.sdk.kotlin.services.deadline.model.MemoryMibRange? = builder.memoryMib
/**
* The operating system (OS) family.
*/
public val osFamily: aws.sdk.kotlin.services.deadline.model.ServiceManagedFleetOperatingSystemFamily = requireNotNull(builder.osFamily) { "A non-null value must be provided for osFamily" }
/**
* The root EBS volume.
*/
public val rootEbsVolume: aws.sdk.kotlin.services.deadline.model.Ec2EbsVolume? = builder.rootEbsVolume
/**
* The amount of vCPU to require for instances in this fleet.
*/
public val vCpuCount: aws.sdk.kotlin.services.deadline.model.VCpuCountRange? = builder.vCpuCount
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.deadline.model.ServiceManagedEc2InstanceCapabilities = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("ServiceManagedEc2InstanceCapabilities(")
append("allowedInstanceTypes=$allowedInstanceTypes,")
append("cpuArchitectureType=$cpuArchitectureType,")
append("customAmounts=$customAmounts,")
append("customAttributes=$customAttributes,")
append("excludedInstanceTypes=$excludedInstanceTypes,")
append("memoryMib=$memoryMib,")
append("osFamily=$osFamily,")
append("rootEbsVolume=$rootEbsVolume,")
append("vCpuCount=$vCpuCount")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = allowedInstanceTypes?.hashCode() ?: 0
result = 31 * result + (cpuArchitectureType.hashCode())
result = 31 * result + (customAmounts?.hashCode() ?: 0)
result = 31 * result + (customAttributes?.hashCode() ?: 0)
result = 31 * result + (excludedInstanceTypes?.hashCode() ?: 0)
result = 31 * result + (memoryMib?.hashCode() ?: 0)
result = 31 * result + (osFamily.hashCode())
result = 31 * result + (rootEbsVolume?.hashCode() ?: 0)
result = 31 * result + (vCpuCount?.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 ServiceManagedEc2InstanceCapabilities
if (allowedInstanceTypes != other.allowedInstanceTypes) return false
if (cpuArchitectureType != other.cpuArchitectureType) return false
if (customAmounts != other.customAmounts) return false
if (customAttributes != other.customAttributes) return false
if (excludedInstanceTypes != other.excludedInstanceTypes) return false
if (memoryMib != other.memoryMib) return false
if (osFamily != other.osFamily) return false
if (rootEbsVolume != other.rootEbsVolume) return false
if (vCpuCount != other.vCpuCount) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.deadline.model.ServiceManagedEc2InstanceCapabilities = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The allowable Amazon EC2 instance types.
*/
public var allowedInstanceTypes: List? = null
/**
* The CPU architecture type.
*/
public var cpuArchitectureType: aws.sdk.kotlin.services.deadline.model.CpuArchitectureType? = null
/**
* The custom capability amounts to require for instances in this fleet.
*/
public var customAmounts: List? = null
/**
* The custom capability attributes to require for instances in this fleet.
*/
public var customAttributes: List? = null
/**
* The instance types to exclude from the fleet.
*/
public var excludedInstanceTypes: List? = null
/**
* The memory, as MiB, for the Amazon EC2 instance type.
*/
public var memoryMib: aws.sdk.kotlin.services.deadline.model.MemoryMibRange? = null
/**
* The operating system (OS) family.
*/
public var osFamily: aws.sdk.kotlin.services.deadline.model.ServiceManagedFleetOperatingSystemFamily? = null
/**
* The root EBS volume.
*/
public var rootEbsVolume: aws.sdk.kotlin.services.deadline.model.Ec2EbsVolume? = null
/**
* The amount of vCPU to require for instances in this fleet.
*/
public var vCpuCount: aws.sdk.kotlin.services.deadline.model.VCpuCountRange? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.deadline.model.ServiceManagedEc2InstanceCapabilities) : this() {
this.allowedInstanceTypes = x.allowedInstanceTypes
this.cpuArchitectureType = x.cpuArchitectureType
this.customAmounts = x.customAmounts
this.customAttributes = x.customAttributes
this.excludedInstanceTypes = x.excludedInstanceTypes
this.memoryMib = x.memoryMib
this.osFamily = x.osFamily
this.rootEbsVolume = x.rootEbsVolume
this.vCpuCount = x.vCpuCount
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.deadline.model.ServiceManagedEc2InstanceCapabilities = ServiceManagedEc2InstanceCapabilities(this)
/**
* construct an [aws.sdk.kotlin.services.deadline.model.MemoryMibRange] inside the given [block]
*/
public fun memoryMib(block: aws.sdk.kotlin.services.deadline.model.MemoryMibRange.Builder.() -> kotlin.Unit) {
this.memoryMib = aws.sdk.kotlin.services.deadline.model.MemoryMibRange.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.deadline.model.Ec2EbsVolume] inside the given [block]
*/
public fun rootEbsVolume(block: aws.sdk.kotlin.services.deadline.model.Ec2EbsVolume.Builder.() -> kotlin.Unit) {
this.rootEbsVolume = aws.sdk.kotlin.services.deadline.model.Ec2EbsVolume.invoke(block)
}
/**
* construct an [aws.sdk.kotlin.services.deadline.model.VCpuCountRange] inside the given [block]
*/
public fun vCpuCount(block: aws.sdk.kotlin.services.deadline.model.VCpuCountRange.Builder.() -> kotlin.Unit) {
this.vCpuCount = aws.sdk.kotlin.services.deadline.model.VCpuCountRange.invoke(block)
}
internal fun correctErrors(): Builder {
if (cpuArchitectureType == null) cpuArchitectureType = CpuArchitectureType.SdkUnknown("no value provided")
if (osFamily == null) osFamily = ServiceManagedFleetOperatingSystemFamily.SdkUnknown("no value provided")
return this
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy