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

commonMain.aws.sdk.kotlin.services.partnercentralselling.model.RelatedEntityIdentifiers.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

/**
 * This field provides the associations' information for other entities with the opportunity. These entities include identifiers for `AWSProducts`, `Partner Solutions`, and `AWSMarketplaceOffers`.
 */
public class RelatedEntityIdentifiers private constructor(builder: Builder) {
    /**
     * Takes one value per opportunity. Each value is an Amazon Resource Name (ARN), in this format: `"offers": ["arn:aws:aws-marketplace:us-east-1:999999999999:AWSMarketplace/Offer/offer-sampleOffer32"]`.
     *
     *  Use the [ListEntities](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html) action in the Marketplace Catalog APIs for a list of offers in the associated Marketplace seller account.
     */
    public val awsMarketplaceOffers: List? = builder.awsMarketplaceOffers
    /**
     * Enables the association of specific Amazon Web Services products with the `Opportunity`. Partners can indicate the relevant Amazon Web Services products for the `Opportunity`'s solution and align with the customer's needs. Returns multiple values separated by commas. For example, `"AWSProducts" : ["AmazonRedshift", "AWSAppFabric", "AWSCleanRooms"]`.
     *
     *  Use the file with the list of Amazon Web Services products hosted on GitHub: [ Amazon Web Services products](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/resources/aws_products.json).
     */
    public val awsProducts: List? = builder.awsProducts
    /**
     * Enables partner solutions or offerings' association with an opportunity. To associate a solution, provide the solution's unique identifier, which you can obtain with the `ListSolutions` operation.
     *
     *  If the specific solution identifier is not available, you can use the value `Other` and provide details about the solution in the `otherSolutionOffered` field. But when the opportunity reaches the `Committed` stage or beyond, the `Other` value cannot be used, and a valid solution identifier must be provided.
     *
     *  By associating the relevant solutions with the opportunity, you can communicate the offerings that are being considered or implemented to address the customer's business problem.
     */
    public val solutions: List? = builder.solutions

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

    override fun toString(): kotlin.String = buildString {
        append("RelatedEntityIdentifiers(")
        append("awsMarketplaceOffers=$awsMarketplaceOffers,")
        append("awsProducts=$awsProducts,")
        append("solutions=$solutions")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = awsMarketplaceOffers?.hashCode() ?: 0
        result = 31 * result + (awsProducts?.hashCode() ?: 0)
        result = 31 * result + (solutions?.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 RelatedEntityIdentifiers

        if (awsMarketplaceOffers != other.awsMarketplaceOffers) return false
        if (awsProducts != other.awsProducts) return false
        if (solutions != other.solutions) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Takes one value per opportunity. Each value is an Amazon Resource Name (ARN), in this format: `"offers": ["arn:aws:aws-marketplace:us-east-1:999999999999:AWSMarketplace/Offer/offer-sampleOffer32"]`.
         *
         *  Use the [ListEntities](https://docs.aws.amazon.com/marketplace-catalog/latest/api-reference/API_ListEntities.html) action in the Marketplace Catalog APIs for a list of offers in the associated Marketplace seller account.
         */
        public var awsMarketplaceOffers: List? = null
        /**
         * Enables the association of specific Amazon Web Services products with the `Opportunity`. Partners can indicate the relevant Amazon Web Services products for the `Opportunity`'s solution and align with the customer's needs. Returns multiple values separated by commas. For example, `"AWSProducts" : ["AmazonRedshift", "AWSAppFabric", "AWSCleanRooms"]`.
         *
         *  Use the file with the list of Amazon Web Services products hosted on GitHub: [ Amazon Web Services products](https://github.com/aws-samples/partner-crm-integration-samples/blob/main/resources/aws_products.json).
         */
        public var awsProducts: List? = null
        /**
         * Enables partner solutions or offerings' association with an opportunity. To associate a solution, provide the solution's unique identifier, which you can obtain with the `ListSolutions` operation.
         *
         *  If the specific solution identifier is not available, you can use the value `Other` and provide details about the solution in the `otherSolutionOffered` field. But when the opportunity reaches the `Committed` stage or beyond, the `Other` value cannot be used, and a valid solution identifier must be provided.
         *
         *  By associating the relevant solutions with the opportunity, you can communicate the offerings that are being considered or implemented to address the customer's business problem.
         */
        public var solutions: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.partnercentralselling.model.RelatedEntityIdentifiers) : this() {
            this.awsMarketplaceOffers = x.awsMarketplaceOffers
            this.awsProducts = x.awsProducts
            this.solutions = x.solutions
        }

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

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy