VaporShell.Amplify.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 'AmplifyAppEnvironmentVariable'"

class AmplifyAppEnvironmentVariable : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmplifyAppEnvironmentVariable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-environmentvariable.html'

    hidden [object] $_value
    hidden [object] $_name

    [string] $Value
    [string] $Name

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

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

Write-Verbose "Importing class 'AmplifyDomainSubDomainSetting'"

class AmplifyDomainSubDomainSetting : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmplifyDomainSubDomainSetting'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-domain-subdomainsetting.html'

    hidden [object] $_prefix
    hidden [object] $_branchName

    [string] $Prefix
    [string] $BranchName

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

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

Write-Verbose "Importing class 'AmplifyBranchBasicAuthConfig'"

class AmplifyBranchBasicAuthConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmplifyBranchBasicAuthConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-basicauthconfig.html'

    hidden [object] $_username
    hidden [object] $_enableBasicAuth
    hidden [object] $_password

    [string] $Username
    [bool] $EnableBasicAuth
    [string] $Password

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Username -Value {
            $this._username
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._username = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableBasicAuth -Value {
            $this._enableBasicAuth
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enableBasicAuth = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Password -Value {
            $this._password
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._password = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AmplifyAppAutoBranchCreationConfig'"

class AmplifyAppAutoBranchCreationConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmplifyAppAutoBranchCreationConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-autobranchcreationconfig.html'

    hidden [object] $_environmentVariables
    hidden [object] $_enableAutoBranchCreation
    hidden [object] $_pullRequestEnvironmentName
    hidden [object] $_autoBranchCreationPatterns
    hidden [object] $_enablePullRequestPreview
    hidden [object] $_enableAutoBuild
    hidden [object] $_enablePerformanceMode
    hidden [object] $_buildSpec
    hidden [object] $_stage
    hidden [object] $_basicAuthConfig

    [AmplifyAppEnvironmentVariable[]] $EnvironmentVariables
    [bool] $EnableAutoBranchCreation
    [string] $PullRequestEnvironmentName
    [string[]] $AutoBranchCreationPatterns
    [bool] $EnablePullRequestPreview
    [bool] $EnableAutoBuild
    [bool] $EnablePerformanceMode
    [string] $BuildSpec
    [string] $Stage
    [AmplifyAppBasicAuthConfig] $BasicAuthConfig

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnvironmentVariables -Value {
            $this._environmentVariables
        } -SecondValue {
            param([ValidateType(([AmplifyAppEnvironmentVariable], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._environmentVariables = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableAutoBranchCreation -Value {
            $this._enableAutoBranchCreation
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enableAutoBranchCreation = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PullRequestEnvironmentName -Value {
            $this._pullRequestEnvironmentName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._pullRequestEnvironmentName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoBranchCreationPatterns -Value {
            $this._autoBranchCreationPatterns
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._autoBranchCreationPatterns = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnablePullRequestPreview -Value {
            $this._enablePullRequestPreview
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enablePullRequestPreview = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableAutoBuild -Value {
            $this._enableAutoBuild
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enableAutoBuild = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnablePerformanceMode -Value {
            $this._enablePerformanceMode
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enablePerformanceMode = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BuildSpec -Value {
            $this._buildSpec
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._buildSpec = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Stage -Value {
            $this._stage
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._stage = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BasicAuthConfig -Value {
            $this._basicAuthConfig
        } -SecondValue {
            param([ValidateType(([AmplifyAppBasicAuthConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._basicAuthConfig = $value
        }
    }

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

Write-Verbose "Importing class 'AmplifyAppBasicAuthConfig'"

class AmplifyAppBasicAuthConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmplifyAppBasicAuthConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-basicauthconfig.html'

    hidden [object] $_username
    hidden [object] $_enableBasicAuth
    hidden [object] $_password

    [string] $Username
    [bool] $EnableBasicAuth
    [string] $Password

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Username -Value {
            $this._username
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._username = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableBasicAuth -Value {
            $this._enableBasicAuth
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enableBasicAuth = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Password -Value {
            $this._password
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._password = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AmplifyBranchEnvironmentVariable'"

class AmplifyBranchEnvironmentVariable : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmplifyBranchEnvironmentVariable'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-branch-environmentvariable.html'

    hidden [object] $_value
    hidden [object] $_name

    [string] $Value
    [string] $Name

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

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

Write-Verbose "Importing class 'AmplifyAppCustomRule'"

class AmplifyAppCustomRule : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmplifyAppCustomRule'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amplify-app-customrule.html'

    hidden [object] $_condition
    hidden [object] $_status
    hidden [object] $_target
    hidden [object] $_source

    [string] $Condition
    [string] $Status
    [string] $Target
    [string] $Source

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._condition = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Status -Value {
            $this._status
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._status = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Target -Value {
            $this._target
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._target = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Source -Value {
            $this._source
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._source = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AmplifyApp'"

class AmplifyApp : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAmplifyApp'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-app.html'

    hidden [string[]] $_attributes = @('AppId','Arn','DefaultDomain','AppName')
    hidden [object] $_condition

    [string] $Type = 'AWS::Amplify::App'
    [AmplifyAppAutoBranchCreationConfig] $AutoBranchCreationConfig
    [string] $OauthToken
    [string] $Description
    [bool] $EnableBranchAutoDeletion
    [string] $Name
    [string] $Repository
    [AmplifyAppEnvironmentVariable[]] $EnvironmentVariables
    [string] $AccessToken
    [string] $BuildSpec
    [AmplifyAppCustomRule[]] $CustomRules
    [AmplifyAppBasicAuthConfig] $BasicAuthConfig
    [string] $CustomHeaders
    [VSTag[]] $Tags
    [string] $IAMServiceRole
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoBranchCreationConfig -Value {
            $this.Properties['AutoBranchCreationConfig']
        } -SecondValue {
            param([ValidateType(([AmplifyAppAutoBranchCreationConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoBranchCreationConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OauthToken -Value {
            $this.Properties['OauthToken']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OauthToken'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableBranchAutoDeletion -Value {
            $this.Properties['EnableBranchAutoDeletion']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EnableBranchAutoDeletion'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Name -Value {
            $this.Properties['Name']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Name'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Repository -Value {
            $this.Properties['Repository']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Repository'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnvironmentVariables -Value {
            $this.Properties['EnvironmentVariables']
        } -SecondValue {
            param([ValidateType(([AmplifyAppEnvironmentVariable], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['EnvironmentVariables'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AccessToken -Value {
            $this.Properties['AccessToken']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AccessToken'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BuildSpec -Value {
            $this.Properties['BuildSpec']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BuildSpec'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomRules -Value {
            $this.Properties['CustomRules']
        } -SecondValue {
            param([ValidateType(([AmplifyAppCustomRule], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['CustomRules'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BasicAuthConfig -Value {
            $this.Properties['BasicAuthConfig']
        } -SecondValue {
            param([ValidateType(([AmplifyAppBasicAuthConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BasicAuthConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomHeaders -Value {
            $this.Properties['CustomHeaders']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CustomHeaders'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IAMServiceRole -Value {
            $this.Properties['IAMServiceRole']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IAMServiceRole'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'AmplifyBranch'"

class AmplifyBranch : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAmplifyBranch'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-branch.html'

    hidden [string[]] $_attributes = @('BranchName','Arn')
    hidden [object] $_condition

    [string] $Type = 'AWS::Amplify::Branch'
    [string] $Description
    [AmplifyBranchEnvironmentVariable[]] $EnvironmentVariables
    [string] $AppId
    [string] $PullRequestEnvironmentName
    [bool] $EnablePullRequestPreview
    [bool] $EnableAutoBuild
    [bool] $EnablePerformanceMode
    [string] $BuildSpec
    [string] $Stage
    [string] $BranchName
    [AmplifyBranchBasicAuthConfig] $BasicAuthConfig
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Description -Value {
            $this.Properties['Description']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Description'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnvironmentVariables -Value {
            $this.Properties['EnvironmentVariables']
        } -SecondValue {
            param([ValidateType(([AmplifyBranchEnvironmentVariable], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['EnvironmentVariables'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AppId -Value {
            $this.Properties['AppId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AppId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PullRequestEnvironmentName -Value {
            $this.Properties['PullRequestEnvironmentName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PullRequestEnvironmentName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnablePullRequestPreview -Value {
            $this.Properties['EnablePullRequestPreview']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EnablePullRequestPreview'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableAutoBuild -Value {
            $this.Properties['EnableAutoBuild']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EnableAutoBuild'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnablePerformanceMode -Value {
            $this.Properties['EnablePerformanceMode']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EnablePerformanceMode'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BuildSpec -Value {
            $this.Properties['BuildSpec']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BuildSpec'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Stage -Value {
            $this.Properties['Stage']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Stage'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BranchName -Value {
            $this.Properties['BranchName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BranchName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BasicAuthConfig -Value {
            $this.Properties['BasicAuthConfig']
        } -SecondValue {
            param([ValidateType(([AmplifyBranchBasicAuthConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BasicAuthConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([TransformTag()] [ValidateType(([IDictionary], [psobject], [VSTag]))] [object] $value)
            $this.Properties['Tags'] = [VSTag]::TransformTag($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'AmplifyDomain'"

class AmplifyDomain : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAmplifyDomain'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amplify-domain.html'

    hidden [string[]] $_attributes = @('AutoSubDomainIAMRole','DomainName','StatusReason','EnableAutoSubDomain','Arn','DomainStatus','AutoSubDomainCreationPatterns','CertificateRecord')
    hidden [object] $_condition

    [string] $Type = 'AWS::Amplify::Domain'
    [AmplifyDomainSubDomainSetting[]] $SubDomainSettings
    [string] $AppId
    [string] $AutoSubDomainIAMRole
    [string] $DomainName
    [bool] $EnableAutoSubDomain
    [string[]] $AutoSubDomainCreationPatterns
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubDomainSettings -Value {
            $this.Properties['SubDomainSettings']
        } -SecondValue {
            param([ValidateType(([AmplifyDomainSubDomainSetting], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SubDomainSettings'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AppId -Value {
            $this.Properties['AppId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AppId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoSubDomainIAMRole -Value {
            $this.Properties['AutoSubDomainIAMRole']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoSubDomainIAMRole'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DomainName -Value {
            $this.Properties['DomainName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DomainName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnableAutoSubDomain -Value {
            $this.Properties['EnableAutoSubDomain']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EnableAutoSubDomain'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoSubDomainCreationPatterns -Value {
            $this.Properties['AutoSubDomainCreationPatterns']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AutoSubDomainCreationPatterns'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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