VaporShell.OpenSearchService.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 'OpenSearchServiceDomainZoneAwarenessConfig'"

class OpenSearchServiceDomainZoneAwarenessConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainZoneAwarenessConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-zoneawarenessconfig.html'

    hidden [object] $_availabilityZoneCount

    [int] $AvailabilityZoneCount

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

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

Write-Verbose "Importing class 'OpenSearchServiceDomainNodeToNodeEncryptionOptions'"

class OpenSearchServiceDomainNodeToNodeEncryptionOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainNodeToNodeEncryptionOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-nodetonodeencryptionoptions.html'

    hidden [object] $_enabled

    [bool] $Enabled

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
    }

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

Write-Verbose "Importing class 'OpenSearchServiceDomainSnapshotOptions'"

class OpenSearchServiceDomainSnapshotOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainSnapshotOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-snapshotoptions.html'

    hidden [object] $_automatedSnapshotStartHour

    [int] $AutomatedSnapshotStartHour

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

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

Write-Verbose "Importing class 'OpenSearchServiceDomainEBSOptions'"

class OpenSearchServiceDomainEBSOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainEBSOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-ebsoptions.html'

    hidden [object] $_eBSEnabled
    hidden [object] $_volumeType
    hidden [object] $_iops
    hidden [object] $_volumeSize

    [bool] $EBSEnabled
    [string] $VolumeType
    [int] $Iops
    [int] $VolumeSize

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name EBSEnabled -Value {
            $this._eBSEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._eBSEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VolumeType -Value {
            $this._volumeType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._volumeType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Iops -Value {
            $this._iops
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iops = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VolumeSize -Value {
            $this._volumeSize
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._volumeSize = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'OpenSearchServiceDomainLogPublishingOption'"

class OpenSearchServiceDomainLogPublishingOption : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainLogPublishingOption'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-logpublishingoption.html'

    hidden [object] $_cloudWatchLogsLogGroupArn
    hidden [object] $_enabled

    [string] $CloudWatchLogsLogGroupArn
    [bool] $Enabled

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

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

Write-Verbose "Importing class 'OpenSearchServiceDomainEncryptionAtRestOptions'"

class OpenSearchServiceDomainEncryptionAtRestOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainEncryptionAtRestOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-encryptionatrestoptions.html'

    hidden [object] $_kmsKeyId
    hidden [object] $_enabled

    [string] $KmsKeyId
    [bool] $Enabled

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

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

Write-Verbose "Importing class 'OpenSearchServiceDomainDomainEndpointOptions'"

class OpenSearchServiceDomainDomainEndpointOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainDomainEndpointOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-domainendpointoptions.html'

    hidden [object] $_customEndpointCertificateArn
    hidden [object] $_customEndpointEnabled
    hidden [object] $_enforceHTTPS
    hidden [object] $_customEndpoint
    hidden [object] $_tLSSecurityPolicy

    [string] $CustomEndpointCertificateArn
    [bool] $CustomEndpointEnabled
    [bool] $EnforceHTTPS
    [string] $CustomEndpoint
    [string] $TLSSecurityPolicy

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomEndpointCertificateArn -Value {
            $this._customEndpointCertificateArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._customEndpointCertificateArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomEndpointEnabled -Value {
            $this._customEndpointEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._customEndpointEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EnforceHTTPS -Value {
            $this._enforceHTTPS
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enforceHTTPS = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CustomEndpoint -Value {
            $this._customEndpoint
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._customEndpoint = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TLSSecurityPolicy -Value {
            $this._tLSSecurityPolicy
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tLSSecurityPolicy = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'OpenSearchServiceDomainCognitoOptions'"

class OpenSearchServiceDomainCognitoOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainCognitoOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-cognitooptions.html'

    hidden [object] $_enabled
    hidden [object] $_identityPoolId
    hidden [object] $_userPoolId
    hidden [object] $_roleArn

    [bool] $Enabled
    [string] $IdentityPoolId
    [string] $UserPoolId
    [string] $RoleArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IdentityPoolId -Value {
            $this._identityPoolId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._identityPoolId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserPoolId -Value {
            $this._userPoolId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userPoolId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $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
            }
        }
    }

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

Write-Verbose "Importing class 'OpenSearchServiceDomainVPCOptions'"

class OpenSearchServiceDomainVPCOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainVPCOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-vpcoptions.html'

    hidden [object] $_securityGroupIds
    hidden [object] $_subnetIds

    [string[]] $SecurityGroupIds
    [string[]] $SubnetIds

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityGroupIds -Value {
            $this._securityGroupIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._securityGroupIds = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SubnetIds -Value {
            $this._subnetIds
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._subnetIds = @($value)
        }
    }

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

Write-Verbose "Importing class 'OpenSearchServiceDomainAdvancedSecurityOptionsInput'"

class OpenSearchServiceDomainAdvancedSecurityOptionsInput : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainAdvancedSecurityOptionsInput'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-advancedsecurityoptionsinput.html'

    hidden [object] $_enabled
    hidden [object] $_masterUserOptions
    hidden [object] $_internalUserDatabaseEnabled

    [bool] $Enabled
    [OpenSearchServiceDomainMasterUserOptions] $MasterUserOptions
    [bool] $InternalUserDatabaseEnabled

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Enabled -Value {
            $this._enabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._enabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MasterUserOptions -Value {
            $this._masterUserOptions
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainMasterUserOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._masterUserOptions = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InternalUserDatabaseEnabled -Value {
            $this._internalUserDatabaseEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._internalUserDatabaseEnabled = $value
        }
    }

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

Write-Verbose "Importing class 'OpenSearchServiceDomainMasterUserOptions'"

class OpenSearchServiceDomainMasterUserOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainMasterUserOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-masteruseroptions.html'

    hidden [object] $_masterUserPassword
    hidden [object] $_masterUserName
    hidden [object] $_masterUserARN

    [string] $MasterUserPassword
    [string] $MasterUserName
    [string] $MasterUserARN

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

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

Write-Verbose "Importing class 'OpenSearchServiceDomainClusterConfig'"

class OpenSearchServiceDomainClusterConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSOpenSearchServiceDomainClusterConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-opensearchservice-domain-clusterconfig.html'

    hidden [object] $_instanceCount
    hidden [object] $_warmEnabled
    hidden [object] $_warmCount
    hidden [object] $_dedicatedMasterEnabled
    hidden [object] $_zoneAwarenessConfig
    hidden [object] $_dedicatedMasterCount
    hidden [object] $_instanceType
    hidden [object] $_warmType
    hidden [object] $_zoneAwarenessEnabled
    hidden [object] $_dedicatedMasterType

    [int] $InstanceCount
    [bool] $WarmEnabled
    [int] $WarmCount
    [bool] $DedicatedMasterEnabled
    [OpenSearchServiceDomainZoneAwarenessConfig] $ZoneAwarenessConfig
    [int] $DedicatedMasterCount
    [string] $InstanceType
    [string] $WarmType
    [bool] $ZoneAwarenessEnabled
    [string] $DedicatedMasterType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceCount -Value {
            $this._instanceCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._instanceCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WarmEnabled -Value {
            $this._warmEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._warmEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WarmCount -Value {
            $this._warmCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._warmCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DedicatedMasterEnabled -Value {
            $this._dedicatedMasterEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dedicatedMasterEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ZoneAwarenessConfig -Value {
            $this._zoneAwarenessConfig
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainZoneAwarenessConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._zoneAwarenessConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DedicatedMasterCount -Value {
            $this._dedicatedMasterCount
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dedicatedMasterCount = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name InstanceType -Value {
            $this._instanceType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._instanceType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name WarmType -Value {
            $this._warmType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._warmType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ZoneAwarenessEnabled -Value {
            $this._zoneAwarenessEnabled
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._zoneAwarenessEnabled = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DedicatedMasterType -Value {
            $this._dedicatedMasterType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dedicatedMasterType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'OpenSearchServiceDomain'"

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

    hidden [string[]] $_attributes = @('DomainEndpoint','Id','Arn','DomainArn')
    hidden [object] $_condition

    [string] $Type = 'AWS::OpenSearchService::Domain'
    [OpenSearchServiceDomainClusterConfig] $ClusterConfig
    [string] $DomainName
    [VSJson] $AccessPolicies
    [string] $EngineVersion
    [string] $AdvancedOptions
    [OpenSearchServiceDomainLogPublishingOption] $LogPublishingOptions
    [OpenSearchServiceDomainSnapshotOptions] $SnapshotOptions
    [OpenSearchServiceDomainVPCOptions] $VPCOptions
    [OpenSearchServiceDomainNodeToNodeEncryptionOptions] $NodeToNodeEncryptionOptions
    [OpenSearchServiceDomainDomainEndpointOptions] $DomainEndpointOptions
    [OpenSearchServiceDomainCognitoOptions] $CognitoOptions
    [OpenSearchServiceDomainAdvancedSecurityOptionsInput] $AdvancedSecurityOptions
    [OpenSearchServiceDomainEBSOptions] $EBSOptions
    [OpenSearchServiceDomainEncryptionAtRestOptions] $EncryptionAtRestOptions
    [VSTag[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClusterConfig -Value {
            $this.Properties['ClusterConfig']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainClusterConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ClusterConfig'] = $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 AccessPolicies -Value {
            $this.Properties['AccessPolicies']
        } -SecondValue {
            param([ValidateType(([string], [VSJson], [VSYaml], [psobject], [IDictionary]))][object] $value)
            $this.Properties['AccessPolicies'] = [VSJson]::Transform($value)
            Write-Debug $this.Properties['AccessPolicies']
        }
        $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 AdvancedOptions -Value {
            $this.Properties['AdvancedOptions']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AdvancedOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogPublishingOptions -Value {
            $this.Properties['LogPublishingOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainLogPublishingOption], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LogPublishingOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SnapshotOptions -Value {
            $this.Properties['SnapshotOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainSnapshotOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SnapshotOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name VPCOptions -Value {
            $this.Properties['VPCOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainVPCOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['VPCOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name NodeToNodeEncryptionOptions -Value {
            $this.Properties['NodeToNodeEncryptionOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainNodeToNodeEncryptionOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['NodeToNodeEncryptionOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DomainEndpointOptions -Value {
            $this.Properties['DomainEndpointOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainDomainEndpointOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DomainEndpointOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CognitoOptions -Value {
            $this.Properties['CognitoOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainCognitoOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CognitoOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdvancedSecurityOptions -Value {
            $this.Properties['AdvancedSecurityOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainAdvancedSecurityOptionsInput], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AdvancedSecurityOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EBSOptions -Value {
            $this.Properties['EBSOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainEBSOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EBSOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncryptionAtRestOptions -Value {
            $this.Properties['EncryptionAtRestOptions']
        } -SecondValue {
            param([ValidateType(([OpenSearchServiceDomainEncryptionAtRestOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EncryptionAtRestOptions'] = $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
        }
    }

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