commonMain.aws.sdk.kotlin.services.nimble.model.LaunchProfile.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nimble-jvm Show documentation
Show all versions of nimble-jvm Show documentation
The AWS SDK for Kotlin client for nimble
The newest version!
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.nimble.model
import aws.smithy.kotlin.runtime.SdkDsl
import aws.smithy.kotlin.runtime.time.Instant
/**
* A launch profile controls your artist workforce’s access to studio components, like compute farms, shared file systems, managed file systems, and license server configurations, as well as instance types and Amazon Machine Images (AMIs).
*
* Studio administrators create launch profiles in the Nimble Studio console. Artists can use their launch profiles to launch an instance from the Nimble Studio portal. Each user’s launch profile defines how they can launch a streaming session. By default, studio admins can use all launch profiles.
*/
public class LaunchProfile private constructor(builder: Builder) {
/**
* The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.
*/
public val arn: kotlin.String? = builder.arn
/**
* The ISO timestamp in seconds for when the resource was created.
*/
public val createdAt: aws.smithy.kotlin.runtime.time.Instant? = builder.createdAt
/**
* The user ID of the user that created the launch profile.
*/
public val createdBy: kotlin.String? = builder.createdBy
/**
* A human-readable description of the launch profile.
*/
public val description: kotlin.String? = builder.description
/**
* Unique identifiers for a collection of EC2 subnets.
*/
public val ec2SubnetIds: List? = builder.ec2SubnetIds
/**
* The ID of the launch profile used to control access from the streaming session.
*/
public val launchProfileId: kotlin.String? = builder.launchProfileId
/**
* The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".
*/
public val launchProfileProtocolVersions: List? = builder.launchProfileProtocolVersions
/**
* A friendly name for the launch profile.
*/
public val name: kotlin.String? = builder.name
/**
* The current state.
*/
public val state: aws.sdk.kotlin.services.nimble.model.LaunchProfileState? = builder.state
/**
* The status code.
*/
public val statusCode: aws.sdk.kotlin.services.nimble.model.LaunchProfileStatusCode? = builder.statusCode
/**
* The status message for the launch profile.
*/
public val statusMessage: kotlin.String? = builder.statusMessage
/**
* A configuration for a streaming session.
*/
public val streamConfiguration: aws.sdk.kotlin.services.nimble.model.StreamConfiguration? = builder.streamConfiguration
/**
* Unique identifiers for a collection of studio components that can be used with this launch profile.
*/
public val studioComponentIds: List? = builder.studioComponentIds
/**
* A collection of labels, in the form of key-value pairs, that apply to this resource.
*/
public val tags: Map? = builder.tags
/**
* The ISO timestamp in seconds for when the resource was updated.
*/
public val updatedAt: aws.smithy.kotlin.runtime.time.Instant? = builder.updatedAt
/**
* The user ID of the user that most recently updated the resource.
*/
public val updatedBy: kotlin.String? = builder.updatedBy
/**
* The list of the latest validation results.
*/
public val validationResults: List? = builder.validationResults
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.nimble.model.LaunchProfile = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("LaunchProfile(")
append("arn=$arn,")
append("createdAt=$createdAt,")
append("createdBy=$createdBy,")
append("description=*** Sensitive Data Redacted ***,")
append("ec2SubnetIds=$ec2SubnetIds,")
append("launchProfileId=$launchProfileId,")
append("launchProfileProtocolVersions=$launchProfileProtocolVersions,")
append("name=*** Sensitive Data Redacted ***,")
append("state=$state,")
append("statusCode=$statusCode,")
append("statusMessage=$statusMessage,")
append("streamConfiguration=$streamConfiguration,")
append("studioComponentIds=$studioComponentIds,")
append("tags=$tags,")
append("updatedAt=$updatedAt,")
append("updatedBy=$updatedBy,")
append("validationResults=$validationResults")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = arn?.hashCode() ?: 0
result = 31 * result + (createdAt?.hashCode() ?: 0)
result = 31 * result + (createdBy?.hashCode() ?: 0)
result = 31 * result + (description?.hashCode() ?: 0)
result = 31 * result + (ec2SubnetIds?.hashCode() ?: 0)
result = 31 * result + (launchProfileId?.hashCode() ?: 0)
result = 31 * result + (launchProfileProtocolVersions?.hashCode() ?: 0)
result = 31 * result + (name?.hashCode() ?: 0)
result = 31 * result + (state?.hashCode() ?: 0)
result = 31 * result + (statusCode?.hashCode() ?: 0)
result = 31 * result + (statusMessage?.hashCode() ?: 0)
result = 31 * result + (streamConfiguration?.hashCode() ?: 0)
result = 31 * result + (studioComponentIds?.hashCode() ?: 0)
result = 31 * result + (tags?.hashCode() ?: 0)
result = 31 * result + (updatedAt?.hashCode() ?: 0)
result = 31 * result + (updatedBy?.hashCode() ?: 0)
result = 31 * result + (validationResults?.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 LaunchProfile
if (arn != other.arn) return false
if (createdAt != other.createdAt) return false
if (createdBy != other.createdBy) return false
if (description != other.description) return false
if (ec2SubnetIds != other.ec2SubnetIds) return false
if (launchProfileId != other.launchProfileId) return false
if (launchProfileProtocolVersions != other.launchProfileProtocolVersions) return false
if (name != other.name) return false
if (state != other.state) return false
if (statusCode != other.statusCode) return false
if (statusMessage != other.statusMessage) return false
if (streamConfiguration != other.streamConfiguration) return false
if (studioComponentIds != other.studioComponentIds) return false
if (tags != other.tags) return false
if (updatedAt != other.updatedAt) return false
if (updatedBy != other.updatedBy) return false
if (validationResults != other.validationResults) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.nimble.model.LaunchProfile = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique across all Regions.
*/
public var arn: kotlin.String? = null
/**
* The ISO timestamp in seconds for when the resource was created.
*/
public var createdAt: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The user ID of the user that created the launch profile.
*/
public var createdBy: kotlin.String? = null
/**
* A human-readable description of the launch profile.
*/
public var description: kotlin.String? = null
/**
* Unique identifiers for a collection of EC2 subnets.
*/
public var ec2SubnetIds: List? = null
/**
* The ID of the launch profile used to control access from the streaming session.
*/
public var launchProfileId: kotlin.String? = null
/**
* The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31".
*/
public var launchProfileProtocolVersions: List? = null
/**
* A friendly name for the launch profile.
*/
public var name: kotlin.String? = null
/**
* The current state.
*/
public var state: aws.sdk.kotlin.services.nimble.model.LaunchProfileState? = null
/**
* The status code.
*/
public var statusCode: aws.sdk.kotlin.services.nimble.model.LaunchProfileStatusCode? = null
/**
* The status message for the launch profile.
*/
public var statusMessage: kotlin.String? = null
/**
* A configuration for a streaming session.
*/
public var streamConfiguration: aws.sdk.kotlin.services.nimble.model.StreamConfiguration? = null
/**
* Unique identifiers for a collection of studio components that can be used with this launch profile.
*/
public var studioComponentIds: List? = null
/**
* A collection of labels, in the form of key-value pairs, that apply to this resource.
*/
public var tags: Map? = null
/**
* The ISO timestamp in seconds for when the resource was updated.
*/
public var updatedAt: aws.smithy.kotlin.runtime.time.Instant? = null
/**
* The user ID of the user that most recently updated the resource.
*/
public var updatedBy: kotlin.String? = null
/**
* The list of the latest validation results.
*/
public var validationResults: List? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.nimble.model.LaunchProfile) : this() {
this.arn = x.arn
this.createdAt = x.createdAt
this.createdBy = x.createdBy
this.description = x.description
this.ec2SubnetIds = x.ec2SubnetIds
this.launchProfileId = x.launchProfileId
this.launchProfileProtocolVersions = x.launchProfileProtocolVersions
this.name = x.name
this.state = x.state
this.statusCode = x.statusCode
this.statusMessage = x.statusMessage
this.streamConfiguration = x.streamConfiguration
this.studioComponentIds = x.studioComponentIds
this.tags = x.tags
this.updatedAt = x.updatedAt
this.updatedBy = x.updatedBy
this.validationResults = x.validationResults
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.nimble.model.LaunchProfile = LaunchProfile(this)
/**
* construct an [aws.sdk.kotlin.services.nimble.model.StreamConfiguration] inside the given [block]
*/
public fun streamConfiguration(block: aws.sdk.kotlin.services.nimble.model.StreamConfiguration.Builder.() -> kotlin.Unit) {
this.streamConfiguration = aws.sdk.kotlin.services.nimble.model.StreamConfiguration.invoke(block)
}
internal fun correctErrors(): Builder {
return this
}
}
}