import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class BudgetData { BudgetLimit ? : Spend ; TimePeriod ? : TimePeriod ; TimeUnit ! : Value < string > ; PlannedBudgetLimits ? : { [ key ] : any ; } ; CostFilters ? : { [ key ] : any ; } ; BudgetName ? : Value < string > ; CostTypes ? : CostTypes ; BudgetType ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Subscriber { SubscriptionType ! : Value < string > ; Address ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class TimePeriod { Start ? : Value < string > ; End ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CostTypes { IncludeSupport ? : Value < boolean > ; IncludeOtherSubscription ? : Value < boolean > ; IncludeTax ? : Value < boolean > ; IncludeSubscription ? : Value < boolean > ; UseBlended ? : Value < boolean > ; IncludeUpfront ? : Value < boolean > ; IncludeDiscount ? : Value < boolean > ; IncludeCredit ? : Value < boolean > ; IncludeRecurring ? : Value < boolean > ; UseAmortized ? : Value < boolean > ; IncludeRefund ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class NotificationWithSubscribers { Subscribers ! : List < Subscriber > ; Notification ! : Notification ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Notification { ComparisonOperator ! : Value < string > ; NotificationType ! : Value < string > ; Threshold ! : Value < number > ; ThresholdType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Spend { Amount ! : Value < number > ; Unit ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface BudgetProperties { NotificationsWithSubscribers ? : List < NotificationWithSubscribers > ; Budget : BudgetData ; } export default class Budget extends ResourceBase < BudgetProperties > { static BudgetData = BudgetData ; static Subscriber = Subscriber ; static TimePeriod = TimePeriod ; static CostTypes = CostTypes ; static NotificationWithSubscribers = NotificationWithSubscribers ; static Notification = Notification ; static Spend = Spend ; constructor ( properties ) { super ( 'AWS::Budgets::Budget' , properties ) ; } }