All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.iotfleethub.model.ApplicationSummary.kt Maven / Gradle / Ivy

The newest version!
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.iotfleethub.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * A summary of information about a Fleet Hub for IoT Device Management web application.
 */
public class ApplicationSummary private constructor(builder: Builder) {
    /**
     * The date (in Unix epoch time) when the web application was created.
     */
    public val applicationCreationDate: kotlin.Long = builder.applicationCreationDate
    /**
     * An optional description of the web application.
     */
    public val applicationDescription: kotlin.String? = builder.applicationDescription
    /**
     * The unique Id of the web application.
     */
    public val applicationId: kotlin.String = requireNotNull(builder.applicationId) { "A non-null value must be provided for applicationId" }
    /**
     * The date (in Unix epoch time) when the web application was last updated.
     */
    public val applicationLastUpdateDate: kotlin.Long = builder.applicationLastUpdateDate
    /**
     * The name of the web application.
     */
    public val applicationName: kotlin.String = requireNotNull(builder.applicationName) { "A non-null value must be provided for applicationName" }
    /**
     * The current state of the web application.
     */
    public val applicationState: aws.sdk.kotlin.services.iotfleethub.model.ApplicationState? = builder.applicationState
    /**
     * The URL of the web application.
     */
    public val applicationUrl: kotlin.String = requireNotNull(builder.applicationUrl) { "A non-null value must be provided for applicationUrl" }

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.iotfleethub.model.ApplicationSummary = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("ApplicationSummary(")
        append("applicationCreationDate=$applicationCreationDate,")
        append("applicationDescription=$applicationDescription,")
        append("applicationId=$applicationId,")
        append("applicationLastUpdateDate=$applicationLastUpdateDate,")
        append("applicationName=$applicationName,")
        append("applicationState=$applicationState,")
        append("applicationUrl=$applicationUrl")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = applicationCreationDate.hashCode()
        result = 31 * result + (applicationDescription?.hashCode() ?: 0)
        result = 31 * result + (applicationId.hashCode())
        result = 31 * result + (applicationLastUpdateDate.hashCode())
        result = 31 * result + (applicationName.hashCode())
        result = 31 * result + (applicationState?.hashCode() ?: 0)
        result = 31 * result + (applicationUrl.hashCode())
        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 ApplicationSummary

        if (applicationCreationDate != other.applicationCreationDate) return false
        if (applicationDescription != other.applicationDescription) return false
        if (applicationId != other.applicationId) return false
        if (applicationLastUpdateDate != other.applicationLastUpdateDate) return false
        if (applicationName != other.applicationName) return false
        if (applicationState != other.applicationState) return false
        if (applicationUrl != other.applicationUrl) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.iotfleethub.model.ApplicationSummary = Builder(this).apply(block).build()

    @SdkDsl
    public class Builder {
        /**
         * The date (in Unix epoch time) when the web application was created.
         */
        public var applicationCreationDate: kotlin.Long = 0L
        /**
         * An optional description of the web application.
         */
        public var applicationDescription: kotlin.String? = null
        /**
         * The unique Id of the web application.
         */
        public var applicationId: kotlin.String? = null
        /**
         * The date (in Unix epoch time) when the web application was last updated.
         */
        public var applicationLastUpdateDate: kotlin.Long = 0L
        /**
         * The name of the web application.
         */
        public var applicationName: kotlin.String? = null
        /**
         * The current state of the web application.
         */
        public var applicationState: aws.sdk.kotlin.services.iotfleethub.model.ApplicationState? = null
        /**
         * The URL of the web application.
         */
        public var applicationUrl: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.iotfleethub.model.ApplicationSummary) : this() {
            this.applicationCreationDate = x.applicationCreationDate
            this.applicationDescription = x.applicationDescription
            this.applicationId = x.applicationId
            this.applicationLastUpdateDate = x.applicationLastUpdateDate
            this.applicationName = x.applicationName
            this.applicationState = x.applicationState
            this.applicationUrl = x.applicationUrl
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.iotfleethub.model.ApplicationSummary = ApplicationSummary(this)

        internal fun correctErrors(): Builder {
            if (applicationId == null) applicationId = ""
            if (applicationName == null) applicationName = ""
            if (applicationUrl == null) applicationUrl = ""
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy