docs: public ServiceCall<DialogNode> createDialogNode(CreateDialogNodeOptions createDialogNodeOptions) {
      Validator.notNull(createDialogNodeOptions, "createDialogNodeOptions cannot be null");
      String[] pathSegments = { "v1/workspaces", "dialog_nodes" };
      String[] pathParameters = { createDialogNodeOptions.workspaceId() };
      RequestBuilder builder = RequestBuilder.post(RequestBuilder.constructHttpUrl(getEndPoint(), pathSegments,
          pathParameters));
      builder.query("version", versionDate);
      Map<String, String> sdkHeaders = SdkCommon.getSdkHeaders("conversation", "v1", "createDialogNode");
      for (Entry<String, String> header : sdkHeaders.entrySet()) {
        builder.header(header.getKey(), header.getValue());
      }
      builder.header("Accept", "application/json");
      final JsonObject contentJson = new JsonObject();
      contentJson.addProperty("dialog_node", createDialogNodeOptions.dialogNode());
      if (createDialogNodeOptions.description() != null) {
        contentJson.addProperty("description", createDialogNodeOptions.description());
      }
      if (createDialogNodeOptions.conditions() != null) {
        contentJson.addProperty("conditions", createDialogNodeOptions.conditions());
      }
      if (createDialogNodeOptions.parent() != null) {
        contentJson.addProperty("parent", createDialogNodeOptions.parent());
      }
      if (createDialogNodeOptions.previousSibling() != null) {
        contentJson.addProperty("previous_sibling", createDialogNodeOptions.previousSibling());
      }
      if (createDialogNodeOptions.output() != null) {
        contentJson.add("output", GsonSingleton.getGson().toJsonTree(createDialogNodeOptions.output()));
      }
      if (createDialogNodeOptions.context() != null) {
        contentJson.add("context", GsonSingleton.getGson().toJsonTree(createDialogNodeOptions.context()));
      }
      if (createDialogNodeOptions.metadata() != null) {
        contentJson.add("metadata", GsonSingleton.getGson().toJsonTree(createDialogNodeOptions.metadata()));
      }
      if (createDialogNodeOptions.nextStep() != null) {
        contentJson.add("next_step", GsonSingleton.getGson().toJsonTree(createDialogNodeOptions.nextStep()));
      }
      if (createDialogNodeOptions.title() != null) {
        contentJson.addProperty("title", createDialogNodeOptions.title());
      }
      if (createDialogNodeOptions.nodeType() != null) {
        contentJson.addProperty("type", createDialogNodeOptions.nodeType());
      }
      if (createDialogNodeOptions.eventName() != null) {
        contentJson.addProperty("event_name", createDialogNodeOptions.eventName());
      }
      if (createDialogNodeOptions.variable() != null) {
        contentJson.addProperty("variable", createDialogNodeOptions.variable());
      }
      if (createDialogNodeOptions.actions() != null) {
        contentJson.add("actions", GsonSingleton.getGson().toJsonTree(createDialogNodeOptions.actions()));
      }
      if (createDialogNodeOptions.digressIn() != null) {
        contentJson.addProperty("digress_in", createDialogNodeOptions.digressIn());
      }
      if (createDialogNodeOptions.digressOut() != null) {
        contentJson.addProperty("digress_out", createDialogNodeOptions.digressOut());
      }
      if (createDialogNodeOptions.digressOutSlots() != null) {
        contentJson.addProperty("digress_out_slots", createDialogNodeOptions.digressOutSlots());
      }
      if (createDialogNodeOptions.userLabel() != null) {
        contentJson.addProperty("user_label", createDialogNodeOptions.userLabel());
      }
      builder.bodyJson(contentJson);
      return createServiceCall(builder.build(), ResponseConverterUtils.getObject(DialogNode.class));
    }