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

commonMain.aws.sdk.kotlin.services.ssmsap.model.Component.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.ssmsap.model

import aws.smithy.kotlin.runtime.SdkDsl
import aws.smithy.kotlin.runtime.time.Instant

/**
 * The SAP component of your application.
 */
public class Component private constructor(builder: Builder) {
    /**
     * The ID of the application.
     */
    public val applicationId: kotlin.String? = builder.applicationId
    /**
     * The Amazon Resource Name (ARN) of the component.
     */
    public val arn: kotlin.String? = builder.arn
    /**
     * The associated host of the component.
     */
    public val associatedHost: aws.sdk.kotlin.services.ssmsap.model.AssociatedHost? = builder.associatedHost
    /**
     * The child components of a highly available environment. For example, in a highly available SAP on AWS workload, the child component consists of the primary and secondar instances.
     */
    public val childComponents: List? = builder.childComponents
    /**
     * The ID of the component.
     */
    public val componentId: kotlin.String? = builder.componentId
    /**
     * The type of the component.
     */
    public val componentType: aws.sdk.kotlin.services.ssmsap.model.ComponentType? = builder.componentType
    /**
     * The connection specifications for the database of the component.
     */
    public val databaseConnection: aws.sdk.kotlin.services.ssmsap.model.DatabaseConnection? = builder.databaseConnection
    /**
     * The SAP HANA databases of the component.
     */
    public val databases: List? = builder.databases
    /**
     * The SAP HANA version of the component.
     */
    public val hdbVersion: kotlin.String? = builder.hdbVersion
    /**
     * The hosts of the component.
     */
    @Deprecated("This shape is no longer used. Please use AssociatedHost.")
    public val hosts: List? = builder.hosts
    /**
     * The time at which the component was last updated.
     */
    public val lastUpdated: aws.smithy.kotlin.runtime.time.Instant? = builder.lastUpdated
    /**
     * The parent component of a highly available environment. For example, in a highly available SAP on AWS workload, the parent component consists of the entire setup, including the child components.
     */
    public val parentComponent: kotlin.String? = builder.parentComponent
    /**
     * The primary host of the component.
     */
    @Deprecated("This shape is no longer used. Please use AssociatedHost.")
    public val primaryHost: kotlin.String? = builder.primaryHost
    /**
     * Details of the SAP HANA system replication for the component.
     */
    public val resilience: aws.sdk.kotlin.services.ssmsap.model.Resilience? = builder.resilience
    /**
     * The SAP feature of the component.
     */
    public val sapFeature: kotlin.String? = builder.sapFeature
    /**
     * The hostname of the component.
     */
    public val sapHostname: kotlin.String? = builder.sapHostname
    /**
     * The kernel version of the component.
     */
    public val sapKernelVersion: kotlin.String? = builder.sapKernelVersion
    /**
     * The SAP System Identifier of the application component.
     */
    public val sid: kotlin.String? = builder.sid
    /**
     * The status of the component.
     * + ACTIVATED - this status has been deprecated.
     * + STARTING - the component is in the process of being started.
     * + STOPPED - the component is not running.
     * + STOPPING - the component is in the process of being stopped.
     * + RUNNING - the component is running.
     * + RUNNING_WITH_ERROR - one or more child component(s) of the parent component is not running. Call `GetComponent`[](https://docs.aws.amazon.com/ssmsap/latest/APIReference/API_GetComponent.html) to review the status of each child component.
     * + UNDEFINED - AWS Systems Manager for SAP cannot provide the component status based on the discovered information. Verify your SAP application.
     */
    public val status: aws.sdk.kotlin.services.ssmsap.model.ComponentStatus? = builder.status
    /**
     * The SAP system number of the application component.
     */
    public val systemNumber: kotlin.String? = builder.systemNumber

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

