title: Pass multiple parameters to DBParameterGroup in YAML CloudFormation
body: <p>I have the following cloudformation template.  The goal is to only create a parameter group if the user wants to and then to populate the RDS parameters in the parameter group with the contents of the cloudformation template parameters.</p>
  
  <pre><code>Parameters:
    UseCustomParameterGroup:
      Description: Toggle to 'Yes' to create a new parameter group.
      Type: String
      AllowedValues: ['Yes', 'No']
      Default: 'No'
    CustomParameters:
      Description: Add custom parameters to your custom parameter group. Creating a custom parameter group without parameters creates a mirror of the default group.
      Type: String
  Conditions:
    UseCustomParameterGroup: !Equals [!Ref 'UseCustomParameterGroup', 'Yes']
  Resources:
    CustomParameterGroup:
      Type: AWS::RDS::DBParameterGroup
      Condition: 'UseCustomParameterGroup'
      Properties:
        Family: "postgres10"
        Parameters: !Ref "CustomParameters"
  </code></pre>
  
  <p>If I call this template from another template as so, it will fail with the error <code>Value of property Parameters must be an object</code></p>
  
  <pre><code>Parameters:
    USECUSTOMPARAMETERGROUP: 'Yes'
    CUSTOMPARAMETERS: '{
      "shared_preload_libraries": "pg_stat_statements",
      "pg_stat_statements.track": "all"
    }'
  Resources:
    Postgres:
      Type: AWS::CloudFormation::Stack
      Properties:
        TemplateURL: https://..../rds-postgres-instance.yaml
        TimeoutInMinutes: '60'
        Parameters:
          UseCustomParameterGroup: !Ref USECUSTOMPARAMETERGROUP
          CustomParameters: !Ref CUSTOMPARAMETERS
  </code></pre>
  
  <p>The documentation for <code>AWS::RDS::DBParameterGroup</code> states the following for the <code>Parameters</code> parameter:</p>
  
  <blockquote>
    <p>Type: A JSON object consisting of string key-value pairs, as shown in the following example</p>
    
    <p>"Parameters" : { "Key1" : "Value1", "Key2" : "Value2", "Key3" : "Value3" } </p>
  </blockquote>
  
  <p>I think this may be out of date for the YAML version of Cloudformation, but there is no documentation on how to pass this value multiple parameters.</p>
  
  <p>I want the user to be able to define as few or many RDS parameters as they please without having to account for any of the thousands of possible parameters available to RDS.</p>