UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 43.4 kB
"use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnBudgetsAction=exports.CfnBudget=void 0;const jsiiDeprecationWarnings=require("../../.warnings.jsii.js"),JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti"),cdk=require("../../core"),cfn_parse=require("../../core/lib/helpers-internal");function CfnBudgetPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("budget",cdk.requiredValidator)(properties.budget)),errors.collect(cdk.propertyValidator("budget",CfnBudget_BudgetDataPropertyValidator)(properties.budget)),errors.collect(cdk.propertyValidator("notificationsWithSubscribers",cdk.listValidator(CfnBudget_NotificationWithSubscribersPropertyValidator))(properties.notificationsWithSubscribers)),errors.wrap('supplied properties not correct for "CfnBudgetProps"')}function cfnBudgetPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetPropsValidator(properties).assertSuccess(),{Budget:cfnBudgetBudgetDataPropertyToCloudFormation(properties.budget),NotificationsWithSubscribers:cdk.listMapper(cfnBudgetNotificationWithSubscribersPropertyToCloudFormation)(properties.notificationsWithSubscribers)}):properties}function CfnBudgetPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("budget","Budget",CfnBudgetBudgetDataPropertyFromCloudFormation(properties.Budget)),ret.addPropertyResult("notificationsWithSubscribers","NotificationsWithSubscribers",properties.NotificationsWithSubscribers!=null?cfn_parse.FromCloudFormation.getArray(CfnBudgetNotificationWithSubscribersPropertyFromCloudFormation)(properties.NotificationsWithSubscribers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnBudget extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnBudget.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_budgets_CfnBudgetProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnBudget),error}cdk.requireProperty(props,"budget",this),this.budget=props.budget,this.notificationsWithSubscribers=props.notificationsWithSubscribers}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBudgetPropsFromCloudFormation(resourceProperties),ret=new CfnBudget(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnBudget.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{budget:this.budget,notificationsWithSubscribers:this.notificationsWithSubscribers}}renderProperties(props){return cfnBudgetPropsToCloudFormation(props)}}exports.CfnBudget=CfnBudget,_a=JSII_RTTI_SYMBOL_1,CfnBudget[_a]={fqn:"aws-cdk-lib.aws_budgets.CfnBudget",version:"2.70.0"},CfnBudget.CFN_RESOURCE_TYPE_NAME="AWS::Budgets::Budget";function CfnBudget_AutoAdjustDataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoAdjustType",cdk.requiredValidator)(properties.autoAdjustType)),errors.collect(cdk.propertyValidator("autoAdjustType",cdk.validateString)(properties.autoAdjustType)),errors.collect(cdk.propertyValidator("historicalOptions",CfnBudget_HistoricalOptionsPropertyValidator)(properties.historicalOptions)),errors.wrap('supplied properties not correct for "AutoAdjustDataProperty"')}function cfnBudgetAutoAdjustDataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_AutoAdjustDataPropertyValidator(properties).assertSuccess(),{AutoAdjustType:cdk.stringToCloudFormation(properties.autoAdjustType),HistoricalOptions:cfnBudgetHistoricalOptionsPropertyToCloudFormation(properties.historicalOptions)}):properties}function CfnBudgetAutoAdjustDataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("autoAdjustType","AutoAdjustType",cfn_parse.FromCloudFormation.getString(properties.AutoAdjustType)),ret.addPropertyResult("historicalOptions","HistoricalOptions",properties.HistoricalOptions!=null?CfnBudgetHistoricalOptionsPropertyFromCloudFormation(properties.HistoricalOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_BudgetDataPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("autoAdjustData",CfnBudget_AutoAdjustDataPropertyValidator)(properties.autoAdjustData)),errors.collect(cdk.propertyValidator("budgetLimit",CfnBudget_SpendPropertyValidator)(properties.budgetLimit)),errors.collect(cdk.propertyValidator("budgetName",cdk.validateString)(properties.budgetName)),errors.collect(cdk.propertyValidator("budgetType",cdk.requiredValidator)(properties.budgetType)),errors.collect(cdk.propertyValidator("budgetType",cdk.validateString)(properties.budgetType)),errors.collect(cdk.propertyValidator("costFilters",cdk.validateObject)(properties.costFilters)),errors.collect(cdk.propertyValidator("costTypes",CfnBudget_CostTypesPropertyValidator)(properties.costTypes)),errors.collect(cdk.propertyValidator("plannedBudgetLimits",cdk.validateObject)(properties.plannedBudgetLimits)),errors.collect(cdk.propertyValidator("timePeriod",CfnBudget_TimePeriodPropertyValidator)(properties.timePeriod)),errors.collect(cdk.propertyValidator("timeUnit",cdk.requiredValidator)(properties.timeUnit)),errors.collect(cdk.propertyValidator("timeUnit",cdk.validateString)(properties.timeUnit)),errors.wrap('supplied properties not correct for "BudgetDataProperty"')}function cfnBudgetBudgetDataPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_BudgetDataPropertyValidator(properties).assertSuccess(),{AutoAdjustData:cfnBudgetAutoAdjustDataPropertyToCloudFormation(properties.autoAdjustData),BudgetLimit:cfnBudgetSpendPropertyToCloudFormation(properties.budgetLimit),BudgetName:cdk.stringToCloudFormation(properties.budgetName),BudgetType:cdk.stringToCloudFormation(properties.budgetType),CostFilters:cdk.objectToCloudFormation(properties.costFilters),CostTypes:cfnBudgetCostTypesPropertyToCloudFormation(properties.costTypes),PlannedBudgetLimits:cdk.objectToCloudFormation(properties.plannedBudgetLimits),TimePeriod:cfnBudgetTimePeriodPropertyToCloudFormation(properties.timePeriod),TimeUnit:cdk.stringToCloudFormation(properties.timeUnit)}):properties}function CfnBudgetBudgetDataPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("autoAdjustData","AutoAdjustData",properties.AutoAdjustData!=null?CfnBudgetAutoAdjustDataPropertyFromCloudFormation(properties.AutoAdjustData):void 0),ret.addPropertyResult("budgetLimit","BudgetLimit",properties.BudgetLimit!=null?CfnBudgetSpendPropertyFromCloudFormation(properties.BudgetLimit):void 0),ret.addPropertyResult("budgetName","BudgetName",properties.BudgetName!=null?cfn_parse.FromCloudFormation.getString(properties.BudgetName):void 0),ret.addPropertyResult("budgetType","BudgetType",cfn_parse.FromCloudFormation.getString(properties.BudgetType)),ret.addPropertyResult("costFilters","CostFilters",properties.CostFilters!=null?cfn_parse.FromCloudFormation.getAny(properties.CostFilters):void 0),ret.addPropertyResult("costTypes","CostTypes",properties.CostTypes!=null?CfnBudgetCostTypesPropertyFromCloudFormation(properties.CostTypes):void 0),ret.addPropertyResult("plannedBudgetLimits","PlannedBudgetLimits",properties.PlannedBudgetLimits!=null?cfn_parse.FromCloudFormation.getAny(properties.PlannedBudgetLimits):void 0),ret.addPropertyResult("timePeriod","TimePeriod",properties.TimePeriod!=null?CfnBudgetTimePeriodPropertyFromCloudFormation(properties.TimePeriod):void 0),ret.addPropertyResult("timeUnit","TimeUnit",cfn_parse.FromCloudFormation.getString(properties.TimeUnit)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_CostTypesPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("includeCredit",cdk.validateBoolean)(properties.includeCredit)),errors.collect(cdk.propertyValidator("includeDiscount",cdk.validateBoolean)(properties.includeDiscount)),errors.collect(cdk.propertyValidator("includeOtherSubscription",cdk.validateBoolean)(properties.includeOtherSubscription)),errors.collect(cdk.propertyValidator("includeRecurring",cdk.validateBoolean)(properties.includeRecurring)),errors.collect(cdk.propertyValidator("includeRefund",cdk.validateBoolean)(properties.includeRefund)),errors.collect(cdk.propertyValidator("includeSubscription",cdk.validateBoolean)(properties.includeSubscription)),errors.collect(cdk.propertyValidator("includeSupport",cdk.validateBoolean)(properties.includeSupport)),errors.collect(cdk.propertyValidator("includeTax",cdk.validateBoolean)(properties.includeTax)),errors.collect(cdk.propertyValidator("includeUpfront",cdk.validateBoolean)(properties.includeUpfront)),errors.collect(cdk.propertyValidator("useAmortized",cdk.validateBoolean)(properties.useAmortized)),errors.collect(cdk.propertyValidator("useBlended",cdk.validateBoolean)(properties.useBlended)),errors.wrap('supplied properties not correct for "CostTypesProperty"')}function cfnBudgetCostTypesPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_CostTypesPropertyValidator(properties).assertSuccess(),{IncludeCredit:cdk.booleanToCloudFormation(properties.includeCredit),IncludeDiscount:cdk.booleanToCloudFormation(properties.includeDiscount),IncludeOtherSubscription:cdk.booleanToCloudFormation(properties.includeOtherSubscription),IncludeRecurring:cdk.booleanToCloudFormation(properties.includeRecurring),IncludeRefund:cdk.booleanToCloudFormation(properties.includeRefund),IncludeSubscription:cdk.booleanToCloudFormation(properties.includeSubscription),IncludeSupport:cdk.booleanToCloudFormation(properties.includeSupport),IncludeTax:cdk.booleanToCloudFormation(properties.includeTax),IncludeUpfront:cdk.booleanToCloudFormation(properties.includeUpfront),UseAmortized:cdk.booleanToCloudFormation(properties.useAmortized),UseBlended:cdk.booleanToCloudFormation(properties.useBlended)}):properties}function CfnBudgetCostTypesPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("includeCredit","IncludeCredit",properties.IncludeCredit!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeCredit):void 0),ret.addPropertyResult("includeDiscount","IncludeDiscount",properties.IncludeDiscount!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeDiscount):void 0),ret.addPropertyResult("includeOtherSubscription","IncludeOtherSubscription",properties.IncludeOtherSubscription!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeOtherSubscription):void 0),ret.addPropertyResult("includeRecurring","IncludeRecurring",properties.IncludeRecurring!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeRecurring):void 0),ret.addPropertyResult("includeRefund","IncludeRefund",properties.IncludeRefund!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeRefund):void 0),ret.addPropertyResult("includeSubscription","IncludeSubscription",properties.IncludeSubscription!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeSubscription):void 0),ret.addPropertyResult("includeSupport","IncludeSupport",properties.IncludeSupport!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeSupport):void 0),ret.addPropertyResult("includeTax","IncludeTax",properties.IncludeTax!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeTax):void 0),ret.addPropertyResult("includeUpfront","IncludeUpfront",properties.IncludeUpfront!=null?cfn_parse.FromCloudFormation.getBoolean(properties.IncludeUpfront):void 0),ret.addPropertyResult("useAmortized","UseAmortized",properties.UseAmortized!=null?cfn_parse.FromCloudFormation.getBoolean(properties.UseAmortized):void 0),ret.addPropertyResult("useBlended","UseBlended",properties.UseBlended!=null?cfn_parse.FromCloudFormation.getBoolean(properties.UseBlended):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_HistoricalOptionsPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("budgetAdjustmentPeriod",cdk.requiredValidator)(properties.budgetAdjustmentPeriod)),errors.collect(cdk.propertyValidator("budgetAdjustmentPeriod",cdk.validateNumber)(properties.budgetAdjustmentPeriod)),errors.wrap('supplied properties not correct for "HistoricalOptionsProperty"')}function cfnBudgetHistoricalOptionsPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_HistoricalOptionsPropertyValidator(properties).assertSuccess(),{BudgetAdjustmentPeriod:cdk.numberToCloudFormation(properties.budgetAdjustmentPeriod)}):properties}function CfnBudgetHistoricalOptionsPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("budgetAdjustmentPeriod","BudgetAdjustmentPeriod",cfn_parse.FromCloudFormation.getNumber(properties.BudgetAdjustmentPeriod)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_NotificationPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("comparisonOperator",cdk.requiredValidator)(properties.comparisonOperator)),errors.collect(cdk.propertyValidator("comparisonOperator",cdk.validateString)(properties.comparisonOperator)),errors.collect(cdk.propertyValidator("notificationType",cdk.requiredValidator)(properties.notificationType)),errors.collect(cdk.propertyValidator("notificationType",cdk.validateString)(properties.notificationType)),errors.collect(cdk.propertyValidator("threshold",cdk.requiredValidator)(properties.threshold)),errors.collect(cdk.propertyValidator("threshold",cdk.validateNumber)(properties.threshold)),errors.collect(cdk.propertyValidator("thresholdType",cdk.validateString)(properties.thresholdType)),errors.wrap('supplied properties not correct for "NotificationProperty"')}function cfnBudgetNotificationPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_NotificationPropertyValidator(properties).assertSuccess(),{ComparisonOperator:cdk.stringToCloudFormation(properties.comparisonOperator),NotificationType:cdk.stringToCloudFormation(properties.notificationType),Threshold:cdk.numberToCloudFormation(properties.threshold),ThresholdType:cdk.stringToCloudFormation(properties.thresholdType)}):properties}function CfnBudgetNotificationPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("comparisonOperator","ComparisonOperator",cfn_parse.FromCloudFormation.getString(properties.ComparisonOperator)),ret.addPropertyResult("notificationType","NotificationType",cfn_parse.FromCloudFormation.getString(properties.NotificationType)),ret.addPropertyResult("threshold","Threshold",cfn_parse.FromCloudFormation.getNumber(properties.Threshold)),ret.addPropertyResult("thresholdType","ThresholdType",properties.ThresholdType!=null?cfn_parse.FromCloudFormation.getString(properties.ThresholdType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_NotificationWithSubscribersPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("notification",cdk.requiredValidator)(properties.notification)),errors.collect(cdk.propertyValidator("notification",CfnBudget_NotificationPropertyValidator)(properties.notification)),errors.collect(cdk.propertyValidator("subscribers",cdk.requiredValidator)(properties.subscribers)),errors.collect(cdk.propertyValidator("subscribers",cdk.listValidator(CfnBudget_SubscriberPropertyValidator))(properties.subscribers)),errors.wrap('supplied properties not correct for "NotificationWithSubscribersProperty"')}function cfnBudgetNotificationWithSubscribersPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_NotificationWithSubscribersPropertyValidator(properties).assertSuccess(),{Notification:cfnBudgetNotificationPropertyToCloudFormation(properties.notification),Subscribers:cdk.listMapper(cfnBudgetSubscriberPropertyToCloudFormation)(properties.subscribers)}):properties}function CfnBudgetNotificationWithSubscribersPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("notification","Notification",CfnBudgetNotificationPropertyFromCloudFormation(properties.Notification)),ret.addPropertyResult("subscribers","Subscribers",cfn_parse.FromCloudFormation.getArray(CfnBudgetSubscriberPropertyFromCloudFormation)(properties.Subscribers)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_SpendPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("amount",cdk.requiredValidator)(properties.amount)),errors.collect(cdk.propertyValidator("amount",cdk.validateNumber)(properties.amount)),errors.collect(cdk.propertyValidator("unit",cdk.requiredValidator)(properties.unit)),errors.collect(cdk.propertyValidator("unit",cdk.validateString)(properties.unit)),errors.wrap('supplied properties not correct for "SpendProperty"')}function cfnBudgetSpendPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_SpendPropertyValidator(properties).assertSuccess(),{Amount:cdk.numberToCloudFormation(properties.amount),Unit:cdk.stringToCloudFormation(properties.unit)}):properties}function CfnBudgetSpendPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("amount","Amount",cfn_parse.FromCloudFormation.getNumber(properties.Amount)),ret.addPropertyResult("unit","Unit",cfn_parse.FromCloudFormation.getString(properties.Unit)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_SubscriberPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("address",cdk.requiredValidator)(properties.address)),errors.collect(cdk.propertyValidator("address",cdk.validateString)(properties.address)),errors.collect(cdk.propertyValidator("subscriptionType",cdk.requiredValidator)(properties.subscriptionType)),errors.collect(cdk.propertyValidator("subscriptionType",cdk.validateString)(properties.subscriptionType)),errors.wrap('supplied properties not correct for "SubscriberProperty"')}function cfnBudgetSubscriberPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_SubscriberPropertyValidator(properties).assertSuccess(),{Address:cdk.stringToCloudFormation(properties.address),SubscriptionType:cdk.stringToCloudFormation(properties.subscriptionType)}):properties}function CfnBudgetSubscriberPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("address","Address",cfn_parse.FromCloudFormation.getString(properties.Address)),ret.addPropertyResult("subscriptionType","SubscriptionType",cfn_parse.FromCloudFormation.getString(properties.SubscriptionType)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudget_TimePeriodPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("end",cdk.validateString)(properties.end)),errors.collect(cdk.propertyValidator("start",cdk.validateString)(properties.start)),errors.wrap('supplied properties not correct for "TimePeriodProperty"')}function cfnBudgetTimePeriodPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudget_TimePeriodPropertyValidator(properties).assertSuccess(),{End:cdk.stringToCloudFormation(properties.end),Start:cdk.stringToCloudFormation(properties.start)}):properties}function CfnBudgetTimePeriodPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("end","End",properties.End!=null?cfn_parse.FromCloudFormation.getString(properties.End):void 0),ret.addPropertyResult("start","Start",properties.Start!=null?cfn_parse.FromCloudFormation.getString(properties.Start):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsActionPropsValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("actionThreshold",cdk.requiredValidator)(properties.actionThreshold)),errors.collect(cdk.propertyValidator("actionThreshold",CfnBudgetsAction_ActionThresholdPropertyValidator)(properties.actionThreshold)),errors.collect(cdk.propertyValidator("actionType",cdk.requiredValidator)(properties.actionType)),errors.collect(cdk.propertyValidator("actionType",cdk.validateString)(properties.actionType)),errors.collect(cdk.propertyValidator("approvalModel",cdk.validateString)(properties.approvalModel)),errors.collect(cdk.propertyValidator("budgetName",cdk.requiredValidator)(properties.budgetName)),errors.collect(cdk.propertyValidator("budgetName",cdk.validateString)(properties.budgetName)),errors.collect(cdk.propertyValidator("definition",cdk.requiredValidator)(properties.definition)),errors.collect(cdk.propertyValidator("definition",CfnBudgetsAction_DefinitionPropertyValidator)(properties.definition)),errors.collect(cdk.propertyValidator("executionRoleArn",cdk.requiredValidator)(properties.executionRoleArn)),errors.collect(cdk.propertyValidator("executionRoleArn",cdk.validateString)(properties.executionRoleArn)),errors.collect(cdk.propertyValidator("notificationType",cdk.requiredValidator)(properties.notificationType)),errors.collect(cdk.propertyValidator("notificationType",cdk.validateString)(properties.notificationType)),errors.collect(cdk.propertyValidator("subscribers",cdk.requiredValidator)(properties.subscribers)),errors.collect(cdk.propertyValidator("subscribers",cdk.listValidator(CfnBudgetsAction_SubscriberPropertyValidator))(properties.subscribers)),errors.wrap('supplied properties not correct for "CfnBudgetsActionProps"')}function cfnBudgetsActionPropsToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetsActionPropsValidator(properties).assertSuccess(),{ActionThreshold:cfnBudgetsActionActionThresholdPropertyToCloudFormation(properties.actionThreshold),ActionType:cdk.stringToCloudFormation(properties.actionType),BudgetName:cdk.stringToCloudFormation(properties.budgetName),Definition:cfnBudgetsActionDefinitionPropertyToCloudFormation(properties.definition),ExecutionRoleArn:cdk.stringToCloudFormation(properties.executionRoleArn),NotificationType:cdk.stringToCloudFormation(properties.notificationType),Subscribers:cdk.listMapper(cfnBudgetsActionSubscriberPropertyToCloudFormation)(properties.subscribers),ApprovalModel:cdk.stringToCloudFormation(properties.approvalModel)}):properties}function CfnBudgetsActionPropsFromCloudFormation(properties){if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("actionThreshold","ActionThreshold",CfnBudgetsActionActionThresholdPropertyFromCloudFormation(properties.ActionThreshold)),ret.addPropertyResult("actionType","ActionType",cfn_parse.FromCloudFormation.getString(properties.ActionType)),ret.addPropertyResult("budgetName","BudgetName",cfn_parse.FromCloudFormation.getString(properties.BudgetName)),ret.addPropertyResult("definition","Definition",CfnBudgetsActionDefinitionPropertyFromCloudFormation(properties.Definition)),ret.addPropertyResult("executionRoleArn","ExecutionRoleArn",cfn_parse.FromCloudFormation.getString(properties.ExecutionRoleArn)),ret.addPropertyResult("notificationType","NotificationType",cfn_parse.FromCloudFormation.getString(properties.NotificationType)),ret.addPropertyResult("subscribers","Subscribers",cfn_parse.FromCloudFormation.getArray(CfnBudgetsActionSubscriberPropertyFromCloudFormation)(properties.Subscribers)),ret.addPropertyResult("approvalModel","ApprovalModel",properties.ApprovalModel!=null?cfn_parse.FromCloudFormation.getString(properties.ApprovalModel):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnBudgetsAction extends cdk.CfnResource{constructor(scope,id,props){super(scope,id,{type:CfnBudgetsAction.CFN_RESOURCE_TYPE_NAME,properties:props});try{jsiiDeprecationWarnings.aws_cdk_lib_aws_budgets_CfnBudgetsActionProps(props)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,CfnBudgetsAction),error}cdk.requireProperty(props,"actionThreshold",this),cdk.requireProperty(props,"actionType",this),cdk.requireProperty(props,"budgetName",this),cdk.requireProperty(props,"definition",this),cdk.requireProperty(props,"executionRoleArn",this),cdk.requireProperty(props,"notificationType",this),cdk.requireProperty(props,"subscribers",this),this.attrActionId=cdk.Token.asString(this.getAtt("ActionId",cdk.ResolutionTypeHint.STRING)),this.actionThreshold=props.actionThreshold,this.actionType=props.actionType,this.budgetName=props.budgetName,this.definition=props.definition,this.executionRoleArn=props.executionRoleArn,this.notificationType=props.notificationType,this.subscribers=props.subscribers,this.approvalModel=props.approvalModel}static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBudgetsActionPropsFromCloudFormation(resourceProperties),ret=new CfnBudgetsAction(scope,id,propsResult.value);for(const[propKey,propVal]of Object.entries(propsResult.extraProperties))ret.addPropertyOverride(propKey,propVal);return options.parser.handleAttributes(ret,resourceAttributes,id),ret}inspect(inspector){try{jsiiDeprecationWarnings.aws_cdk_lib_TreeInspector(inspector)}catch(error){throw process.env.JSII_DEBUG!=="1"&&error.name==="DeprecationError"&&Error.captureStackTrace(error,this.inspect),error}inspector.addAttribute("aws:cdk:cloudformation:type",CfnBudgetsAction.CFN_RESOURCE_TYPE_NAME),inspector.addAttribute("aws:cdk:cloudformation:props",this.cfnProperties)}get cfnProperties(){return{actionThreshold:this.actionThreshold,actionType:this.actionType,budgetName:this.budgetName,definition:this.definition,executionRoleArn:this.executionRoleArn,notificationType:this.notificationType,subscribers:this.subscribers,approvalModel:this.approvalModel}}renderProperties(props){return cfnBudgetsActionPropsToCloudFormation(props)}}exports.CfnBudgetsAction=CfnBudgetsAction,_b=JSII_RTTI_SYMBOL_1,CfnBudgetsAction[_b]={fqn:"aws-cdk-lib.aws_budgets.CfnBudgetsAction",version:"2.70.0"},CfnBudgetsAction.CFN_RESOURCE_TYPE_NAME="AWS::Budgets::BudgetsAction";function CfnBudgetsAction_ActionThresholdPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("type",cdk.requiredValidator)(properties.type)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.collect(cdk.propertyValidator("value",cdk.requiredValidator)(properties.value)),errors.collect(cdk.propertyValidator("value",cdk.validateNumber)(properties.value)),errors.wrap('supplied properties not correct for "ActionThresholdProperty"')}function cfnBudgetsActionActionThresholdPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetsAction_ActionThresholdPropertyValidator(properties).assertSuccess(),{Type:cdk.stringToCloudFormation(properties.type),Value:cdk.numberToCloudFormation(properties.value)}):properties}function CfnBudgetsActionActionThresholdPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addPropertyResult("value","Value",cfn_parse.FromCloudFormation.getNumber(properties.Value)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsAction_DefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("iamActionDefinition",CfnBudgetsAction_IamActionDefinitionPropertyValidator)(properties.iamActionDefinition)),errors.collect(cdk.propertyValidator("scpActionDefinition",CfnBudgetsAction_ScpActionDefinitionPropertyValidator)(properties.scpActionDefinition)),errors.collect(cdk.propertyValidator("ssmActionDefinition",CfnBudgetsAction_SsmActionDefinitionPropertyValidator)(properties.ssmActionDefinition)),errors.wrap('supplied properties not correct for "DefinitionProperty"')}function cfnBudgetsActionDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetsAction_DefinitionPropertyValidator(properties).assertSuccess(),{IamActionDefinition:cfnBudgetsActionIamActionDefinitionPropertyToCloudFormation(properties.iamActionDefinition),ScpActionDefinition:cfnBudgetsActionScpActionDefinitionPropertyToCloudFormation(properties.scpActionDefinition),SsmActionDefinition:cfnBudgetsActionSsmActionDefinitionPropertyToCloudFormation(properties.ssmActionDefinition)}):properties}function CfnBudgetsActionDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("iamActionDefinition","IamActionDefinition",properties.IamActionDefinition!=null?CfnBudgetsActionIamActionDefinitionPropertyFromCloudFormation(properties.IamActionDefinition):void 0),ret.addPropertyResult("scpActionDefinition","ScpActionDefinition",properties.ScpActionDefinition!=null?CfnBudgetsActionScpActionDefinitionPropertyFromCloudFormation(properties.ScpActionDefinition):void 0),ret.addPropertyResult("ssmActionDefinition","SsmActionDefinition",properties.SsmActionDefinition!=null?CfnBudgetsActionSsmActionDefinitionPropertyFromCloudFormation(properties.SsmActionDefinition):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsAction_IamActionDefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("groups",cdk.listValidator(cdk.validateString))(properties.groups)),errors.collect(cdk.propertyValidator("policyArn",cdk.requiredValidator)(properties.policyArn)),errors.collect(cdk.propertyValidator("policyArn",cdk.validateString)(properties.policyArn)),errors.collect(cdk.propertyValidator("roles",cdk.listValidator(cdk.validateString))(properties.roles)),errors.collect(cdk.propertyValidator("users",cdk.listValidator(cdk.validateString))(properties.users)),errors.wrap('supplied properties not correct for "IamActionDefinitionProperty"')}function cfnBudgetsActionIamActionDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetsAction_IamActionDefinitionPropertyValidator(properties).assertSuccess(),{Groups:cdk.listMapper(cdk.stringToCloudFormation)(properties.groups),PolicyArn:cdk.stringToCloudFormation(properties.policyArn),Roles:cdk.listMapper(cdk.stringToCloudFormation)(properties.roles),Users:cdk.listMapper(cdk.stringToCloudFormation)(properties.users)}):properties}function CfnBudgetsActionIamActionDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Groups):void 0),ret.addPropertyResult("policyArn","PolicyArn",cfn_parse.FromCloudFormation.getString(properties.PolicyArn)),ret.addPropertyResult("roles","Roles",properties.Roles!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Roles):void 0),ret.addPropertyResult("users","Users",properties.Users!=null?cfn_parse.FromCloudFormation.getStringArray(properties.Users):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsAction_ScpActionDefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("policyId",cdk.requiredValidator)(properties.policyId)),errors.collect(cdk.propertyValidator("policyId",cdk.validateString)(properties.policyId)),errors.collect(cdk.propertyValidator("targetIds",cdk.requiredValidator)(properties.targetIds)),errors.collect(cdk.propertyValidator("targetIds",cdk.listValidator(cdk.validateString))(properties.targetIds)),errors.wrap('supplied properties not correct for "ScpActionDefinitionProperty"')}function cfnBudgetsActionScpActionDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetsAction_ScpActionDefinitionPropertyValidator(properties).assertSuccess(),{PolicyId:cdk.stringToCloudFormation(properties.policyId),TargetIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.targetIds)}):properties}function CfnBudgetsActionScpActionDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("policyId","PolicyId",cfn_parse.FromCloudFormation.getString(properties.PolicyId)),ret.addPropertyResult("targetIds","TargetIds",cfn_parse.FromCloudFormation.getStringArray(properties.TargetIds)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsAction_SsmActionDefinitionPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("instanceIds",cdk.requiredValidator)(properties.instanceIds)),errors.collect(cdk.propertyValidator("instanceIds",cdk.listValidator(cdk.validateString))(properties.instanceIds)),errors.collect(cdk.propertyValidator("region",cdk.requiredValidator)(properties.region)),errors.collect(cdk.propertyValidator("region",cdk.validateString)(properties.region)),errors.collect(cdk.propertyValidator("subtype",cdk.requiredValidator)(properties.subtype)),errors.collect(cdk.propertyValidator("subtype",cdk.validateString)(properties.subtype)),errors.wrap('supplied properties not correct for "SsmActionDefinitionProperty"')}function cfnBudgetsActionSsmActionDefinitionPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetsAction_SsmActionDefinitionPropertyValidator(properties).assertSuccess(),{InstanceIds:cdk.listMapper(cdk.stringToCloudFormation)(properties.instanceIds),Region:cdk.stringToCloudFormation(properties.region),Subtype:cdk.stringToCloudFormation(properties.subtype)}):properties}function CfnBudgetsActionSsmActionDefinitionPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("instanceIds","InstanceIds",cfn_parse.FromCloudFormation.getStringArray(properties.InstanceIds)),ret.addPropertyResult("region","Region",cfn_parse.FromCloudFormation.getString(properties.Region)),ret.addPropertyResult("subtype","Subtype",cfn_parse.FromCloudFormation.getString(properties.Subtype)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsAction_SubscriberPropertyValidator(properties){if(!cdk.canInspect(properties))return cdk.VALIDATION_SUCCESS;const errors=new cdk.ValidationResults;return typeof properties!="object"&&errors.collect(new cdk.ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk.propertyValidator("address",cdk.requiredValidator)(properties.address)),errors.collect(cdk.propertyValidator("address",cdk.validateString)(properties.address)),errors.collect(cdk.propertyValidator("type",cdk.requiredValidator)(properties.type)),errors.collect(cdk.propertyValidator("type",cdk.validateString)(properties.type)),errors.wrap('supplied properties not correct for "SubscriberProperty"')}function cfnBudgetsActionSubscriberPropertyToCloudFormation(properties){return cdk.canInspect(properties)?(CfnBudgetsAction_SubscriberPropertyValidator(properties).assertSuccess(),{Address:cdk.stringToCloudFormation(properties.address),Type:cdk.stringToCloudFormation(properties.type)}):properties}function CfnBudgetsActionSubscriberPropertyFromCloudFormation(properties){if(cdk.isResolvableObject(properties))return new cfn_parse.FromCloudFormationResult(properties);if(properties=properties??{},typeof properties!="object")return new cfn_parse.FromCloudFormationResult(properties);const ret=new cfn_parse.FromCloudFormationPropertyObject;return ret.addPropertyResult("address","Address",cfn_parse.FromCloudFormation.getString(properties.Address)),ret.addPropertyResult("type","Type",cfn_parse.FromCloudFormation.getString(properties.Type)),ret.addUnrecognizedPropertiesAsExtra(properties),ret}