VaporShell.AppSync.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 'AppSyncDataSourceRelationalDatabaseConfig'"

class AppSyncDataSourceRelationalDatabaseConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceRelationalDatabaseConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-relationaldatabaseconfig.html'

    hidden [object] $_rdsHttpEndpointConfig
    hidden [object] $_relationalDatabaseSourceType

    [AppSyncDataSourceRdsHttpEndpointConfig] $RdsHttpEndpointConfig
    [string] $RelationalDatabaseSourceType

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

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

Write-Verbose "Importing class 'AppSyncFunctionConfigurationSyncConfig'"

class AppSyncFunctionConfigurationSyncConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncFunctionConfigurationSyncConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-syncconfig.html'

    hidden [object] $_conflictHandler
    hidden [object] $_conflictDetection
    hidden [object] $_lambdaConflictHandlerConfig

    [string] $ConflictHandler
    [string] $ConflictDetection
    [AppSyncFunctionConfigurationLambdaConflictHandlerConfig] $LambdaConflictHandlerConfig

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

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

Write-Verbose "Importing class 'AppSyncResolverLambdaConflictHandlerConfig'"

class AppSyncResolverLambdaConflictHandlerConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncResolverLambdaConflictHandlerConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-lambdaconflicthandlerconfig.html'

    hidden [object] $_lambdaConflictHandlerArn

    [string] $LambdaConflictHandlerArn

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

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

Write-Verbose "Importing class 'AppSyncGraphQLApiCognitoUserPoolConfig'"

