docs: def put_parameter(Name,
                    Value,
                    Description=None,
                    Type='String',
                    KeyId=None,
                    Overwrite=False,
                    AllowedPattern=None,
                    region=None,
                    key=None,
                    keyid=None,
                    profile=None):
      '''
      Sets a parameter in the SSM parameter store
  
      .. versionadded:: Neon
  
      .. code-block:: text
  
          salt-call boto_ssm.put_parameter test-param test_value Type=SecureString KeyId=alias/aws/ssm Description='test encrypted key'
      '''
      conn = __utils__['boto3.get_connection']('ssm', region=region, key=key, keyid=keyid, profile=profile)
      if Type not in ('String', 'StringList', 'SecureString'):
          raise AssertionError('Type needs to be String|StringList|SecureString')
      if Type == 'SecureString' and not KeyId:
          raise AssertionError('Require KeyId with SecureString')
  
      boto_args = {}
      if Description:
          boto_args['Description'] = Description
      if KeyId:
          boto_args['KeyId'] = KeyId
      if AllowedPattern:
          boto_args['AllowedPattern'] = AllowedPattern
  
      try:
          resp = conn.put_parameter(Name=Name, Value=Value, Type=Type, Overwrite=Overwrite, **boto_args)
      except conn.exceptions.ParameterAlreadyExists:
          log.warning("The parameter already exists."
                      " To overwrite this value, set the Overwrite option in the request to True")
          return False
      return resp['Version']