    override fun toString(): kotlin.String = buildString {
        append("Component(")
        append("applicationId=$applicationId,")
        append("arn=$arn,")
        append("associatedHost=$associatedHost,")
        append("childComponents=$childComponents,")
        append("componentId=$componentId,")
        append("componentType=$componentType,")
        append("databaseConnection=$databaseConnection,")
        append("databases=$databases,")
        append("hdbVersion=$hdbVersion,")
        append("hosts=$hosts,")
        append("lastUpdated=$lastUpdated,")
        append("parentComponent=$parentComponent,")
        append("primaryHost=$primaryHost,")
        append("resilience=$resilience,")
        append("sapFeature=$sapFeature,")
        append("sapHostname=$sapHostname,")
        append("sapKernelVersion=$sapKernelVersion,")
        append("sid=$sid,")
        append("status=$status,")
        append("systemNumber=$systemNumber")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = applicationId?.hashCode() ?: 0
        result = 31 * result + (arn?.hashCode() ?: 0)
        result = 31 * result + (associatedHost?.hashCode() ?: 0)
        result = 31 * result + (childComponents?.hashCode() ?: 0)
        result = 31 * result + (componentId?.hashCode() ?: 0)
        result = 31 * result + (componentType?.hashCode() ?: 0)
        result = 31 * result + (databaseConnection?.hashCode() ?: 0)
        result = 31 * result + (databases?.hashCode() ?: 0)
        result = 31 * result + (hdbVersion?.hashCode() ?: 0)
        result = 31 * result + (hosts?.hashCode() ?: 0)
        result = 31 * result + (lastUpdated?.hashCode() ?: 0)
        result = 31 * result + (parentComponent?.hashCode() ?: 0)
        result = 31 * result + (primaryHost?.hashCode() ?: 0)
        result = 31 * result + (resilience?.hashCode() ?: 0)
        result = 31 * result + (sapFeature?.hashCode() ?: 0)
        result = 31 * result + (sapHostname?.hashCode() ?: 0)
        result = 31 * result + (sapKernelVersion?.hashCode() ?: 0)
        result = 31 * result + (sid?.hashCode() ?: 0)
        result = 31 * result + (status?.hashCode() ?: 0)
        result = 31 * result + (systemNumber?.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 Component

        if (applicationId != other.applicationId) return false
        if (arn != other.arn) return false
        if (associatedHost != other.associatedHost) return false
        if (childComponents != other.childComponents) return false
        if (componentId != other.componentId) return false
        if (componentType != other.componentType) return false
        if (databaseConnection != other.databaseConnection) return false
        if (databases != other.databases) return false
        if (hdbVersion != other.hdbVersion) return false
        if (hosts != other.hosts) return false
        if (lastUpdated != other.lastUpdated) return false
        if (parentComponent != other.parentComponent) return false
        if (primaryHost != other.primaryHost) return false
        if (resilience != other.resilience) return false
        if (sapFeature != other.sapFeature) return false
        if (sapHostname != other.sapHostname) return false
        if (sapKernelVersion != other.sapKernelVersion) return false
        if (sid != other.sid) return false
        if (status != other.status) return false
        if (systemNumber != other.systemNumber) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The ID of the application.
         */
        public var applicationId: kotlin.String? = null
        /**
         * The Amazon Resource Name (ARN) of the component.
         */
        public var arn: kotlin.String? = null
        /**
         * The associated host of the component.
         */
        public var associatedHost: aws.sdk.kotlin.services.ssmsap.model.AssociatedHost? = null
        /**
         * The child components of a highly available environment. For example, in a highly available SAP on AWS workload, the child component consists of the primary and secondar instances.
         */
        public var childComponents: List? = null
        /**
         * The ID of the component.
         */
        public var componentId: kotlin.String? = null
        /**
         * The type of the component.
         */
        public var componentType: aws.sdk.kotlin.services.ssmsap.model.ComponentType? = null
        /**
         * The connection specifications for the database of the component.
         */
        public var databaseConnection: aws.sdk.kotlin.services.ssmsap.model.DatabaseConnection? = null
        /**
         * The SAP HANA databases of the component.
         */
        public var databases: List? = null
        /**
         * The SAP HANA version of the component.
         */
        public var hdbVersion: kotlin.String? = null
        /**
         * The hosts of the component.
         */
        @Deprecated("This shape is no longer used. Please use AssociatedHost.")
        public var hosts: List? = null
        /**
         * The time at which the component was last updated.
         */
        public var lastUpdated: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The parent component of a highly available environment. For example, in a highly available SAP on AWS workload, the parent component consists of the entire setup, including the child components.
         */
        public var parentComponent: kotlin.String? = null
        /**
         * The primary host of the component.
         */
        @Deprecated("This shape is no longer used. Please use AssociatedHost.")
        public var primaryHost: kotlin.String? = null
        /**
         * Details of the SAP HANA system replication for the component.
         */
        public var resilience: aws.sdk.kotlin.services.ssmsap.model.Resilience? = null
        /**
         * The SAP feature of the component.
         */
        public var sapFeature: kotlin.String? = null
        /**
         * The hostname of the component.
         */
        public var sapHostname: kotlin.String? = null
        /**
         * The kernel version of the component.
         */
        public var sapKernelVersion: kotlin.String? = null
        /**
         * The SAP System Identifier of the application component.
         */
        public var sid: kotlin.String? = null
        /**
         * The status of the component.
         * + ACTIVATED - this status has been deprecated.
         * + STARTING - the component is in the process of being started.
         * + STOPPED - the component is not running.
         * + STOPPING - the component is in the process of being stopped.
         * + RUNNING - the component is running.
         * + RUNNING_WITH_ERROR - one or more child component(s) of the parent component is not running. Call `GetComponent`[](https://docs.aws.amazon.com/ssmsap/latest/APIReference/API_GetComponent.html) to review the status of each child component.
         * + UNDEFINED - AWS Systems Manager for SAP cannot provide the component status based on the discovered information. Verify your SAP application.
         */
        public var status: aws.sdk.kotlin.services.ssmsap.model.ComponentStatus? = null
        /**
         * The SAP system number of the application component.
         */
        public var systemNumber: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.ssmsap.model.Component) : this() {
            this.applicationId = x.applicationId
            this.arn = x.arn
            this.associatedHost = x.associatedHost
            this.childComponents = x.childComponents
            this.componentId = x.componentId
            this.componentType = x.componentType
            this.databaseConnection = x.databaseConnection
            this.databases = x.databases
            this.hdbVersion = x.hdbVersion
            this.hosts = x.hosts
            this.lastUpdated = x.lastUpdated
            this.parentComponent = x.parentComponent
            this.primaryHost = x.primaryHost
            this.resilience = x.resilience
            this.sapFeature = x.sapFeature
            this.sapHostname = x.sapHostname
            this.sapKernelVersion = x.sapKernelVersion
            this.sid = x.sid
            this.status = x.status
            this.systemNumber = x.systemNumber
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.ssmsap.model.AssociatedHost] inside the given [block]
         */
        public fun associatedHost(block: aws.sdk.kotlin.services.ssmsap.model.AssociatedHost.Builder.() -> kotlin.Unit) {
            this.associatedHost = aws.sdk.kotlin.services.ssmsap.model.AssociatedHost.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.ssmsap.model.DatabaseConnection] inside the given [block]
         */
        public fun databaseConnection(block: aws.sdk.kotlin.services.ssmsap.model.DatabaseConnection.Builder.() -> kotlin.Unit) {
            this.databaseConnection = aws.sdk.kotlin.services.ssmsap.model.DatabaseConnection.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.ssmsap.model.Resilience] inside the given [block]
         */
        public fun resilience(block: aws.sdk.kotlin.services.ssmsap.model.Resilience.Builder.() -> kotlin.Unit) {
            this.resilience = aws.sdk.kotlin.services.ssmsap.model.Resilience.invoke(block)
        }

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy