diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 3c845267..b14af4da 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -432,4 +432,4 @@ lib/bandwidth-sdk/models/webhook_subscription_error.rb
lib/bandwidth-sdk/models/webhook_subscription_request_schema.rb
lib/bandwidth-sdk/models/webhook_subscription_type_enum.rb
lib/bandwidth-sdk/models/webhook_subscriptions_list_body.rb
-lib/bandwidth-sdk/version.rb
+lib/bandwidth-sdk/version.rb
\ No newline at end of file
diff --git a/lib/bandwidth-sdk.rb b/lib/bandwidth-sdk.rb
index c0d0adcb..3efde4ec 100644
--- a/lib/bandwidth-sdk.rb
+++ b/lib/bandwidth-sdk.rb
@@ -236,6 +236,7 @@
require 'bandwidth-sdk/models/bxml/verbs/play_audio'
require 'bandwidth-sdk/models/bxml/verbs/record'
require 'bandwidth-sdk/models/bxml/verbs/redirect'
+require 'bandwidth-sdk/models/bxml/verbs/refer'
require 'bandwidth-sdk/models/bxml/verbs/resume_recording'
require 'bandwidth-sdk/models/bxml/verbs/ring'
require 'bandwidth-sdk/models/bxml/verbs/send_dtmf'
diff --git a/lib/bandwidth-sdk/models/bxml/verbs/refer.rb b/lib/bandwidth-sdk/models/bxml/verbs/refer.rb
new file mode 100644
index 00000000..2d4d5eb7
--- /dev/null
+++ b/lib/bandwidth-sdk/models/bxml/verbs/refer.rb
@@ -0,0 +1,17 @@
+module Bandwidth
+ module Bxml
+ class Refer < Bandwidth::Bxml::NestableVerb
+ # Initializer
+ # @param sip_uri [SipUri] The SIP URI to REFER the call to. Uses the same SipUri verb shared with Transfer.
+ # @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
+ def initialize(sip_uri, attributes = {})
+ super('Refer', nil, [sip_uri], attributes)
+ @attribute_map = {
+ refer_complete_url: 'referCompleteUrl',
+ refer_complete_method: 'referCompleteMethod',
+ tag: 'tag'
+ }
+ end
+ end
+ end
+end
\ No newline at end of file
diff --git a/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb b/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb
index 6f123a91..e3295995 100644
--- a/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb
+++ b/lib/bandwidth-sdk/models/bxml/verbs/sip_uri.rb
@@ -1,8 +1,10 @@
module Bandwidth
module Bxml
class SipUri < Bandwidth::Bxml::Verb
+ # Shared nested verb used by both Transfer and Refer to specify a SIP URI destination.
+ #
# Initializer
- # @param uri [String] A SIP URI to transfer the call to (e.g. sip:user@server.com)
+ # @param uri [String] A SIP URI to transfer or refer the call to (e.g. sip:user@server.com)
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
def initialize(uri, attributes = {})
super('SipUri', uri, attributes)
diff --git a/spec/unit/models/bxml/verbs/refer_spec.rb b/spec/unit/models/bxml/verbs/refer_spec.rb
new file mode 100644
index 00000000..f9949019
--- /dev/null
+++ b/spec/unit/models/bxml/verbs/refer_spec.rb
@@ -0,0 +1,49 @@
+# Unit tests for Bandwidth::Bxml::Refer
+describe 'Bandwidth::Bxml::Refer' do
+ let(:initial_attributes) {
+ {
+ refer_complete_url: 'https://initial.com',
+ refer_complete_method: 'POST',
+ tag: 'initial_tag'
+ }
+ }
+
+ let(:new_attributes) {
+ {
+ refer_complete_url: 'https://new.com',
+ refer_complete_method: 'GET',
+ tag: 'new_tag'
+ }
+ }
+
+ let(:sip_uri) { Bandwidth::Bxml::SipUri.new('sip:alice@atlanta.example.com') }
+
+ let(:instance) { Bandwidth::Bxml::Refer.new(sip_uri, initial_attributes) }
+
+ describe 'test an instance of Refer' do
+ it 'validates instance of Refer' do
+ expect(instance).to be_instance_of(Bandwidth::Bxml::Refer)
+ expect(instance).to be_a(Bandwidth::Bxml::Verb)
+ end
+
+ it 'tests the to_bxml method of the Refer instance' do
+ expected = "\n\n sip:alice@atlanta.example.com\n\n"
+ expect(instance.to_bxml).to eq(expected)
+ end
+
+ it 'tests the set_attributes method of the Refer instance' do
+ instance.set_attributes(new_attributes)
+ expected = "\n\n sip:alice@atlanta.example.com\n\n"
+ expect(instance.to_bxml).to eq(expected)
+ end
+ end
+
+ describe 'test an instance of Refer with a bare SipUri' do
+ let(:bare_instance) { Bandwidth::Bxml::Refer.new(sip_uri) }
+
+ it 'renders correctly with no additional attributes' do
+ expected = "\n\n sip:alice@atlanta.example.com\n\n"
+ expect(bare_instance.to_bxml).to eq(expected)
+ end
+ end
+end