We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
S3ObjectVersion is spelled "SS3ObjectVersion" in the lambda Code object validation
I just noticed [this](https://github.com/cloudtools/troposphere/blob/1f67fb140f5b94cf0f29213a7300bad3ea046a0f/troposphere/awslambda.py#L31) while I was reading through the code. I haven't run into problems as I haven't had to use this particular key, but it looks like something you might want to know about.


--- 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/awslambda.py`
Content:
```
1 from . import AWSObject, AWSProperty
2 from .validators import positive_integer
3 
4 MEMORY_VALUES = [x for x in range(128, 1600, 64)]
5 
6 
7 def validate_memory_size(memory_value):
8     """ Validate memory size for Lambda Function
9     :param memory_value: The memory size specified in the Function
10     :return: The provided memory size if it is valid
11     """
12     memory_value = int(positive_integer(memory_value))
13     if memory_value not in MEMORY_VALUES:
14         raise ValueError("Lambda Function memory size must be one of:\n %s" %
15                          ", ".join(str(mb) for mb in MEMORY_VALUES))
16     return memory_value
17 
18 
19 class Code(AWSProperty):
20     props = {
21         'S3Bucket': (basestring, False),
22         'S3Key': (basestring, False),
23         'S3ObjectVersion': (basestring, False),
24         'ZipFile': (basestring, False)
25     }
26 
27     def validate(self):
28         zip_file = self.properties.get('ZipFile')
29         s3_bucket = self.properties.get('S3Bucket')
30         s3_key = self.properties.get('S3Key')
31         s3_object_version = self.properties.get('SS3ObjectVersion')
32 
33         if zip_file and s3_bucket:
34             raise ValueError("You can't specify both 'S3Bucket' and 'ZipFile'")
35         if zip_file and s3_key:
36             raise ValueError("You can't specify both 'S3Key' and 'ZipFile'")
37         if zip_file and s3_object_version:
38             raise ValueError(
39                 "You can't specify both 'S3ObjectVersion' and 'ZipFile'"
40             )
41         if not zip_file and not (s3_bucket and s3_key):
42             raise ValueError(
43                 "You must specify a bucket location (both the 'S3Bucket' and "
44                 "'S3Key' properties) or the 'ZipFile' property"
45             )
46 
47 
48 class VPCConfig(AWSProperty):
49 
50     props = {
51         'SecurityGroupIds': (list, True),
52         'SubnetIds': (list, True),
53     }
54 
55 
56 class EventSourceMapping(AWSObject):
57     resource_type = "AWS::Lambda::EventSourceMapping"
58 
59     props = {
60         'BatchSize': (positive_integer, False),
61         'Enabled': (bool, False),
62         'EventSourceArn': (basestring, True),
63         'FunctionName': (basestring, True),
64         'StartingPosition': (basestring, True),
65     }
66 
67 
68 class Function(AWSObject):
69     resource_type = "AWS::Lambda::Function"
70 
71     props = {
72         'Code': (Code, True),
73         'Description': (basestring, False),
74         'FunctionName': (basestring, False),
75         'Handler': (basestring, True),
76         'MemorySize': (validate_memory_size, False),
77         'Role': (basestring, True),
78         'Runtime': (basestring, True),
79         'Timeout': (positive_integer, False),
80         'VpcConfig': (VPCConfig, False),
81     }
82 
83 
84 class Permission(AWSObject):
85     resource_type = "AWS::Lambda::Permission"
86 
87     props = {
88         'Action': (basestring, True),
89         'FunctionName': (basestring, True),
90         'Principal': (basestring, True),
91         'SourceAccount': (basestring, False),
92         'SourceArn': (basestring, False),
93     }
94 
95 
96 class Alias(AWSObject):
97     resource_type = "AWS::Lambda::Alias"
98 
99     props = {
100         'Description': (basestring, False),
101         'FunctionName': (basestring, True),
102         'FunctionVersion': (basestring, True),
103         'Name': (basestring, True),
104     }
105 
106 
107 class Version(AWSObject):
108     resource_type = "AWS::Lambda::Version"
109 
110     props = {
111         'CodeSha256': (basestring, False),
112         'Description': (basestring, False),
113         'FunctionName': (basestring, True),
114     }
115
```
--- 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/awslambda.py b/troposphere/awslambda.py
--- a/troposphere/awslambda.py
+++ b/troposphere/awslambda.py
@@ -28,7 +28,7 @@
         zip_file = self.properties.get('ZipFile')
         s3_bucket = self.properties.get('S3Bucket')
         s3_key = self.properties.get('S3Key')
-        s3_object_version = self.properties.get('SS3ObjectVersion')
+        s3_object_version = self.properties.get('S3ObjectVersion')
 
         if zip_file and s3_bucket:
             raise ValueError("You can't specify both 'S3Bucket' and 'ZipFile'")

{"golden_diff": "diff --git a/troposphere/awslambda.py b/troposphere/awslambda.py\n--- a/troposphere/awslambda.py\n+++ b/troposphere/awslambda.py\n@@ -28,7 +28,7 @@\n         zip_file = self.properties.get('ZipFile')\n         s3_bucket = self.properties.get('S3Bucket')\n         s3_key = self.properties.get('S3Key')\n-        s3_object_version = self.properties.get('SS3ObjectVersion')\n+        s3_object_version = self.properties.get('S3ObjectVersion')\n \n         if zip_file and s3_bucket:\n             raise ValueError(\"You can't specify both 'S3Bucket' and 'ZipFile'\")\n", "issue": "S3ObjectVersion is spelled \"SS3ObjectVersion\" in the lambda Code object validation\nI just noticed [this](https://github.com/cloudtools/troposphere/blob/1f67fb140f5b94cf0f29213a7300bad3ea046a0f/troposphere/awslambda.py#L31) while I was reading through the code. I haven't run into problems as I haven't had to use this particular key, but it looks like something you might want to know about.\n\n", "before_files": [{"content": "from . import AWSObject, AWSProperty\nfrom .validators import positive_integer\n\nMEMORY_VALUES = [x for x in range(128, 1600, 64)]\n\n\ndef validate_memory_size(memory_value):\n    \"\"\" Validate memory size for Lambda Function\n    :param memory_value: The memory size specified in the Function\n    :return: The provided memory size if it is valid\n    \"\"\"\n    memory_value = int(positive_integer(memory_value))\n    if memory_value not in MEMORY_VALUES:\n        raise ValueError(\"Lambda Function memory size must be one of:\\n %s\" %\n                         \", \".join(str(mb) for mb in MEMORY_VALUES))\n    return memory_value\n\n\nclass Code(AWSProperty):\n    props = {\n        'S3Bucket': (basestring, False),\n        'S3Key': (basestring, False),\n        'S3ObjectVersion': (basestring, False),\n        'ZipFile': (basestring, False)\n    }\n\n    def validate(self):\n        zip_file = self.properties.get('ZipFile')\n        s3_bucket = self.properties.get('S3Bucket')\n        s3_key = self.properties.get('S3Key')\n        s3_object_version = self.properties.get('SS3ObjectVersion')\n\n        if zip_file and s3_bucket:\n            raise ValueError(\"You can't specify both 'S3Bucket' and 'ZipFile'\")\n        if zip_file and s3_key:\n            raise ValueError(\"You can't specify both 'S3Key' and 'ZipFile'\")\n        if zip_file and s3_object_version:\n            raise ValueError(\n                \"You can't specify both 'S3ObjectVersion' and 'ZipFile'\"\n            )\n        if not zip_file and not (s3_bucket and s3_key):\n            raise ValueError(\n                \"You must specify a bucket location (both the 'S3Bucket' and \"\n                \"'S3Key' properties) or the 'ZipFile' property\"\n            )\n\n\nclass VPCConfig(AWSProperty):\n\n    props = {\n        'SecurityGroupIds': (list, True),\n        'SubnetIds': (list, True),\n    }\n\n\nclass EventSourceMapping(AWSObject):\n    resource_type = \"AWS::Lambda::EventSourceMapping\"\n\n    props = {\n        'BatchSize': (positive_integer, False),\n        'Enabled': (bool, False),\n        'EventSourceArn': (basestring, True),\n        'FunctionName': (basestring, True),\n        'StartingPosition': (basestring, True),\n    }\n\n\nclass Function(AWSObject):\n    resource_type = \"AWS::Lambda::Function\"\n\n    props = {\n        'Code': (Code, True),\n        'Description': (basestring, False),\n        'FunctionName': (basestring, False),\n        'Handler': (basestring, True),\n        'MemorySize': (validate_memory_size, False),\n        'Role': (basestring, True),\n        'Runtime': (basestring, True),\n        'Timeout': (positive_integer, False),\n        'VpcConfig': (VPCConfig, False),\n    }\n\n\nclass Permission(AWSObject):\n    resource_type = \"AWS::Lambda::Permission\"\n\n    props = {\n        'Action': (basestring, True),\n        'FunctionName': (basestring, True),\n        'Principal': (basestring, True),\n        'SourceAccount': (basestring, False),\n        'SourceArn': (basestring, False),\n    }\n\n\nclass Alias(AWSObject):\n    resource_type = \"AWS::Lambda::Alias\"\n\n    props = {\n        'Description': (basestring, False),\n        'FunctionName': (basestring, True),\n        'FunctionVersion': (basestring, True),\n        'Name': (basestring, True),\n    }\n\n\nclass Version(AWSObject):\n    resource_type = \"AWS::Lambda::Version\"\n\n    props = {\n        'CodeSha256': (basestring, False),\n        'Description': (basestring, False),\n        'FunctionName': (basestring, True),\n    }\n", "path": "troposphere/awslambda.py"}], "after_files": [{"content": "from . import AWSObject, AWSProperty\nfrom .validators import positive_integer\n\nMEMORY_VALUES = [x for x in range(128, 1600, 64)]\n\n\ndef validate_memory_size(memory_value):\n    \"\"\" Validate memory size for Lambda Function\n    :param memory_value: The memory size specified in the Function\n    :return: The provided memory size if it is valid\n    \"\"\"\n    memory_value = int(positive_integer(memory_value))\n    if memory_value not in MEMORY_VALUES:\n        raise ValueError(\"Lambda Function memory size must be one of:\\n %s\" %\n                         \", \".join(str(mb) for mb in MEMORY_VALUES))\n    return memory_value\n\n\nclass Code(AWSProperty):\n    props = {\n        'S3Bucket': (basestring, False),\n        'S3Key': (basestring, False),\n        'S3ObjectVersion': (basestring, False),\n        'ZipFile': (basestring, False)\n    }\n\n    def validate(self):\n        zip_file = self.properties.get('ZipFile')\n        s3_bucket = self.properties.get('S3Bucket')\n        s3_key = self.properties.get('S3Key')\n        s3_object_version = self.properties.get('S3ObjectVersion')\n\n        if zip_file and s3_bucket:\n            raise ValueError(\"You can't specify both 'S3Bucket' and 'ZipFile'\")\n        if zip_file and s3_key:\n            raise ValueError(\"You can't specify both 'S3Key' and 'ZipFile'\")\n        if zip_file and s3_object_version:\n            raise ValueError(\n                \"You can't specify both 'S3ObjectVersion' and 'ZipFile'\"\n            )\n        if not zip_file and not (s3_bucket and s3_key):\n            raise ValueError(\n                \"You must specify a bucket location (both the 'S3Bucket' and \"\n                \"'S3Key' properties) or the 'ZipFile' property\"\n            )\n\n\nclass VPCConfig(AWSProperty):\n\n    props = {\n        'SecurityGroupIds': (list, True),\n        'SubnetIds': (list, True),\n    }\n\n\nclass EventSourceMapping(AWSObject):\n    resource_type = \"AWS::Lambda::EventSourceMapping\"\n\n    props = {\n        'BatchSize': (positive_integer, False),\n        'Enabled': (bool, False),\n        'EventSourceArn': (basestring, True),\n        'FunctionName': (basestring, True),\n        'StartingPosition': (basestring, True),\n    }\n\n\nclass Function(AWSObject):\n    resource_type = \"AWS::Lambda::Function\"\n\n    props = {\n        'Code': (Code, True),\n        'Description': (basestring, False),\n        'FunctionName': (basestring, False),\n        'Handler': (basestring, True),\n        'MemorySize': (validate_memory_size, False),\n        'Role': (basestring, True),\n        'Runtime': (basestring, True),\n        'Timeout': (positive_integer, False),\n        'VpcConfig': (VPCConfig, False),\n    }\n\n\nclass Permission(AWSObject):\n    resource_type = \"AWS::Lambda::Permission\"\n\n    props = {\n        'Action': (basestring, True),\n        'FunctionName': (basestring, True),\n        'Principal': (basestring, True),\n        'SourceAccount': (basestring, False),\n        'SourceArn': (basestring, False),\n    }\n\n\nclass Alias(AWSObject):\n    resource_type = \"AWS::Lambda::Alias\"\n\n    props = {\n        'Description': (basestring, False),\n        'FunctionName': (basestring, True),\n        'FunctionVersion': (basestring, True),\n        'Name': (basestring, True),\n    }\n\n\nclass Version(AWSObject):\n    resource_type = \"AWS::Lambda::Version\"\n\n    props = {\n        'CodeSha256': (basestring, False),\n        'Description': (basestring, False),\n        'FunctionName': (basestring, True),\n    }\n", "path": "troposphere/awslambda.py"}]}