def update_dialog_node(workspace_id:, dialog_node:, new_dialog_node: nil, new_description: nil, new_conditions: nil, new_parent: nil, new_previous_sibling: nil, new_output: nil, new_context: nil, new_metadata: nil, new_next_step: nil, new_title: nil, new_node_type: nil, new_event_name: nil, new_variable: nil, new_actions: nil, new_digress_in: nil, new_digress_out: nil, new_digress_out_slots: nil, new_user_label: nil)
      raise ArgumentError.new("workspace_id must be provided") if workspace_id.nil?

      raise ArgumentError.new("dialog_node must be provided") if dialog_node.nil?

      headers = {
      }
      sdk_headers = Common.new.get_sdk_headers("conversation", "V1", "update_dialog_node")
      headers.merge!(sdk_headers)

      params = {
        "version" => @version
      }

      data = {
        "dialog_node" => new_dialog_node,
        "description" => new_description,
        "conditions" => new_conditions,
        "parent" => new_parent,
        "previous_sibling" => new_previous_sibling,
        "output" => new_output,
        "context" => new_context,
        "metadata" => new_metadata,
        "next_step" => new_next_step,
        "title" => new_title,
        "type" => new_node_type,
        "event_name" => new_event_name,
        "variable" => new_variable,
        "actions" => new_actions,
        "digress_in" => new_digress_in,
        "digress_out" => new_digress_out,
        "digress_out_slots" => new_digress_out_slots,
        "user_label" => new_user_label
      }

      method_url = "/v1/workspaces/%s/dialog_nodes/%s" % [ERB::Util.url_encode(workspace_id), ERB::Util.url_encode(dialog_node)]

      response = request(
        method: "POST",
        url: method_url,
        headers: headers,
        params: params,
        json: data,
        accept_json: true
      )
      response
    end
def update_dialog_node(workspace_id:, dialog_node:, new_dialog_node: nil, new_description: nil, new_conditions: nil, new_parent: nil, new_previous_sibling: nil, new_output: nil, new_context: nil, new_metadata: nil, new_next_step: nil, new_title: nil, new_node_type: nil, new_event_name: nil, new_variable: nil, new_actions: nil, new_digress_in: nil, new_digress_out: nil, new_digress_out_slots: nil, new_user_label: nil)
      raise ArgumentError.new("workspace_id must be provided") if workspace_id.nil?

      raise ArgumentError.new("dialog_node must be provided") if dialog_node.nil?

      headers = {
      }
      sdk_headers = Common.new.get_sdk_headers("conversation", "V1", "update_dialog_node")
      headers.merge!(sdk_headers)

      params = {
        "version" => @version
      }

      data = {
        "dialog_node" => new_dialog_node,
        "description" => new_description,
        "conditions" => new_conditions,
        "parent" => new_parent,
        "previous_sibling" => new_previous_sibling,
        "output" => new_output,
        "context" => new_context,
        "metadata" => new_metadata,
        "next_step" => new_next_step,
        "title" => new_title,
        "type" => new_node_type,
        "event_name" => new_event_name,
        "variable" => new_variable,
        "actions" => new_actions,
        "digress_in" => new_digress_in,
        "digress_out" => new_digress_out,
        "digress_out_slots" => new_digress_out_slots,
        "user_label" => new_user_label
      }

      method_url = "/v1/workspaces/%s/dialog_nodes/%s" % [ERB::Util.url_encode(workspace_id), ERB::Util.url_encode(dialog_node)]

      response = request(
        method: "POST",
        url: method_url,
        headers: headers,
        params: params,
        json: data,
        accept_json: true
      )
      response
    end
@!method update_dialog_node(workspace_id:, dialog_node:, new_dialog_node: nil, new_description: nil, new_conditions: nil, new_parent: nil, new_previous_sibling: nil, new_output: nil, new_context: nil, new_metadata: nil, new_next_step: nil, new_title: nil, new_node_type: nil, new_event_name: nil, new_variable: nil, new_actions: nil, new_digress_in: nil, new_digress_out: nil, new_digress_out_slots: nil, new_user_label: nil)
 Update dialog node.
 Update an existing dialog node with new or modified data.

   This operation is limited to 500 requests per 30 minutes. For more information,
   see **Rate limiting**.
 @param workspace_id [String] Unique identifier of the workspace.
 @param dialog_node [String] The dialog node ID (for example, `get_order`).
 @param new_dialog_node [String] The dialog node ID. This string must conform to the following restrictions:
   - It can contain only Unicode alphanumeric, space, underscore, hyphen, and dot
   characters.
   - It must be no longer than 1024 characters.
 @param new_description [String] The description of the dialog node. This string cannot contain carriage return,
   newline, or tab characters, and it must be no longer than 128 characters.
 @param new_conditions [String] The condition that will trigger the dialog node. This string cannot contain
   carriage return, newline, or tab characters, and it must be no longer than 2048
   characters.
 @param new_parent [String] The ID of the parent dialog node. This property is omitted if the dialog node has
   no parent.
 @param new_previous_sibling [String] The ID of the previous sibling dialog node. This property is omitted if the dialog
   node has no previous sibling.
 @param new_output [DialogNodeOutput] The output of the dialog node. For more information about how to specify dialog
   node output, see the
   [documentation](https://cloud.ibm.com/docs/services/assistant/dialog-overview.html#dialog-overview-responses).
 @param new_context [Hash] The context for the dialog node.
 @param new_metadata [Hash] The metadata for the dialog node.
 @param new_next_step [DialogNodeNextStep] The next step to execute following this dialog node.
 @param new_title [String] The alias used to identify the dialog node. This string must conform to the
   following restrictions:
   - It can contain only Unicode alphanumeric, space, underscore, hyphen, and dot
   characters.
   - It must be no longer than 64 characters.
 @param new_node_type [String] How the dialog node is processed.
 @param new_event_name [String] How an `event_handler` node is processed.
 @param new_variable [String] The location in the dialog context where output is stored.
 @param new_actions [Array[DialogNodeAction]] An array of objects describing any actions to be invoked by the dialog node.
 @param new_digress_in [String] Whether this top-level dialog node can be digressed into.
 @param new_digress_out [String] Whether this dialog node can be returned to after a digression.
 @param new_digress_out_slots [String] Whether the user can digress to top-level nodes while filling out slots.
 @param new_user_label [String] A label that can be displayed externally to describe the purpose of the node to
   users. This string must be no longer than 512 characters.
 @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.