We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Add 'Kind' property to AWS::AppSync::Resolver
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-kind

The Kind property is required when using the new PipelineConfig feature for AppSync.

There are only two allowable values, PIPELINE or UNIT. The property is not required if using the standard resolvers.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `troposphere/appsync.py`
Content:
```
1 # Copyright (c) 2012-2017, Mark Peek <mark@peek.org>
2 # All rights reserved.
3 #
4 # See LICENSE file for full license.
5 
6 from . import AWSObject, AWSProperty
7 from .validators import boolean, integer
8 
9 
10 class ApiKey(AWSObject):
11     resource_type = "AWS::AppSync::ApiKey"
12 
13     props = {
14         'ApiId': (basestring, True),
15         'Description': (basestring, False),
16         'Expires': (integer, False),
17     }
18 
19 
20 class DynamoDBConfig(AWSProperty):
21     props = {
22         'AwsRegion': (basestring, True),
23         'TableName': (basestring, True),
24         'UseCallerCredentials': (boolean, False),
25     }
26 
27 
28 class ElasticsearchConfig(AWSProperty):
29     props = {
30         'AwsRegion': (basestring, True),
31         'Endpoint': (basestring, True),
32     }
33 
34 
35 class AwsIamConfig(AWSProperty):
36     props = {
37         'SigningRegion': (basestring, False),
38         'SigningServiceName': (basestring, False),
39     }
40 
41 
42 class AuthorizationConfig(AWSProperty):
43     props = {
44         'AuthorizationType': (basestring, True),
45         'AwsIamConfig': (AwsIamConfig, False),
46     }
47 
48 
49 class HttpConfig(AWSProperty):
50     props = {
51         'AuthorizationConfig': (AuthorizationConfig, False),
52         'Endpoint': (basestring, True),
53     }
54 
55 
56 class LambdaConfig(AWSProperty):
57     props = {
58         'LambdaFunctionArn': (basestring, True),
59     }
60 
61 
62 class RdsHttpEndpointConfig(AWSProperty):
63     props = {
64         'AwsRegion': (basestring, False),
65         'DbClusterIdentifier': (basestring, False),
66         'DatabaseName': (basestring, False),
67         'Schema': (basestring, False),
68         'AwsSecretStoreArn': (basestring, False),
69     }
70 
71 
72 class RelationalDatabaseConfig(AWSProperty):
73     props = {
74         'RelationalDatasourceType': (basestring, False),
75         'RdsHttpEndpointConfig': (RdsHttpEndpointConfig, False),
76     }
77 
78 
79 class DataSource(AWSObject):
80     resource_type = "AWS::AppSync::DataSource"
81 
82     props = {
83         'ApiId': (basestring, True),
84         'Description': (basestring, False),
85         'DynamoDBConfig': (DynamoDBConfig, False),
86         'ElasticsearchConfig': (ElasticsearchConfig, False),
87         'HttpConfig': (HttpConfig, False),
88         'LambdaConfig': (LambdaConfig, False),
89         'Name': (basestring, True),
90         'ServiceRoleArn': (basestring, False),
91         'Type': (basestring, True),
92         'RelationalDatabaseConfig': (RelationalDatabaseConfig, False),
93     }
94 
95 
96 class LogConfig(AWSProperty):
97     props = {
98         'CloudWatchLogsRoleArn': (basestring, False),
99         'FieldLogLevel': (basestring, False),
100     }
101 
102 
103 class OpenIDConnectConfig(AWSProperty):
104     props = {
105         'AuthTTL': (float, False),
106         'ClientId': (basestring, False),
107         'IatTTL': (float, False),
108         'Issuer': (basestring, True),
109     }
110 
111 
112 class UserPoolConfig(AWSProperty):
113     props = {
114         'AppIdClientRegex': (basestring, False),
115         'AwsRegion': (basestring, False),
116         'DefaultAction': (basestring, False),
117         'UserPoolId': (basestring, False),
118     }
119 
120 
121 class GraphQLApi(AWSObject):
122     resource_type = "AWS::AppSync::GraphQLApi"
123 
124     props = {
125         'AuthenticationType': (basestring, True),
126         'LogConfig': (LogConfig, False),
127         'Name': (basestring, True),
128         'OpenIDConnectConfig': (OpenIDConnectConfig, False),
129         'UserPoolConfig': (UserPoolConfig, False),
130     }
131 
132 
133 class GraphQLSchema(AWSObject):
134     resource_type = "AWS::AppSync::GraphQLSchema"
135 
136     props = {
137         'ApiId': (basestring, True),
138         'Definition': (basestring, False),
139         'DefinitionS3Location': (basestring, False),
140     }
141 
142 
143 class PipelineConfig(AWSProperty):
144     props = {
145         'Functions': ([basestring], False),
146     }
147 
148 
149 class Resolver(AWSObject):
150     resource_type = "AWS::AppSync::Resolver"
151 
152     props = {
153         'ApiId': (basestring, True),
154         'DataSourceName': (basestring, True),
155         'FieldName': (basestring, True),
156         'PipelineConfig': (PipelineConfig, False),
157         'RequestMappingTemplate': (basestring, False),
158         'RequestMappingTemplateS3Location': (basestring, False),
159         'ResponseMappingTemplate': (basestring, False),
160         'ResponseMappingTemplateS3Location': (basestring, False),
161         'TypeName': (basestring, True),
162     }
163 
164 
165 class FunctionConfiguration(AWSObject):
166     resource_type = "AWS::AppSync::FunctionConfiguration"
167 
168     props = {
169         'ApiId': (basestring, True),
170         'Name': (basestring, False),
171         'Description': (basestring, False),
172         'DataSourceName': (basestring, False),
173         'FunctionVersion': (basestring, False),
174         'RequestMappingTemplate': (basestring, False),
175         'RequestMappingTemplateS3Location': (basestring, False),
176         'ResponseMappingTemplate': (basestring, False),
177         'ResponseMappingTemplateS3Location': (basestring, False),
178     }
179
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/troposphere/appsync.py b/troposphere/appsync.py
--- a/troposphere/appsync.py
+++ b/troposphere/appsync.py
@@ -7,6 +7,13 @@
 from .validators import boolean, integer
 
 
+def resolver_kind_validator(x):
+    valid_types = ["UNIT", "PIPELINE"]
+    if x not in valid_types:
+        raise ValueError("Kind must be one of: %s" % ", ".join(valid_types))
+    return x
+
+
 class ApiKey(AWSObject):
     resource_type = "AWS::AppSync::ApiKey"
 
@@ -153,6 +160,7 @@
         'ApiId': (basestring, True),
         'DataSourceName': (basestring, True),
         'FieldName': (basestring, True),
+        'Kind': (resolver_kind_validator, False),
         'PipelineConfig': (PipelineConfig, False),
         'RequestMappingTemplate': (basestring, False),
         'RequestMappingTemplateS3Location': (basestring, False),

{"golden_diff": "diff --git a/troposphere/appsync.py b/troposphere/appsync.py\n--- a/troposphere/appsync.py\n+++ b/troposphere/appsync.py\n@@ -7,6 +7,13 @@\n from .validators import boolean, integer\n \n \n+def resolver_kind_validator(x):\n+    valid_types = [\"UNIT\", \"PIPELINE\"]\n+    if x not in valid_types:\n+        raise ValueError(\"Kind must be one of: %s\" % \", \".join(valid_types))\n+    return x\n+\n+\n class ApiKey(AWSObject):\n     resource_type = \"AWS::AppSync::ApiKey\"\n \n@@ -153,6 +160,7 @@\n         'ApiId': (basestring, True),\n         'DataSourceName': (basestring, True),\n         'FieldName': (basestring, True),\n+        'Kind': (resolver_kind_validator, False),\n         'PipelineConfig': (PipelineConfig, False),\n         'RequestMappingTemplate': (basestring, False),\n         'RequestMappingTemplateS3Location': (basestring, False),\n", "issue": "Add 'Kind' property to AWS::AppSync::Resolver\nhttps://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-appsync-resolver.html#cfn-appsync-resolver-kind\r\n\r\nThe Kind property is required when using the new PipelineConfig feature for AppSync.\r\n\r\nThere are only two allowable values, PIPELINE or UNIT. The property is not required if using the standard resolvers.\n", "before_files": [{"content": "# Copyright (c) 2012-2017, Mark Peek <mark@peek.org>\n# All rights reserved.\n#\n# See LICENSE file for full license.\n\nfrom . import AWSObject, AWSProperty\nfrom .validators import boolean, integer\n\n\nclass ApiKey(AWSObject):\n    resource_type = \"AWS::AppSync::ApiKey\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Description': (basestring, False),\n        'Expires': (integer, False),\n    }\n\n\nclass DynamoDBConfig(AWSProperty):\n    props = {\n        'AwsRegion': (basestring, True),\n        'TableName': (basestring, True),\n        'UseCallerCredentials': (boolean, False),\n    }\n\n\nclass ElasticsearchConfig(AWSProperty):\n    props = {\n        'AwsRegion': (basestring, True),\n        'Endpoint': (basestring, True),\n    }\n\n\nclass AwsIamConfig(AWSProperty):\n    props = {\n        'SigningRegion': (basestring, False),\n        'SigningServiceName': (basestring, False),\n    }\n\n\nclass AuthorizationConfig(AWSProperty):\n    props = {\n        'AuthorizationType': (basestring, True),\n        'AwsIamConfig': (AwsIamConfig, False),\n    }\n\n\nclass HttpConfig(AWSProperty):\n    props = {\n        'AuthorizationConfig': (AuthorizationConfig, False),\n        'Endpoint': (basestring, True),\n    }\n\n\nclass LambdaConfig(AWSProperty):\n    props = {\n        'LambdaFunctionArn': (basestring, True),\n    }\n\n\nclass RdsHttpEndpointConfig(AWSProperty):\n    props = {\n        'AwsRegion': (basestring, False),\n        'DbClusterIdentifier': (basestring, False),\n        'DatabaseName': (basestring, False),\n        'Schema': (basestring, False),\n        'AwsSecretStoreArn': (basestring, False),\n    }\n\n\nclass RelationalDatabaseConfig(AWSProperty):\n    props = {\n        'RelationalDatasourceType': (basestring, False),\n        'RdsHttpEndpointConfig': (RdsHttpEndpointConfig, False),\n    }\n\n\nclass DataSource(AWSObject):\n    resource_type = \"AWS::AppSync::DataSource\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Description': (basestring, False),\n        'DynamoDBConfig': (DynamoDBConfig, False),\n        'ElasticsearchConfig': (ElasticsearchConfig, False),\n        'HttpConfig': (HttpConfig, False),\n        'LambdaConfig': (LambdaConfig, False),\n        'Name': (basestring, True),\n        'ServiceRoleArn': (basestring, False),\n        'Type': (basestring, True),\n        'RelationalDatabaseConfig': (RelationalDatabaseConfig, False),\n    }\n\n\nclass LogConfig(AWSProperty):\n    props = {\n        'CloudWatchLogsRoleArn': (basestring, False),\n        'FieldLogLevel': (basestring, False),\n    }\n\n\nclass OpenIDConnectConfig(AWSProperty):\n    props = {\n        'AuthTTL': (float, False),\n        'ClientId': (basestring, False),\n        'IatTTL': (float, False),\n        'Issuer': (basestring, True),\n    }\n\n\nclass UserPoolConfig(AWSProperty):\n    props = {\n        'AppIdClientRegex': (basestring, False),\n        'AwsRegion': (basestring, False),\n        'DefaultAction': (basestring, False),\n        'UserPoolId': (basestring, False),\n    }\n\n\nclass GraphQLApi(AWSObject):\n    resource_type = \"AWS::AppSync::GraphQLApi\"\n\n    props = {\n        'AuthenticationType': (basestring, True),\n        'LogConfig': (LogConfig, False),\n        'Name': (basestring, True),\n        'OpenIDConnectConfig': (OpenIDConnectConfig, False),\n        'UserPoolConfig': (UserPoolConfig, False),\n    }\n\n\nclass GraphQLSchema(AWSObject):\n    resource_type = \"AWS::AppSync::GraphQLSchema\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Definition': (basestring, False),\n        'DefinitionS3Location': (basestring, False),\n    }\n\n\nclass PipelineConfig(AWSProperty):\n    props = {\n        'Functions': ([basestring], False),\n    }\n\n\nclass Resolver(AWSObject):\n    resource_type = \"AWS::AppSync::Resolver\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'DataSourceName': (basestring, True),\n        'FieldName': (basestring, True),\n        'PipelineConfig': (PipelineConfig, False),\n        'RequestMappingTemplate': (basestring, False),\n        'RequestMappingTemplateS3Location': (basestring, False),\n        'ResponseMappingTemplate': (basestring, False),\n        'ResponseMappingTemplateS3Location': (basestring, False),\n        'TypeName': (basestring, True),\n    }\n\n\nclass FunctionConfiguration(AWSObject):\n    resource_type = \"AWS::AppSync::FunctionConfiguration\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Name': (basestring, False),\n        'Description': (basestring, False),\n        'DataSourceName': (basestring, False),\n        'FunctionVersion': (basestring, False),\n        'RequestMappingTemplate': (basestring, False),\n        'RequestMappingTemplateS3Location': (basestring, False),\n        'ResponseMappingTemplate': (basestring, False),\n        'ResponseMappingTemplateS3Location': (basestring, False),\n    }\n", "path": "troposphere/appsync.py"}], "after_files": [{"content": "# Copyright (c) 2012-2017, Mark Peek <mark@peek.org>\n# All rights reserved.\n#\n# See LICENSE file for full license.\n\nfrom . import AWSObject, AWSProperty\nfrom .validators import boolean, integer\n\n\ndef resolver_kind_validator(x):\n    valid_types = [\"UNIT\", \"PIPELINE\"]\n    if x not in valid_types:\n        raise ValueError(\"Kind must be one of: %s\" % \", \".join(valid_types))\n    return x\n\n\nclass ApiKey(AWSObject):\n    resource_type = \"AWS::AppSync::ApiKey\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Description': (basestring, False),\n        'Expires': (integer, False),\n    }\n\n\nclass DynamoDBConfig(AWSProperty):\n    props = {\n        'AwsRegion': (basestring, True),\n        'TableName': (basestring, True),\n        'UseCallerCredentials': (boolean, False),\n    }\n\n\nclass ElasticsearchConfig(AWSProperty):\n    props = {\n        'AwsRegion': (basestring, True),\n        'Endpoint': (basestring, True),\n    }\n\n\nclass AwsIamConfig(AWSProperty):\n    props = {\n        'SigningRegion': (basestring, False),\n        'SigningServiceName': (basestring, False),\n    }\n\n\nclass AuthorizationConfig(AWSProperty):\n    props = {\n        'AuthorizationType': (basestring, True),\n        'AwsIamConfig': (AwsIamConfig, False),\n    }\n\n\nclass HttpConfig(AWSProperty):\n    props = {\n        'AuthorizationConfig': (AuthorizationConfig, False),\n        'Endpoint': (basestring, True),\n    }\n\n\nclass LambdaConfig(AWSProperty):\n    props = {\n        'LambdaFunctionArn': (basestring, True),\n    }\n\n\nclass RdsHttpEndpointConfig(AWSProperty):\n    props = {\n        'AwsRegion': (basestring, False),\n        'DbClusterIdentifier': (basestring, False),\n        'DatabaseName': (basestring, False),\n        'Schema': (basestring, False),\n        'AwsSecretStoreArn': (basestring, False),\n    }\n\n\nclass RelationalDatabaseConfig(AWSProperty):\n    props = {\n        'RelationalDatasourceType': (basestring, False),\n        'RdsHttpEndpointConfig': (RdsHttpEndpointConfig, False),\n    }\n\n\nclass DataSource(AWSObject):\n    resource_type = \"AWS::AppSync::DataSource\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Description': (basestring, False),\n        'DynamoDBConfig': (DynamoDBConfig, False),\n        'ElasticsearchConfig': (ElasticsearchConfig, False),\n        'HttpConfig': (HttpConfig, False),\n        'LambdaConfig': (LambdaConfig, False),\n        'Name': (basestring, True),\n        'ServiceRoleArn': (basestring, False),\n        'Type': (basestring, True),\n        'RelationalDatabaseConfig': (RelationalDatabaseConfig, False),\n    }\n\n\nclass LogConfig(AWSProperty):\n    props = {\n        'CloudWatchLogsRoleArn': (basestring, False),\n        'FieldLogLevel': (basestring, False),\n    }\n\n\nclass OpenIDConnectConfig(AWSProperty):\n    props = {\n        'AuthTTL': (float, False),\n        'ClientId': (basestring, False),\n        'IatTTL': (float, False),\n        'Issuer': (basestring, True),\n    }\n\n\nclass UserPoolConfig(AWSProperty):\n    props = {\n        'AppIdClientRegex': (basestring, False),\n        'AwsRegion': (basestring, False),\n        'DefaultAction': (basestring, False),\n        'UserPoolId': (basestring, False),\n    }\n\n\nclass GraphQLApi(AWSObject):\n    resource_type = \"AWS::AppSync::GraphQLApi\"\n\n    props = {\n        'AuthenticationType': (basestring, True),\n        'LogConfig': (LogConfig, False),\n        'Name': (basestring, True),\n        'OpenIDConnectConfig': (OpenIDConnectConfig, False),\n        'UserPoolConfig': (UserPoolConfig, False),\n    }\n\n\nclass GraphQLSchema(AWSObject):\n    resource_type = \"AWS::AppSync::GraphQLSchema\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Definition': (basestring, False),\n        'DefinitionS3Location': (basestring, False),\n    }\n\n\nclass PipelineConfig(AWSProperty):\n    props = {\n        'Functions': ([basestring], False),\n    }\n\n\nclass Resolver(AWSObject):\n    resource_type = \"AWS::AppSync::Resolver\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'DataSourceName': (basestring, True),\n        'FieldName': (basestring, True),\n        'Kind': (resolver_kind_validator, False),\n        'PipelineConfig': (PipelineConfig, False),\n        'RequestMappingTemplate': (basestring, False),\n        'RequestMappingTemplateS3Location': (basestring, False),\n        'ResponseMappingTemplate': (basestring, False),\n        'ResponseMappingTemplateS3Location': (basestring, False),\n        'TypeName': (basestring, True),\n    }\n\n\nclass FunctionConfiguration(AWSObject):\n    resource_type = \"AWS::AppSync::FunctionConfiguration\"\n\n    props = {\n        'ApiId': (basestring, True),\n        'Name': (basestring, False),\n        'Description': (basestring, False),\n        'DataSourceName': (basestring, False),\n        'FunctionVersion': (basestring, False),\n        'RequestMappingTemplate': (basestring, False),\n        'RequestMappingTemplateS3Location': (basestring, False),\n        'ResponseMappingTemplate': (basestring, False),\n        'ResponseMappingTemplateS3Location': (basestring, False),\n    }\n", "path": "troposphere/appsync.py"}]}