{
  "synLogic": "int $ret \u003d $api($1, $2, $3);",
  "help": "This API is used to initialize the Kafka security protocol for a given Kafka producer or consumer. The security protocol is set to \"sasl_plaintext\" using this API. In general, when working with Kafka, the security protocol is typically set using the configuration options provided by the Kafka client library. The security protocol determines how clients authenticate and communicate with the Kafka cluster.",
  "notes": "",
  "returns": "The function returns 0 on success and a negative error code on failure. It return boolean in Java",
  "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 Security Protocol \u003c/td\u003e \u003ctd\u003e Kafka supports following security protocols for scripting:\u003cbr\u003e\u003cb\u003essl:\u003c/b\u003e It is a security protocol, which ensures that the communication is encrypted and authenticated using SSL.\u003cbr\u003e\u003cb\u003esasl_plaintext:\u003c/b\u003e It is used if SSL encryption is not enabled.\u003cbr\u003e\u003cb\u003esasl_ssl:\u003c/b\u003e It is used if SSL encryption is enabled (SSL encryption should always be used if SASL mechanism is PLAIN). All broker/client communication use sasl_ssl security protocol, which ensures that the communication is encrypted and authenticated using sasl/plain.  \u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003e Error Message \u003c/td\u003e \u003ctd\u003e A pointer to a string variable that will hold any error messages generated by the API. \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": "Dropdown",
      "label": "Security Protocol",
      "value": "ssl",
      "css": "p-grid p-align-center w-100-p",
      "title": "Enter Security Protocol",
      "placeHolder": "Select Security Protocol",
      "style": "",
      "isDisabled": "",
      "list": [
        {
          "label": "SSL",
          "value": "ssl"
        },
        {
          "label": "SASL Plain Text",
          "value": "sasl_plaintext"
        },
        {
          "label": "SASL SSL",
          "value": "sasl_ssl"
        }
      ],
      "labelVarCheckbox": "",
      "argIndex": 0,
      "validate": {
        "inputType": "text",
        "disabled": false,
        "required": true,
        "min": 0,
        "max": 0
      },
      "quotes": true
    },
    {
      "id": "$3",
      "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_security_protocol",
  "syntax": "int ns_kafka_set_security_protocol(int jpid, char *security_protocol, char *error_msg);",
  "javaSyntax": "boolean ns_kafka_set_security_protocol(JMSKey key, String security_protocol);",
  "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  {\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_security_protocol(jpid, \"sasl_plaintext\", error_msg)) \u003c 0)\n  {\n   fprintf(stderr, \"Error in setting Kafka security protocol. Error code \u003d %d, Error Msg \u003d %s\", ret, error_msg);\n   return;\n  }\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 security\n        //ns_kafka_set_security_protocol(key, security_protocol)\n        if(!nsApi.ns_kafka_set_security_protocol(key, \"ssl\") \u0026\u0026 key.getErrCode() !\u003d 0)\n        {\n         System.out.println(\"Error in setting kafka security protocol.  Error code \u003d \" + key.getErrCode() + \", Error Msg \u003d \" + key.getErrMsg());\n         return 0;\n        }\n  }\n}",
  "insertStrC": "ns_kafka_set_security_protocol(int jpid, char *security_protocol, char *error_msg);",
  "insertStrJava": "ns_kafka_set_security_protocol(JMSKey key, String security_protocol);",
  "description": "This API is used to initialize the Kafka security protocol for a given Kafka producer or consumer. The security protocol is set to \"sasl_plaintext\" using this API. In general, when working with Kafka, the security protocol is typically set using the configuration options provided by the Kafka client library. The security protocol determines how clients authenticate and communicate with the Kafka cluster."
}