import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class IamActionDefinition { PolicyArn ! : Value < string > ; Roles ? : List < Value < string > > ; Groups ? : List < Value < string > > ; Users ? : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Definition { IamActionDefinition ? : IamActionDefinition ; ScpActionDefinition ? : ScpActionDefinition ; SsmActionDefinition ? : SsmActionDefinition ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ScpActionDefinition { PolicyId ! : Value < string > ; TargetIds ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class SsmActionDefinition { Subtype ! : Value < string > ; Region ! : Value < string > ; InstanceIds ! : List < Value < string > > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ActionThreshold { Value ! : Value < number > ; Type ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Subscriber { Type ! : Value < string > ; Address ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface BudgetsActionProperties { BudgetName : Value < string > ; NotificationType : Value < string > ; ActionType : Value < string > ; ActionThreshold : ActionThreshold ; ExecutionRoleArn : Value < string > ; ApprovalModel ? : Value < string > ; Subscribers ? : List < Subscriber > ; Definition : Definition ; } export default class BudgetsAction extends ResourceBase < BudgetsActionProperties > { static IamActionDefinition = IamActionDefinition ; static Definition = Definition ; static ScpActionDefinition = ScpActionDefinition ; static SsmActionDefinition = SsmActionDefinition ; static ActionThreshold = ActionThreshold ; static Subscriber = Subscriber ; constructor ( properties ) { super ( 'AWS::Budgets::BudgetsAction' , properties ) ; } }