def get_budget_response(budget_name, budget_limit_amount, calculated_actual_spend,
                        calculated_forecasted_spend):
    """Returns a mocked response object for the get_budget call

    :param budget_name: (str) the budget name
    :param budget_limit_amount: (float) the budget value
    :param calculated_actual_spend: (float) the current actual spend
    :param calculated_forecasted_spend: (float) the forecasted cost according to AWS
    :return: the response object
    """
    return {
        "Budget": {
            "BudgetName": budget_name,
            "BudgetLimit": {
                "Amount": str(budget_limit_amount),
                "Unit": "USD"
            },
            "CostTypes": {
                "IncludeTax": True,
                "IncludeSubscription": True,
                "UseBlended": False,
                "IncludeRefund": True,
                "IncludeCredit": True,
                "IncludeUpfront": True,
                "IncludeRecurring": True,
                "IncludeOtherSubscription": True,
                "IncludeSupport": True,
                "IncludeDiscount": True,
                "UseAmortized": False
            },
            "TimeUnit": "MONTHLY",
            "TimePeriod": {
                "Start": 1556668800.0,
                "End": 3706473600.0
            },
            "CalculatedSpend": {
                "ActualSpend": {
                    "Amount": str(calculated_actual_spend),
                    "Unit": "USD"
                },
                "ForecastedSpend": {
                    "Amount": str(calculated_forecasted_spend),
                    "Unit": "USD"
                }
            },
            "BudgetType": "COST",
            "LastUpdatedTime": 1559530911.092
        }
    }