/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the budgets-2016-10-20.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Budgets.Model { /// /// Represents the output of the CreateBudget operation. The content consists /// of the detailed metadata and data file information, and the current status of the /// budget object. /// /// /// /// This is the Amazon Resource Name (ARN) pattern for a budget: /// /// /// /// arn:aws:budgets::AccountId:budget/budgetName /// /// public partial class Budget { private AutoAdjustData _autoAdjustData; private Spend _budgetLimit; private string _budgetName; private BudgetType _budgetType; private CalculatedSpend _calculatedSpend; private Dictionary> _costFilters = new Dictionary>(); private CostTypes _costTypes; private DateTime? _lastUpdatedTime; private Dictionary _plannedBudgetLimits = new Dictionary(); private TimePeriod _timePeriod; private TimeUnit _timeUnit; /// /// Gets and sets the property AutoAdjustData. /// /// The parameters that determine the budget amount for an auto-adjusting budget. /// /// public AutoAdjustData AutoAdjustData { get { return this._autoAdjustData; } set { this._autoAdjustData = value; } } // Check to see if AutoAdjustData property is set internal bool IsSetAutoAdjustData() { return this._autoAdjustData != null; } /// /// Gets and sets the property BudgetLimit. /// /// 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. /// /// /// /// BudgetLimit 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 100. This is the only valid value for /// RI or Savings Plans utilization or coverage budgets. You can't use BudgetLimit /// with PlannedBudgetLimits for CreateBudget and UpdateBudget /// actions. /// /// public Spend BudgetLimit { get { return this._budgetLimit; } set { this._budgetLimit = value; } } // Check to see if BudgetLimit property is set internal bool IsSetBudgetLimit() { return this._budgetLimit != null; } /// /// Gets and sets the property BudgetName. /// /// The name of a budget. The name must be unique within an account. The : /// and \ characters aren't allowed in BudgetName. /// /// [AWSProperty(Required=true, Min=1, Max=100)] public string BudgetName { get { return this._budgetName; } set { this._budgetName = value; } } // Check to see if BudgetName property is set internal bool IsSetBudgetName() { return this._budgetName != null; } /// /// Gets and sets the property BudgetType. /// /// Specifies whether this budget tracks costs, usage, RI utilization, RI coverage, Savings /// Plans utilization, or Savings Plans coverage. /// /// [AWSProperty(Required=true)] public BudgetType BudgetType { get { return this._budgetType; } set { this._budgetType = value; } } // Check to see if BudgetType property is set internal bool IsSetBudgetType() { return this._budgetType != null; } /// /// Gets and sets the property CalculatedSpend. /// /// The actual and forecasted cost or usage that the budget tracks. /// /// public CalculatedSpend CalculatedSpend { get { return this._calculatedSpend; } set { this._calculatedSpend = value; } } // Check to see if CalculatedSpend property is set internal bool IsSetCalculatedSpend() { return this._calculatedSpend != null; } /// /// Gets and sets the property CostFilters. /// /// The cost filters, such as Region, Service, member /// account, Tag, or Cost Category, that are applied /// to a budget. /// /// /// /// Amazon Web Services Budgets supports the following services as a Service /// filter for RI budgets: /// ///
  • /// /// Amazon EC2 /// ///
  • /// /// Amazon Redshift /// ///
  • /// /// Amazon Relational Database Service /// ///
  • /// /// Amazon ElastiCache /// ///
  • /// /// Amazon OpenSearch Service /// ///
///
public Dictionary> CostFilters { get { return this._costFilters; } set { this._costFilters = value; } } // Check to see if CostFilters property is set internal bool IsSetCostFilters() { return this._costFilters != null && this._costFilters.Count > 0; } /// /// Gets and sets the property CostTypes. /// /// The types of costs that are included in this COST budget. /// /// /// /// USAGE, RI_UTILIZATION, RI_COVERAGE, SAVINGS_PLANS_UTILIZATION, /// and SAVINGS_PLANS_COVERAGE budgets do not have CostTypes. /// /// public CostTypes CostTypes { get { return this._costTypes; } set { this._costTypes = value; } } // Check to see if CostTypes property is set internal bool IsSetCostTypes() { return this._costTypes != null; } /// /// Gets and sets the property LastUpdatedTime. /// /// The last time that you updated this budget. /// /// public DateTime LastUpdatedTime { get { return this._lastUpdatedTime.GetValueOrDefault(); } set { this._lastUpdatedTime = value; } } // Check to see if LastUpdatedTime property is set internal bool IsSetLastUpdatedTime() { return this._lastUpdatedTime.HasValue; } /// /// Gets and sets the property PlannedBudgetLimits. /// /// A map containing multiple BudgetLimit, including current or future limits. /// /// /// /// PlannedBudgetLimits is available for cost or usage budget and supports /// both monthly and quarterly TimeUnit. /// /// /// /// For monthly budgets, provide 12 months of PlannedBudgetLimits values. /// This must start from the current month and include the next 11 months. The key /// is the start of the month, UTC in epoch seconds. /// /// /// /// For quarterly budgets, provide four quarters of PlannedBudgetLimits value /// entries in standard calendar quarter increments. This must start from the current /// quarter and include the next three quarters. The key is the start of /// the quarter, UTC in epoch seconds. /// /// /// /// If the planned budget expires before 12 months for monthly or four quarters for quarterly, /// provide the PlannedBudgetLimits values only for the remaining periods. /// /// /// /// If the budget begins at a date in the future, provide PlannedBudgetLimits /// values from the start date of the budget. /// /// /// /// After all of the BudgetLimit values in PlannedBudgetLimits /// are used, the budget continues to use the last limit as the BudgetLimit. /// At that point, the planned budget provides the same experience as a fixed budget. /// /// /// /// /// DescribeBudget and DescribeBudgets response along with /// PlannedBudgetLimits also contain BudgetLimit representing /// the current month or quarter limit present in PlannedBudgetLimits. This /// only applies to budgets that are created with PlannedBudgetLimits. Budgets /// that are created without PlannedBudgetLimits only contain BudgetLimit. /// They don't contain PlannedBudgetLimits. /// /// public Dictionary PlannedBudgetLimits { get { return this._plannedBudgetLimits; } set { this._plannedBudgetLimits = value; } } // Check to see if PlannedBudgetLimits property is set internal bool IsSetPlannedBudgetLimits() { return this._plannedBudgetLimits != null && this._plannedBudgetLimits.Count > 0; } /// /// Gets and sets the property TimePeriod. /// /// The period of time that's covered by a budget. You setthe start date and end date. /// The start date must come before the end date. The end date must come before 06/15/87 /// 00:00 UTC. /// /// /// /// If you create your budget and don't specify a start date, Amazon Web Services defaults /// to the start of your chosen time period (DAILY, MONTHLY, QUARTERLY, or ANNUALLY). /// For example, if you created your budget on January 24, 2018, chose DAILY, /// and didn't set a start date, Amazon Web Services set your start date to 01/24/18 /// 00:00 UTC. If you chose MONTHLY, Amazon Web Services set your /// start date to 01/01/18 00:00 UTC. If you didn't specify an end date, /// Amazon Web Services set your end date to 06/15/87 00:00 UTC. The defaults /// are the same for the Billing and Cost Management console and the API. /// /// /// /// You can change either date with the UpdateBudget operation. /// /// /// /// After the end date, Amazon Web Services deletes the budget and all the associated /// notifications and subscribers. /// /// public TimePeriod TimePeriod { get { return this._timePeriod; } set { this._timePeriod = value; } } // Check to see if TimePeriod property is set internal bool IsSetTimePeriod() { return this._timePeriod != null; } /// /// Gets and sets the property TimeUnit. /// /// The length of time until a budget resets the actual and forecasted spend. /// /// [AWSProperty(Required=true)] public TimeUnit TimeUnit { get { return this._timeUnit; } set { this._timeUnit = value; } } // Check to see if TimeUnit property is set internal bool IsSetTimeUnit() { return this._timeUnit != null; } } }