@Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getRecommendationId() != null)
            sb.append("RecommendationId: ").append(getRecommendationId()).append(",");
        if (getResourceId() != null)
            sb.append("ResourceId: ").append(getResourceId()).append(",");
        if (getResourceArn() != null)
            sb.append("ResourceArn: ").append(getResourceArn()).append(",");
        if (getAccountId() != null)
            sb.append("AccountId: ").append(getAccountId()).append(",");
        if (getCurrencyCode() != null)
            sb.append("CurrencyCode: ").append(getCurrencyCode()).append(",");
        if (getRecommendationLookbackPeriodInDays() != null)
            sb.append("RecommendationLookbackPeriodInDays: ").append(getRecommendationLookbackPeriodInDays()).append(",");
        if (getCostCalculationLookbackPeriodInDays() != null)
            sb.append("CostCalculationLookbackPeriodInDays: ").append(getCostCalculationLookbackPeriodInDays()).append(",");
        if (getEstimatedSavingsPercentage() != null)
            sb.append("EstimatedSavingsPercentage: ").append(getEstimatedSavingsPercentage()).append(",");
        if (getEstimatedSavingsOverCostCalculationLookbackPeriod() != null)
            sb.append("EstimatedSavingsOverCostCalculationLookbackPeriod: ").append(getEstimatedSavingsOverCostCalculationLookbackPeriod()).append(",");
        if (getCurrentResourceType() != null)
            sb.append("CurrentResourceType: ").append(getCurrentResourceType()).append(",");
        if (getRecommendedResourceType() != null)
            sb.append("RecommendedResourceType: ").append(getRecommendedResourceType()).append(",");
        if (getRegion() != null)
            sb.append("Region: ").append(getRegion()).append(",");
        if (getSource() != null)
            sb.append("Source: ").append(getSource()).append(",");
        if (getLastRefreshTimestamp() != null)
            sb.append("LastRefreshTimestamp: ").append(getLastRefreshTimestamp()).append(",");
        if (getEstimatedMonthlySavings() != null)
            sb.append("EstimatedMonthlySavings: ").append(getEstimatedMonthlySavings()).append(",");
        if (getEstimatedMonthlyCost() != null)
            sb.append("EstimatedMonthlyCost: ").append(getEstimatedMonthlyCost()).append(",");
        if (getImplementationEffort() != null)
            sb.append("ImplementationEffort: ").append(getImplementationEffort()).append(",");
        if (getRestartNeeded() != null)
            sb.append("RestartNeeded: ").append(getRestartNeeded()).append(",");
        if (getActionType() != null)
            sb.append("ActionType: ").append(getActionType()).append(",");
        if (getRollbackPossible() != null)
            sb.append("RollbackPossible: ").append(getRollbackPossible()).append(",");
        if (getCurrentResourceDetails() != null)
            sb.append("CurrentResourceDetails: ").append(getCurrentResourceDetails()).append(",");
        if (getRecommendedResourceDetails() != null)
            sb.append("RecommendedResourceDetails: ").append(getRecommendedResourceDetails()).append(",");
        if (getTags() != null)
            sb.append("Tags: ").append(getTags());
        sb.append("}");
        return sb.toString();
    }
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
redacted from this string using a placeholder value.

@return A string representation of this object.

@see java.lang.Object#toString()
aws-java-sdk-costoptimizationhub/src/main/java/com/amazonaws/services/costoptimizationhub/model/GetRecommendationResult.java