VaporShell.AmazonMQ.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 'AmazonMQBrokerLogList'"

class AmazonMQBrokerLogList : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQBrokerLogList'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-loglist.html'

    hidden [object] $_audit
    hidden [object] $_general

    [bool] $Audit
    [bool] $General

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

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

Write-Verbose "Importing class 'AmazonMQBrokerUser'"

class AmazonMQBrokerUser : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQBrokerUser'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-user.html'

    hidden [object] $_username
    hidden [object] $_groups
    hidden [object] $_consoleAccess
    hidden [object] $_password

    [string] $Username
    [string[]] $Groups
    [bool] $ConsoleAccess
    [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 Groups -Value {
            $this._groups
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._groups = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ConsoleAccess -Value {
            $this._consoleAccess
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._consoleAccess = $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
            }
        }
    }

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

Write-Verbose "Importing class 'AmazonMQBrokerLdapServerMetadata'"

class AmazonMQBrokerLdapServerMetadata : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQBrokerLdapServerMetadata'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-ldapservermetadata.html'

    hidden [object] $_hosts
    hidden [object] $_userRoleName
    hidden [object] $_userSearchMatching
    hidden [object] $_roleName
    hidden [object] $_userBase
    hidden [object] $_userSearchSubtree
    hidden [object] $_roleSearchMatching
    hidden [object] $_serviceAccountUsername
    hidden [object] $_roleBase
    hidden [object] $_serviceAccountPassword
    hidden [object] $_roleSearchSubtree

    [string[]] $Hosts
    [string] $UserRoleName
    [string] $UserSearchMatching
    [string] $RoleName
    [string] $UserBase
    [bool] $UserSearchSubtree
    [string] $RoleSearchMatching
    [string] $ServiceAccountUsername
    [string] $RoleBase
    [string] $ServiceAccountPassword
    [bool] $RoleSearchSubtree

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Hosts -Value {
            $this._hosts
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._hosts = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserRoleName -Value {
            $this._userRoleName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userRoleName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserSearchMatching -Value {
            $this._userSearchMatching
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userSearchMatching = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleName -Value {
            $this._roleName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserBase -Value {
            $this._userBase
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userBase = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserSearchSubtree -Value {
            $this._userSearchSubtree
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userSearchSubtree = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleSearchMatching -Value {
            $this._roleSearchMatching
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleSearchMatching = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceAccountUsername -Value {
            $this._serviceAccountUsername
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceAccountUsername = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleBase -Value {
            $this._roleBase
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleBase = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ServiceAccountPassword -Value {
            $this._serviceAccountPassword
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._serviceAccountPassword = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RoleSearchSubtree -Value {
            $this._roleSearchSubtree
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._roleSearchSubtree = $value
        }
    }

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

Write-Verbose "Importing class 'AmazonMQBrokerEncryptionOptions'"

class AmazonMQBrokerEncryptionOptions : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQBrokerEncryptionOptions'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-encryptionoptions.html'

    hidden [object] $_kmsKeyId
    hidden [object] $_useAwsOwnedKey

    [string] $KmsKeyId
    [bool] $UseAwsOwnedKey

    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 UseAwsOwnedKey -Value {
            $this._useAwsOwnedKey
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useAwsOwnedKey = $value
        }
    }

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

Write-Verbose "Importing class 'AmazonMQBrokerMaintenanceWindow'"

class AmazonMQBrokerMaintenanceWindow : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQBrokerMaintenanceWindow'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-maintenancewindow.html'

    hidden [object] $_dayOfWeek
    hidden [object] $_timeOfDay
    hidden [object] $_timeZone

    [string] $DayOfWeek
    [string] $TimeOfDay
    [string] $TimeZone

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

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

Write-Verbose "Importing class 'AmazonMQBrokerTagsEntry'"

class AmazonMQBrokerTagsEntry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQBrokerTagsEntry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-tagsentry.html'

    hidden [object] $_value
    hidden [object] $_key

    [string] $Value
    [string] $Key

    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 Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AmazonMQConfigurationTagsEntry'"

class AmazonMQConfigurationTagsEntry : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQConfigurationTagsEntry'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configuration-tagsentry.html'

    hidden [object] $_value
    hidden [object] $_key

    [string] $Value
    [string] $Key

    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 Key -Value {
            $this._key
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._key = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AmazonMQBrokerConfigurationId'"

class AmazonMQBrokerConfigurationId : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQBrokerConfigurationId'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-broker-configurationid.html'

    hidden [object] $_revision
    hidden [object] $_id

    [int] $Revision
    [string] $Id

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

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

Write-Verbose "Importing class 'AmazonMQConfigurationAssociationConfigurationId'"

class AmazonMQConfigurationAssociationConfigurationId : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAmazonMQConfigurationAssociationConfigurationId'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-amazonmq-configurationassociation-configurationid.html'

    hidden [object] $_revision
    hidden [object] $_id

    [int] $Revision
    [string] $Id

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

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

Write-Verbose "Importing class 'AmazonMQConfigurationAssociation'"

class AmazonMQConfigurationAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAmazonMQConfigurationAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configurationassociation.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::AmazonMQ::ConfigurationAssociation'
    [string] $Broker
    [AmazonMQConfigurationAssociationConfigurationId] $Configuration
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name Broker -Value {
            $this.Properties['Broker']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Broker'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Configuration -Value {
            $this.Properties['Configuration']
        } -SecondValue {
            param([ValidateType(([AmazonMQConfigurationAssociationConfigurationId], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Configuration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'AmazonMQConfiguration'"

class AmazonMQConfiguration : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAmazonMQConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-configuration.html'

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

    [string] $Type = 'AWS::AmazonMQ::Configuration'
    [string] $EngineVersion
    [string] $Description
    [string] $AuthenticationStrategy
    [string] $EngineType
    [string] $Data
    [AmazonMQConfigurationTagsEntry[]] $Tags
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'AmazonMQBroker'"

class AmazonMQBroker : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAmazonMQBroker'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-amazonmq-broker.html'

    hidden [string[]] $_attributes = @('IpAddresses','OpenWireEndpoints','ConfigurationRevision','StompEndpoints','MqttEndpoints','AmqpEndpoints','Arn','ConfigurationId','WssEndpoints')
    hidden [object] $_condition

    [string] $Type = 'AWS::AmazonMQ::Broker'
    [string[]] $SecurityGroups
    [string] $StorageType
    [string] $EngineVersion
    [AmazonMQBrokerConfigurationId] $Configuration
    [string] $AuthenticationStrategy
    [AmazonMQBrokerMaintenanceWindow] $MaintenanceWindowStartTime
    [string] $HostInstanceType
    [bool] $AutoMinorVersionUpgrade
    [AmazonMQBrokerUser[]] $Users
    [AmazonMQBrokerLogList] $Logs
    [string[]] $SubnetIds
    [string] $BrokerName
    [AmazonMQBrokerLdapServerMetadata] $LdapServerMetadata
    [string] $DeploymentMode
    [string] $EngineType
    [bool] $PubliclyAccessible
    [AmazonMQBrokerEncryptionOptions] $EncryptionOptions
    [AmazonMQBrokerTagsEntry[]] $Tags
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name SecurityGroups -Value {
            $this.Properties['SecurityGroups']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['SecurityGroups'] = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name StorageType -Value {
            $this.Properties['StorageType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['StorageType'] = 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 Configuration -Value {
            $this.Properties['Configuration']
        } -SecondValue {
            param([ValidateType(([AmazonMQBrokerConfigurationId], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Configuration'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthenticationStrategy -Value {
            $this.Properties['AuthenticationStrategy']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AuthenticationStrategy'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaintenanceWindowStartTime -Value {
            $this.Properties['MaintenanceWindowStartTime']
        } -SecondValue {
            param([ValidateType(([AmazonMQBrokerMaintenanceWindow], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaintenanceWindowStartTime'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HostInstanceType -Value {
            $this.Properties['HostInstanceType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HostInstanceType'] = 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 Users -Value {
            $this.Properties['Users']
        } -SecondValue {
            param([ValidateType(([AmazonMQBrokerUser], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Users'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Logs -Value {
            $this.Properties['Logs']
        } -SecondValue {
            param([ValidateType(([AmazonMQBrokerLogList], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Logs'] = $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 BrokerName -Value {
            $this.Properties['BrokerName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['BrokerName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LdapServerMetadata -Value {
            $this.Properties['LdapServerMetadata']
        } -SecondValue {
            param([ValidateType(([AmazonMQBrokerLdapServerMetadata], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LdapServerMetadata'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeploymentMode -Value {
            $this.Properties['DeploymentMode']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DeploymentMode'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EngineType -Value {
            $this.Properties['EngineType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EngineType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PubliclyAccessible -Value {
            $this.Properties['PubliclyAccessible']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PubliclyAccessible'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name EncryptionOptions -Value {
            $this.Properties['EncryptionOptions']
        } -SecondValue {
            param([ValidateType(([AmazonMQBrokerEncryptionOptions], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['EncryptionOptions'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([AmazonMQBrokerTagsEntry], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this.Properties['Tags'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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