Skip to content

update_opportunity async

update_opportunity(
    catalog: CatalogIdentifier,
    last_modified_date: DateTime,
    identifier: OpportunityIdentifier,
    *,
    config_overrides: Optional[AsyncPartnerCentralSellingClientConfig] = None,
    primary_needs_from_aws: Optional[PrimaryNeedsFromAws] = None,
    national_security: Optional[NationalSecurity] = None,
    partner_opportunity_identifier: Optional[str] = None,
    customer: Optional[Customer] = None,
    project: Optional[Project] = None,
    opportunity_type: Optional[OpportunityType] = None,
    marketing: Optional[Marketing] = None,
    software_revenue: Optional[SoftwareRevenue] = None,
    life_cycle: Optional[LifeCycle] = None,
) -> UpdateOpportunityResponse

Updates the Opportunity record identified by a given Identifier. This operation allows you to modify the details of an existing opportunity to reflect the latest information and progress. Use this action to keep the opportunity record up-to-date and accurate.

When you perform updates, include the entire payload with each request. If any field is omitted, the API assumes that the field is set to null. The best practice is to always perform a GetOpportunity to retrieve the latest values, then send the complete payload with the updated values to be changed.

Parameters:

  • catalog (CatalogIdentifier) –

    Specifies the catalog associated with the request. This field takes a string value from a predefined list: AWS or Sandbox. The catalog determines which environment the opportunity is updated in. Use AWS to update real opportunities in the production environment, and Sandbox for testing in secure, isolated environments. When you use the Sandbox catalog, it allows you to simulate and validate your interactions with Amazon Web Services services without affecting live data or operations.

  • primary_needs_from_aws (Optional[PrimaryNeedsFromAws], default: None ) –

    Identifies the type of support the partner needs from Amazon Web Services.

    Valid values:

    • Cosell—Architectural Validation: Confirmation from Amazon Web Services that the partner's proposed solution architecture is aligned with Amazon Web Services best practices and poses minimal architectural risks.

    • Cosell—Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.

    • Cosell—Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.

    • Cosell—Pricing Assistance: Connect with an AWS seller for support situations where a partner may be receiving an upfront discount on a service (for example: EDP deals).

    • Cosell—Technical Consultation: Connection with an Amazon Web Services Solutions Architect to address the partner's questions about the proposed solution.

    • Cosell—Total Cost of Ownership Evaluation: Assistance with quoting different cost savings of proposed solutions on Amazon Web Services versus on-premises or a traditional hosting environment.

    • Cosell—Deal Support: Request Amazon Web Services seller's support to progress the opportunity (for example: joint customer call, strategic positioning).

    • Cosell—Support for Public Tender/RFx: Opportunity related to the public sector where the partner needs RFx support from Amazon Web Services.

  • national_security (Optional[NationalSecurity], default: None ) –

    Specifies if the opportunity is associated with national security concerns. This flag is only applicable when the industry is Government. For national-security-related opportunities, validation and compliance rules may apply, impacting the opportunity's visibility and processing.

  • partner_opportunity_identifier (Optional[str], default: None ) –

    Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential to track and reconcile because it's included in the outbound payload sent back to the partner.

  • customer (Optional[Customer], default: None ) –

    Specifies details of the customer associated with the Opportunity.

  • project (Optional[Project], default: None ) –

    An object that contains project details summary for the Opportunity.

  • opportunity_type (Optional[OpportunityType], default: None ) –

    Specifies the opportunity type as a renewal, new, or expansion.

    Opportunity types:

    • New opportunity: Represents a new business opportunity with a potential customer that's not previously engaged with your solutions or services.

    • Renewal opportunity: Represents an opportunity to renew an existing contract or subscription with a current customer, ensuring continuity of service.

    • Expansion opportunity: Represents an opportunity to expand the scope of an existing contract or subscription, either by adding new services or increasing the volume of existing services for a current customer.

  • marketing (Optional[Marketing], default: None ) –

    An object that contains marketing details for the Opportunity.

  • software_revenue (Optional[SoftwareRevenue], default: None ) –

    Specifies details of a customer's procurement terms. Required only for partners in eligible programs.

  • last_modified_date (DateTime) –

    DateTime when the opportunity was last modified.

  • identifier (OpportunityIdentifier) –

    Read-only, system generated Opportunity unique identifier.

  • life_cycle (Optional[LifeCycle], default: None ) –

    An object that contains lifecycle details for the Opportunity.

