VaporShell.Budgets.Classes.ps1

using namespace System
using namespace System.Collections
using namespace System.Collections.Generic
using namespace System.IO
using namespace System.Management.Automation
[CmdletBinding()]
Param()

Write-Verbose "Importing class 'BudgetsBudgetBudgetData'"

class BudgetsBudgetBudgetData : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetBudgetData'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-budgetdata.html'

    hidden [object] $_budgetLimit
    hidden [object] $_timePeriod
    hidden [object] $_timeUnit
    hidden [VSJson] $_plannedBudgetLimits
    hidden [VSJson] $_costFilters
    hidden [object] $_budgetName
    hidden [object] $_costTypes
    hidden [object] $_budgetType

    [BudgetsBudgetSpend] $BudgetLimit
    [BudgetsBudgetTimePeriod] $TimePeriod
    [string] $TimeUnit
    [VSJson] $PlannedBudgetLimits
    [VSJson] $CostFilters
    [string] $BudgetName
    [BudgetsBudgetCostTypes] $CostTypes
    [string] $BudgetType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name BudgetLimit -Value {
            $this._budgetLimit
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetSpend], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._budgetLimit = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimePeriod -Value {
            $this._timePeriod
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetTimePeriod], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timePeriod = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TimeUnit -Value {
            $this._timeUnit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._timeUnit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PlannedBudgetLimits -Value {
            $this._plannedBudgetLimits
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._plannedBudgetLimits = [VSJson]::Transform($value)
            Write-Debug $this._plannedBudgetLimits
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CostFilters -Value {
            $this._costFilters
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this._costFilters = [VSJson]::Transform($value)
            Write-Debug $this._costFilters
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BudgetName -Value {
            $this._budgetName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._budgetName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CostTypes -Value {
            $this._costTypes
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetCostTypes], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._costTypes = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BudgetType -Value {
            $this._budgetType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._budgetType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    BudgetsBudgetBudgetData() : base() {}
    BudgetsBudgetBudgetData([IDictionary] $props) : base($props) {}
    BudgetsBudgetBudgetData([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetsActionIamActionDefinition'"

class BudgetsBudgetsActionIamActionDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetsActionIamActionDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-iamactiondefinition.html'

    hidden [object] $_policyArn
    hidden [object] $_roles
    hidden [object] $_groups
    hidden [object] $_users

    [string] $PolicyArn
    [string[]] $Roles
    [string[]] $Groups
    [string[]] $Users

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyArn -Value {
            $this._policyArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._policyArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Roles -Value {
            $this._roles
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._roles = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Groups -Value {
            $this._groups
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._groups = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Users -Value {
            $this._users
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._users = @($value)
        }
    }

    BudgetsBudgetsActionIamActionDefinition() : base() {}
    BudgetsBudgetsActionIamActionDefinition([IDictionary] $props) : base($props) {}
    BudgetsBudgetsActionIamActionDefinition([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetSubscriber'"

class BudgetsBudgetSubscriber : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetSubscriber'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-subscriber.html'

    hidden [object] $_subscriptionType
    hidden [object] $_address

    [string] $SubscriptionType
    [string] $Address

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubscriptionType -Value {
            $this._subscriptionType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._subscriptionType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Address -Value {
            $this._address
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._address = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    BudgetsBudgetSubscriber() : base() {}
    BudgetsBudgetSubscriber([IDictionary] $props) : base($props) {}
    BudgetsBudgetSubscriber([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetsActionDefinition'"

class BudgetsBudgetsActionDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetsActionDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-definition.html'

    hidden [object] $_iamActionDefinition
    hidden [object] $_scpActionDefinition
    hidden [object] $_ssmActionDefinition

    [BudgetsBudgetsActionIamActionDefinition] $IamActionDefinition
    [BudgetsBudgetsActionScpActionDefinition] $ScpActionDefinition
    [BudgetsBudgetsActionSsmActionDefinition] $SsmActionDefinition

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IamActionDefinition -Value {
            $this._iamActionDefinition
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetsActionIamActionDefinition], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iamActionDefinition = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ScpActionDefinition -Value {
            $this._scpActionDefinition
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetsActionScpActionDefinition], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._scpActionDefinition = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SsmActionDefinition -Value {
            $this._ssmActionDefinition
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetsActionSsmActionDefinition], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ssmActionDefinition = $value
        }
    }

    BudgetsBudgetsActionDefinition() : base() {}
    BudgetsBudgetsActionDefinition([IDictionary] $props) : base($props) {}
    BudgetsBudgetsActionDefinition([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetTimePeriod'"

class BudgetsBudgetTimePeriod : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetTimePeriod'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-timeperiod.html'

    hidden [object] $_start
    hidden [object] $_end

    [string] $Start
    [string] $End

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Start -Value {
            $this._start
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._start = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name End -Value {
            $this._end
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._end = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    BudgetsBudgetTimePeriod() : base() {}
    BudgetsBudgetTimePeriod([IDictionary] $props) : base($props) {}
    BudgetsBudgetTimePeriod([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetsActionScpActionDefinition'"

class BudgetsBudgetsActionScpActionDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetsActionScpActionDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-scpactiondefinition.html'

    hidden [object] $_policyId
    hidden [object] $_targetIds

    [string] $PolicyId
    [string[]] $TargetIds

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name PolicyId -Value {
            $this._policyId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._policyId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TargetIds -Value {
            $this._targetIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._targetIds = @($value)
        }
    }

    BudgetsBudgetsActionScpActionDefinition() : base() {}
    BudgetsBudgetsActionScpActionDefinition([IDictionary] $props) : base($props) {}
    BudgetsBudgetsActionScpActionDefinition([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetsActionSsmActionDefinition'"

class BudgetsBudgetsActionSsmActionDefinition : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetsActionSsmActionDefinition'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-ssmactiondefinition.html'

    hidden [object] $_subtype
    hidden [object] $_region
    hidden [object] $_instanceIds

    [string] $Subtype
    [string] $Region
    [string[]] $InstanceIds

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subtype -Value {
            $this._subtype
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._subtype = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Region -Value {
            $this._region
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._region = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceIds -Value {
            $this._instanceIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._instanceIds = @($value)
        }
    }

    BudgetsBudgetsActionSsmActionDefinition() : base() {}
    BudgetsBudgetsActionSsmActionDefinition([IDictionary] $props) : base($props) {}
    BudgetsBudgetsActionSsmActionDefinition([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetsActionActionThreshold'"

class BudgetsBudgetsActionActionThreshold : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetsActionActionThreshold'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-actionthreshold.html'

    hidden [object] $_value
    hidden [object] $_type

    [double] $Value
    [string] $Type

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Value -Value {
            $this._value
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._value = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    BudgetsBudgetsActionActionThreshold() : base() {}
    BudgetsBudgetsActionActionThreshold([IDictionary] $props) : base($props) {}
    BudgetsBudgetsActionActionThreshold([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetCostTypes'"

class BudgetsBudgetCostTypes : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetCostTypes'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-costtypes.html'

    hidden [object] $_includeSupport
    hidden [object] $_includeOtherSubscription
    hidden [object] $_includeTax
    hidden [object] $_includeSubscription
    hidden [object] $_useBlended
    hidden [object] $_includeUpfront
    hidden [object] $_includeDiscount
    hidden [object] $_includeCredit
    hidden [object] $_includeRecurring
    hidden [object] $_useAmortized
    hidden [object] $_includeRefund

    [bool] $IncludeSupport
    [bool] $IncludeOtherSubscription
    [bool] $IncludeTax
    [bool] $IncludeSubscription
    [bool] $UseBlended
    [bool] $IncludeUpfront
    [bool] $IncludeDiscount
    [bool] $IncludeCredit
    [bool] $IncludeRecurring
    [bool] $UseAmortized
    [bool] $IncludeRefund

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeSupport -Value {
            $this._includeSupport
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeSupport = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeOtherSubscription -Value {
            $this._includeOtherSubscription
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeOtherSubscription = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeTax -Value {
            $this._includeTax
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeTax = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeSubscription -Value {
            $this._includeSubscription
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeSubscription = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseBlended -Value {
            $this._useBlended
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useBlended = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeUpfront -Value {
            $this._includeUpfront
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeUpfront = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeDiscount -Value {
            $this._includeDiscount
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeDiscount = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeCredit -Value {
            $this._includeCredit
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeCredit = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeRecurring -Value {
            $this._includeRecurring
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeRecurring = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseAmortized -Value {
            $this._useAmortized
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useAmortized = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IncludeRefund -Value {
            $this._includeRefund
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._includeRefund = $value
        }
    }

    BudgetsBudgetCostTypes() : base() {}
    BudgetsBudgetCostTypes([IDictionary] $props) : base($props) {}
    BudgetsBudgetCostTypes([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetNotificationWithSubscribers'"

class BudgetsBudgetNotificationWithSubscribers : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetNotificationWithSubscribers'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notificationwithsubscribers.html'

    hidden [object] $_subscribers
    hidden [object] $_notification

    [BudgetsBudgetSubscriber[]] $Subscribers
    [BudgetsBudgetNotification] $Notification

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subscribers -Value {
            $this._subscribers
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetSubscriber], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._subscribers = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Notification -Value {
            $this._notification
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetNotification], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._notification = $value
        }
    }

    BudgetsBudgetNotificationWithSubscribers() : base() {}
    BudgetsBudgetNotificationWithSubscribers([IDictionary] $props) : base($props) {}
    BudgetsBudgetNotificationWithSubscribers([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetNotification'"

class BudgetsBudgetNotification : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetNotification'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-notification.html'

    hidden [object] $_comparisonOperator
    hidden [object] $_notificationType
    hidden [object] $_threshold
    hidden [object] $_thresholdType

    [string] $ComparisonOperator
    [string] $NotificationType
    [double] $Threshold
    [string] $ThresholdType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name ComparisonOperator -Value {
            $this._comparisonOperator
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._comparisonOperator = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationType -Value {
            $this._notificationType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._notificationType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Threshold -Value {
            $this._threshold
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._threshold = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ThresholdType -Value {
            $this._thresholdType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._thresholdType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    BudgetsBudgetNotification() : base() {}
    BudgetsBudgetNotification([IDictionary] $props) : base($props) {}
    BudgetsBudgetNotification([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetsActionSubscriber'"

class BudgetsBudgetsActionSubscriber : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetsActionSubscriber'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budgetsaction-subscriber.html'

    hidden [object] $_type
    hidden [object] $_address

    [string] $Type
    [string] $Address

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Type -Value {
            $this._type
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._type = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Address -Value {
            $this._address
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._address = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    BudgetsBudgetsActionSubscriber() : base() {}
    BudgetsBudgetsActionSubscriber([IDictionary] $props) : base($props) {}
    BudgetsBudgetsActionSubscriber([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetSpend'"

class BudgetsBudgetSpend : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSBudgetsBudgetSpend'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-budgets-budget-spend.html'

    hidden [object] $_amount
    hidden [object] $_unit

    [double] $Amount
    [string] $Unit

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Amount -Value {
            $this._amount
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._amount = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Unit -Value {
            $this._unit
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._unit = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

    BudgetsBudgetSpend() : base() {}
    BudgetsBudgetSpend([IDictionary] $props) : base($props) {}
    BudgetsBudgetSpend([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudgetsAction'"

class BudgetsBudgetsAction : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSBudgetsBudgetsAction'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budgetsaction.html'

    hidden [string[]] $_attributes = @('ActionId')
    hidden [object] $_condition

    [string] $Type = 'AWS::Budgets::BudgetsAction'
    [string] $BudgetName
    [string] $NotificationType
    [string] $ActionType
    [BudgetsBudgetsActionActionThreshold] $ActionThreshold
    [string] $ExecutionRoleArn
    [string] $ApprovalModel
    [BudgetsBudgetsActionSubscriber[]] $Subscribers
    [BudgetsBudgetsActionDefinition] $Definition
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name BudgetName -Value {
            $this.Properties['BudgetName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BudgetName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationType -Value {
            $this.Properties['NotificationType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NotificationType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ActionType -Value {
            $this.Properties['ActionType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ActionType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ActionThreshold -Value {
            $this.Properties['ActionThreshold']
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetsActionActionThreshold], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ActionThreshold'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ExecutionRoleArn -Value {
            $this.Properties['ExecutionRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ExecutionRoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApprovalModel -Value {
            $this.Properties['ApprovalModel']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApprovalModel'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Subscribers -Value {
            $this.Properties['Subscribers']
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetsActionSubscriber], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Subscribers'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Definition -Value {
            $this.Properties['Definition']
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetsActionDefinition], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Definition'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    BudgetsBudgetsAction() : base() {}
    BudgetsBudgetsAction([IDictionary] $props) : base($props) {}
    BudgetsBudgetsAction([psobject] $props) : base($props) {}
}

Write-Verbose "Importing class 'BudgetsBudget'"

class BudgetsBudget : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSBudgetsBudget'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-budgets-budget.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Budgets::Budget'
    [BudgetsBudgetNotificationWithSubscribers[]] $NotificationsWithSubscribers
    [BudgetsBudgetBudgetData] $Budget
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name NotificationsWithSubscribers -Value {
            $this.Properties['NotificationsWithSubscribers']
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetNotificationWithSubscribers], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['NotificationsWithSubscribers'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Budget -Value {
            $this.Properties['Budget']
        } -SecondValue {
            param([ValidateType(([BudgetsBudgetBudgetData], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Budget'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

    BudgetsBudget() : base() {}
    BudgetsBudget([IDictionary] $props) : base($props) {}
    BudgetsBudget([psobject] $props) : base($props) {}
}