updateProcurementPortalPreferenceStatus method

Future<UpdateProcurementPortalPreferenceStatusResponse> updateProcurementPortalPreferenceStatus({
  1. required String procurementPortalPreferenceArn,
  2. String? clientToken,
  3. ProcurementPortalPreferenceStatus? einvoiceDeliveryPreferenceStatus,
  4. String? einvoiceDeliveryPreferenceStatusReason,
  5. ProcurementPortalPreferenceStatus? purchaseOrderRetrievalPreferenceStatus,
  6. String? purchaseOrderRetrievalPreferenceStatusReason,
})

This feature API is subject to changing at any time. For more information, see the Amazon Web Services Service Terms (Betas and Previews).

Updates the status of a procurement portal preference, including the activation state of e-invoice delivery and purchase order retrieval features.

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

Parameter procurementPortalPreferenceArn : The Amazon Resource Name (ARN) of the procurement portal preference to update.

Parameter clientToken : A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

Parameter einvoiceDeliveryPreferenceStatus : The updated status of the e-invoice delivery preference.

Parameter einvoiceDeliveryPreferenceStatusReason : The reason for the e-invoice delivery preference status update, providing context for the change.

Parameter purchaseOrderRetrievalPreferenceStatus : The updated status of the purchase order retrieval preference.

Parameter purchaseOrderRetrievalPreferenceStatusReason : The reason for the purchase order retrieval preference status update, providing context for the change.

Implementation

Future<UpdateProcurementPortalPreferenceStatusResponse>
    updateProcurementPortalPreferenceStatus({
  required String procurementPortalPreferenceArn,
  String? clientToken,
  ProcurementPortalPreferenceStatus? einvoiceDeliveryPreferenceStatus,
  String? einvoiceDeliveryPreferenceStatusReason,
  ProcurementPortalPreferenceStatus? purchaseOrderRetrievalPreferenceStatus,
  String? purchaseOrderRetrievalPreferenceStatusReason,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.0',
    'X-Amz-Target': 'Invoicing.UpdateProcurementPortalPreferenceStatus'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ProcurementPortalPreferenceArn': procurementPortalPreferenceArn,
      'ClientToken': clientToken ?? _s.generateIdempotencyToken(),
      if (einvoiceDeliveryPreferenceStatus != null)
        'EinvoiceDeliveryPreferenceStatus':
            einvoiceDeliveryPreferenceStatus.value,
      if (einvoiceDeliveryPreferenceStatusReason != null)
        'EinvoiceDeliveryPreferenceStatusReason':
            einvoiceDeliveryPreferenceStatusReason,
      if (purchaseOrderRetrievalPreferenceStatus != null)
        'PurchaseOrderRetrievalPreferenceStatus':
            purchaseOrderRetrievalPreferenceStatus.value,
      if (purchaseOrderRetrievalPreferenceStatusReason != null)
        'PurchaseOrderRetrievalPreferenceStatusReason':
            purchaseOrderRetrievalPreferenceStatusReason,
    },
  );

  return UpdateProcurementPortalPreferenceStatusResponse.fromJson(
      jsonResponse.body);
}