UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

1 lines 63 kB
"use strict";var _a,_b;Object.defineProperty(exports,"__esModule",{value:!0}),exports.CfnBudgetsAction=exports.CfnBudget=void 0;var jsiiDeprecationWarnings=()=>{var tmp=require("../../.warnings.jsii.js");return jsiiDeprecationWarnings=()=>tmp,tmp};const JSII_RTTI_SYMBOL_1=Symbol.for("jsii.rtti");var cdk=()=>{var tmp=require("../../core");return cdk=()=>tmp,tmp},cfn_parse=()=>{var tmp=require("../../core/lib/helpers-internal");return cfn_parse=()=>tmp,tmp},cdk_errors=()=>{var tmp=require("../../core/lib/errors");return cdk_errors=()=>tmp,tmp};class CfnBudget extends cdk().CfnResource{static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBudgetPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const 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}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.attrId=cdk().Token.asString(this.getAtt("Id",cdk().ResolutionTypeHint.STRING)),this.budget=props.budget,this.notificationsWithSubscribers=props.notificationsWithSubscribers,this.resourceTags=props.resourceTags}get cfnProperties(){return{budget:this.budget,notificationsWithSubscribers:this.notificationsWithSubscribers,resourceTags:this.resourceTags}}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)}renderProperties(props){return convertCfnBudgetPropsToCloudFormation(props)}}exports.CfnBudget=CfnBudget,_a=JSII_RTTI_SYMBOL_1,CfnBudget[_a]={fqn:"aws-cdk-lib.aws_budgets.CfnBudget",version:"2.202.0"},CfnBudget.CFN_RESOURCE_TYPE_NAME="AWS::Budgets::Budget";function CfnBudgetSubscriberPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetSubscriberPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetSubscriberPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("address","Address",properties.Address!=null?cfn_parse().FromCloudFormation.getString(properties.Address):void 0),ret.addPropertyResult("subscriptionType","SubscriptionType",properties.SubscriptionType!=null?cfn_parse().FromCloudFormation.getString(properties.SubscriptionType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetNotificationPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetNotificationPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetNotificationPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("comparisonOperator","ComparisonOperator",properties.ComparisonOperator!=null?cfn_parse().FromCloudFormation.getString(properties.ComparisonOperator):void 0),ret.addPropertyResult("notificationType","NotificationType",properties.NotificationType!=null?cfn_parse().FromCloudFormation.getString(properties.NotificationType):void 0),ret.addPropertyResult("threshold","Threshold",properties.Threshold!=null?cfn_parse().FromCloudFormation.getNumber(properties.Threshold):void 0),ret.addPropertyResult("thresholdType","ThresholdType",properties.ThresholdType!=null?cfn_parse().FromCloudFormation.getString(properties.ThresholdType):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetNotificationWithSubscribersPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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",CfnBudgetNotificationPropertyValidator)(properties.notification)),errors.collect(cdk().propertyValidator("subscribers",cdk().requiredValidator)(properties.subscribers)),errors.collect(cdk().propertyValidator("subscribers",cdk().listValidator(CfnBudgetSubscriberPropertyValidator))(properties.subscribers)),errors.wrap('supplied properties not correct for "NotificationWithSubscribersProperty"')}function convertCfnBudgetNotificationWithSubscribersPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetNotificationWithSubscribersPropertyValidator(properties).assertSuccess(),{Notification:convertCfnBudgetNotificationPropertyToCloudFormation(properties.notification),Subscribers:cdk().listMapper(convertCfnBudgetSubscriberPropertyToCloudFormation)(properties.subscribers)}):properties}function CfnBudgetNotificationWithSubscribersPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("notification","Notification",properties.Notification!=null?CfnBudgetNotificationPropertyFromCloudFormation(properties.Notification):void 0),ret.addPropertyResult("subscribers","Subscribers",properties.Subscribers!=null?cfn_parse().FromCloudFormation.getArray(CfnBudgetSubscriberPropertyFromCloudFormation)(properties.Subscribers):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetSpendPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetSpendPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetSpendPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("amount","Amount",properties.Amount!=null?cfn_parse().FromCloudFormation.getNumber(properties.Amount):void 0),ret.addPropertyResult("unit","Unit",properties.Unit!=null?cfn_parse().FromCloudFormation.getString(properties.Unit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetTimePeriodPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetTimePeriodPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetTimePeriodPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))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 CfnBudgetHistoricalOptionsPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetHistoricalOptionsPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetHistoricalOptionsPropertyValidator(properties).assertSuccess(),{BudgetAdjustmentPeriod:cdk().numberToCloudFormation(properties.budgetAdjustmentPeriod)}):properties}function CfnBudgetHistoricalOptionsPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("budgetAdjustmentPeriod","BudgetAdjustmentPeriod",properties.BudgetAdjustmentPeriod!=null?cfn_parse().FromCloudFormation.getNumber(properties.BudgetAdjustmentPeriod):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetAutoAdjustDataPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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",CfnBudgetHistoricalOptionsPropertyValidator)(properties.historicalOptions)),errors.wrap('supplied properties not correct for "AutoAdjustDataProperty"')}function convertCfnBudgetAutoAdjustDataPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetAutoAdjustDataPropertyValidator(properties).assertSuccess(),{AutoAdjustType:cdk().stringToCloudFormation(properties.autoAdjustType),HistoricalOptions:convertCfnBudgetHistoricalOptionsPropertyToCloudFormation(properties.historicalOptions)}):properties}function CfnBudgetAutoAdjustDataPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("autoAdjustType","AutoAdjustType",properties.AutoAdjustType!=null?cfn_parse().FromCloudFormation.getString(properties.AutoAdjustType):void 0),ret.addPropertyResult("historicalOptions","HistoricalOptions",properties.HistoricalOptions!=null?CfnBudgetHistoricalOptionsPropertyFromCloudFormation(properties.HistoricalOptions):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetCostTypesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetCostTypesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetCostTypesPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))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 CfnBudgetExpressionDimensionValuesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("matchOptions",cdk().listValidator(cdk().validateString))(properties.matchOptions)),errors.collect(cdk().propertyValidator("values",cdk().listValidator(cdk().validateString))(properties.values)),errors.wrap('supplied properties not correct for "ExpressionDimensionValuesProperty"')}function convertCfnBudgetExpressionDimensionValuesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetExpressionDimensionValuesPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),MatchOptions:cdk().listMapper(cdk().stringToCloudFormation)(properties.matchOptions),Values:cdk().listMapper(cdk().stringToCloudFormation)(properties.values)}):properties}function CfnBudgetExpressionDimensionValuesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("matchOptions","MatchOptions",properties.MatchOptions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MatchOptions):void 0),ret.addPropertyResult("values","Values",properties.Values!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Values):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetCostCategoryValuesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("matchOptions",cdk().listValidator(cdk().validateString))(properties.matchOptions)),errors.collect(cdk().propertyValidator("values",cdk().listValidator(cdk().validateString))(properties.values)),errors.wrap('supplied properties not correct for "CostCategoryValuesProperty"')}function convertCfnBudgetCostCategoryValuesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetCostCategoryValuesPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),MatchOptions:cdk().listMapper(cdk().stringToCloudFormation)(properties.matchOptions),Values:cdk().listMapper(cdk().stringToCloudFormation)(properties.values)}):properties}function CfnBudgetCostCategoryValuesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("matchOptions","MatchOptions",properties.MatchOptions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MatchOptions):void 0),ret.addPropertyResult("values","Values",properties.Values!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Values):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetTagValuesPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("matchOptions",cdk().listValidator(cdk().validateString))(properties.matchOptions)),errors.collect(cdk().propertyValidator("values",cdk().listValidator(cdk().validateString))(properties.values)),errors.wrap('supplied properties not correct for "TagValuesProperty"')}function convertCfnBudgetTagValuesPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetTagValuesPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),MatchOptions:cdk().listMapper(cdk().stringToCloudFormation)(properties.matchOptions),Values:cdk().listMapper(cdk().stringToCloudFormation)(properties.values)}):properties}function CfnBudgetTagValuesPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("matchOptions","MatchOptions",properties.MatchOptions!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.MatchOptions):void 0),ret.addPropertyResult("values","Values",properties.Values!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Values):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetExpressionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("and",cdk().listValidator(CfnBudgetExpressionPropertyValidator))(properties.and)),errors.collect(cdk().propertyValidator("costCategories",CfnBudgetCostCategoryValuesPropertyValidator)(properties.costCategories)),errors.collect(cdk().propertyValidator("dimensions",CfnBudgetExpressionDimensionValuesPropertyValidator)(properties.dimensions)),errors.collect(cdk().propertyValidator("not",CfnBudgetExpressionPropertyValidator)(properties.not)),errors.collect(cdk().propertyValidator("or",cdk().listValidator(CfnBudgetExpressionPropertyValidator))(properties.or)),errors.collect(cdk().propertyValidator("tags",CfnBudgetTagValuesPropertyValidator)(properties.tags)),errors.wrap('supplied properties not correct for "ExpressionProperty"')}function convertCfnBudgetExpressionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetExpressionPropertyValidator(properties).assertSuccess(),{And:cdk().listMapper(convertCfnBudgetExpressionPropertyToCloudFormation)(properties.and),CostCategories:convertCfnBudgetCostCategoryValuesPropertyToCloudFormation(properties.costCategories),Dimensions:convertCfnBudgetExpressionDimensionValuesPropertyToCloudFormation(properties.dimensions),Not:convertCfnBudgetExpressionPropertyToCloudFormation(properties.not),Or:cdk().listMapper(convertCfnBudgetExpressionPropertyToCloudFormation)(properties.or),Tags:convertCfnBudgetTagValuesPropertyToCloudFormation(properties.tags)}):properties}function CfnBudgetExpressionPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("and","And",properties.And!=null?cfn_parse().FromCloudFormation.getArray(CfnBudgetExpressionPropertyFromCloudFormation)(properties.And):void 0),ret.addPropertyResult("costCategories","CostCategories",properties.CostCategories!=null?CfnBudgetCostCategoryValuesPropertyFromCloudFormation(properties.CostCategories):void 0),ret.addPropertyResult("dimensions","Dimensions",properties.Dimensions!=null?CfnBudgetExpressionDimensionValuesPropertyFromCloudFormation(properties.Dimensions):void 0),ret.addPropertyResult("not","Not",properties.Not!=null?CfnBudgetExpressionPropertyFromCloudFormation(properties.Not):void 0),ret.addPropertyResult("or","Or",properties.Or!=null?cfn_parse().FromCloudFormation.getArray(CfnBudgetExpressionPropertyFromCloudFormation)(properties.Or):void 0),ret.addPropertyResult("tags","Tags",properties.Tags!=null?CfnBudgetTagValuesPropertyFromCloudFormation(properties.Tags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetBudgetDataPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("autoAdjustData",CfnBudgetAutoAdjustDataPropertyValidator)(properties.autoAdjustData)),errors.collect(cdk().propertyValidator("budgetLimit",CfnBudgetSpendPropertyValidator)(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",CfnBudgetCostTypesPropertyValidator)(properties.costTypes)),errors.collect(cdk().propertyValidator("filterExpression",CfnBudgetExpressionPropertyValidator)(properties.filterExpression)),errors.collect(cdk().propertyValidator("metrics",cdk().listValidator(cdk().validateString))(properties.metrics)),errors.collect(cdk().propertyValidator("plannedBudgetLimits",cdk().validateObject)(properties.plannedBudgetLimits)),errors.collect(cdk().propertyValidator("timePeriod",CfnBudgetTimePeriodPropertyValidator)(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 convertCfnBudgetBudgetDataPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetBudgetDataPropertyValidator(properties).assertSuccess(),{AutoAdjustData:convertCfnBudgetAutoAdjustDataPropertyToCloudFormation(properties.autoAdjustData),BudgetLimit:convertCfnBudgetSpendPropertyToCloudFormation(properties.budgetLimit),BudgetName:cdk().stringToCloudFormation(properties.budgetName),BudgetType:cdk().stringToCloudFormation(properties.budgetType),CostFilters:cdk().objectToCloudFormation(properties.costFilters),CostTypes:convertCfnBudgetCostTypesPropertyToCloudFormation(properties.costTypes),FilterExpression:convertCfnBudgetExpressionPropertyToCloudFormation(properties.filterExpression),Metrics:cdk().listMapper(cdk().stringToCloudFormation)(properties.metrics),PlannedBudgetLimits:cdk().objectToCloudFormation(properties.plannedBudgetLimits),TimePeriod:convertCfnBudgetTimePeriodPropertyToCloudFormation(properties.timePeriod),TimeUnit:cdk().stringToCloudFormation(properties.timeUnit)}):properties}function CfnBudgetBudgetDataPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))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",properties.BudgetType!=null?cfn_parse().FromCloudFormation.getString(properties.BudgetType):void 0),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("filterExpression","FilterExpression",properties.FilterExpression!=null?CfnBudgetExpressionPropertyFromCloudFormation(properties.FilterExpression):void 0),ret.addPropertyResult("metrics","Metrics",properties.Metrics!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Metrics):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",properties.TimeUnit!=null?cfn_parse().FromCloudFormation.getString(properties.TimeUnit):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetResourceTagPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expected an object, but received: "+JSON.stringify(properties))),errors.collect(cdk().propertyValidator("key",cdk().requiredValidator)(properties.key)),errors.collect(cdk().propertyValidator("key",cdk().validateString)(properties.key)),errors.collect(cdk().propertyValidator("value",cdk().validateString)(properties.value)),errors.wrap('supplied properties not correct for "ResourceTagProperty"')}function convertCfnBudgetResourceTagPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetResourceTagPropertyValidator(properties).assertSuccess(),{Key:cdk().stringToCloudFormation(properties.key),Value:cdk().stringToCloudFormation(properties.value)}):properties}function CfnBudgetResourceTagPropertyFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("key","Key",properties.Key!=null?cfn_parse().FromCloudFormation.getString(properties.Key):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getString(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetPropsValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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",CfnBudgetBudgetDataPropertyValidator)(properties.budget)),errors.collect(cdk().propertyValidator("notificationsWithSubscribers",cdk().listValidator(CfnBudgetNotificationWithSubscribersPropertyValidator))(properties.notificationsWithSubscribers)),errors.collect(cdk().propertyValidator("resourceTags",cdk().listValidator(CfnBudgetResourceTagPropertyValidator))(properties.resourceTags)),errors.wrap('supplied properties not correct for "CfnBudgetProps"')}function convertCfnBudgetPropsToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetPropsValidator(properties).assertSuccess(),{Budget:convertCfnBudgetBudgetDataPropertyToCloudFormation(properties.budget),NotificationsWithSubscribers:cdk().listMapper(convertCfnBudgetNotificationWithSubscribersPropertyToCloudFormation)(properties.notificationsWithSubscribers),ResourceTags:cdk().listMapper(convertCfnBudgetResourceTagPropertyToCloudFormation)(properties.resourceTags)}):properties}function CfnBudgetPropsFromCloudFormation(properties){if(cdk().isResolvableObject(properties))return new(cfn_parse()).FromCloudFormationResult(properties);if(properties=properties??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("budget","Budget",properties.Budget!=null?CfnBudgetBudgetDataPropertyFromCloudFormation(properties.Budget):void 0),ret.addPropertyResult("notificationsWithSubscribers","NotificationsWithSubscribers",properties.NotificationsWithSubscribers!=null?cfn_parse().FromCloudFormation.getArray(CfnBudgetNotificationWithSubscribersPropertyFromCloudFormation)(properties.NotificationsWithSubscribers):void 0),ret.addPropertyResult("resourceTags","ResourceTags",properties.ResourceTags!=null?cfn_parse().FromCloudFormation.getArray(CfnBudgetResourceTagPropertyFromCloudFormation)(properties.ResourceTags):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}class CfnBudgetsAction extends cdk().CfnResource{static _fromCloudFormation(scope,id,resourceAttributes,options){resourceAttributes=resourceAttributes||{};const resourceProperties=options.parser.parseValue(resourceAttributes.Properties),propsResult=CfnBudgetsActionPropsFromCloudFormation(resourceProperties);if(cdk().isResolvableObject(propsResult.value))throw new(cdk_errors()).ValidationError("Unexpected IResolvable",scope);const 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}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.approvalModel=props.approvalModel,this.budgetName=props.budgetName,this.cdkTagManager=new(cdk()).TagManager(cdk().TagType.STANDARD,"AWS::Budgets::BudgetsAction",void 0,{tagPropertyName:"resourceTags"}),this.definition=props.definition,this.executionRoleArn=props.executionRoleArn,this.notificationType=props.notificationType,this.resourceTags=props.resourceTags,this.subscribers=props.subscribers}get cfnProperties(){return{actionThreshold:this.actionThreshold,actionType:this.actionType,approvalModel:this.approvalModel,budgetName:this.budgetName,resourceTags:this.cdkTagManager.renderTags(this.resourceTags),definition:this.definition,executionRoleArn:this.executionRoleArn,notificationType:this.notificationType,subscribers:this.subscribers}}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)}renderProperties(props){return convertCfnBudgetsActionPropsToCloudFormation(props)}}exports.CfnBudgetsAction=CfnBudgetsAction,_b=JSII_RTTI_SYMBOL_1,CfnBudgetsAction[_b]={fqn:"aws-cdk-lib.aws_budgets.CfnBudgetsAction",version:"2.202.0"},CfnBudgetsAction.CFN_RESOURCE_TYPE_NAME="AWS::Budgets::BudgetsAction";function CfnBudgetsActionActionThresholdPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetsActionActionThresholdPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetsActionActionThresholdPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("type","Type",properties.Type!=null?cfn_parse().FromCloudFormation.getString(properties.Type):void 0),ret.addPropertyResult("value","Value",properties.Value!=null?cfn_parse().FromCloudFormation.getNumber(properties.Value):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsActionSsmActionDefinitionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetsActionSsmActionDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetsActionSsmActionDefinitionPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("instanceIds","InstanceIds",properties.InstanceIds!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.InstanceIds):void 0),ret.addPropertyResult("region","Region",properties.Region!=null?cfn_parse().FromCloudFormation.getString(properties.Region):void 0),ret.addPropertyResult("subtype","Subtype",properties.Subtype!=null?cfn_parse().FromCloudFormation.getString(properties.Subtype):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsActionIamActionDefinitionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||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 convertCfnBudgetsActionIamActionDefinitionPropertyToCloudFormation(properties){return cdk().canInspect(properties)?(CfnBudgetsActionIamActionDefinitionPropertyValidator(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??{},!(properties&&typeof properties=="object"&&!Array.isArray(properties)))return new(cfn_parse()).FromCloudFormationResult(properties);const ret=new(cfn_parse()).FromCloudFormationPropertyObject;return ret.addPropertyResult("groups","Groups",properties.Groups!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Groups):void 0),ret.addPropertyResult("policyArn","PolicyArn",properties.PolicyArn!=null?cfn_parse().FromCloudFormation.getString(properties.PolicyArn):void 0),ret.addPropertyResult("roles","Roles",properties.Roles!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Roles):void 0),ret.addPropertyResult("users","Users",properties.Users!=null?cfn_parse().FromCloudFormation.getArray(cfn_parse().FromCloudFormation.getString)(properties.Users):void 0),ret.addUnrecognizedPropertiesAsExtra(properties),ret}function CfnBudgetsActionScpActionDefinitionPropertyValidator(properties){if(!cdk().canInspect(properties))return cdk().VALIDATION_SUCCESS;const errors=new(cdk()).ValidationResults;return properties&&typeof properties=="object"&&!Array.isArray(properties)||errors.collect(new(cdk()).ValidationResult("Expecte