docs: public void marshall(ReservationPurchaseRecommendationDetail reservationPurchaseRecommendationDetail, ProtocolMarshaller protocolMarshaller) {
  
          if (reservationPurchaseRecommendationDetail == null) {
              throw new SdkClientException("Invalid argument passed to marshall(...)");
          }
  
          try {
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getAccountId(), ACCOUNTID_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getInstanceDetails(), INSTANCEDETAILS_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getRecommendedNumberOfInstancesToPurchase(),
                      RECOMMENDEDNUMBEROFINSTANCESTOPURCHASE_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getRecommendedNormalizedUnitsToPurchase(),
                      RECOMMENDEDNORMALIZEDUNITSTOPURCHASE_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getMinimumNumberOfInstancesUsedPerHour(),
                      MINIMUMNUMBEROFINSTANCESUSEDPERHOUR_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getMinimumNormalizedUnitsUsedPerHour(),
                      MINIMUMNORMALIZEDUNITSUSEDPERHOUR_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getMaximumNumberOfInstancesUsedPerHour(),
                      MAXIMUMNUMBEROFINSTANCESUSEDPERHOUR_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getMaximumNormalizedUnitsUsedPerHour(),
                      MAXIMUMNORMALIZEDUNITSUSEDPERHOUR_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getAverageNumberOfInstancesUsedPerHour(),
                      AVERAGENUMBEROFINSTANCESUSEDPERHOUR_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getAverageNormalizedUnitsUsedPerHour(),
                      AVERAGENORMALIZEDUNITSUSEDPERHOUR_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getAverageUtilization(), AVERAGEUTILIZATION_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getEstimatedBreakEvenInMonths(), ESTIMATEDBREAKEVENINMONTHS_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getCurrencyCode(), CURRENCYCODE_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getEstimatedMonthlySavingsAmount(), ESTIMATEDMONTHLYSAVINGSAMOUNT_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getEstimatedMonthlySavingsPercentage(),
                      ESTIMATEDMONTHLYSAVINGSPERCENTAGE_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getEstimatedMonthlyOnDemandCost(), ESTIMATEDMONTHLYONDEMANDCOST_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getEstimatedReservationCostForLookbackPeriod(),
                      ESTIMATEDRESERVATIONCOSTFORLOOKBACKPERIOD_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getUpfrontCost(), UPFRONTCOST_BINDING);
              protocolMarshaller.marshall(reservationPurchaseRecommendationDetail.getRecurringStandardMonthlyCost(), RECURRINGSTANDARDMONTHLYCOST_BINDING);
          } catch (Exception e) {
              throw new SdkClientException("Unable to marshall request to JSON: " + e.getMessage(), e);
          }
      }