telnyx 5.125.0 → 5.126.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: 47ae1faace2648d27ed58eda0dd05a305660c9b5193abde92cc19aae22eb4193
4
- data.tar.gz: 5c712bb80acea19f60b22f3f2c89f851b9dc58da9b026b52c6a9ca0d0dbb5dbb
3
+ metadata.gz: 38400c7c7133b3cfaa627f43c292c3194d2f87efaf0e819c13088be952500785
4
+ data.tar.gz: 58e04f17c0d460699113f2f91648083a1573ca42de2db3aca7dc778ad1bc68a8
5
5
  SHA512:
6
- metadata.gz: 2ee1622475e025cc6a80baa3fe342e11f6fe18efde5fc77478e189c8e95d617b841fbc0f99398a2fa008690107a9283ea900d051b2eae3c2167fc309f9e0f68c
7
- data.tar.gz: 3774bec2373f10e003a2e64eb6d0f7bd1774cda1bfb91f877a283823fc6c927b344449d81179a60b5048ffc0deeaccadacd057fae251a78376a6ce1b87215051
6
+ metadata.gz: b3f601736a30fef841818e9e766236ebcf276fbf55424040a8e2c02798ab34e0ab895b2c1ccd30cc84d342486a8d1c79ef8e9b10e23b5199ea119c479f42cd15
7
+ data.tar.gz: 056d6e835b260c5ab4f1f0783657e602d13614b363b4ad7d00ee5138e01ef05d3cc9270ec13ed25c0fee4b73d65671e7b4d4e35ab395100d4bb0dfc3dd17da02
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.126.0 (2026-06-05)
4
+
5
+ Full Changelog: [v5.125.0...v5.126.0](https://github.com/team-telnyx/telnyx-ruby/compare/v5.125.0...v5.126.0)
6
+
7
+ ### Features
8
+
9
+ * Conversation flow update ([4f9dd27](https://github.com/team-telnyx/telnyx-ruby/commit/4f9dd27ac620fef2f1d080f4ba1bdce028ce70c5))
10
+
3
11
  ## 5.125.0 (2026-06-04)
4
12
 
5
13
  Full Changelog: [v5.124.0...v5.125.0](https://github.com/team-telnyx/telnyx-ruby/compare/v5.124.0...v5.125.0)
data/README.md CHANGED
@@ -24,7 +24,7 @@ To use this gem, install via Bundler by adding the following to your application
24
24
  <!-- x-release-please-start-version -->
25
25
 
26
26
  ```ruby
27
- gem "telnyx", "~> 5.125.0"
27
+ gem "telnyx", "~> 5.126.0"
28
28
  ```
29
29
 
30
30
  <!-- x-release-please-end -->
@@ -278,7 +278,7 @@ module Telnyx
278
278
  # All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
279
279
  # (`type: prompt`) or a tool node (`type: tool`).
280
280
  #
281
- # @return [Array<Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Tool>]
281
+ # @return [Array<Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Tool, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak>]
282
282
  required :nodes,
283
283
  -> { Telnyx::Internal::Type::ArrayOf[union: Telnyx::AI::AssistantCreateParams::ConversationFlow::Node] }
284
284
 
@@ -305,7 +305,7 @@ module Telnyx
305
305
  # unique node/edge IDs, that `start_node_id` references a real node, and that
306
306
  # every edge's endpoints reference real nodes.
307
307
  #
308
- # @param nodes [Array<Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Tool>] All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
308
+ # @param nodes [Array<Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Tool, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak>] All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
309
309
  #
310
310
  # @param start_node_id [String] ID of the node where the conversation begins.
311
311
  #
@@ -334,6 +334,14 @@ module Telnyx
334
334
  # on the result via outgoing `tool_result` edges.
335
335
  variant :tool, -> { Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Tool }
336
336
 
337
+ # A standalone scripted-message step in a flow, as supplied by clients.
338
+ #
339
+ # Unlike a prompt node, a speak node has no instructions or model — it isn't
340
+ # an LLM turn. Reaching it delivers `message` to the user verbatim (with
341
+ # `{{variable}}` interpolation), then routes via outgoing `llm` /
342
+ # `expression` edges.
343
+ variant :speak, -> { Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak }
344
+
337
345
  class Prompt < Telnyx::Internal::Type::BaseModel
338
346
  # @!attribute id
339
347
  # Caller-supplied unique identifier for this node within the flow.
@@ -635,8 +643,105 @@ module Telnyx
635
643
  end
636
644
  end
637
645
 
646
+ class Speak < Telnyx::Internal::Type::BaseModel
647
+ # @!attribute id
648
+ # Caller-supplied unique identifier for this node within the flow.
649
+ #
650
+ # @return [String]
651
+ required :id, String
652
+
653
+ # @!attribute message
654
+ # Message delivered to the user verbatim when the flow reaches this node. No LLM
655
+ # turn — the text is spoken/sent exactly as written. `{{variable}}` placeholders
656
+ # are interpolated from the conversation's dynamic variables; an unresolved
657
+ # placeholder renders as an empty string. After delivering, the flow routes via
658
+ # the node's outgoing `llm` / `expression` edges (commonly a single unconditional
659
+ # edge).
660
+ #
661
+ # @return [String]
662
+ required :message, String
663
+
664
+ # @!attribute name
665
+ # Optional human-readable label, displayed in authoring UIs.
666
+ #
667
+ # @return [String, nil]
668
+ optional :name, String
669
+
670
+ # @!attribute position
671
+ # Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
672
+ # by the runtime; round-trips so frontends can persist graph layout across
673
+ # reloads.
674
+ #
675
+ # @return [Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position, nil]
676
+ optional :position, -> { Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position }
677
+
678
+ # @!attribute type
679
+ # Node kind discriminator. Always `speak` for a speak node.
680
+ #
681
+ # @return [Symbol, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type, nil]
682
+ optional :type, enum: -> { Telnyx::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type }
683
+
684
+ # @!method initialize(id:, message:, name: nil, position: nil, type: nil)
685
+ # Some parameter documentations has been truncated, see
686
+ # {Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak} for
687
+ # more details.
688
+ #
689
+ # A standalone scripted-message step in a flow, as supplied by clients.
690
+ #
691
+ # Unlike a prompt node, a speak node has no instructions or model — it isn't an
692
+ # LLM turn. Reaching it delivers `message` to the user verbatim (with
693
+ # `{{variable}}` interpolation), then routes via outgoing `llm` / `expression`
694
+ # edges.
695
+ #
696
+ # @param id [String] Caller-supplied unique identifier for this node within the flow.
697
+ #
698
+ # @param message [String] Message delivered to the user verbatim when the flow reaches this node. No LLM t
699
+ #
700
+ # @param name [String] Optional human-readable label, displayed in authoring UIs.
701
+ #
702
+ # @param position [Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Position] Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
703
+ #
704
+ # @param type [Symbol, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak::Type] Node kind discriminator. Always `speak` for a speak node.
705
+
706
+ # @see Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak#position
707
+ class Position < Telnyx::Internal::Type::BaseModel
708
+ # @!attribute x
709
+ # Horizontal coordinate in the authoring canvas.
710
+ #
711
+ # @return [Float]
712
+ required :x, Float
713
+
714
+ # @!attribute y_
715
+ # Vertical coordinate in the authoring canvas.
716
+ #
717
+ # @return [Float]
718
+ required :y_, Float, api_name: :y
719
+
720
+ # @!method initialize(x:, y_:)
721
+ # Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
722
+ # by the runtime; round-trips so frontends can persist graph layout across
723
+ # reloads.
724
+ #
725
+ # @param x [Float] Horizontal coordinate in the authoring canvas.
726
+ #
727
+ # @param y_ [Float] Vertical coordinate in the authoring canvas.
728
+ end
729
+
730
+ # Node kind discriminator. Always `speak` for a speak node.
731
+ #
732
+ # @see Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak#type
733
+ module Type
734
+ extend Telnyx::Internal::Type::Enum
735
+
736
+ SPEAK = :speak
737
+
738
+ # @!method self.values
739
+ # @return [Array<Symbol>]
740
+ end
741
+ end
742
+
638
743
  # @!method self.variants
639
- # @return [Array(Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Tool)]
744
+ # @return [Array(Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Tool, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Node::Speak)]
640
745
  end
641
746
 
642
747
  class Edge < Telnyx::Internal::Type::BaseModel
@@ -650,7 +755,7 @@ module Telnyx
650
755
  # Condition that gates the transition. Discriminated by `type`: `llm`,
651
756
  # `expression`.
652
757
  #
653
- # @return [Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression]
758
+ # @return [Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default]
654
759
  required :condition, union: -> { Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition }
655
760
 
656
761
  # @!attribute start_node_id
@@ -680,7 +785,7 @@ module Telnyx
680
785
  #
681
786
  # @param id [String] Caller-supplied unique identifier for this edge within the flow.
682
787
  #
683
- # @param condition [Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression] Condition that gates the transition. Discriminated by `type`: `llm`, `expression
788
+ # @param condition [Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default] Condition that gates the transition. Discriminated by `type`: `llm`, `expression
684
789
  #
685
790
  # @param start_node_id [String] ID of the node this edge transitions away from.
686
791
  #
@@ -710,6 +815,17 @@ module Telnyx
710
815
  variant :expression,
711
816
  -> { Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression }
712
817
 
818
+ # Fallback edge condition: fires only when no other edge's condition is true.
819
+ #
820
+ # Evaluated after every conditioned (`llm` / `expression`) edge regardless
821
+ # of declaration order, so it routes the flow whenever none of the node's
822
+ # other outgoing edges match. Valid **only** on edges leaving a `tool` or
823
+ # `speak` node, where the deterministic step auto-advances and must always
824
+ # have somewhere to go. A tool/speak node with any outgoing edge is required
825
+ # to carry exactly one `default` edge so it never dead-ends; a tool/speak
826
+ # node with no outgoing edges is a valid terminal step. Carries no parameters.
827
+ variant :default, -> { Telnyx::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default }
828
+
713
829
  class Llm < Telnyx::Internal::Type::BaseModel
714
830
  # @!attribute prompt
715
831
  # Natural-language criterion the LLM judges as true/false.
@@ -885,8 +1001,28 @@ module Telnyx
885
1001
  end
886
1002
  end
887
1003
 
1004
+ class Default < Telnyx::Internal::Type::BaseModel
1005
+ # @!attribute type
1006
+ #
1007
+ # @return [Symbol, :default]
1008
+ required :type, const: :default
1009
+
1010
+ # @!method initialize(type: :default)
1011
+ # Fallback edge condition: fires only when no other edge's condition is true.
1012
+ #
1013
+ # Evaluated after every conditioned (`llm` / `expression`) edge regardless of
1014
+ # declaration order, so it routes the flow whenever none of the node's other
1015
+ # outgoing edges match. Valid **only** on edges leaving a `tool` or `speak` node,
1016
+ # where the deterministic step auto-advances and must always have somewhere to go.
1017
+ # A tool/speak node with any outgoing edge is required to carry exactly one
1018
+ # `default` edge so it never dead-ends; a tool/speak node with no outgoing edges
1019
+ # is a valid terminal step. Carries no parameters.
1020
+ #
1021
+ # @param type [Symbol, :default]
1022
+ end
1023
+
888
1024
  # @!method self.variants
889
- # @return [Array(Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression)]
1025
+ # @return [Array(Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::AssistantCreateParams::ConversationFlow::Edge::Condition::Default)]
890
1026
  end
891
1027
 
892
1028
  # Destination of the transition. Discriminated by `type`: `node` (jump to another
@@ -302,7 +302,7 @@ module Telnyx
302
302
  # All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
303
303
  # (`type: prompt`) or a tool node (`type: tool`).
304
304
  #
305
- # @return [Array<Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Tool>]
305
+ # @return [Array<Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Tool, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak>]
306
306
  required :nodes,
307
307
  -> { Telnyx::Internal::Type::ArrayOf[union: Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node] }
308
308
 
@@ -329,7 +329,7 @@ module Telnyx
329
329
  # unique node/edge IDs, that `start_node_id` references a real node, and that
330
330
  # every edge's endpoints reference real nodes.
331
331
  #
332
- # @param nodes [Array<Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Tool>] All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
332
+ # @param nodes [Array<Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Tool, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak>] All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
333
333
  #
334
334
  # @param start_node_id [String] ID of the node where the conversation begins.
335
335
  #
@@ -358,6 +358,14 @@ module Telnyx
358
358
  # on the result via outgoing `tool_result` edges.
359
359
  variant :tool, -> { Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Tool }
360
360
 
361
+ # A standalone scripted-message step in a flow, as supplied by clients.
362
+ #
363
+ # Unlike a prompt node, a speak node has no instructions or model — it isn't
364
+ # an LLM turn. Reaching it delivers `message` to the user verbatim (with
365
+ # `{{variable}}` interpolation), then routes via outgoing `llm` /
366
+ # `expression` edges.
367
+ variant :speak, -> { Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak }
368
+
361
369
  class Prompt < Telnyx::Internal::Type::BaseModel
362
370
  # @!attribute id
363
371
  # Caller-supplied unique identifier for this node within the flow.
@@ -659,8 +667,105 @@ module Telnyx
659
667
  end
660
668
  end
661
669
 
670
+ class Speak < Telnyx::Internal::Type::BaseModel
671
+ # @!attribute id
672
+ # Caller-supplied unique identifier for this node within the flow.
673
+ #
674
+ # @return [String]
675
+ required :id, String
676
+
677
+ # @!attribute message
678
+ # Message delivered to the user verbatim when the flow reaches this node. No LLM
679
+ # turn — the text is spoken/sent exactly as written. `{{variable}}` placeholders
680
+ # are interpolated from the conversation's dynamic variables; an unresolved
681
+ # placeholder renders as an empty string. After delivering, the flow routes via
682
+ # the node's outgoing `llm` / `expression` edges (commonly a single unconditional
683
+ # edge).
684
+ #
685
+ # @return [String]
686
+ required :message, String
687
+
688
+ # @!attribute name
689
+ # Optional human-readable label, displayed in authoring UIs.
690
+ #
691
+ # @return [String, nil]
692
+ optional :name, String
693
+
694
+ # @!attribute position
695
+ # Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
696
+ # by the runtime; round-trips so frontends can persist graph layout across
697
+ # reloads.
698
+ #
699
+ # @return [Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position, nil]
700
+ optional :position, -> { Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position }
701
+
702
+ # @!attribute type
703
+ # Node kind discriminator. Always `speak` for a speak node.
704
+ #
705
+ # @return [Symbol, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type, nil]
706
+ optional :type, enum: -> { Telnyx::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type }
707
+
708
+ # @!method initialize(id:, message:, name: nil, position: nil, type: nil)
709
+ # Some parameter documentations has been truncated, see
710
+ # {Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak} for
711
+ # more details.
712
+ #
713
+ # A standalone scripted-message step in a flow, as supplied by clients.
714
+ #
715
+ # Unlike a prompt node, a speak node has no instructions or model — it isn't an
716
+ # LLM turn. Reaching it delivers `message` to the user verbatim (with
717
+ # `{{variable}}` interpolation), then routes via outgoing `llm` / `expression`
718
+ # edges.
719
+ #
720
+ # @param id [String] Caller-supplied unique identifier for this node within the flow.
721
+ #
722
+ # @param message [String] Message delivered to the user verbatim when the flow reaches this node. No LLM t
723
+ #
724
+ # @param name [String] Optional human-readable label, displayed in authoring UIs.
725
+ #
726
+ # @param position [Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Position] Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
727
+ #
728
+ # @param type [Symbol, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak::Type] Node kind discriminator. Always `speak` for a speak node.
729
+
730
+ # @see Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak#position
731
+ class Position < Telnyx::Internal::Type::BaseModel
732
+ # @!attribute x
733
+ # Horizontal coordinate in the authoring canvas.
734
+ #
735
+ # @return [Float]
736
+ required :x, Float
737
+
738
+ # @!attribute y_
739
+ # Vertical coordinate in the authoring canvas.
740
+ #
741
+ # @return [Float]
742
+ required :y_, Float, api_name: :y
743
+
744
+ # @!method initialize(x:, y_:)
745
+ # Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
746
+ # by the runtime; round-trips so frontends can persist graph layout across
747
+ # reloads.
748
+ #
749
+ # @param x [Float] Horizontal coordinate in the authoring canvas.
750
+ #
751
+ # @param y_ [Float] Vertical coordinate in the authoring canvas.
752
+ end
753
+
754
+ # Node kind discriminator. Always `speak` for a speak node.
755
+ #
756
+ # @see Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak#type
757
+ module Type
758
+ extend Telnyx::Internal::Type::Enum
759
+
760
+ SPEAK = :speak
761
+
762
+ # @!method self.values
763
+ # @return [Array<Symbol>]
764
+ end
765
+ end
766
+
662
767
  # @!method self.variants
663
- # @return [Array(Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Tool)]
768
+ # @return [Array(Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Prompt, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Tool, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Node::Speak)]
664
769
  end
665
770
 
666
771
  class Edge < Telnyx::Internal::Type::BaseModel
@@ -674,7 +779,7 @@ module Telnyx
674
779
  # Condition that gates the transition. Discriminated by `type`: `llm`,
675
780
  # `expression`.
676
781
  #
677
- # @return [Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression]
782
+ # @return [Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default]
678
783
  required :condition, union: -> { Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition }
679
784
 
680
785
  # @!attribute start_node_id
@@ -704,7 +809,7 @@ module Telnyx
704
809
  #
705
810
  # @param id [String] Caller-supplied unique identifier for this edge within the flow.
706
811
  #
707
- # @param condition [Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression] Condition that gates the transition. Discriminated by `type`: `llm`, `expression
812
+ # @param condition [Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default] Condition that gates the transition. Discriminated by `type`: `llm`, `expression
708
813
  #
709
814
  # @param start_node_id [String] ID of the node this edge transitions away from.
710
815
  #
@@ -734,6 +839,17 @@ module Telnyx
734
839
  variant :expression,
735
840
  -> { Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression }
736
841
 
842
+ # Fallback edge condition: fires only when no other edge's condition is true.
843
+ #
844
+ # Evaluated after every conditioned (`llm` / `expression`) edge regardless
845
+ # of declaration order, so it routes the flow whenever none of the node's
846
+ # other outgoing edges match. Valid **only** on edges leaving a `tool` or
847
+ # `speak` node, where the deterministic step auto-advances and must always
848
+ # have somewhere to go. A tool/speak node with any outgoing edge is required
849
+ # to carry exactly one `default` edge so it never dead-ends; a tool/speak
850
+ # node with no outgoing edges is a valid terminal step. Carries no parameters.
851
+ variant :default, -> { Telnyx::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default }
852
+
737
853
  class Llm < Telnyx::Internal::Type::BaseModel
738
854
  # @!attribute prompt
739
855
  # Natural-language criterion the LLM judges as true/false.
@@ -909,8 +1025,28 @@ module Telnyx
909
1025
  end
910
1026
  end
911
1027
 
1028
+ class Default < Telnyx::Internal::Type::BaseModel
1029
+ # @!attribute type
1030
+ #
1031
+ # @return [Symbol, :default]
1032
+ required :type, const: :default
1033
+
1034
+ # @!method initialize(type: :default)
1035
+ # Fallback edge condition: fires only when no other edge's condition is true.
1036
+ #
1037
+ # Evaluated after every conditioned (`llm` / `expression`) edge regardless of
1038
+ # declaration order, so it routes the flow whenever none of the node's other
1039
+ # outgoing edges match. Valid **only** on edges leaving a `tool` or `speak` node,
1040
+ # where the deterministic step auto-advances and must always have somewhere to go.
1041
+ # A tool/speak node with any outgoing edge is required to carry exactly one
1042
+ # `default` edge so it never dead-ends; a tool/speak node with no outgoing edges
1043
+ # is a valid terminal step. Carries no parameters.
1044
+ #
1045
+ # @param type [Symbol, :default]
1046
+ end
1047
+
912
1048
  # @!method self.variants
913
- # @return [Array(Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression)]
1049
+ # @return [Array(Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::AssistantUpdateParams::ConversationFlow::Edge::Condition::Default)]
914
1050
  end
915
1051
 
916
1052
  # Destination of the transition. Discriminated by `type`: `node` (jump to another
@@ -282,7 +282,7 @@ module Telnyx
282
282
  # All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
283
283
  # (`type: prompt`) or a tool node (`type: tool`).
284
284
  #
285
- # @return [Array<Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Prompt, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Tool>]
285
+ # @return [Array<Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Prompt, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Tool, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak>]
286
286
  required :nodes,
287
287
  -> { Telnyx::Internal::Type::ArrayOf[union: Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Node] }
288
288
 
@@ -310,7 +310,7 @@ module Telnyx
310
310
  # unique node/edge IDs, that `start_node_id` references a real node, and that
311
311
  # every edge's endpoints reference real nodes.
312
312
  #
313
- # @param nodes [Array<Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Prompt, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Tool>] All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
313
+ # @param nodes [Array<Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Prompt, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Tool, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak>] All nodes in the flow. Must contain `start_node_id`. Each node is a prompt node
314
314
  #
315
315
  # @param start_node_id [String] ID of the node where the conversation begins.
316
316
  #
@@ -339,6 +339,14 @@ module Telnyx
339
339
  # on the result via outgoing `tool_result` edges.
340
340
  variant :tool, -> { Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Tool }
341
341
 
342
+ # A standalone scripted-message step in a flow, as supplied by clients.
343
+ #
344
+ # Unlike a prompt node, a speak node has no instructions or model — it isn't
345
+ # an LLM turn. Reaching it delivers `message` to the user verbatim (with
346
+ # `{{variable}}` interpolation), then routes via outgoing `llm` /
347
+ # `expression` edges.
348
+ variant :speak, -> { Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak }
349
+
342
350
  class Prompt < Telnyx::Internal::Type::BaseModel
343
351
  # @!attribute id
344
352
  # Caller-supplied unique identifier for this node within the flow.
@@ -641,8 +649,106 @@ module Telnyx
641
649
  end
642
650
  end
643
651
 
652
+ class Speak < Telnyx::Internal::Type::BaseModel
653
+ # @!attribute id
654
+ # Caller-supplied unique identifier for this node within the flow.
655
+ #
656
+ # @return [String]
657
+ required :id, String
658
+
659
+ # @!attribute message
660
+ # Message delivered to the user verbatim when the flow reaches this node. No LLM
661
+ # turn — the text is spoken/sent exactly as written. `{{variable}}` placeholders
662
+ # are interpolated from the conversation's dynamic variables; an unresolved
663
+ # placeholder renders as an empty string. After delivering, the flow routes via
664
+ # the node's outgoing `llm` / `expression` edges (commonly a single unconditional
665
+ # edge).
666
+ #
667
+ # @return [String]
668
+ required :message, String
669
+
670
+ # @!attribute name
671
+ # Optional human-readable label, displayed in authoring UIs.
672
+ #
673
+ # @return [String, nil]
674
+ optional :name, String
675
+
676
+ # @!attribute position
677
+ # Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
678
+ # by the runtime; round-trips so frontends can persist graph layout across
679
+ # reloads.
680
+ #
681
+ # @return [Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak::Position, nil]
682
+ optional :position,
683
+ -> { Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak::Position }
684
+
685
+ # @!attribute type
686
+ # Node kind discriminator. Always `speak` for a speak node.
687
+ #
688
+ # @return [Symbol, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak::Type, nil]
689
+ optional :type, enum: -> { Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak::Type }
690
+
691
+ # @!method initialize(id:, message:, name: nil, position: nil, type: nil)
692
+ # Some parameter documentations has been truncated, see
693
+ # {Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak}
694
+ # for more details.
695
+ #
696
+ # A standalone scripted-message step in a flow, as supplied by clients.
697
+ #
698
+ # Unlike a prompt node, a speak node has no instructions or model — it isn't an
699
+ # LLM turn. Reaching it delivers `message` to the user verbatim (with
700
+ # `{{variable}}` interpolation), then routes via outgoing `llm` / `expression`
701
+ # edges.
702
+ #
703
+ # @param id [String] Caller-supplied unique identifier for this node within the flow.
704
+ #
705
+ # @param message [String] Message delivered to the user verbatim when the flow reaches this node. No LLM t
706
+ #
707
+ # @param name [String] Optional human-readable label, displayed in authoring UIs.
708
+ #
709
+ # @param position [Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak::Position] Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
710
+ #
711
+ # @param type [Symbol, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak::Type] Node kind discriminator. Always `speak` for a speak node.
712
+
713
+ # @see Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak#position
714
+ class Position < Telnyx::Internal::Type::BaseModel
715
+ # @!attribute x
716
+ # Horizontal coordinate in the authoring canvas.
717
+ #
718
+ # @return [Float]
719
+ required :x, Float
720
+
721
+ # @!attribute y_
722
+ # Vertical coordinate in the authoring canvas.
723
+ #
724
+ # @return [Float]
725
+ required :y_, Float, api_name: :y
726
+
727
+ # @!method initialize(x:, y_:)
728
+ # Optional canvas coordinates used by authoring UIs to lay out the graph. Ignored
729
+ # by the runtime; round-trips so frontends can persist graph layout across
730
+ # reloads.
731
+ #
732
+ # @param x [Float] Horizontal coordinate in the authoring canvas.
733
+ #
734
+ # @param y_ [Float] Vertical coordinate in the authoring canvas.
735
+ end
736
+
737
+ # Node kind discriminator. Always `speak` for a speak node.
738
+ #
739
+ # @see Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak#type
740
+ module Type
741
+ extend Telnyx::Internal::Type::Enum
742
+
743
+ SPEAK = :speak
744
+
745
+ # @!method self.values
746
+ # @return [Array<Symbol>]
747
+ end
748
+ end
749
+
644
750
  # @!method self.variants
645
- # @return [Array(Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Prompt, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Tool)]
751
+ # @return [Array(Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Prompt, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Tool, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Node::Speak)]
646
752
  end
647
753
 
648
754
  class Edge < Telnyx::Internal::Type::BaseModel
@@ -656,7 +762,7 @@ module Telnyx
656
762
  # Condition that gates the transition. Discriminated by `type`: `llm`,
657
763
  # `expression`.
658
764
  #
659
- # @return [Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Expression]
765
+ # @return [Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Default]
660
766
  required :condition,
661
767
  union: -> { Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition }
662
768
 
@@ -687,7 +793,7 @@ module Telnyx
687
793
  #
688
794
  # @param id [String] Caller-supplied unique identifier for this edge within the flow.
689
795
  #
690
- # @param condition [Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Expression] Condition that gates the transition. Discriminated by `type`: `llm`, `expression
796
+ # @param condition [Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Default] Condition that gates the transition. Discriminated by `type`: `llm`, `expression
691
797
  #
692
798
  # @param start_node_id [String] ID of the node this edge transitions away from.
693
799
  #
@@ -717,6 +823,18 @@ module Telnyx
717
823
  variant :expression,
718
824
  -> { Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Expression }
719
825
 
826
+ # Fallback edge condition: fires only when no other edge's condition is true.
827
+ #
828
+ # Evaluated after every conditioned (`llm` / `expression`) edge regardless
829
+ # of declaration order, so it routes the flow whenever none of the node's
830
+ # other outgoing edges match. Valid **only** on edges leaving a `tool` or
831
+ # `speak` node, where the deterministic step auto-advances and must always
832
+ # have somewhere to go. A tool/speak node with any outgoing edge is required
833
+ # to carry exactly one `default` edge so it never dead-ends; a tool/speak
834
+ # node with no outgoing edges is a valid terminal step. Carries no parameters.
835
+ variant :default,
836
+ -> { Telnyx::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Default }
837
+
720
838
  class Llm < Telnyx::Internal::Type::BaseModel
721
839
  # @!attribute prompt
722
840
  # Natural-language criterion the LLM judges as true/false.
@@ -892,8 +1010,28 @@ module Telnyx
892
1010
  end
893
1011
  end
894
1012
 
1013
+ class Default < Telnyx::Internal::Type::BaseModel
1014
+ # @!attribute type
1015
+ #
1016
+ # @return [Symbol, :default]
1017
+ required :type, const: :default
1018
+
1019
+ # @!method initialize(type: :default)
1020
+ # Fallback edge condition: fires only when no other edge's condition is true.
1021
+ #
1022
+ # Evaluated after every conditioned (`llm` / `expression`) edge regardless of
1023
+ # declaration order, so it routes the flow whenever none of the node's other
1024
+ # outgoing edges match. Valid **only** on edges leaving a `tool` or `speak` node,
1025
+ # where the deterministic step auto-advances and must always have somewhere to go.
1026
+ # A tool/speak node with any outgoing edge is required to carry exactly one
1027
+ # `default` edge so it never dead-ends; a tool/speak node with no outgoing edges
1028
+ # is a valid terminal step. Carries no parameters.
1029
+ #
1030
+ # @param type [Symbol, :default]
1031
+ end
1032
+
895
1033
  # @!method self.variants
896
- # @return [Array(Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Expression)]
1034
+ # @return [Array(Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Llm, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Expression, Telnyx::Models::AI::Assistants::UpdateAssistant::ConversationFlow::Edge::Condition::Default)]
897
1035
  end
898
1036
 
899
1037
  # Destination of the transition. Discriminated by `type`: `node` (jump to another