VaporShell.Neptune.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 'NeptuneDBClusterDBClusterRole'"

class NeptuneDBClusterDBClusterRole : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSNeptuneDBClusterDBClusterRole'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-neptune-dbcluster-dbclusterrole.html'

    hidden [object] $_roleArn
    hidden [object] $_featureName

    [string] $RoleArn
    [string] $FeatureName

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

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

Write-Verbose "Importing class 'NeptuneDBClusterParameterGroup'"

class NeptuneDBClusterParameterGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNeptuneDBClusterParameterGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbclusterparametergroup.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Neptune::DBClusterParameterGroup'
    [string] $Description
    [VSJson] $Parameters
    [string] $Family
    [VSTag[]] $Tags
    [string] $Name
    [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 Parameters -Value {
            $this.Properties['Parameters']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Parameters'] = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Family -Value {
            $this.Properties['Family']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Family'] = 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 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 Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'NeptuneDBSubnetGroup'"

class NeptuneDBSubnetGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNeptuneDBSubnetGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbsubnetgroup.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Neptune::DBSubnetGroup'
    [string] $DBSubnetGroupName
    [string] $DBSubnetGroupDescription
    [string[]] $SubnetIds
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBSubnetGroupName -Value {
            $this.Properties['DBSubnetGroupName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBSubnetGroupName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBSubnetGroupDescription -Value {
            $this.Properties['DBSubnetGroupDescription']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBSubnetGroupDescription'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubnetIds -Value {
            $this.Properties['SubnetIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SubnetIds'] = @($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
        }
    }

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

Write-Verbose "Importing class 'NeptuneDBInstance'"

class NeptuneDBInstance : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNeptuneDBInstance'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbinstance.html'

    hidden [string[]] $_attributes = @('Endpoint','Port')
    hidden [object] $_condition

    [string] $Type = 'AWS::Neptune::DBInstance'
    [string] $DBParameterGroupName
    [string] $DBInstanceClass
    [bool] $AllowMajorVersionUpgrade
    [string] $DBClusterIdentifier
    [string] $AvailabilityZone
    [string] $PreferredMaintenanceWindow
    [bool] $AutoMinorVersionUpgrade
    [string] $DBSubnetGroupName
    [string] $DBInstanceIdentifier
    [string] $DBSnapshotIdentifier
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBParameterGroupName -Value {
            $this.Properties['DBParameterGroupName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBParameterGroupName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBInstanceClass -Value {
            $this.Properties['DBInstanceClass']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBInstanceClass'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AllowMajorVersionUpgrade -Value {
            $this.Properties['AllowMajorVersionUpgrade']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AllowMajorVersionUpgrade'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBClusterIdentifier -Value {
            $this.Properties['DBClusterIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBClusterIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AvailabilityZone -Value {
            $this.Properties['AvailabilityZone']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AvailabilityZone'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreferredMaintenanceWindow -Value {
            $this.Properties['PreferredMaintenanceWindow']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PreferredMaintenanceWindow'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AutoMinorVersionUpgrade -Value {
            $this.Properties['AutoMinorVersionUpgrade']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AutoMinorVersionUpgrade'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBSubnetGroupName -Value {
            $this.Properties['DBSubnetGroupName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBSubnetGroupName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBInstanceIdentifier -Value {
            $this.Properties['DBInstanceIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBInstanceIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBSnapshotIdentifier -Value {
            $this.Properties['DBSnapshotIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBSnapshotIdentifier'] = 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 Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'NeptuneDBParameterGroup'"

class NeptuneDBParameterGroup : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNeptuneDBParameterGroup'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbparametergroup.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::Neptune::DBParameterGroup'
    [string] $Description
    [VSJson] $Parameters
    [string] $Family
    [VSTag[]] $Tags
    [string] $Name
    [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 Parameters -Value {
            $this.Properties['Parameters']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['Parameters'] = [VSJson]::Transform($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Family -Value {
            $this.Properties['Family']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Family'] = 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 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 Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'NeptuneDBCluster'"

class NeptuneDBCluster : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSNeptuneDBCluster'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-neptune-dbcluster.html'

    hidden [string[]] $_attributes = @('ClusterResourceId','Endpoint','Port','ReadEndpoint')
    hidden [object] $_condition

    [string] $Type = 'AWS::Neptune::DBCluster'
    [bool] $StorageEncrypted
    [string] $RestoreToTime
    [string] $EngineVersion
    [string] $KmsKeyId
    [NeptuneDBClusterDBClusterRole[]] $AssociatedRoles
    [string[]] $AvailabilityZones
    [string] $SnapshotIdentifier
    [int] $Port
    [string] $DBClusterIdentifier
    [string] $PreferredMaintenanceWindow
    [bool] $IamAuthEnabled
    [string] $DBSubnetGroupName
    [bool] $DeletionProtection
    [string] $PreferredBackupWindow
    [bool] $UseLatestRestorableTime
    [string[]] $VpcSecurityGroupIds
    [string] $SourceDBClusterIdentifier
    [string] $DBClusterParameterGroupName
    [int] $BackupRetentionPeriod
    [string] $RestoreType
    [VSTag[]] $Tags
    [string[]] $EnableCloudwatchLogsExports
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name StorageEncrypted -Value {
            $this.Properties['StorageEncrypted']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StorageEncrypted'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RestoreToTime -Value {
            $this.Properties['RestoreToTime']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RestoreToTime'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EngineVersion -Value {
            $this.Properties['EngineVersion']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EngineVersion'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name KmsKeyId -Value {
            $this.Properties['KmsKeyId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['KmsKeyId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AssociatedRoles -Value {
            $this.Properties['AssociatedRoles']
        } -SecondValue {
            param([ValidateType(([NeptuneDBClusterDBClusterRole], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AssociatedRoles'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AvailabilityZones -Value {
            $this.Properties['AvailabilityZones']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['AvailabilityZones'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SnapshotIdentifier -Value {
            $this.Properties['SnapshotIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SnapshotIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Port -Value {
            $this.Properties['Port']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Port'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBClusterIdentifier -Value {
            $this.Properties['DBClusterIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBClusterIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreferredMaintenanceWindow -Value {
            $this.Properties['PreferredMaintenanceWindow']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PreferredMaintenanceWindow'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IamAuthEnabled -Value {
            $this.Properties['IamAuthEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['IamAuthEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBSubnetGroupName -Value {
            $this.Properties['DBSubnetGroupName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBSubnetGroupName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeletionProtection -Value {
            $this.Properties['DeletionProtection']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeletionProtection'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PreferredBackupWindow -Value {
            $this.Properties['PreferredBackupWindow']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PreferredBackupWindow'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseLatestRestorableTime -Value {
            $this.Properties['UseLatestRestorableTime']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['UseLatestRestorableTime'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VpcSecurityGroupIds -Value {
            $this.Properties['VpcSecurityGroupIds']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['VpcSecurityGroupIds'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SourceDBClusterIdentifier -Value {
            $this.Properties['SourceDBClusterIdentifier']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SourceDBClusterIdentifier'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DBClusterParameterGroupName -Value {
            $this.Properties['DBClusterParameterGroupName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DBClusterParameterGroupName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name BackupRetentionPeriod -Value {
            $this.Properties['BackupRetentionPeriod']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BackupRetentionPeriod'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RestoreType -Value {
            $this.Properties['RestoreType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RestoreType'] = 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 EnableCloudwatchLogsExports -Value {
            $this.Properties['EnableCloudwatchLogsExports']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['EnableCloudwatchLogsExports'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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