title: How do I pass multiple parameters to AWS SSM send_command with Boto3
body: <p>I have created a custom AWS SSM document for use with Run Command, I am then trying to use Boto 3 in order to send that command to a single EC2 instance. </p>
  
  <p>The document require 2 parameters to be sent to it but I cannot figure out how to correctly do this by looking at the docs here: <a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.send_command" rel="nofollow noreferrer">https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html#SSM.Client.send_command</a></p>
  
  <p>I can use the CLI successfully with this command:</p>
  
  <pre><code>aws ssm send-command \
      --document-name "ResetVpnMfa" \
      --document-version "1" \
      --targets '[{"Key":"InstanceIds","Values":["i-abcabcab"]}]' \
      --parameters '{"command":["GoogleAuthlock"],"username":["some.user"]}' \
      --timeout-seconds 30 \
      --region eu-west-1
  </code></pre>
  
  <p>My Python code:</p>
  
  <pre class="lang-py prettyprint-override"><code>import boto3
  
  client = boto3.client('ssm', region_name='eu-west-1')
  
  params={
      'command': ['GoogleAuthLock'],
      'username': ['some.user'],
  }
  
  response = client.send_command(
      InstanceIds=['i-abcabcab'],
      DocumentName='ResetVpnMfa',
      DocumentVersion='1',
      TimeoutSeconds=30,
      Comment='VPN MFA reset for some.user via Boto',
      Parameters=params
  )
  </code></pre>
  
  <p>I get the following error:</p>
  
  <pre><code>botocore.errorfactory.InvalidParameters: An error occurred (InvalidParameters) when calling the SendCommand operation:
  </code></pre>
  
  <p>The SSM Document itself:</p>
  
  <pre><code>---
  schemaVersion: "2.2"
  description: "Unlock or reset MFA on OpenVPN"
  parameters:
    username:
      type: "String"
      description: "VPN user e.g. digger.dachshund"
    command:
      type: "String"
      description: "Command to unlock or reset MFA on OpenVPN."
      allowedValues:
      - GoogleAuthlock
      - GoogleAuthRegen
  mainSteps:
  - action: "aws:runShellScript"
    name: "VPNResetMFA"
    inputs:
      runCommand:
      - "/usr/local/openvpn_as/scripts/sacli --user {{username}} --lock 0 {{command}}"
  
  </code></pre>