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

commonMain.aws.sdk.kotlin.services.partnercentralselling.model.AwsOpportunityLifeCycle.kt Maven / Gradle / Ivy

There is a newer version: 1.3.79
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.partnercentralselling.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Tracks the lifecycle of the AWS opportunity, including stages such as qualification, validation, and closure. This field helps partners understand the current status and progression of the opportunity.
 */
public class AwsOpportunityLifeCycle private constructor(builder: Builder) {
    /**
     * Indicates the reason why an opportunity was marked as `Closed Lost`. This helps in understanding the context behind the lost opportunity and aids in refining future strategies.
     */
    public val closedLostReason: aws.sdk.kotlin.services.partnercentralselling.model.AwsClosedLostReason? = builder.closedLostReason
    /**
     * Specifies the immediate next steps required to progress the opportunity. These steps are based on AWS guidance and the current stage of the opportunity.
     */
    public val nextSteps: kotlin.String? = builder.nextSteps
    /**
     * Provides a historical log of previous next steps that were taken to move the opportunity forward. This helps in tracking the decision-making process and identifying any delays or obstacles encountered.
     */
    public val nextStepsHistory: List? = builder.nextStepsHistory
    /**
     * Represents the current stage of the opportunity in its lifecycle, such as `Qualification`, `Validation`, or `Closed Won`. This helps in understanding the opportunity's progress.
     */
    public val stage: aws.sdk.kotlin.services.partnercentralselling.model.AwsOpportunityStage? = builder.stage
    /**
     * Indicates the expected date by which the opportunity is projected to close. This field helps in planning resources and timelines for both the partner and AWS.
     */
    public val targetCloseDate: kotlin.String? = builder.targetCloseDate

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

    override fun toString(): kotlin.String = buildString {
        append("AwsOpportunityLifeCycle(")
        append("closedLostReason=$closedLostReason,")
        append("nextSteps=*** Sensitive Data Redacted ***,")
        append("nextStepsHistory=$nextStepsHistory,")
        append("stage=$stage,")
        append("targetCloseDate=$targetCloseDate")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = closedLostReason?.hashCode() ?: 0
        result = 31 * result + (nextSteps?.hashCode() ?: 0)
        result = 31 * result + (nextStepsHistory?.hashCode() ?: 0)
        result = 31 * result + (stage?.hashCode() ?: 0)
        result = 31 * result + (targetCloseDate?.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 AwsOpportunityLifeCycle

        if (closedLostReason != other.closedLostReason) return false
        if (nextSteps != other.nextSteps) return false
        if (nextStepsHistory != other.nextStepsHistory) return false
        if (stage != other.stage) return false
        if (targetCloseDate != other.targetCloseDate) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Indicates the reason why an opportunity was marked as `Closed Lost`. This helps in understanding the context behind the lost opportunity and aids in refining future strategies.
         */
        public var closedLostReason: aws.sdk.kotlin.services.partnercentralselling.model.AwsClosedLostReason? = null
        /**
         * Specifies the immediate next steps required to progress the opportunity. These steps are based on AWS guidance and the current stage of the opportunity.
         */
        public var nextSteps: kotlin.String? = null
        /**
         * Provides a historical log of previous next steps that were taken to move the opportunity forward. This helps in tracking the decision-making process and identifying any delays or obstacles encountered.
         */
        public var nextStepsHistory: List? = null
        /**
         * Represents the current stage of the opportunity in its lifecycle, such as `Qualification`, `Validation`, or `Closed Won`. This helps in understanding the opportunity's progress.
         */
        public var stage: aws.sdk.kotlin.services.partnercentralselling.model.AwsOpportunityStage? = null
        /**
         * Indicates the expected date by which the opportunity is projected to close. This field helps in planning resources and timelines for both the partner and AWS.
         */
        public var targetCloseDate: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.partnercentralselling.model.AwsOpportunityLifeCycle) : this() {
            this.closedLostReason = x.closedLostReason
            this.nextSteps = x.nextSteps
            this.nextStepsHistory = x.nextStepsHistory
            this.stage = x.stage
            this.targetCloseDate = x.targetCloseDate
        }

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy