updateBenefitApplication method

Future<UpdateBenefitApplicationOutput> updateBenefitApplication({
  1. required String catalog,
  2. required String clientToken,
  3. required String identifier,
  4. required String revision,
  5. Document? benefitApplicationDetails,
  6. String? description,
  7. List<FileInput>? fileDetails,
  8. String? name,
  9. List<Contact>? partnerContacts,
})

Updates an existing benefit application with new information while maintaining revision control.

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

Parameter catalog : The catalog identifier that specifies which benefit catalog the application belongs to.

Parameter clientToken : A unique, case-sensitive identifier to ensure idempotent processing of the update request.

Parameter identifier : The unique identifier of the benefit application to update.

Parameter revision : The current revision number of the benefit application to ensure optimistic concurrency control.

Parameter benefitApplicationDetails : Updated detailed information and requirements specific to the benefit being requested.

Parameter description : The updated detailed description of the benefit application.

Parameter fileDetails : Updated supporting documents and files attached to the benefit application.

Parameter name : The updated human-readable name for the benefit application.

Parameter partnerContacts : Updated contact information for partner representatives responsible for this benefit application.

Implementation

Future<UpdateBenefitApplicationOutput> updateBenefitApplication({
  required String catalog,
  required String clientToken,
  required String identifier,
  required String revision,
  Document? benefitApplicationDetails,
  String? description,
  List<FileInput>? fileDetails,
  String? name,
  List<Contact>? partnerContacts,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.0',
    'X-Amz-Target': 'PartnerCentralBenefitsService.UpdateBenefitApplication'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'Catalog': catalog,
      'ClientToken': clientToken,
      'Identifier': identifier,
      'Revision': revision,
      if (benefitApplicationDetails != null)
        'BenefitApplicationDetails': benefitApplicationDetails,
      if (description != null) 'Description': description,
      if (fileDetails != null) 'FileDetails': fileDetails,
      if (name != null) 'Name': name,
      if (partnerContacts != null) 'PartnerContacts': partnerContacts,
    },
  );

  return UpdateBenefitApplicationOutput.fromJson(jsonResponse.body);
}