Class: Vapi::UpdateBashToolDto

Inherits:
Object
  • Object
show all
Defined in:
lib/vapi_server_sdk/types/update_bash_tool_dto.rb

Constant Summary collapse

OMIT =
Object.new

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(messages: OMIT, sub_type: OMIT, server: OMIT, function: OMIT, name: OMIT, additional_properties: nil) ⇒ Vapi::UpdateBashToolDto

Parameters:

  • messages (Array<Vapi::UpdateBashToolDtoMessagesItem>) (defaults to: OMIT)

    These are the messages that will be spoken to the user as the tool is running. For some tools, this is auto-filled based on special fields like ‘tool.destinations`. For others like the function tool, these can be custom configured.

  • sub_type (String) (defaults to: OMIT)

    The sub type of tool.

  • server (Vapi::Server) (defaults to: OMIT)

    This is the server where a ‘tool-calls` webhook will be sent. Notes:

    • Webhook is sent to this server when a tool call is made.

    • Webhook contains the call, assistant, and phone number objects.

    • Webhook contains the variables set on the assistant.

    • Webhook is sent to the first available URL in this order:

    Vapi::UpdateBashToolDto.{tool{tool.server{tool.server.url}, Vapi::UpdateBashToolDto.{assistant{assistant.server{assistant.server.url}, Vapi::UpdateBashToolDto.{phoneNumber{phoneNumber.server{phoneNumber.server.url}, Vapi::UpdateBashToolDto.{org{org.server{org.server.url}.

    • Webhook expects a response with tool call result.

  • function (Vapi::OpenAiFunction) (defaults to: OMIT)

    This is the function definition of the tool. For ‘endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases. An example of an advanced use case is if you want to customize the message that’s spoken for ‘endCall` tool. You can specify a function where it returns an argument “reason”. Then, in `messages` array, you can have many “request-complete” messages. One of these messages will be triggered if the `messages[].conditions` matches the “reason” argument.

  • name (String) (defaults to: OMIT)

    The name of the tool, fixed to ‘bash’

  • additional_properties (OpenStruct) (defaults to: nil)

    Additional properties unmapped to the current class definition



76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 76

def initialize(messages: OMIT, sub_type: OMIT, server: OMIT, function: OMIT, name: OMIT, additional_properties: nil)
  @messages = messages if messages != OMIT
  @sub_type = sub_type if sub_type != OMIT
  @server = server if server != OMIT
  @function = function if function != OMIT
  @name = name if name != OMIT
  @additional_properties = additional_properties
  @_field_set = {
    "messages": messages,
    "subType": sub_type,
    "server": server,
    "function": function,
    "name": name
  }.reject do |_k, v|
    v == OMIT
  end
end

Instance Attribute Details

#additional_propertiesOpenStruct (readonly)

Returns Additional properties unmapped to the current class definition.

Returns:

  • (OpenStruct)

    Additional properties unmapped to the current class definition



42
43
44
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 42

def additional_properties
  @additional_properties
end

#functionVapi::OpenAiFunction (readonly)

Returns This is the function definition of the tool. For ‘endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases. An example of an advanced use case is if you want to customize the message that’s spoken for ‘endCall` tool. You can specify a function where it returns an argument “reason”. Then, in `messages` array, you can have many “request-complete” messages. One of these messages will be triggered if the `messages[].conditions` matches the “reason” argument.

Returns:

  • (Vapi::OpenAiFunction)

    This is the function definition of the tool. For ‘endCall`, `transferCall`, and `dtmf` tools, this is auto-filled based on tool-specific fields like `tool.destinations`. But, even in those cases, you can provide a custom function definition for advanced use cases. An example of an advanced use case is if you want to customize the message that’s spoken for ‘endCall` tool. You can specify a function where it returns an argument “reason”. Then, in `messages` array, you can have many “request-complete” messages. One of these messages will be triggered if the `messages[].conditions` matches the “reason” argument.



38
39
40
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 38

def function
  @function
end

#messagesArray<Vapi::UpdateBashToolDtoMessagesItem> (readonly)

Returns These are the messages that will be spoken to the user as the tool is running. For some tools, this is auto-filled based on special fields like ‘tool.destinations`. For others like the function tool, these can be custom configured.

Returns:

  • (Array<Vapi::UpdateBashToolDtoMessagesItem>)

    These are the messages that will be spoken to the user as the tool is running. For some tools, this is auto-filled based on special fields like ‘tool.destinations`. For others like the function tool, these can be custom configured.



15
16
17
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 15

def messages
  @messages
end

#nameString (readonly)

Returns The name of the tool, fixed to ‘bash’.

Returns:

  • (String)

    The name of the tool, fixed to ‘bash’



40
41
42
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 40

def name
  @name
end

#serverVapi::Server (readonly)

Returns This is the server where a ‘tool-calls` webhook will be sent. Notes:

  • Webhook is sent to this server when a tool call is made.

  • Webhook contains the call, assistant, and phone number objects.

  • Webhook contains the variables set on the assistant.

  • Webhook is sent to the first available URL in this order:

Vapi::UpdateBashToolDto.{tool{tool.server{tool.server.url}, Vapi::UpdateBashToolDto.{assistant{assistant.server{assistant.server.url}, Vapi::UpdateBashToolDto.{phoneNumber{phoneNumber.server{phoneNumber.server.url}, Vapi::UpdateBashToolDto.{org{org.server{org.server.url}.

  • Webhook expects a response with tool call result.

Returns:

  • (Vapi::Server)

    This is the server where a ‘tool-calls` webhook will be sent. Notes:

    • Webhook is sent to this server when a tool call is made.

    • Webhook contains the call, assistant, and phone number objects.

    • Webhook contains the variables set on the assistant.

    • Webhook is sent to the first available URL in this order:

    Vapi::UpdateBashToolDto.{tool{tool.server{tool.server.url}, Vapi::UpdateBashToolDto.{assistant{assistant.server{assistant.server.url}, Vapi::UpdateBashToolDto.{phoneNumber{phoneNumber.server{phoneNumber.server.url}, Vapi::UpdateBashToolDto.{org{org.server{org.server.url}.

    • Webhook expects a response with tool call result.



28
29
30
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 28

def server
  @server
end

#sub_typeString (readonly)

Returns The sub type of tool.

Returns:

  • (String)

    The sub type of tool.



17
18
19
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 17

def sub_type
  @sub_type
end

Class Method Details

.from_json(json_object:) ⇒ Vapi::UpdateBashToolDto

Deserialize a JSON object to an instance of UpdateBashToolDto

Parameters:

  • json_object (String)

Returns:



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 98

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  parsed_json = JSON.parse(json_object)
  messages = parsed_json["messages"]&.map do |item|
    item = item.to_json
    Vapi::UpdateBashToolDtoMessagesItem.from_json(json_object: item)
  end
  sub_type = parsed_json["subType"]
  if parsed_json["server"].nil?
    server = nil
  else
    server = parsed_json["server"].to_json
    server = Vapi::Server.from_json(json_object: server)
  end
  if parsed_json["function"].nil?
    function = nil
  else
    function = parsed_json["function"].to_json
    function = Vapi::OpenAiFunction.from_json(json_object: function)
  end
  name = parsed_json["name"]
  new(
    messages: messages,
    sub_type: sub_type,
    server: server,
    function: function,
    name: name,
    additional_properties: struct
  )
end

.validate_raw(obj:) ⇒ Void

Leveraged for Union-type generation, validate_raw attempts to parse the given

hash and check each fields type against the current object's property
definitions.

Parameters:

  • obj (Object)

Returns:

  • (Void)


142
143
144
145
146
147
148
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 142

def self.validate_raw(obj:)
  obj.messages&.is_a?(Array) != false || raise("Passed value for field obj.messages is not the expected type, validation failed.")
  obj.sub_type&.is_a?(String) != false || raise("Passed value for field obj.sub_type is not the expected type, validation failed.")
  obj.server.nil? || Vapi::Server.validate_raw(obj: obj.server)
  obj.function.nil? || Vapi::OpenAiFunction.validate_raw(obj: obj.function)
  obj.name&.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
end

Instance Method Details

#to_json(*_args) ⇒ String

Serialize an instance of UpdateBashToolDto to a JSON object

Returns:

  • (String)


132
133
134
# File 'lib/vapi_server_sdk/types/update_bash_tool_dto.rb', line 132

def to_json(*_args)
  @_field_set&.to_json
end