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

commonMain.aws.sdk.kotlin.services.proton.model.ServiceSyncBlockerSummary.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.proton.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * If a service instance is manually updated, Proton wants to prevent accidentally overriding a manual change.
 *
 * A blocker is created because of the manual update or deletion of a service instance. The summary describes the blocker as being active or resolved.
 */
public class ServiceSyncBlockerSummary private constructor(builder: Builder) {
    /**
     * The latest active blockers for the synced service.
     */
    public val latestBlockers: List? = builder.latestBlockers
    /**
     * The name of the service instance that you want sync your service configuration with.
     */
    public val serviceInstanceName: kotlin.String? = builder.serviceInstanceName
    /**
     * The name of the service that you want to get the sync blocker summary for. If given a service instance name and a service name, it will return the blockers only applying to the instance that is blocked.
     *
     * If given only a service name, it will return the blockers that apply to all of the instances. In order to get the blockers for a single instance, you will need to make two distinct calls, one to get the sync blocker summary for the service and the other to get the sync blocker for the service instance.
     */
    public val serviceName: kotlin.String = requireNotNull(builder.serviceName) { "A non-null value must be provided for serviceName" }

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

    override fun toString(): kotlin.String = buildString {
        append("ServiceSyncBlockerSummary(")
        append("latestBlockers=$latestBlockers,")
        append("serviceInstanceName=$serviceInstanceName,")
        append("serviceName=$serviceName")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = latestBlockers?.hashCode() ?: 0
        result = 31 * result + (serviceInstanceName?.hashCode() ?: 0)
        result = 31 * result + (serviceName.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 ServiceSyncBlockerSummary

        if (latestBlockers != other.latestBlockers) return false
        if (serviceInstanceName != other.serviceInstanceName) return false
        if (serviceName != other.serviceName) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The latest active blockers for the synced service.
         */
        public var latestBlockers: List? = null
        /**
         * The name of the service instance that you want sync your service configuration with.
         */
        public var serviceInstanceName: kotlin.String? = null
        /**
         * The name of the service that you want to get the sync blocker summary for. If given a service instance name and a service name, it will return the blockers only applying to the instance that is blocked.
         *
         * If given only a service name, it will return the blockers that apply to all of the instances. In order to get the blockers for a single instance, you will need to make two distinct calls, one to get the sync blocker summary for the service and the other to get the sync blocker for the service instance.
         */
        public var serviceName: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.proton.model.ServiceSyncBlockerSummary) : this() {
            this.latestBlockers = x.latestBlockers
            this.serviceInstanceName = x.serviceInstanceName
            this.serviceName = x.serviceName
        }

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

        internal fun correctErrors(): Builder {
            if (serviceName == null) serviceName = ""
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy