code: def to_dict(self):
          
          self.validate_properties()
  
          resource_dict = self._generate_resource_dict()
  
          return {self.logical_id: resource_dict}
docs: Validates that the required properties for this Resource have been provided, then returns a dict
          corresponding to the given Resource object. This dict will take the format of a single entry in the Resources
          section of a CloudFormation template, and will take the following format. ::
  
              {
                  "<logical id>": {
                      "Type": "<resource type>",
                      "DependsOn": "<value specified by user>",
                      "Properties": {
                          <set of properties>
                      }
                  }
              }
  
          The resulting dict can then be serialized to JSON or YAML and included as part of a CloudFormation template.
  
          :returns: a dict corresponding to this Resource's entry in a CloudFormation template
          :rtype: dict
          :raises TypeError: if a required property is missing from this Resource