import { SpendProps } from './SpendProps';
import { TimePeriodProps } from './TimePeriodProps';
import { AutoAdjustDataProps } from './AutoAdjustDataProps';
import { Value } from '../../../cloudformation/Value';
import { CostTypesProps } from './CostTypesProps';
/**
  Represents the output of the <code>CreateBudget</code> operation. The content consists of the detailed metadata and data file information, and the current status of the <code>budget</code> object.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html">the AWS Docs</a>
*/
export interface BudgetDataProps {
    /** <code>BudgetLimit</code>  <a name="cfn-budgets-budget-budgetdata-budgetlimit"></a>
  The total amount of cost, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage that you want to track with your budget.<br />
  <code>BudgetLimit</code> is required for cost or usage budgets, but optional for RI or Savings Plans utilization or coverage budgets. RI and Savings Plans utilization or coverage budgets default to <code>100</code>. This is the only valid value for RI or Savings Plans utilization or coverage budgets. You can’t use <code>BudgetLimit</code> with <code>PlannedBudgetLimits</code> for <code>CreateBudget</code> and <code>UpdateBudget</code> actions.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    budgetLimit?: SpendProps;
    /** <code>TimePeriod</code>  <a name="cfn-budgets-budget-budgetdata-timeperiod"></a>
  The period of time that is covered by a budget. The period has a start date and an end date. The start date must come before the end date. There are no restrictions on the end date.<br />
  The start date for a budget. If you created your budget and didn’t specify a start date, the start date defaults to the start of the chosen time period (MONTHLY, QUARTERLY, or ANNUALLY). For example, if you create your budget on January 24, 2019, choose <code>MONTHLY</code>, and don’t set a start date, the start date defaults to <code>01/01/19 00:00 UTC</code>. The defaults are the same for the AWS Billing and Cost Management console and the API.<br />
  You can change your start date with the <code>UpdateBudget</code> operation.<br />
  After the end date, AWS deletes the budget and all associated notifications and subscribers.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    timePeriod?: TimePeriodProps;
    /** <code>AutoAdjustData</code>  <a name="cfn-budgets-budget-budgetdata-autoadjustdata"></a>
  Determine the budget amount for an auto-adjusting budget.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    autoAdjustData?: AutoAdjustDataProps;
    /** <code>TimeUnit</code>  <a name="cfn-budgets-budget-budgetdata-timeunit"></a>
  The length of time until a budget resets the actual and forecasted spend. <code>DAILY</code> is available only for <code>RI_UTILIZATION</code> and <code>RI_COVERAGE</code> budgets.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>ANNUALLY | DAILY | MONTHLY | QUARTERLY</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    timeUnit: Value<'ANNUALLY' | 'DAILY' | 'MONTHLY' | 'QUARTERLY'>;
    /** <code>PlannedBudgetLimits</code>  <a name="cfn-budgets-budget-budgetdata-plannedbudgetlimits"></a>
  A map containing multiple <code>BudgetLimit</code>, including current or future limits.<br />
  <code>PlannedBudgetLimits</code> is available for cost or usage budget and supports both monthly and quarterly <code>TimeUnit</code>.<br />
  For monthly budgets, provide 12 months of <code>PlannedBudgetLimits</code> values. This must start from the current month and include the next 11 months. The <code>key</code> is the start of the month, <code>UTC</code> in epoch seconds.<br />
  For quarterly budgets, provide four quarters of <code>PlannedBudgetLimits</code> value entries in standard calendar quarter increments. This must start from the current quarter and include the next three quarters. The <code>key</code> is the start of the quarter, <code>UTC</code> in epoch seconds.<br />
  If the planned budget expires before 12 months for monthly or four quarters for quarterly, provide the <code>PlannedBudgetLimits</code> values only for the remaining periods.<br />
  If the budget begins at a date in the future, provide <code>PlannedBudgetLimits</code> values from the start date of the budget.<br />
  After all of the <code>BudgetLimit</code> values in <code>PlannedBudgetLimits</code> are used, the budget continues to use the last limit as the <code>BudgetLimit</code>. At that point, the planned budget provides the same experience as a fixed budget.<br />
  <code>DescribeBudget</code> and <code>DescribeBudgets</code> response along with <code>PlannedBudgetLimits</code> also contain <code>BudgetLimit</code> representing the current month or quarter limit present in <code>PlannedBudgetLimits</code>. This only applies to budgets that are created with <code>PlannedBudgetLimits</code>. Budgets that are created without <code>PlannedBudgetLimits</code> only contain <code>BudgetLimit</code>. They don’t contain <code>PlannedBudgetLimits</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    plannedBudgetLimits?: Value<any>;
    /** <p> */
    costFilters?: Value<any>;
    /** <code>BudgetName</code>  <a name="cfn-budgets-budget-budgetdata-budgetname"></a>
  The name of a budget. The value must be unique within an account. <code>BudgetName</code> can’t include <code>:</code> and <code>\</code> characters. If you don’t include value for <code>BudgetName</code> in the template, Billing and Cost Management assigns your budget a randomly generated name.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    budgetName?: Value<string>;
    /** <code>CostTypes</code>  <a name="cfn-budgets-budget-budgetdata-costtypes"></a>
  The types of costs that are included in this <code>COST</code> budget.<br />
  <code>USAGE</code>, <code>RI_UTILIZATION</code>, <code>RI_COVERAGE</code>, <code>SAVINGS_PLANS_UTILIZATION</code>, and <code>SAVINGS_PLANS_COVERAGE</code> budgets do not have <code>CostTypes</code>.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    costTypes?: CostTypesProps;
    /** <code>BudgetType</code>  <a name="cfn-budgets-budget-budgetdata-budgettype"></a>
  Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings Plans utilization, or Savings Plans coverage.<br />
  
  Required: Yes<br />
  
  Allowed values: <code>COST | RI_COVERAGE | RI_UTILIZATION | SAVINGS_PLANS_COVERAGE | SAVINGS_PLANS_UTILIZATION | USAGE</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    budgetType: Value<'COST' | 'RI_COVERAGE' | 'RI_UTILIZATION' | 'SAVINGS_PLANS_COVERAGE' | 'SAVINGS_PLANS_UTILIZATION' | 'USAGE'>;
}
