commonMain.aws.sdk.kotlin.services.partnercentralselling.model.Project.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of partnercentralselling-jvm Show documentation
Show all versions of partnercentralselling-jvm Show documentation
The AWS SDK for Kotlin client for PartnerCentral Selling
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!
package aws.sdk.kotlin.services.partnercentralselling.model
import aws.smithy.kotlin.runtime.SdkDsl
/**
* An object that contains the `Opportunity`'s project details.
*/
public class Project private constructor(builder: Builder) {
/**
* Captures additional comments or information for the `Opportunity` that weren't captured in other fields.
*/
public val additionalComments: kotlin.String? = builder.additionalComments
/**
* Specifies the Amazon Partner Network (APN) program that influenced the `Opportunity`. APN programs refer to specific partner programs or initiatives that can impact the `Opportunity`.
*
* Valid values: `APN Immersion Days | APN Solution Space | ATO (Authority to Operate) | AWS Marketplace Campaign | IS Immersion Day SFID Program | ISV Workload Migration | Migration Acceleration Program | P3 | Partner Launch Initiative | Partner Opportunity Acceleration Funded | The Next Smart | VMware Cloud on AWS | Well-Architected | Windows | Workspaces/AppStream Accelerator Program | WWPS NDPP`
*/
public val apnPrograms: List? = builder.apnPrograms
/**
* Name of the `Opportunity`'s competitor (if any). Use `Other` to submit a value not in the picklist.
*/
public val competitorName: aws.sdk.kotlin.services.partnercentralselling.model.CompetitorName? = builder.competitorName
/**
* Describes the problem the end customer has, and how the partner is helping. Utilize this field to provide a concise narrative that outlines the customer's business challenge or issue. Elaborate on how the partner's solution or offerings align to resolve the customer's business problem. Include relevant information about the partner's value proposition, unique selling points, and expertise to tackle the issue. Offer insights on how the proposed solution meets the customer's needs and provides value. Use concise language and precise descriptions to convey the context and significance of the `Opportunity`. The content in this field helps Amazon Web Services understand the nature of the `Opportunity` and the strategic fit of the partner's solution.
*/
public val customerBusinessProblem: kotlin.String? = builder.customerBusinessProblem
/**
* Specifies the proposed solution focus or type of workload for the Opportunity. This field captures the primary use case or objective of the proposed solution, and provides context and clarity to the addressed workload.
*
* Valid values: `AI Machine Learning and Analytics | Archiving | Big Data: Data Warehouse/Data Integration/ETL/Data Lake/BI | Blockchain | Business Applications: Mainframe Modernization | Business Applications & Contact Center | Business Applications & SAP Production | Centralized Operations Management | Cloud Management Tools | Cloud Management Tools & DevOps with Continuous Integration & Continuous Delivery (CICD) | Configuration, Compliance & Auditing | Connected Services | Containers & Serverless | Content Delivery & Edge Services | Database | Edge Computing/End User Computing | Energy | Enterprise Governance & Controls | Enterprise Resource Planning | Financial Services | Healthcare and Life Sciences | High Performance Computing | Hybrid Application Platform | Industrial Software | IOT | Manufacturing, Supply Chain and Operations | Media & High performance computing (HPC) | Migration/Database Migration | Monitoring, logging and performance | Monitoring & Observability | Networking | Outpost | SAP | Security & Compliance | Storage & Backup | Training | VMC | VMWare | Web development & DevOps`
*/
public val customerUseCase: kotlin.String? = builder.customerUseCase
/**
* Specifies the deployment or consumption model for your solution or service in the `Opportunity`'s context. You can select multiple options.
*
* Options' descriptions from the `Delivery Model` field are:
* + SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or PaaS in your Amazon Web Services environment.
* + BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or AMI in the end customer's Amazon Web Services environment.
* + Managed Services: The end customer's Amazon Web Services business management (For example: Consulting, design, implementation, billing support, cost optimization, technical support).
* + Professional Services: Offerings to help enterprise end customers achieve specific business outcomes for enterprise cloud adoption (For example: Advisory or transformation planning).
* + Resell: Amazon Web Services accounts and billing management for your customers.
* + Other: Delivery model not described above.
*/
public val deliveryModels: List? = builder.deliveryModels
/**
* Represents the estimated amount that the customer is expected to spend on AWS services related to the opportunity. This helps in evaluating the potential financial value of the opportunity for AWS.
*/
public val expectedCustomerSpend: List? = builder.expectedCustomerSpend
/**
* Only allowed when `CompetitorNames` has `Other` selected.
*/
public val otherCompetitorNames: kotlin.String? = builder.otherCompetitorNames
/**
* Specifies the offered solution for the customer's business problem when the ` RelatedEntityIdentifiers.Solutions` field value is `Other`.
*/
public val otherSolutionDescription: kotlin.String? = builder.otherSolutionDescription
/**
* Specifies the current opportunity's parent opportunity identifier.
*/
public val relatedOpportunityIdentifier: kotlin.String? = builder.relatedOpportunityIdentifier
/**
* Specifies the `Opportunity`'s sales activities conducted with the end customer. These activities help drive Amazon Web Services assignment priority.
*
* Valid values:
* + Initialized discussions with customer: Initial conversations with the customer to understand their needs and introduce your solution.
* + Customer has shown interest in solution: After initial discussions, the customer is interested in your solution.
* + Conducted POC/demo: You conducted a proof of concept (POC) or demonstration of the solution for the customer.
* + In evaluation/planning stage: The customer is evaluating the solution and planning potential implementation.
* + Agreed on solution to Business Problem: Both parties agree on how the solution addresses the customer's business problem.
* + Completed Action Plan: A detailed action plan is complete and outlines the steps for implementation.
* + Finalized Deployment Need: Both parties agree with and finalized the deployment needs.
* + SOW Signed: Both parties signed a statement of work (SOW), and formalize the agreement and detail the project scope and deliverables.
*/
public val salesActivities: List? = builder.salesActivities
/**
* Specifies the `Opportunity`'s title or name.
*/
public val title: kotlin.String? = builder.title
public companion object {
public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.partnercentralselling.model.Project = Builder().apply(block).build()
}
override fun toString(): kotlin.String = buildString {
append("Project(")
append("additionalComments=$additionalComments,")
append("apnPrograms=$apnPrograms,")
append("competitorName=$competitorName,")
append("customerBusinessProblem=*** Sensitive Data Redacted ***,")
append("customerUseCase=$customerUseCase,")
append("deliveryModels=$deliveryModels,")
append("expectedCustomerSpend=$expectedCustomerSpend,")
append("otherCompetitorNames=$otherCompetitorNames,")
append("otherSolutionDescription=*** Sensitive Data Redacted ***,")
append("relatedOpportunityIdentifier=$relatedOpportunityIdentifier,")
append("salesActivities=$salesActivities,")
append("title=*** Sensitive Data Redacted ***")
append(")")
}
override fun hashCode(): kotlin.Int {
var result = additionalComments?.hashCode() ?: 0
result = 31 * result + (apnPrograms?.hashCode() ?: 0)
result = 31 * result + (competitorName?.hashCode() ?: 0)
result = 31 * result + (customerBusinessProblem?.hashCode() ?: 0)
result = 31 * result + (customerUseCase?.hashCode() ?: 0)
result = 31 * result + (deliveryModels?.hashCode() ?: 0)
result = 31 * result + (expectedCustomerSpend?.hashCode() ?: 0)
result = 31 * result + (otherCompetitorNames?.hashCode() ?: 0)
result = 31 * result + (otherSolutionDescription?.hashCode() ?: 0)
result = 31 * result + (relatedOpportunityIdentifier?.hashCode() ?: 0)
result = 31 * result + (salesActivities?.hashCode() ?: 0)
result = 31 * result + (title?.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 Project
if (additionalComments != other.additionalComments) return false
if (apnPrograms != other.apnPrograms) return false
if (competitorName != other.competitorName) return false
if (customerBusinessProblem != other.customerBusinessProblem) return false
if (customerUseCase != other.customerUseCase) return false
if (deliveryModels != other.deliveryModels) return false
if (expectedCustomerSpend != other.expectedCustomerSpend) return false
if (otherCompetitorNames != other.otherCompetitorNames) return false
if (otherSolutionDescription != other.otherSolutionDescription) return false
if (relatedOpportunityIdentifier != other.relatedOpportunityIdentifier) return false
if (salesActivities != other.salesActivities) return false
if (title != other.title) return false
return true
}
public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.partnercentralselling.model.Project = Builder(this).apply(block).build()
@SdkDsl
public class Builder {
/**
* Captures additional comments or information for the `Opportunity` that weren't captured in other fields.
*/
public var additionalComments: kotlin.String? = null
/**
* Specifies the Amazon Partner Network (APN) program that influenced the `Opportunity`. APN programs refer to specific partner programs or initiatives that can impact the `Opportunity`.
*
* Valid values: `APN Immersion Days | APN Solution Space | ATO (Authority to Operate) | AWS Marketplace Campaign | IS Immersion Day SFID Program | ISV Workload Migration | Migration Acceleration Program | P3 | Partner Launch Initiative | Partner Opportunity Acceleration Funded | The Next Smart | VMware Cloud on AWS | Well-Architected | Windows | Workspaces/AppStream Accelerator Program | WWPS NDPP`
*/
public var apnPrograms: List? = null
/**
* Name of the `Opportunity`'s competitor (if any). Use `Other` to submit a value not in the picklist.
*/
public var competitorName: aws.sdk.kotlin.services.partnercentralselling.model.CompetitorName? = null
/**
* Describes the problem the end customer has, and how the partner is helping. Utilize this field to provide a concise narrative that outlines the customer's business challenge or issue. Elaborate on how the partner's solution or offerings align to resolve the customer's business problem. Include relevant information about the partner's value proposition, unique selling points, and expertise to tackle the issue. Offer insights on how the proposed solution meets the customer's needs and provides value. Use concise language and precise descriptions to convey the context and significance of the `Opportunity`. The content in this field helps Amazon Web Services understand the nature of the `Opportunity` and the strategic fit of the partner's solution.
*/
public var customerBusinessProblem: kotlin.String? = null
/**
* Specifies the proposed solution focus or type of workload for the Opportunity. This field captures the primary use case or objective of the proposed solution, and provides context and clarity to the addressed workload.
*
* Valid values: `AI Machine Learning and Analytics | Archiving | Big Data: Data Warehouse/Data Integration/ETL/Data Lake/BI | Blockchain | Business Applications: Mainframe Modernization | Business Applications & Contact Center | Business Applications & SAP Production | Centralized Operations Management | Cloud Management Tools | Cloud Management Tools & DevOps with Continuous Integration & Continuous Delivery (CICD) | Configuration, Compliance & Auditing | Connected Services | Containers & Serverless | Content Delivery & Edge Services | Database | Edge Computing/End User Computing | Energy | Enterprise Governance & Controls | Enterprise Resource Planning | Financial Services | Healthcare and Life Sciences | High Performance Computing | Hybrid Application Platform | Industrial Software | IOT | Manufacturing, Supply Chain and Operations | Media & High performance computing (HPC) | Migration/Database Migration | Monitoring, logging and performance | Monitoring & Observability | Networking | Outpost | SAP | Security & Compliance | Storage & Backup | Training | VMC | VMWare | Web development & DevOps`
*/
public var customerUseCase: kotlin.String? = null
/**
* Specifies the deployment or consumption model for your solution or service in the `Opportunity`'s context. You can select multiple options.
*
* Options' descriptions from the `Delivery Model` field are:
* + SaaS or PaaS: Your Amazon Web Services based solution deployed as SaaS or PaaS in your Amazon Web Services environment.
* + BYOL or AMI: Your Amazon Web Services based solution deployed as BYOL or AMI in the end customer's Amazon Web Services environment.
* + Managed Services: The end customer's Amazon Web Services business management (For example: Consulting, design, implementation, billing support, cost optimization, technical support).
* + Professional Services: Offerings to help enterprise end customers achieve specific business outcomes for enterprise cloud adoption (For example: Advisory or transformation planning).
* + Resell: Amazon Web Services accounts and billing management for your customers.
* + Other: Delivery model not described above.
*/
public var deliveryModels: List? = null
/**
* Represents the estimated amount that the customer is expected to spend on AWS services related to the opportunity. This helps in evaluating the potential financial value of the opportunity for AWS.
*/
public var expectedCustomerSpend: List? = null
/**
* Only allowed when `CompetitorNames` has `Other` selected.
*/
public var otherCompetitorNames: kotlin.String? = null
/**
* Specifies the offered solution for the customer's business problem when the ` RelatedEntityIdentifiers.Solutions` field value is `Other`.
*/
public var otherSolutionDescription: kotlin.String? = null
/**
* Specifies the current opportunity's parent opportunity identifier.
*/
public var relatedOpportunityIdentifier: kotlin.String? = null
/**
* Specifies the `Opportunity`'s sales activities conducted with the end customer. These activities help drive Amazon Web Services assignment priority.
*
* Valid values:
* + Initialized discussions with customer: Initial conversations with the customer to understand their needs and introduce your solution.
* + Customer has shown interest in solution: After initial discussions, the customer is interested in your solution.
* + Conducted POC/demo: You conducted a proof of concept (POC) or demonstration of the solution for the customer.
* + In evaluation/planning stage: The customer is evaluating the solution and planning potential implementation.
* + Agreed on solution to Business Problem: Both parties agree on how the solution addresses the customer's business problem.
* + Completed Action Plan: A detailed action plan is complete and outlines the steps for implementation.
* + Finalized Deployment Need: Both parties agree with and finalized the deployment needs.
* + SOW Signed: Both parties signed a statement of work (SOW), and formalize the agreement and detail the project scope and deliverables.
*/
public var salesActivities: List? = null
/**
* Specifies the `Opportunity`'s title or name.
*/
public var title: kotlin.String? = null
@PublishedApi
internal constructor()
@PublishedApi
internal constructor(x: aws.sdk.kotlin.services.partnercentralselling.model.Project) : this() {
this.additionalComments = x.additionalComments
this.apnPrograms = x.apnPrograms
this.competitorName = x.competitorName
this.customerBusinessProblem = x.customerBusinessProblem
this.customerUseCase = x.customerUseCase
this.deliveryModels = x.deliveryModels
this.expectedCustomerSpend = x.expectedCustomerSpend
this.otherCompetitorNames = x.otherCompetitorNames
this.otherSolutionDescription = x.otherSolutionDescription
this.relatedOpportunityIdentifier = x.relatedOpportunityIdentifier
this.salesActivities = x.salesActivities
this.title = x.title
}
@PublishedApi
internal fun build(): aws.sdk.kotlin.services.partnercentralselling.model.Project = Project(this)
internal fun correctErrors(): Builder {
return this
}
}
}