submitOpportunity method

Future<void> submitOpportunity({
  1. required String catalog,
  2. required String identifier,
  3. required SalesInvolvementType involvementType,
  4. Visibility? visibility,
})

Use this action to submit an Opportunity that was previously created by partner for AWS review. After you perform this action, the Opportunity becomes non-editable until it is reviewed by AWS and has LifeCycle.ReviewStatus as either Approved or Action Required.

May throw AccessDeniedException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter catalog : Specifies the catalog related to the request. Valid values are:

  • AWS: Submits the opportunity request from the production AWS environment.
  • Sandbox: Submits the opportunity request from a sandbox environment used for testing or development purposes.

Parameter identifier : The identifier of the Opportunity previously created by partner and needs to be submitted.

Parameter involvementType : Specifies the level of AWS sellers' involvement on the opportunity. Valid values:

  • Co-sell: Indicates the user wants to co-sell with AWS. Share the opportunity with AWS to receive deal assistance and support.
  • For Visibility Only: Indicates that the user does not need support from AWS Sales Rep. Share this opportunity with AWS for visibility only, you will not receive deal assistance and support.

Parameter visibility : Determines whether to restrict visibility of the opportunity from AWS sales. Default value is Full. Valid values:

  • Full: The opportunity is fully visible to AWS sales.
  • Limited: The opportunity has restricted visibility to AWS sales.

Implementation

Future<void> submitOpportunity({
  required String catalog,
  required String identifier,
  required SalesInvolvementType involvementType,
  Visibility? visibility,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.0',
    'X-Amz-Target': 'AWSPartnerCentralSelling.SubmitOpportunity'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Catalog': catalog,
      'Identifier': identifier,
      'InvolvementType': involvementType.value,
      if (visibility != null) 'Visibility': visibility.value,
    },
  );
}