Fixed creating private-key based creds.
diff --git a/_states/jenkins_credential.py b/_states/jenkins_credential.py
index ce44fe6..c21f77e 100644
--- a/_states/jenkins_credential.py
+++ b/_states/jenkins_credential.py
@@ -40,6 +40,7 @@
 }}
 """  # noqa
 
+
 def present(name, scope, username, password=None, desc="", key=None):
     """
     Main jenkins credentials state method
@@ -68,8 +69,8 @@
         clazz = ""
         if key:
             clazz = "com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey"
-            params = 'CredentialsScope.{}, "{}", "{}", "{}"'.format(
-                scope, name, desc, key)
+            params = 'CredentialsScope.{}, "{}", "{}", new com.cloudbees.jenkins.plugins.sshcredentials.impl.BasicSSHUserPrivateKey.DirectEntryPrivateKeySource("{}"), "{}", "{}"'.format(
+                scope, name, username, key, password, desc)
         else:
             clazz = "com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl"
             params = 'CredentialsScope.{}, "{}", "{}", "{}", "{}"'.format(
@@ -87,6 +88,7 @@
             status = 'FAILED'
             logger.error(
                 "Jenkins credentials API call failure: %s", call_result["msg"])
-            ret['comment'] = 'Jenkins credentials API call failure: %s' % (call_result["msg"])
+            ret['comment'] = 'Jenkins credentials API call failure: %s' % (call_result[
+                                                                           "msg"])
     ret['result'] = None if test else result
     return ret