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 [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.Properties['PlannedBudgetLimits']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['PlannedBudgetLimits'] = if ($value -is [VSJson]) {
                $value
            }
            else {
                [VSJson]::new($value)
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CostFilters -Value {
            $this.Properties['CostFilters']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['CostFilters'] = if ($value -is [VSJson]) {
                $value
            }
            else {
                [VSJson]::new($value)
            }
        }
        $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 '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 '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 '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 '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 '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) {}
}