vonage 7.27.1 → 7.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 882867135989a3281df945f45ee52c5f8ccd01f60878e0987570f43d5802b384
4
- data.tar.gz: 805db1a403bdbe6ceae3adb90b7e1cf8afdc25215b947e5a41a010b5050e4836
3
+ metadata.gz: 8abed4adc6b416ea3de37506428d18355efd6f4693b35bb78ccef59ce3e25de8
4
+ data.tar.gz: fa3d8d5a932681dfb1076985be68e3b9462a6d8211a84f7153189508b7bd1fce
5
5
  SHA512:
6
- metadata.gz: 14edb2c22f6e54e58bd17a26290944ec5d963706436b3b41d1f5598f094e57a7fdd09fa6ece3d4885a575c567eddaeb16bf8ebf2bd52a5fdd107a4404e7d20ce
7
- data.tar.gz: 284099e63365b6e08bbcb6ec3a03213ba9f812963841470b83e35b8f03e040611f75bdba1d6c35d5e4982604dcc1e9803e96fc5a290ed5677474537837687a38
6
+ metadata.gz: 5f5407e341d6d6e751fabd183b221257975422cc333c71e14c2cc2bec0fc8d8f32ee0877e35118338e4f8c8af80a2775cb2615095fa2bf64bccab5248a11eaa4
7
+ data.tar.gz: eba1d203bd5988e363bdee48d8e5ab9fcd2539e553abbcef796d8f5852559438cd1a9d3c900df21f49517f23ffd4032b33d03cc4153d36937aed60743f0f543b
data/README.md CHANGED
@@ -488,6 +488,66 @@ if code_check.http_response.code == '200'
488
488
  end