Raises:

  • AccessDeniedException –

    This error occurs when you don't have permission to perform the requested action.

    You don’t have access to this action or resource. Review IAM policies or contact your AWS administrator for assistance.

  • ConflictException –

    This error occurs when the request can’t be processed due to a conflict with the target resource's current state, which could result from updating or deleting the resource.

    Suggested action: Fetch the latest state of the resource, verify the state, and retry the request.

  • InternalServerException –

    This error occurs when the specified resource can’t be found or doesn't exist. Resource ID and type might be incorrect.

    Suggested action: This is usually a transient error. Retry after the provided retry delay or a short interval. If the problem persists, contact AWS support.

  • ResourceNotFoundException –

    This error occurs when the specified resource can't be found. The resource might not exist, or isn't visible with the current credentials.

    Suggested action: Verify that the resource ID is correct and the resource is in the expected AWS region. Check IAM permissions for accessing the resource.

  • ThrottlingException –

    This error occurs when there are too many requests sent. Review the provided quotas and adapt your usage to avoid throttling.

    This error occurs when there are too many requests sent. Review the provided Quotas and retry after the provided delay.

  • ValidationException –

    The input fails to satisfy the constraints specified by the service or business validation rules.

    Suggested action: Review the error message, including the failed fields and reasons, to correct the request payload.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_partnercentral_selling/_services/async_partner_central_selling.py
