Class: Vapi::CreateAssistantDtoVoicemailDetection

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

Overview

These are the settings to configure or disable voicemail detection.

Alternatively, voicemail detection can be configured using the
model.tools=[VoicemailTool].
This uses Twilio's built-in detection while the VoicemailTool relies on the
model to detect if a voicemail was reached.
You can use neither of them, one of them, or both of them. By default, Twilio
built-in detection is enabled while VoicemailTool is not.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(member:, discriminant:) ⇒ Vapi::CreateAssistantDtoVoicemailDetection



29
30
31
32
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 29

def initialize(member:, discriminant:)
  @member = member
  @discriminant = discriminant
end

Instance Attribute Details

#discriminantString (readonly)



21
22
23
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 21

def discriminant
  @discriminant
end

#memberObject (readonly)



19
20
21
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 19

def member
  @member
end

Class Method Details

.from_json(json_object:) ⇒ Vapi::CreateAssistantDtoVoicemailDetection

Deserialize a JSON object to an instance of CreateAssistantDtoVoicemailDetection



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 38

def self.from_json(json_object:)
  struct = JSON.parse(json_object, object_class: OpenStruct)
  member = case struct.provider
           when "google"
             Vapi::GoogleVoicemailDetectionPlan.from_json(json_object: json_object)
           when "openai"
             Vapi::OpenAiVoicemailDetectionPlan.from_json(json_object: json_object)
           when "twilio"
             Vapi::TwilioVoicemailDetectionPlan.from_json(json_object: json_object)
           when "vapi"
             Vapi::VapiVoicemailDetectionPlan.from_json(json_object: json_object)
           else
             Vapi::GoogleVoicemailDetectionPlan.from_json(json_object: json_object)
           end
  new(member: member, discriminant: struct.provider)
end

.google(member:) ⇒ Vapi::CreateAssistantDtoVoicemailDetection



105
106
107
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 105

def self.google(member:)
  new(member: member, discriminant: "google")
end

.openai(member:) ⇒ Vapi::CreateAssistantDtoVoicemailDetection



111
112
113
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 111

def self.openai(member:)
  new(member: member, discriminant: "openai")
end

.twilio(member:) ⇒ Vapi::CreateAssistantDtoVoicemailDetection



117
118
119
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 117

def self.twilio(member:)
  new(member: member, discriminant: "twilio")
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.


80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 80

def self.validate_raw(obj:)
  case obj.provider
  when "google"
    Vapi::GoogleVoicemailDetectionPlan.validate_raw(obj: obj)
  when "openai"
    Vapi::OpenAiVoicemailDetectionPlan.validate_raw(obj: obj)
  when "twilio"
    Vapi::TwilioVoicemailDetectionPlan.validate_raw(obj: obj)
  when "vapi"
    Vapi::VapiVoicemailDetectionPlan.validate_raw(obj: obj)
  else
    raise("Passed value matched no type within the union, validation failed.")
  end
end

.vapi(member:) ⇒ Vapi::CreateAssistantDtoVoicemailDetection



123
124
125
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 123

def self.vapi(member:)
  new(member: member, discriminant: "vapi")
end

Instance Method Details

#is_a?(obj) ⇒ Boolean

For Union Types, is_a? functionality is delegated to the wrapped member.



99
100
101
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 99

def is_a?(obj)
  @member.is_a?(obj)
end

#kind_of?Object



24
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 24

alias kind_of? is_a?

#to_json(*_args) ⇒ String

For Union Types, to_json functionality is delegated to the wrapped member.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/vapi_server_sdk/types/create_assistant_dto_voicemail_detection.rb', line 58

def to_json(*_args)
  case @discriminant
  when "google"
    { **@member.to_json, provider: @discriminant }.to_json
  when "openai"
    { **@member.to_json, provider: @discriminant }.to_json
  when "twilio"
    { **@member.to_json, provider: @discriminant }.to_json
  when "vapi"
    { **@member.to_json, provider: @discriminant }.to_json
  else
    { "provider": @discriminant, value: @member }.to_json
  end
  @member.to_json
end