class AppSyncGraphQLApiCognitoUserPoolConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiCognitoUserPoolConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-cognitouserpoolconfig.html'

    hidden [object] $_appIdClientRegex
    hidden [object] $_userPoolId
    hidden [object] $_awsRegion

    [string] $AppIdClientRegex
    [string] $UserPoolId
    [string] $AwsRegion

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AppIdClientRegex -Value {
            $this._appIdClientRegex
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._appIdClientRegex = 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 AwsRegion -Value {
            $this._awsRegion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._awsRegion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AppSyncGraphQLApiAdditionalAuthenticationProviders'"

class AppSyncGraphQLApiAdditionalAuthenticationProviders : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiAdditionalAuthenticationProviders'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationproviders.html'



    hidden [void] _addAccessors() {
    }

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

Write-Verbose "Importing class 'AppSyncDataSourceAwsIamConfig'"

class AppSyncDataSourceAwsIamConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceAwsIamConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-awsiamconfig.html'

    hidden [object] $_signingRegion
    hidden [object] $_signingServiceName

    [string] $SigningRegion
    [string] $SigningServiceName

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

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

Write-Verbose "Importing class 'AppSyncDataSourceOpenSearchServiceConfig'"

class AppSyncDataSourceOpenSearchServiceConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceOpenSearchServiceConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-opensearchserviceconfig.html'

    hidden [object] $_awsRegion
    hidden [object] $_endpoint

    [string] $AwsRegion
    [string] $Endpoint

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

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

Write-Verbose "Importing class 'AppSyncDataSourceDynamoDBConfig'"

class AppSyncDataSourceDynamoDBConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceDynamoDBConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-dynamodbconfig.html'

    hidden [object] $_tableName
    hidden [object] $_awsRegion
    hidden [object] $_versioned
    hidden [object] $_deltaSyncConfig
    hidden [object] $_useCallerCredentials

    [string] $TableName
    [string] $AwsRegion
    [bool] $Versioned
    [AppSyncDataSourceDeltaSyncConfig] $DeltaSyncConfig
    [bool] $UseCallerCredentials

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name TableName -Value {
            $this._tableName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._tableName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AwsRegion -Value {
            $this._awsRegion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._awsRegion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Versioned -Value {
            $this._versioned
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._versioned = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DeltaSyncConfig -Value {
            $this._deltaSyncConfig
        } -SecondValue {
            param([ValidateType(([AppSyncDataSourceDeltaSyncConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._deltaSyncConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UseCallerCredentials -Value {
            $this._useCallerCredentials
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._useCallerCredentials = $value
        }
    }

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

Write-Verbose "Importing class 'AppSyncDataSourceAuthorizationConfig'"

class AppSyncDataSourceAuthorizationConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceAuthorizationConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-authorizationconfig.html'

    hidden [object] $_awsIamConfig
    hidden [object] $_authorizationType

    [AppSyncDataSourceAwsIamConfig] $AwsIamConfig
    [string] $AuthorizationType

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

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

Write-Verbose "Importing class 'AppSyncGraphQLApiLogConfig'"

class AppSyncGraphQLApiLogConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiLogConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-logconfig.html'

    hidden [object] $_cloudWatchLogsRoleArn
    hidden [object] $_excludeVerboseContent
    hidden [object] $_fieldLogLevel

    [string] $CloudWatchLogsRoleArn
    [bool] $ExcludeVerboseContent
    [string] $FieldLogLevel

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

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

Write-Verbose "Importing class 'AppSyncGraphQLApiAdditionalAuthenticationProvider'"

class AppSyncGraphQLApiAdditionalAuthenticationProvider : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiAdditionalAuthenticationProvider'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-additionalauthenticationprovider.html'

    hidden [object] $_openIDConnectConfig
    hidden [object] $_lambdaAuthorizerConfig
    hidden [object] $_userPoolConfig
    hidden [object] $_authenticationType

    [AppSyncGraphQLApiOpenIDConnectConfig] $OpenIDConnectConfig
    [AppSyncGraphQLApiLambdaAuthorizerConfig] $LambdaAuthorizerConfig
    [AppSyncGraphQLApiCognitoUserPoolConfig] $UserPoolConfig
    [string] $AuthenticationType

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name OpenIDConnectConfig -Value {
            $this._openIDConnectConfig
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiOpenIDConnectConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._openIDConnectConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LambdaAuthorizerConfig -Value {
            $this._lambdaAuthorizerConfig
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiLambdaAuthorizerConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._lambdaAuthorizerConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserPoolConfig -Value {
            $this._userPoolConfig
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiCognitoUserPoolConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._userPoolConfig = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthenticationType -Value {
            $this._authenticationType
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authenticationType = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AppSyncFunctionConfigurationLambdaConflictHandlerConfig'"

class AppSyncFunctionConfigurationLambdaConflictHandlerConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncFunctionConfigurationLambdaConflictHandlerConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-functionconfiguration-lambdaconflicthandlerconfig.html'

    hidden [object] $_lambdaConflictHandlerArn

    [string] $LambdaConflictHandlerArn

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

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

Write-Verbose "Importing class 'AppSyncGraphQLApiTags'"

class AppSyncGraphQLApiTags : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiTags'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-tags.html'



    hidden [void] _addAccessors() {
    }

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

Write-Verbose "Importing class 'AppSyncGraphQLApiLambdaAuthorizerConfig'"

class AppSyncGraphQLApiLambdaAuthorizerConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiLambdaAuthorizerConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-lambdaauthorizerconfig.html'

    hidden [object] $_identityValidationExpression
    hidden [object] $_authorizerUri
    hidden [object] $_authorizerResultTtlInSeconds

    [string] $IdentityValidationExpression
    [string] $AuthorizerUri
    [double] $AuthorizerResultTtlInSeconds

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

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

Write-Verbose "Importing class 'AppSyncResolverPipelineConfig'"

class AppSyncResolverPipelineConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncResolverPipelineConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-pipelineconfig.html'

    hidden [object] $_functions

    [string[]] $Functions

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

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

Write-Verbose "Importing class 'AppSyncGraphQLApiOpenIDConnectConfig'"

class AppSyncGraphQLApiOpenIDConnectConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiOpenIDConnectConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-openidconnectconfig.html'

    hidden [object] $_issuer
    hidden [object] $_clientId
    hidden [object] $_authTTL
    hidden [object] $_iatTTL

    [string] $Issuer
    [string] $ClientId
    [double] $AuthTTL
    [double] $IatTTL

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name Issuer -Value {
            $this._issuer
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._issuer = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ClientId -Value {
            $this._clientId
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._clientId = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AuthTTL -Value {
            $this._authTTL
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._authTTL = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name IatTTL -Value {
            $this._iatTTL
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._iatTTL = $value
        }
    }

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

Write-Verbose "Importing class 'AppSyncDataSourceLambdaConfig'"

class AppSyncDataSourceLambdaConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceLambdaConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-lambdaconfig.html'

    hidden [object] $_lambdaFunctionArn

    [string] $LambdaFunctionArn

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

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

Write-Verbose "Importing class 'AppSyncDataSourceHttpConfig'"

class AppSyncDataSourceHttpConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceHttpConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-httpconfig.html'

    hidden [object] $_endpoint
    hidden [object] $_authorizationConfig

    [string] $Endpoint
    [AppSyncDataSourceAuthorizationConfig] $AuthorizationConfig

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

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

Write-Verbose "Importing class 'AppSyncGraphQLApiUserPoolConfig'"

class AppSyncGraphQLApiUserPoolConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncGraphQLApiUserPoolConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-graphqlapi-userpoolconfig.html'

    hidden [object] $_appIdClientRegex
    hidden [object] $_userPoolId
    hidden [object] $_awsRegion
    hidden [object] $_defaultAction

    [string] $AppIdClientRegex
    [string] $UserPoolId
    [string] $AwsRegion
    [string] $DefaultAction

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AppIdClientRegex -Value {
            $this._appIdClientRegex
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._appIdClientRegex = 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 AwsRegion -Value {
            $this._awsRegion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._awsRegion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DefaultAction -Value {
            $this._defaultAction
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._defaultAction = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AppSyncResolverSyncConfig'"

class AppSyncResolverSyncConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncResolverSyncConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-syncconfig.html'

    hidden [object] $_conflictHandler
    hidden [object] $_conflictDetection
    hidden [object] $_lambdaConflictHandlerConfig

    [string] $ConflictHandler
    [string] $ConflictDetection
    [AppSyncResolverLambdaConflictHandlerConfig] $LambdaConflictHandlerConfig

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

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

Write-Verbose "Importing class 'AppSyncDataSourceRdsHttpEndpointConfig'"

class AppSyncDataSourceRdsHttpEndpointConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceRdsHttpEndpointConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-rdshttpendpointconfig.html'

    hidden [object] $_awsRegion
    hidden [object] $_schema
    hidden [object] $_databaseName
    hidden [object] $_dbClusterIdentifier
    hidden [object] $_awsSecretStoreArn

    [string] $AwsRegion
    [string] $Schema
    [string] $DatabaseName
    [string] $DbClusterIdentifier
    [string] $AwsSecretStoreArn

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name AwsRegion -Value {
            $this._awsRegion
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._awsRegion = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Schema -Value {
            $this._schema
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._schema = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DatabaseName -Value {
            $this._databaseName
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._databaseName = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DbClusterIdentifier -Value {
            $this._dbClusterIdentifier
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._dbClusterIdentifier = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AwsSecretStoreArn -Value {
            $this._awsSecretStoreArn
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._awsSecretStoreArn = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
    }

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

Write-Verbose "Importing class 'AppSyncResolverCachingConfig'"

class AppSyncResolverCachingConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncResolverCachingConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-resolver-cachingconfig.html'

    hidden [object] $_cachingKeys
    hidden [object] $_ttl

    [string[]] $CachingKeys
    [double] $Ttl

    hidden [void] _addAccessors() {
        $this | Add-Member -Force -MemberType ScriptProperty -Name CachingKeys -Value {
            $this._cachingKeys
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object[]] $value)
            $this._cachingKeys = @($value)
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ttl -Value {
            $this._ttl
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this._ttl = $value
        }
    }

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

Write-Verbose "Importing class 'AppSyncDataSourceElasticsearchConfig'"

class AppSyncDataSourceElasticsearchConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceElasticsearchConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-elasticsearchconfig.html'

    hidden [object] $_awsRegion
    hidden [object] $_endpoint

    [string] $AwsRegion
    [string] $Endpoint

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

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

Write-Verbose "Importing class 'AppSyncDataSourceDeltaSyncConfig'"

class AppSyncDataSourceDeltaSyncConfig : VSResourceProperty {
    hidden [string] $_vsFunctionName = 'Add-VSAppSyncDataSourceDeltaSyncConfig'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-appsync-datasource-deltasyncconfig.html'

    hidden [object] $_baseTableTTL
    hidden [object] $_deltaSyncTableTTL
    hidden [object] $_deltaSyncTableName

    [string] $BaseTableTTL
    [string] $DeltaSyncTableTTL
    [string] $DeltaSyncTableName

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

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

Write-Verbose "Importing class 'AppSyncResolver'"

class AppSyncResolver : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncResolver'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html'

    hidden [string[]] $_attributes = @('TypeName','ResolverArn','FieldName')
    hidden [object] $_condition

    [string] $Type = 'AWS::AppSync::Resolver'
    [string] $TypeName
    [AppSyncResolverPipelineConfig] $PipelineConfig
    [string] $RequestMappingTemplate
    [string] $ResponseMappingTemplate
    [int] $MaxBatchSize
    [AppSyncResolverSyncConfig] $SyncConfig
    [string] $ResponseMappingTemplateS3Location
    [string] $DataSourceName
    [string] $Kind
    [AppSyncResolverCachingConfig] $CachingConfig
    [string] $RequestMappingTemplateS3Location
    [string] $ApiId
    [string] $FieldName
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name TypeName -Value {
            $this.Properties['TypeName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TypeName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name PipelineConfig -Value {
            $this.Properties['PipelineConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncResolverPipelineConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['PipelineConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RequestMappingTemplate -Value {
            $this.Properties['RequestMappingTemplate']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RequestMappingTemplate'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResponseMappingTemplate -Value {
            $this.Properties['ResponseMappingTemplate']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResponseMappingTemplate'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxBatchSize -Value {
            $this.Properties['MaxBatchSize']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaxBatchSize'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SyncConfig -Value {
            $this.Properties['SyncConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncResolverSyncConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SyncConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResponseMappingTemplateS3Location -Value {
            $this.Properties['ResponseMappingTemplateS3Location']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResponseMappingTemplateS3Location'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceName -Value {
            $this.Properties['DataSourceName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DataSourceName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Kind -Value {
            $this.Properties['Kind']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Kind'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name CachingConfig -Value {
            $this.Properties['CachingConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncResolverCachingConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CachingConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RequestMappingTemplateS3Location -Value {
            $this.Properties['RequestMappingTemplateS3Location']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RequestMappingTemplateS3Location'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiId -Value {
            $this.Properties['ApiId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FieldName -Value {
            $this.Properties['FieldName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FieldName'] = 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
        }
    }

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

Write-Verbose "Importing class 'AppSyncGraphQLSchema'"

class AppSyncGraphQLSchema : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncGraphQLSchema'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlschema.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::AppSync::GraphQLSchema'
    [string] $Definition
    [string] $DefinitionS3Location
    [string] $ApiId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

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

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

Write-Verbose "Importing class 'AppSyncGraphQLApi'"

class AppSyncGraphQLApi : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncGraphQLApi'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-graphqlapi.html'

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

    [string] $Type = 'AWS::AppSync::GraphQLApi'
    [AppSyncGraphQLApiOpenIDConnectConfig] $OpenIDConnectConfig
    [AppSyncGraphQLApiLambdaAuthorizerConfig] $LambdaAuthorizerConfig
    [bool] $XrayEnabled
    [AppSyncGraphQLApiUserPoolConfig] $UserPoolConfig
    [AppSyncGraphQLApiTags] $Tags
    [string] $Name
    [string] $AuthenticationType
    [AppSyncGraphQLApiLogConfig] $LogConfig
    [AppSyncGraphQLApiAdditionalAuthenticationProviders] $AdditionalAuthenticationProviders
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name OpenIDConnectConfig -Value {
            $this.Properties['OpenIDConnectConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiOpenIDConnectConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OpenIDConnectConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LambdaAuthorizerConfig -Value {
            $this.Properties['LambdaAuthorizerConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiLambdaAuthorizerConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LambdaAuthorizerConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name XrayEnabled -Value {
            $this.Properties['XrayEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['XrayEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name UserPoolConfig -Value {
            $this.Properties['UserPoolConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiUserPoolConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['UserPoolConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Tags -Value {
            $this.Properties['Tags']
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiTags], [string], [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 AuthenticationType -Value {
            $this.Properties['AuthenticationType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AuthenticationType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LogConfig -Value {
            $this.Properties['LogConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiLogConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LogConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AdditionalAuthenticationProviders -Value {
            $this.Properties['AdditionalAuthenticationProviders']
        } -SecondValue {
            param([ValidateType(([AppSyncGraphQLApiAdditionalAuthenticationProviders], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AdditionalAuthenticationProviders'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'AppSyncApiKey'"

class AppSyncApiKey : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncApiKey'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apikey.html'

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

    [string] $Type = 'AWS::AppSync::ApiKey'
    [string] $Description
    [string] $ApiKeyId
    [double] $Expires
    [string] $ApiId
    [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 ApiKeyId -Value {
            $this.Properties['ApiKeyId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiKeyId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Expires -Value {
            $this.Properties['Expires']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Expires'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiId -Value {
            $this.Properties['ApiId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiId'] = 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
        }
    }

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

Write-Verbose "Importing class 'AppSyncDomainNameApiAssociation'"

class AppSyncDomainNameApiAssociation : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncDomainNameApiAssociation'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainnameapiassociation.html'

    hidden [string[]] $_attributes = @('ApiAssociationIdentifier')
    hidden [object] $_condition

    [string] $Type = 'AWS::AppSync::DomainNameApiAssociation'
    [string] $DomainName
    [string] $ApiId
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $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 ApiId -Value {
            $this.Properties['ApiId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiId'] = 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
        }
    }

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

Write-Verbose "Importing class 'AppSyncFunctionConfiguration'"

class AppSyncFunctionConfiguration : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncFunctionConfiguration'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-functionconfiguration.html'

    hidden [string[]] $_attributes = @('FunctionId','FunctionArn','DataSourceName','Name')
    hidden [object] $_condition

    [string] $Type = 'AWS::AppSync::FunctionConfiguration'
    [string] $ResponseMappingTemplateS3Location
    [string] $Description
    [string] $DataSourceName
    [string] $RequestMappingTemplate
    [string] $ResponseMappingTemplate
    [string] $FunctionVersion
    [int] $MaxBatchSize
    [AppSyncFunctionConfigurationSyncConfig] $SyncConfig
    [string] $RequestMappingTemplateS3Location
    [string] $ApiId
    [string] $Name
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResponseMappingTemplateS3Location -Value {
            $this.Properties['ResponseMappingTemplateS3Location']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResponseMappingTemplateS3Location'] = 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 DataSourceName -Value {
            $this.Properties['DataSourceName']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DataSourceName'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RequestMappingTemplate -Value {
            $this.Properties['RequestMappingTemplate']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RequestMappingTemplate'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ResponseMappingTemplate -Value {
            $this.Properties['ResponseMappingTemplate']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ResponseMappingTemplate'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name FunctionVersion -Value {
            $this.Properties['FunctionVersion']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['FunctionVersion'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name MaxBatchSize -Value {
            $this.Properties['MaxBatchSize']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['MaxBatchSize'] = if ($cast = $value -as [int]) {
                $cast
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name SyncConfig -Value {
            $this.Properties['SyncConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncFunctionConfigurationSyncConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['SyncConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RequestMappingTemplateS3Location -Value {
            $this.Properties['RequestMappingTemplateS3Location']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RequestMappingTemplateS3Location'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiId -Value {
            $this.Properties['ApiId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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
        }
    }

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

Write-Verbose "Importing class 'AppSyncApiCache'"

class AppSyncApiCache : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncApiCache'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-apicache.html'

    hidden [object] $_condition

    [string] $Type = 'AWS::AppSync::ApiCache'
    [string] $ApiCacheType
    [bool] $TransitEncryptionEnabled
    [bool] $AtRestEncryptionEnabled
    [string] $ApiId
    [string] $ApiCachingBehavior
    [double] $Ttl
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiCacheType -Value {
            $this.Properties['ApiCacheType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiCacheType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name TransitEncryptionEnabled -Value {
            $this.Properties['TransitEncryptionEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['TransitEncryptionEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name AtRestEncryptionEnabled -Value {
            $this.Properties['AtRestEncryptionEnabled']
        } -SecondValue {
            param([ValidateType(([bool], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['AtRestEncryptionEnabled'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiId -Value {
            $this.Properties['ApiId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiCachingBehavior -Value {
            $this.Properties['ApiCachingBehavior']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiCachingBehavior'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Ttl -Value {
            $this.Properties['Ttl']
        } -SecondValue {
            param([ValidateType(([double], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['Ttl'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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

Write-Verbose "Importing class 'AppSyncDomainName'"

class AppSyncDomainName : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncDomainName'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-domainname.html'

    hidden [string[]] $_attributes = @('DomainName','AppSyncDomainName','HostedZoneId')
    hidden [object] $_condition

    [string] $Type = 'AWS::AppSync::DomainName'
    [string] $DomainName
    [string] $Description
    [string] $CertificateArn
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $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 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 CertificateArn -Value {
            $this.Properties['CertificateArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['CertificateArn'] = 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
        }
    }

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

Write-Verbose "Importing class 'AppSyncDataSource'"

class AppSyncDataSource : VSResource {
    hidden [string] $_vsFunctionName = 'New-VSAppSyncDataSource'
    hidden [string] $_awsDocumentation = 'http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-datasource.html'

    hidden [string[]] $_attributes = @('DataSourceArn','Name')
    hidden [object] $_condition

    [string] $Type = 'AWS::AppSync::DataSource'
    [string] $DataSourceType
    [AppSyncDataSourceOpenSearchServiceConfig] $OpenSearchServiceConfig
    [string] $Description
    [string] $ServiceRoleArn
    [AppSyncDataSourceHttpConfig] $HttpConfig
    [AppSyncDataSourceRelationalDatabaseConfig] $RelationalDatabaseConfig
    [AppSyncDataSourceLambdaConfig] $LambdaConfig
    [string] $ApiId
    [string] $Name
    [AppSyncDataSourceDynamoDBConfig] $DynamoDBConfig
    [AppSyncDataSourceElasticsearchConfig] $ElasticsearchConfig
    [VSJson] $Metadata
    [UpdatePolicy] $UpdatePolicy
    [string] $Condition

    hidden [void] _addAccessors() {
        $this._addBaseAccessors()
        $this | Add-Member -Force -MemberType ScriptProperty -Name DataSourceType -Value {
            $this.Properties['DataSourceType']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DataSourceType'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name OpenSearchServiceConfig -Value {
            $this.Properties['OpenSearchServiceConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncDataSourceOpenSearchServiceConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['OpenSearchServiceConfig'] = $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 ServiceRoleArn -Value {
            $this.Properties['ServiceRoleArn']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ServiceRoleArn'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $value
            }
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name HttpConfig -Value {
            $this.Properties['HttpConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncDataSourceHttpConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['HttpConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name RelationalDatabaseConfig -Value {
            $this.Properties['RelationalDatabaseConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncDataSourceRelationalDatabaseConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['RelationalDatabaseConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name LambdaConfig -Value {
            $this.Properties['LambdaConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncDataSourceLambdaConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['LambdaConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ApiId -Value {
            $this.Properties['ApiId']
        } -SecondValue {
            param([ValidateType(([string], [int], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ApiId'] = if ($value -is [int]) {
                $value.ToString()
            }
            else {
                $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 DynamoDBConfig -Value {
            $this.Properties['DynamoDBConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncDataSourceDynamoDBConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['DynamoDBConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name ElasticsearchConfig -Value {
            $this.Properties['ElasticsearchConfig']
        } -SecondValue {
            param([ValidateType(([AppSyncDataSourceElasticsearchConfig], [string], [IntrinsicFunction], [ConditionFunction]))] [object] $value)
            $this.Properties['ElasticsearchConfig'] = $value
        }
        $this | Add-Member -Force -MemberType ScriptProperty -Name Condition -Value {
            $this._condition
        } -SecondValue {
            param(
                [ValidateType(([string], [IntrinsicFunction], [ConditionFunction]))] [object]
                $value
            )
            $this._condition = $value
        }
    }

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