{
  "synLogic": "int $ret \u003d $api($1, $2, $3, $4);",
  "help": "This api sets SSL key file for a Kafka producer client. When working with Kafka and SSL encryption, you typically need to provide a key file that contains the private key used for authentication and establishing secure connections with the Kafka brokers.",
  "notes": "",
  "returns": "In C if the return value is less than zero, it means that there was an error in setting the SSL key file. In that case, the error message will be printed to the standard error stream, and the function will return without performing any further action. \nIt returns boolean in java, it returns true for success and false for failure.",
  "arguments": "\u003ctable class\u003d\"newGuiTable\" style\u003d\"width:100%\"\u003e \u003ctbody\u003e\u003ctr\u003e \u003cth\u003e Argument \u003c/th\u003e \u003cth\u003e Description \u003c/th\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e JPID \u003c/td\u003e \u003ctd\u003e It is the pool id returned from ns_kafka_init_producer () or ns_kafka_init_consumer () api. \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e Key File \u003c/td\u003e \u003ctd\u003e These are openssl generated keys with the crypto toolkit and saved into files with the .key or .pem extension. \u003c/td\u003e \u003c/tr\u003e  \u003ctr\u003e \u003ctd\u003e Key Password \u003c/td\u003e \u003ctd\u003e Password of the Key File \u003c/td\u003e \u003c/tr\u003e  \u003ctr\u003e \u003ctd\u003e Error Message \u003c/td\u003e \u003ctd\u003e is a pointer to a string that will contain the error message in case of failure. \u003c/td\u003e \u003c/tr\u003e   \u003c/tbody\u003e\u003c/table\u003e",
  "parameterization": "",
  "component": [
    {
      "id": "$1",
      "type": "TextField",
      "label": "JMS Pool Connection Id",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "First character must be Alpha.\r\nOther characters are Alpha, Numeric or Underscore",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "If JMS Connection id is a program variable",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,63}$",
        "required": false,
        "min": 0,
        "max": 0,
        "method": "isValidVar(arg)"
      },
      "quotes": false
    },
    {
      "id": "$2",
      "type": "FILE_PATH",
      "label": "Keyfile",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "Enter keyfile path",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "required": true,
        "min": 0,
        "max": 0
      },
      "quotes": true
    },
    {
      "id": "$3",
      "type": "TextField",
      "label": "Key Password",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "Enter password",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "required": true,
        "min": 0,
        "max": 0
      },
      "quotes": true
    },
    {
      "id": "$4",
      "type": "TextField",
      "label": "Error Message Buffer Pointer",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "Enter error message",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "required": true,
        "min": 0,
        "max": 0
      },
      "quotes": false
    },
    {
      "id": "$ret",
      "type": "TextField",
      "label": "Return Variable",
      "value": "",
      "css": "p-grid p-align-center w-100-p",
      "title": "First character must be Alpha.\r\nOther characters are Alpha, Numeric or Underscore.",
      "placeHolder": "",
      "style": "",
      "isDisabled": "",
      "labelVarCheckbox": "",
      "argIndex": 0,
      "validate": {
        "inputType": "Text",
        "disabled": false,
        "pattern": "^[a-zA-Z][a-zA-Z0-9_]{0,63}$",
        "required": false,
        "min": 0,
        "max": 0,
        "method": "isValidVar(arg)"
      },
      "quotes": true
    }
  ],
  "name": "ns_kafka_set_ssl_key_file",
  "syntax": "int ns_kafka_set_ssl_key_file(int jpid, char *keyFilePath, char *keyPassword, char *error_msg);",
  "javaSyntax": "boolean ns_kafka_set_ssl_key_file(JMSKey key, String keyFilePath, String password);",
  "cEx": "flow()\n{\n  int jpid;        //JMS Pool Id\n  int jcid;        //JMS Connection Id\n  char error_msg[1024 + 1];        // Error string. Must be 1024 size\n  int ret;        // Error code\n  char *msg \u003d \"message will goes here\";        // Message to be produced\n  int msg_len \u003d strlen(msg);        // Message Length\n  char *key \u003d \"message_key\";        // Message Key\n  int key_length \u003d strlen(key);        // Message Length\n\n  if((jpid \u003d ns_kafka_init_producer(\"127.0.0.1\", 9092, \"topic\", 1, error_msg)) \u003c 0) {\n    fprintf(stderr, \"Error in initializing Kafka producer. Error code \u003d %d, Error Msg \u003d %s\", jpid, error_msg);\n    return;\n  }\n\n  if((ret \u003d ns_kafka_set_ssl_key_file(jpid, \"key_file\", ns_decrypt(\"IFweRyRCMQ\u003d\u003d\"), error_msg)) \u003c 0) {\n   fprintf(stderr, \"Error in setting Kafka ssl key.Error code \u003d %d, Error Msg \u003d %s\", ret, error_msg);\n   return;\n  } \n}",
  "javaEx": "public class flow implements NsFlow\n{\n  public int execute(NSApi nsApi) throws Exception \n  {\n        NSApi.JMSKey key \u003d null;\n\n        //This api will initialize kafka ssl key file path and it\u0027s password\n        //ns_kafka_set_ssl_key_file(key, keyFilePath, keyPassword)\n        if(!nsApi.ns_kafka_set_ssl_key_file(key, \"key_file_path\", \"4kEt6osQhF0\u003d\") \u0026\u0026 key.getErrCode() !\u003d 0)\n        {\n         System.out.println(\"Error in setting Kafka ssl key. Error code \u003d \" + key.getErrCode() + \", Error Msg \u003d \" + key.getErrMsg());\n         return 0;\n        }\n  }\n}",
  "insertStrC": "ns_kafka_set_ssl_key_file(int jpid, char *keyFilePath, char *keyPassword, char *error_msg);",
  "insertStrJava": "ns_kafka_set_ssl_key_file(JMSKey key, String keyFilePath, String password);",
  "description": "This api sets SSL key file for a Kafka producer client. When working with Kafka and SSL encryption, you typically need to provide a key file that contains the private key used for authentication and establishing secure connections with the Kafka brokers."
}