489
489
  ```
490
490
 
491
+ ### Working with Verify Custom Templates and Template Fragments
492
+
493
+ Verify custom templates allow you to customize the message sent to deliver an OTP to your users, rather than using the default Vonage templates. See the [Template Management Guide document](https://developer.vonage.com/en/verify/guides/custom-templates) for more information.
494
+
495
+ #### Templates
496
+
497
+ ```ruby
498
+ # Get a list of all templates
499
+ template_list = verify.templates.list
500
+
501
+ # Get details of a specific template
502
+ template = verify.templates.info(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
503
+
504
+ # Create a new template
505
+ verify.templates.create(name: 'my-template')
506
+
507
+ # Update an existing template
508
+ verify.templates.update(
509
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
510
+ name: 'my-updated-template'
511
+ )
512
+
513
+ # Delete a template
514
+ verify.templates.delete(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
515
+ ```
516
+
517
+ #### Template Fragments
518
+
519
+ ```ruby
520
+ # Get a list of template fragments for a specific template
521
+ template_fragment_list = verify.template_fragments.list(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
522
+
523
+ # Get details of a specific template fragment
524
+ template_fragment = verify.template_fragments.info(
525
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
526
+ template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
527
+ )
528
+
529
+ # Create a new template fragement
530
+ verify.template_fragments.create(
531
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
532
+ channel: 'sms',
533
+ locale: 'en-gb',
534
+ text: 'Your code is: ${code}'
535
+ )
536
+
537
+ # Update an existing template fragment
538
+ verify.template_fragments.update(
539
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
540
+ template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc1',
541
+ text: 'Your one-time code is: ${code}'
542
+ )
543
+
544
+ # Delete a template fragment
545
+ verify.template_fragments.delete(
546
+ template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
547
+ template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
548
+ )
549
+ ```
550
+
491
551
  ## Voice API
492
552
 
493
553
  The [Vonage Voice API](The [Vonage Verify API v2](https://developer.vonage.com/en/verify/verify-v2/overview) allows you to automate voice interactions by creating calls, streaming audio, playing text to speech, playing DTMF tones, and other actions. See the Vonage Developer Documentation for a [complete API reference](https://developer.vonage.com/en/api/voice) listing all the Voice API capabilities.
data/lib/vonage/keys.rb CHANGED
@@ -28,8 +28,10 @@ module Vonage
28
28
  'remove_stream',
29
29
  'screenshare_type',
30
30
  'session_id',
31
+ 'output_mode',
31
32
  'stream_mode',
32
33
  'archive_mode',
34
+ 'multi_archive_tag',
33
35
  'language_code',
34
36
  'max_duration',
35
37
  'partial_captions',
@@ -37,7 +39,8 @@ module Vonage
37
39
  'audio_rate',
38
40
  'phone_number',
39
41
  'hashed_phone_number',
40
- 'max_age'
42
+ 'max_age',
43
+ 'max_bitrate'
41
44
  ]
42
45
  hash.transform_keys do |k|
43
46
  if exceptions.include?(k.to_s)
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+
3
+ class Vonage::Verify2::TemplateFragments::ListResponse < Vonage::Response
4
+ include Enumerable
5
+
6
+ def each
7
+ return enum_for(:each) unless block_given?
8
+
9
+ @entity._embedded.template_fragments.each { |item| yield item }
10
+ end
11
+ end
@@ -0,0 +1,125 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Vonage
5
+ class Verify2::TemplateFragments < Namespace
6
+ CHANNELS = ['sms', 'voice'].freeze
7
+
8
+ self.authentication = BearerToken
9
+
10
+ self.request_body = JSON
11
+
12
+ # Get a list of of template fragments for a specific template.
13
+ #
14
+ # @example
15
+ # template_fragment_list = client.verify2.template_fragments.list(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
16
+ #
17
+ # @param [required, String] :template_id. The ID of the template for which to retreive the fragments
18
+ #
19
+ # @param [optional, Integer] :page_size. The amount of template fragments to list per page
20
+ #
21
+ # @param [optional, Integer] :page. The page number to retrieve
22
+ #
23
+ # @return [ListResponse]
24
+ #
25
+ # @see https://developer.vonage.com/en/api/verify.v2#listTemplateFragments
26
+ def list(template_id:, **params)
27
+ request("/v2/verify/templates/#{template_id}/template_fragments", params: params, response_class: ListResponse)
28
+ end
29
+
30
+ # Get details of a specific template fragment.
31
+ #
32
+ # @example
33
+ # template_fragment = client.verify2.template_fragments.info(
34
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
35
+ # template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
36
+ # )
37
+ #
38
+ # @param [required, String] :template_id. The ID of the template for which to retreive the fragment
39
+ #
40
+ # @param [required, String] :template_fragment_id. The ID of the fragment to be retreived
41
+ #
42
+ # @return [Response]
43
+ #
44
+ # @see https://developer.vonage.com/en/api/verify.v2#getTemplateFragment
45
+ def info(template_id:, template_fragment_id:)
46
+ request("/v2/verify/templates/#{template_id}/template_fragments/#{template_fragment_id}")
47
+ end
48
+
49
+ # Create a new template fragment.
50
+ #
51
+ # @example
52
+ # client.verify2.template_fragments.create(
53
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
54
+ # channel: 'sms',
55
+ # locale: 'en-gb',
56
+ # text: 'Your code is: ${code}'
57
+ # )
58
+ #
59
+ # @param [required, String] :template_id. The ID of the template for which to create the fragment
60
+ #
61
+ # @param [required, String] :channel. The verification channel for which to create the fragment. Must be one of 'sms' or 'voice'
62
+ #
63
+ # @param [required, String] :locale. The locale for which to create the fragment.
64
+ #
65
+ # @param [required, String] :text. The text to be used in the template fragment.
66
+ # There are 4 reserved variables available to use as part of the text: ${code}, ${brand}, ${time-limit} and ${time-limit-unit}
67
+ #
68
+ # @return [Response]
69
+ #
70
+ # @see https://developer.vonage.com/en/api/verify.v2#addTemplateFragmentToTemplate
71
+ def create(template_id:, channel:, locale:, text:)
72
+ raise ArgumentError, "Invalid 'channel' #{channel}. Must be one of #{CHANNELS.join(', ')}" unless CHANNELS.include?(channel)
73
+ request(
74
+ "/v2/verify/templates/#{template_id}/template_fragments",
75
+ params: {
76
+ channel: channel,
77
+ locale: locale,
78
+ text: text
79
+ },
80
+ type: Post)
81
+ end
82
+
83
+ # Update an existing template fragment.
84
+ #
85
+ # @example
86
+ # client.verify2.template_fragments.update(
87
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
88
+ # template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19',
89
+ # text: 'Your one-time code is: ${code}'
90
+ # )
91
+ #
92
+ # @param [required, String] :template_id. The ID of the template with which the fragment to be updated is associated
93
+ #
94
+ # @param [required, String] :template_fragment_id. The ID of the fragment to be updated
95
+ #
96
+ # @param [required, String] :text. The text to be used in the template fragment.
97
+ # There are 4 reserved variables available to use as part of the text: ${code}, ${brand}, ${time-limit} and ${time-limit-unit}
98
+ #
99
+ # @return [Response]
100
+ #
101
+ # @see https://developer.vonage.com/en/api/verify.v2#updateTemplateFragment
102
+ def update(template_id:, template_fragment_id:, text:)
103
+ request("/v2/verify/templates/#{template_id}/template_fragments/#{template_fragment_id}", params: {text: text}, type: Patch)
104
+ end
105
+
106
+ # Delete a template fragment.
107
+ #
108
+ # @example
109
+ # client.verify2.template_fragments.delete(
110
+ # template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9',
111
+ # template_fragment_id: 'c70f446e-997a-4313-a081-60a02a31dc19'
112
+ # )
113
+ #
114
+ # @param [required, String] :template_id. The ID of the template with which the fragment to be deleted is associated
115
+ #
116
+ # @param [required, String] :template_fragment_id. The ID of the fragment to be deleted
117
+ #
118
+ # @return [Response]
119
+ #
120
+ # @see https://developer.vonage.com/en/api/verify.v2#deleteTemplateFragment
121
+ def delete(template_id:, template_fragment_id:)
122
+ request("/v2/verify/templates/#{template_id}/template_fragments/#{template_fragment_id}", type: Delete)
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+
3
+ class Vonage::Verify2::Templates::ListResponse < Vonage::Response
4
+ include Enumerable
5
+
6
+ def each
7
+ return enum_for(:each) unless block_given?
8
+
9
+ @entity._embedded.templates.each { |item| yield item }
10
+ end
11
+ end
@@ -0,0 +1,86 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+ module Vonage
5
+ class Verify2::Templates < Namespace
6
+ self.authentication = BearerToken
7
+
8
+ self.request_body = JSON
9
+
10
+ # Get a list of all templates.
11
+ #
12
+ # @example
13
+ # template_list = client.verify2.templates.list
14
+ #
15
+ # @param [optional, Integer] :page_size. The amount of templates to list per page
16
+ #
17
+ # @param [optional, Integer] :page. The page number to retrieve
18
+ #
19
+ # @return [ListResponse]
20
+ #
21
+ # @see https://developer.vonage.com/en/api/verify.v2#listTemplates
22
+ def list(**params)
23
+ request('/v2/verify/templates', params: params, response_class: ListResponse)
24
+ end
25
+
26
+ # Get details of a specific template.
27
+ #
28
+ # @example
29
+ # template = client.verify2.templates.info(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
30
+ #
31
+ # @param [required, String] :template_id. The ID of the template to be retreived
32
+ #
33
+ # @return [Response]
34
+ #
35
+ # @see https://developer.vonage.com/en/api/verify.v2#getTemplate
36
+ def info(template_id:)
37
+ request('/v2/verify/templates/' + template_id)
38
+ end
39
+
40
+ # Create a new template.
41
+ #
42
+ # @example
43
+ # client.verify2.templates.create(name: 'my-template')
44
+ #
45
+ # @param [required, String] :name. The name of the template. The following characters are permitted: [A-Z a-z 0-9 _ -]
46
+ #
47
+ # @return [Response]
48
+ #
49
+ # @see https://developer.vonage.com/en/api/verify.v2#createTemplate
50
+ def create(name:)
51
+ request('/v2/verify/templates', params: { name: name }, type: Post)
52
+ end
53
+
54
+ # Update an existing template.
55
+ #
56
+ # @example
57
+ # client.verify2.templates.update(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9', name: 'my-updated-template')
58
+ #
59
+ # @param [required, String] :template_id. The ID of the template to be updated
60
+ #
61
+ # @param [optional, String] :name. The name of the template. The following characters are permitted: [A-Z a-z 0-9 _ -]
62
+ #
63
+ # @param [optional, Boolean] :is_default. Whether the template is the default template for a specific locale/channel combination
64
+ #
65
+ # @return [Response]
66
+ #
67
+ # @see https://developer.vonage.com/en/api/verify.v2#updateTemplate
68
+ def update(template_id:, **params)
69
+ request('/v2/verify/templates/' + template_id, params: params, type: Patch)
70
+ end
71
+
72
+ # Delete a template.
73
+ #
74
+ # @example
75
+ # client.verify2.templates.delete(template_id: '8f35a1a7-eb2f-4552-8fdf-fffdaee41bc9')
76
+ #
77
+ # @param [required, String] :template_id. The ID of the template to be deleted
78
+ #
79
+ # @return [Response]
80
+ #
81
+ # @see https://developer.vonage.com/en/api/verify.v2#deleteTemplate
82
+ def delete(template_id:)
83
+ request('/v2/verify/templates/' + template_id, type: Delete)
84
+ end
85
+ end
86
+ end
@@ -96,5 +96,17 @@ module Vonage
96
96
  def workflow_builder
97
97
  WorkflowBuilder.itself
98
98
  end
99
+
100
+ # @return [Templates]
101
+ # Returns existing or instantiates a new Vonage::Verify2::Templates object
102
+ def templates
103
+ @templates ||= Templates.new(@config)
104
+ end
105
+
106
+ # @return [TemplateFragments]
107
+ # Returns existing or instantiates a new Vonage::Verify2::Templates object
108
+ def template_fragments
109
+ @template_fragments ||= TemplateFragments.new(@config)
110
+ end
99
111
  end
100
112
  end
@@ -1,5 +1,5 @@
1
1
  # typed: strong
2
2
 
3
3
  module Vonage
4
- VERSION = '7.27.1'
4
+ VERSION = '7.29.0'
5
5
  end
@@ -45,19 +45,21 @@ module Vonage
45
45
  #
46
46
  # @param [required, String] :session_id
47
47
  #
48
- # @param [optional, String] :hasAudio
48
+ # @param [optional, String] :has_audio
49
49
  #
50
- # @param [optional, String] :hasVideo
50
+ # @param [optional, String] :has_video
51
51
  #
52
52
  # @param [optional, String] :name
53
53
  #
54
- # @param [optional, String] :outputMode
54
+ # @param [optional, String] :output_mode
55
55
  #
56
56
  # @param [optional, String] :resolution
57
57
  #
58
- # @param [optional, String] :streamMode
58
+ # @param [optional, String] :stream_mode
59
59
  #
60
- # @param [optional, String] :multiArchiveTag
60
+ # @param [optional, String] :multi_archive_tag
61
+ #
62
+ # @param [optional, String] :max_bitrate
61
63
  #
62
64
  # @param [optional, Hash] :layout
63
65
  #
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vonage
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.27.1
4
+ version: 7.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vonage
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-10-23 00:00:00.000000000 Z
10
+ date: 2025-02-10 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: vonage-jwt
@@ -238,6 +237,10 @@ files:
238
237
  - lib/vonage/verify2/channels/whats_app.rb
239
238
  - lib/vonage/verify2/channels/whats_app_interactive.rb
240
239
  - lib/vonage/verify2/start_verification_options.rb
240
+ - lib/vonage/verify2/template_fragments.rb
241
+ - lib/vonage/verify2/template_fragments/list_response.rb
242
+ - lib/vonage/verify2/templates.rb
243
+ - lib/vonage/verify2/templates/list_response.rb
241
244
  - lib/vonage/verify2/workflow.rb
242
245
  - lib/vonage/verify2/workflow_builder.rb
243
246
  - lib/vonage/version.rb
@@ -278,7 +281,6 @@ metadata:
278
281
  bug_tracker_uri: https://github.com/Vonage/vonage-ruby-sdk/issues
279
282
  changelog_uri: https://github.com/Vonage/vonage-ruby-sdk/blob/master/CHANGES.md
280
283
  documentation_uri: https://www.rubydoc.info/github/vonage/vonage-ruby-sdk
281
- post_install_message:
282
284
  rdoc_options: []
283
285
  require_paths:
284
286
  - lib
@@ -293,8 +295,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
293
295
  - !ruby/object:Gem::Version
294
296
  version: '0'
295
297
  requirements: []
296
- rubygems_version: 3.5.16
297
- signing_key:
298
+ rubygems_version: 3.6.2
298
299
  specification_version: 4
299
300
  summary: This is the Ruby Server SDK for Vonage APIs. To use it you'll need a Vonage
300
301
  account. Sign up for free at https://www.vonage.com