async def update_opportunity(
    self,
    catalog: "capo_partnercentral_selling.types.catalog_identifier.CatalogIdentifier",
    last_modified_date: "capo_partnercentral_selling.types.date_time.DateTime",
    identifier: "capo_partnercentral_selling.types.opportunity_identifier.OpportunityIdentifier",
    *,
    config_overrides: Optional[AsyncPartnerCentralSellingClientConfig] = None,
    primary_needs_from_aws: Optional[
        "capo_partnercentral_selling.types.primary_needs_from_aws.PrimaryNeedsFromAws"
    ] = None,
    national_security: Optional[
        "capo_partnercentral_selling.types.national_security.NationalSecurity"
    ] = None,
    partner_opportunity_identifier: Optional[str] = None,
    customer: Optional[
        "capo_partnercentral_selling.types.customer.Customer"
    ] = None,
    project: Optional["capo_partnercentral_selling.types.project.Project"] = None,
    opportunity_type: Optional[
        "capo_partnercentral_selling.types.opportunity_type.OpportunityType"
    ] = None,
    marketing: Optional[
        "capo_partnercentral_selling.types.marketing.Marketing"
    ] = None,
    software_revenue: Optional[
        "capo_partnercentral_selling.types.software_revenue.SoftwareRevenue"
    ] = None,
    life_cycle: Optional[
        "capo_partnercentral_selling.types.life_cycle.LifeCycle"
    ] = None,
) -> "capo_partnercentral_selling.types.update_opportunity_response.UpdateOpportunityResponse":
    """<p>Updates the <code>Opportunity</code> record identified by a given <code>Identifier</code>. This operation allows you to modify the details of an existing opportunity to reflect the latest information and progress. Use this action to keep the opportunity record up-to-date and accurate.</p> <p>When you perform updates, include the entire payload with each request. If any field is omitted, the API assumes that the field is set to <code>null</code>. The best practice is to always perform a <code>GetOpportunity</code> to retrieve the latest values, then send the complete payload with the updated values to be changed.</p>

    Args:
        catalog: <p>Specifies the catalog associated with the request. This field takes a string value from a predefined list: <code>AWS</code> or <code>Sandbox</code>. The catalog determines which environment the opportunity is updated in. Use <code>AWS</code> to update real opportunities in the production environment, and <code>Sandbox</code> for testing in secure, isolated environments. When you use the <code>Sandbox</code> catalog, it allows you to simulate and validate your interactions with Amazon Web Services services without affecting live data or operations.</p>
        primary_needs_from_aws: <p>Identifies the type of support the partner needs from Amazon Web Services.</p> <p>Valid values:</p> <ul> <li> <p>Cosell—Architectural Validation: Confirmation from Amazon Web Services that the partner's proposed solution architecture is aligned with Amazon Web Services best practices and poses minimal architectural risks.</p> </li> <li> <p>Cosell—Business Presentation: Request Amazon Web Services seller's participation in a joint customer presentation.</p> </li> <li> <p>Cosell—Competitive Information: Access to Amazon Web Services competitive resources and support for the partner's proposed solution.</p> </li> <li> <p>Cosell—Pricing Assistance: Connect with an AWS seller for support situations where a partner may be receiving an upfront discount on a service (for example: EDP deals).</p> </li> <li> <p>Cosell—Technical Consultation: Connection with an Amazon Web Services Solutions Architect to address the partner's questions about the proposed solution.</p> </li> <li> <p>Cosell—Total Cost of Ownership Evaluation: Assistance with quoting different cost savings of proposed solutions on Amazon Web Services versus on-premises or a traditional hosting environment.</p> </li> <li> <p>Cosell—Deal Support: Request Amazon Web Services seller's support to progress the opportunity (for example: joint customer call, strategic positioning).</p> </li> <li> <p>Cosell—Support for Public Tender/RFx: Opportunity related to the public sector where the partner needs RFx support from Amazon Web Services.</p> </li> </ul>
        national_security: <p>Specifies if the opportunity is associated with national security concerns. This flag is only applicable when the industry is <code>Government</code>. For national-security-related opportunities, validation and compliance rules may apply, impacting the opportunity's visibility and processing.</p>
        partner_opportunity_identifier: <p>Specifies the opportunity's unique identifier in the partner's CRM system. This value is essential to track and reconcile because it's included in the outbound payload sent back to the partner.</p>
        customer: <p>Specifies details of the customer associated with the <code>Opportunity</code>.</p>
        project: <p>An object that contains project details summary for the <code>Opportunity</code>.</p>
        opportunity_type: <p>Specifies the opportunity type as a renewal, new, or expansion.</p> <p>Opportunity types:</p> <ul> <li> <p>New opportunity: Represents a new business opportunity with a potential customer that's not previously engaged with your solutions or services.</p> </li> <li> <p>Renewal opportunity: Represents an opportunity to renew an existing contract or subscription with a current customer, ensuring continuity of service.</p> </li> <li> <p>Expansion opportunity: Represents an opportunity to expand the scope of an existing contract or subscription, either by adding new services or increasing the volume of existing services for a current customer.</p> </li> </ul>
        marketing: <p>An object that contains marketing details for the <code>Opportunity</code>.</p>
        software_revenue: <p>Specifies details of a customer's procurement terms. Required only for partners in eligible programs.</p>
        last_modified_date: <p> <code>DateTime</code> when the opportunity was last modified.</p>
        identifier: <p>Read-only, system generated <code>Opportunity</code> unique identifier.</p>
        life_cycle: <p>An object that contains lifecycle details for the <code>Opportunity</code>.</p>

    Raises:
        capo_partnercentral_selling.errors.access_denied_exception.AccessDeniedException: <p>This error occurs when you don't have permission to perform the requested action.</p> <p>You don’t have access to this action or resource. Review IAM policies or contact your AWS administrator for assistance.</p>
        capo_partnercentral_selling.errors.conflict_exception.ConflictException: <p>This error occurs when the request can’t be processed due to a conflict with the target resource's current state, which could result from updating or deleting the resource.</p> <p>Suggested action: Fetch the latest state of the resource, verify the state, and retry the request.</p>
        capo_partnercentral_selling.errors.internal_server_exception.InternalServerException: <p>This error occurs when the specified resource can’t be found or doesn't exist. Resource ID and type might be incorrect.</p> <p>Suggested action: This is usually a transient error. Retry after the provided retry delay or a short interval. If the problem persists, contact AWS support.</p>
        capo_partnercentral_selling.errors.resource_not_found_exception.ResourceNotFoundException: <p>This error occurs when the specified resource can't be found. The resource might not exist, or isn't visible with the current credentials.</p> <p>Suggested action: Verify that the resource ID is correct and the resource is in the expected AWS region. Check IAM permissions for accessing the resource.</p>
        capo_partnercentral_selling.errors.throttling_exception.ThrottlingException: <p>This error occurs when there are too many requests sent. Review the provided quotas and adapt your usage to avoid throttling.</p> <p>This error occurs when there are too many requests sent. Review the provided <a href="https://docs.aws.amazon.com/partner-central/latest/selling-api/quotas.html">Quotas</a> and retry after the provided delay.</p>
        capo_partnercentral_selling.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the service or business validation rules.</p> <p>Suggested action: Review the error message, including the failed fields and reasons, to correct the request payload.</p>
        capo_partnercentral_selling.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_partnercentral_selling.types.update_opportunity_request.UpdateOpportunityRequest]",
    ) -> AsyncOperationResponse[
        "capo_partnercentral_selling.types.update_opportunity_response.UpdateOpportunityResponse"
    ]:
        import capo_partnercentral_selling._operations.aws_partner_central_selling.update_opportunity

        (
            output,
            http_response,
        ) = await capo_partnercentral_selling._operations.aws_partner_central_selling.update_opportunity.async_update_opportunity(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_partnercentral_selling.types.update_opportunity_request.UpdateOpportunityRequest",
    ) -> dict[str, Any]:
        import capo_partnercentral_selling.types.update_opportunity_request

        return capo_partnercentral_selling.types.update_opportunity_request.redact_sensitive(
            input_
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("UpdateOpportunity", redact_input=_redact_input),
    )
    input_: capo_partnercentral_selling.types.update_opportunity_request.UpdateOpportunityRequest = {
        "catalog": catalog,
        "last_modified_date": last_modified_date,
        "identifier": identifier,
    }
    if primary_needs_from_aws is not None:
        input_["primary_needs_from_aws"] = primary_needs_from_aws
    if national_security is not None:
        input_["national_security"] = national_security
    if partner_opportunity_identifier is not None:
        input_["partner_opportunity_identifier"] = partner_opportunity_identifier
    if customer is not None:
        input_["customer"] = customer
    if project is not None:
        input_["project"] = project
    if opportunity_type is not None:
        input_["opportunity_type"] = opportunity_type
    if marketing is not None:
        input_["marketing"] = marketing
    if software_revenue is not None:
        input_["software_revenue"] = software_revenue
    if life_cycle is not None:
        input_["life_cycle"] = life_cycle

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output