telnyx 4.1.0 → 4.2.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.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/models/calls/action_start_transcription_params.rb +3 -3
  5. data/lib/telnyx/models/calls/transcription_start_request.rb +56 -56
  6. data/lib/telnyx/models/messaging_profile.rb +9 -1
  7. data/lib/telnyx/models/messaging_profile_create_params.rb +9 -1
  8. data/lib/telnyx/models/messaging_profile_update_params.rb +9 -1
  9. data/lib/telnyx/models/network_list_interfaces_response.rb +114 -0
  10. data/lib/telnyx/models/public_internet_gateway_create_response.rb +115 -0
  11. data/lib/telnyx/models/public_internet_gateway_delete_response.rb +115 -0
  12. data/lib/telnyx/models/public_internet_gateway_list_response.rb +114 -0
  13. data/lib/telnyx/models/public_internet_gateway_retrieve_response.rb +115 -0
  14. data/lib/telnyx/models/texml/accounts/call_calls_params.rb +33 -1
  15. data/lib/telnyx/models/texml/accounts/conferences/participant_participants_params.rb +33 -1
  16. data/lib/telnyx/models/virtual_cross_connect_create_response.rb +275 -0
  17. data/lib/telnyx/models/virtual_cross_connect_delete_response.rb +275 -0
  18. data/lib/telnyx/models/virtual_cross_connect_list_response.rb +274 -0
  19. data/lib/telnyx/models/virtual_cross_connect_retrieve_response.rb +275 -0
  20. data/lib/telnyx/models/virtual_cross_connect_update_response.rb +275 -0
  21. data/lib/telnyx/models/wireguard_interface_create_response.rb +131 -0
  22. data/lib/telnyx/models/wireguard_interface_delete_response.rb +131 -0
  23. data/lib/telnyx/models/wireguard_interface_list_response.rb +130 -0
  24. data/lib/telnyx/models/wireguard_interface_retrieve_response.rb +131 -0
  25. data/lib/telnyx/models/wireguard_peer_create_response.rb +78 -0
  26. data/lib/telnyx/models/wireguard_peer_delete_response.rb +78 -0
  27. data/lib/telnyx/models/wireguard_peer_list_response.rb +77 -0
  28. data/lib/telnyx/models/wireguard_peer_retrieve_response.rb +78 -0
  29. data/lib/telnyx/models/wireguard_peer_update_response.rb +78 -0
  30. data/lib/telnyx/resources/calls/actions.rb +1 -1
  31. data/lib/telnyx/resources/messaging_profiles.rb +6 -2
  32. data/lib/telnyx/resources/texml/accounts/calls.rb +3 -1
  33. data/lib/telnyx/resources/texml/accounts/conferences/participants.rb +3 -1
  34. data/lib/telnyx/version.rb +1 -1
  35. data/rbi/telnyx/models/calls/action_start_transcription_params.rbi +6 -6
  36. data/rbi/telnyx/models/calls/transcription_start_request.rbi +266 -263
  37. data/rbi/telnyx/models/messaging_profile.rbi +11 -0
  38. data/rbi/telnyx/models/messaging_profile_create_params.rbi +11 -0
  39. data/rbi/telnyx/models/messaging_profile_update_params.rbi +11 -0
  40. data/rbi/telnyx/models/network_list_interfaces_response.rbi +202 -0
  41. data/rbi/telnyx/models/public_internet_gateway_create_response.rbi +202 -0
  42. data/rbi/telnyx/models/public_internet_gateway_delete_response.rbi +202 -0
  43. data/rbi/telnyx/models/public_internet_gateway_list_response.rbi +202 -0
  44. data/rbi/telnyx/models/public_internet_gateway_retrieve_response.rbi +202 -0
  45. data/rbi/telnyx/models/texml/accounts/call_calls_params.rbi +65 -0
  46. data/rbi/telnyx/models/texml/accounts/conferences/participant_participants_params.rbi +67 -0
  47. data/rbi/telnyx/models/virtual_cross_connect_create_response.rbi +444 -0
  48. data/rbi/telnyx/models/virtual_cross_connect_delete_response.rbi +444 -0
  49. data/rbi/telnyx/models/virtual_cross_connect_list_response.rbi +444 -0
  50. data/rbi/telnyx/models/virtual_cross_connect_retrieve_response.rbi +444 -0
  51. data/rbi/telnyx/models/virtual_cross_connect_update_response.rbi +444 -0
  52. data/rbi/telnyx/models/wireguard_interface_create_response.rbi +224 -0
  53. data/rbi/telnyx/models/wireguard_interface_delete_response.rbi +224 -0
  54. data/rbi/telnyx/models/wireguard_interface_list_response.rbi +224 -0
  55. data/rbi/telnyx/models/wireguard_interface_retrieve_response.rbi +224 -0
  56. data/rbi/telnyx/models/wireguard_peer_create_response.rbi +125 -0
  57. data/rbi/telnyx/models/wireguard_peer_delete_response.rbi +125 -0
  58. data/rbi/telnyx/models/wireguard_peer_list_response.rbi +125 -0
  59. data/rbi/telnyx/models/wireguard_peer_retrieve_response.rbi +125 -0
  60. data/rbi/telnyx/models/wireguard_peer_update_response.rbi +125 -0
  61. data/rbi/telnyx/resources/calls/actions.rbi +5 -5
  62. data/rbi/telnyx/resources/messaging_profiles.rbi +6 -0
  63. data/rbi/telnyx/resources/texml/accounts/calls.rbi +7 -0
  64. data/rbi/telnyx/resources/texml/accounts/conferences/participants.rbi +7 -0
  65. data/sig/telnyx/models/calls/action_start_transcription_params.rbs +5 -5
  66. data/sig/telnyx/models/calls/transcription_start_request.rbs +83 -83
  67. data/sig/telnyx/models/messaging_profile.rbs +7 -0
  68. data/sig/telnyx/models/messaging_profile_create_params.rbs +7 -0
  69. data/sig/telnyx/models/messaging_profile_update_params.rbs +7 -0
  70. data/sig/telnyx/models/network_list_interfaces_response.rbs +110 -0
  71. data/sig/telnyx/models/public_internet_gateway_create_response.rbs +110 -0
  72. data/sig/telnyx/models/public_internet_gateway_delete_response.rbs +110 -0
  73. data/sig/telnyx/models/public_internet_gateway_list_response.rbs +110 -0
  74. data/sig/telnyx/models/public_internet_gateway_retrieve_response.rbs +110 -0
  75. data/sig/telnyx/models/texml/accounts/call_calls_params.rbs +21 -0
  76. data/sig/telnyx/models/texml/accounts/conferences/participant_participants_params.rbs +21 -0
  77. data/sig/telnyx/models/virtual_cross_connect_create_response.rbs +219 -0
  78. data/sig/telnyx/models/virtual_cross_connect_delete_response.rbs +219 -0
  79. data/sig/telnyx/models/virtual_cross_connect_list_response.rbs +219 -0
  80. data/sig/telnyx/models/virtual_cross_connect_retrieve_response.rbs +219 -0
  81. data/sig/telnyx/models/virtual_cross_connect_update_response.rbs +219 -0
  82. data/sig/telnyx/models/wireguard_interface_create_response.rbs +124 -0
  83. data/sig/telnyx/models/wireguard_interface_delete_response.rbs +124 -0
  84. data/sig/telnyx/models/wireguard_interface_list_response.rbs +124 -0
  85. data/sig/telnyx/models/wireguard_interface_retrieve_response.rbs +124 -0
  86. data/sig/telnyx/models/wireguard_peer_create_response.rbs +68 -0
  87. data/sig/telnyx/models/wireguard_peer_delete_response.rbs +68 -0
  88. data/sig/telnyx/models/wireguard_peer_list_response.rbs +68 -0
  89. data/sig/telnyx/models/wireguard_peer_retrieve_response.rbs +68 -0
  90. data/sig/telnyx/models/wireguard_peer_update_response.rbs +68 -0
  91. data/sig/telnyx/resources/calls/actions.rbs +1 -1
  92. data/sig/telnyx/resources/messaging_profiles.rbs +2 -0
  93. data/sig/telnyx/resources/texml/accounts/calls.rbs +1 -0
  94. data/sig/telnyx/resources/texml/accounts/conferences/participants.rbs +1 -0
  95. metadata +2 -2
@@ -89,6 +89,27 @@ module Telnyx
89
89
  sig { params(cancel_playback_on_machine_detection: T::Boolean).void }
90
90
  attr_writer :cancel_playback_on_machine_detection
91
91
 
92
+ # Custom HTTP headers to be sent with the call. Each header should be an object
93
+ # with 'name' and 'value' properties.
94
+ sig do
95
+ returns(
96
+ T.nilable(
97
+ T::Array[Telnyx::Texml::Accounts::CallCallsParams::CustomHeader]
98
+ )
99
+ )
100
+ end
101
+ attr_reader :custom_headers
102
+
103
+ sig do
104
+ params(
105
+ custom_headers:
106
+ T::Array[
107
+ Telnyx::Texml::Accounts::CallCallsParams::CustomHeader::OrHash
108
+ ]
109
+ ).void
110
+ end
111
+ attr_writer :custom_headers
112
+
92
113
  # Allows you to chose between Premium and Standard detections.
93
114
  sig do
94
115
  returns(
@@ -379,6 +400,10 @@ module Telnyx
379
400
  caller_id: String,
380
401
  cancel_playback_on_detect_message_end: T::Boolean,
381
402
  cancel_playback_on_machine_detection: T::Boolean,
403
+ custom_headers:
404
+ T::Array[
405
+ Telnyx::Texml::Accounts::CallCallsParams::CustomHeader::OrHash
406
+ ],
382
407
  detection_mode:
383
408
  Telnyx::Texml::Accounts::CallCallsParams::DetectionMode::OrSymbol,
384
409
  fallback_url: String,
@@ -441,6 +466,9 @@ module Telnyx
441
466
  cancel_playback_on_detect_message_end: nil,
442
467
  # Whether to cancel ongoing playback on `machine` detection. Defaults to `true`.
443
468
  cancel_playback_on_machine_detection: nil,
469
+ # Custom HTTP headers to be sent with the call. Each header should be an object
470
+ # with 'name' and 'value' properties.
471
+ custom_headers: nil,
444
472
  # Allows you to chose between Premium and Standard detections.
445
473
  detection_mode: nil,
446
474
  # A failover URL for which Telnyx will retrieve the TeXML call instructions if the
@@ -518,6 +546,10 @@ module Telnyx
518
546
  caller_id: String,
519
547
  cancel_playback_on_detect_message_end: T::Boolean,
520
548
  cancel_playback_on_machine_detection: T::Boolean,
549
+ custom_headers:
550
+ T::Array[
551
+ Telnyx::Texml::Accounts::CallCallsParams::CustomHeader
552
+ ],
521
553
  detection_mode:
522
554
  Telnyx::Texml::Accounts::CallCallsParams::DetectionMode::OrSymbol,
523
555
  fallback_url: String,
@@ -593,6 +625,39 @@ module Telnyx
593
625
  end
594
626
  end
595
627
 
628
+ class CustomHeader < Telnyx::Internal::Type::BaseModel
629
+ OrHash =
630
+ T.type_alias do
631
+ T.any(
632
+ Telnyx::Texml::Accounts::CallCallsParams::CustomHeader,
633
+ Telnyx::Internal::AnyHash
634
+ )
635
+ end
636
+
637
+ # The name of the custom header
638
+ sig { returns(String) }
639
+ attr_accessor :name
640
+
641
+ # The value of the custom header
642
+ sig { returns(String) }
643
+ attr_accessor :value
644
+
645
+ sig do
646
+ params(name: String, value: String).returns(T.attached_class)
647
+ end
648
+ def self.new(
649
+ # The name of the custom header
650
+ name:,
651
+ # The value of the custom header
652
+ value:
653
+ )
654
+ end
655
+
656
+ sig { override.returns({ name: String, value: String }) }
657
+ def to_hash
658
+ end
659
+ end
660
+
596
661
  # Allows you to chose between Premium and Standard detections.
597
662
  module DetectionMode
598
663
  extend Telnyx::Internal::Type::Enum
@@ -230,6 +230,29 @@ module Telnyx
230
230
  end
231
231
  attr_writer :conference_trim
232
232
 
233
+ # Custom HTTP headers to be sent with the call. Each header should be an object
234
+ # with 'name' and 'value' properties.
235
+ sig do
236
+ returns(
237
+ T.nilable(
238
+ T::Array[
239
+ Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::CustomHeader
240
+ ]
241
+ )
242
+ )
243
+ end
244
+ attr_reader :custom_headers
245
+
246
+ sig do
247
+ params(
248
+ custom_headers:
249
+ T::Array[
250
+ Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::CustomHeader::OrHash
251
+ ]
252
+ ).void
253
+ end
254
+ attr_writer :custom_headers
255
+
233
256
  # Whether participant shall be bridged to conference before the participant
234
257
  # answers (from early media if available). Defaults to `false`.
235
258
  sig { returns(T.nilable(T::Boolean)) }
@@ -537,6 +560,10 @@ module Telnyx
537
560
  Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::ConferenceStatusCallbackMethod::OrSymbol,
538
561
  conference_trim:
539
562
  Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::ConferenceTrim::OrSymbol,
563
+ custom_headers:
564
+ T::Array[
565
+ Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::CustomHeader::OrHash
566
+ ],
540
567
  early_media: T::Boolean,
541
568
  end_conference_on_exit: T::Boolean,
542
569
  from: String,
@@ -629,6 +656,9 @@ module Telnyx
629
656
  # Whether to trim any leading and trailing silence from the conference recording.
630
657
  # Defaults to `trim-silence`.
631
658
  conference_trim: nil,
659
+ # Custom HTTP headers to be sent with the call. Each header should be an object
660
+ # with 'name' and 'value' properties.
661
+ custom_headers: nil,
632
662
  # Whether participant shall be bridged to conference before the participant
633
663
  # answers (from early media if available). Defaults to `false`.
634
664
  early_media: nil,
@@ -735,6 +765,10 @@ module Telnyx
735
765
  Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::ConferenceStatusCallbackMethod::OrSymbol,
736
766
  conference_trim:
737
767
  Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::ConferenceTrim::OrSymbol,
768
+ custom_headers:
769
+ T::Array[
770
+ Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::CustomHeader
771
+ ],
738
772
  early_media: T::Boolean,
739
773
  end_conference_on_exit: T::Boolean,
740
774
  from: String,
@@ -1011,6 +1045,39 @@ module Telnyx
1011
1045
  end
1012
1046
  end
1013
1047
 
1048
+ class CustomHeader < Telnyx::Internal::Type::BaseModel
1049
+ OrHash =
1050
+ T.type_alias do
1051
+ T.any(
1052
+ Telnyx::Texml::Accounts::Conferences::ParticipantParticipantsParams::CustomHeader,
1053
+ Telnyx::Internal::AnyHash
1054
+ )
1055
+ end
1056
+
1057
+ # The name of the custom header
1058
+ sig { returns(String) }
1059
+ attr_accessor :name
1060
+
1061
+ # The value of the custom header
1062
+ sig { returns(String) }
1063
+ attr_accessor :value
1064
+
1065
+ sig do
1066
+ params(name: String, value: String).returns(T.attached_class)
1067
+ end
1068
+ def self.new(
1069
+ # The name of the custom header
1070
+ name:,
1071
+ # The value of the custom header
1072
+ value:
1073
+ )
1074
+ end
1075
+
1076
+ sig { override.returns({ name: String, value: String }) }
1077
+ def to_hash
1078
+ end
1079
+ end
1080
+
1014
1081
  # Whether to detect if a human or an answering machine picked up the call. Use
1015
1082
  # `Enable` if you would like to ne notified as soon as the called party is
1016
1083
  # identified. Use `DetectMessageEnd`, if you would like to leave a message on an
@@ -40,6 +40,450 @@ module Telnyx
40
40
  end
41
41
  def to_hash
42
42
  end
43
+
44
+ class Data < Telnyx::Internal::Type::BaseModel
45
+ OrHash =
46
+ T.type_alias do
47
+ T.any(
48
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data,
49
+ Telnyx::Internal::AnyHash
50
+ )
51
+ end
52
+
53
+ # A user specified name for the interface.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_reader :name
56
+
57
+ sig { params(name: String).void }
58
+ attr_writer :name
59
+
60
+ # The id of the network associated with the interface.
61
+ sig { returns(T.nilable(String)) }
62
+ attr_reader :network_id
63
+
64
+ sig { params(network_id: String).void }
65
+ attr_writer :network_id
66
+
67
+ # The region the interface should be deployed to.
68
+ sig { returns(T.nilable(String)) }
69
+ attr_reader :region_code
70
+
71
+ sig { params(region_code: String).void }
72
+ attr_writer :region_code
73
+
74
+ # The Border Gateway Protocol (BGP) Autonomous System Number (ASN). If null, value
75
+ # will be assigned by Telnyx.
76
+ sig { returns(Float) }
77
+ attr_accessor :bgp_asn
78
+
79
+ # The Virtual Private Cloud with which you would like to establish a cross
80
+ # connect.
81
+ sig do
82
+ returns(
83
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider::TaggedSymbol
84
+ )
85
+ end
86
+ attr_accessor :cloud_provider
87
+
88
+ # The region where your Virtual Private Cloud hosts are located.<br /><br />The
89
+ # available regions can be found using the /virtual_cross_connect_regions
90
+ # endpoint.
91
+ sig { returns(String) }
92
+ attr_accessor :cloud_provider_region
93
+
94
+ # The identifier for your Virtual Private Cloud. The number will be different
95
+ # based upon your Cloud provider.
96
+ sig { returns(String) }
97
+ attr_accessor :primary_cloud_account_id
98
+
99
+ # The desired throughput in Megabits per Second (Mbps) for your Virtual Cross
100
+ # Connect.<br /><br />The available bandwidths can be found using the
101
+ # /virtual_cross_connect_regions endpoint.
102
+ sig { returns(T.nilable(Float)) }
103
+ attr_reader :bandwidth_mbps
104
+
105
+ sig { params(bandwidth_mbps: Float).void }
106
+ attr_writer :bandwidth_mbps
107
+
108
+ # The authentication key for BGP peer configuration.
109
+ sig { returns(T.nilable(String)) }
110
+ attr_reader :primary_bgp_key
111
+
112
+ sig { params(primary_bgp_key: String).void }
113
+ attr_writer :primary_bgp_key
114
+
115
+ # The IP address assigned for your side of the Virtual Cross
116
+ # Connect.<br /><br />If none is provided, one will be generated for
117
+ # you.<br /><br />This value can not be patched once the VXC has bene provisioned.
118
+ sig { returns(T.nilable(String)) }
119
+ attr_reader :primary_cloud_ip
120
+
121
+ sig { params(primary_cloud_ip: String).void }
122
+ attr_writer :primary_cloud_ip
123
+
124
+ # Indicates whether the primary circuit is enabled. Setting this to `false` will
125
+ # disable the circuit.
126
+ sig { returns(T.nilable(T::Boolean)) }
127
+ attr_reader :primary_enabled
128
+
129
+ sig { params(primary_enabled: T::Boolean).void }
130
+ attr_writer :primary_enabled
131
+
132
+ # Whether the primary BGP route is being announced.
133
+ sig { returns(T.nilable(T::Boolean)) }
134
+ attr_reader :primary_routing_announcement
135
+
136
+ sig { params(primary_routing_announcement: T::Boolean).void }
137
+ attr_writer :primary_routing_announcement
138
+
139
+ # The IP address assigned to the Telnyx side of the Virtual Cross
140
+ # Connect.<br /><br />If none is provided, one will be generated for
141
+ # you.<br /><br />This value should be null for GCE as Google will only inform you
142
+ # of your assigned IP once the connection has been accepted.
143
+ sig { returns(T.nilable(String)) }
144
+ attr_reader :primary_telnyx_ip
145
+
146
+ sig { params(primary_telnyx_ip: String).void }
147
+ attr_writer :primary_telnyx_ip
148
+
149
+ sig do
150
+ returns(
151
+ T.nilable(
152
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::Region
153
+ )
154
+ )
155
+ end
156
+ attr_reader :region
157
+
158
+ sig do
159
+ params(
160
+ region:
161
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::Region::OrHash
162
+ ).void
163
+ end
164
+ attr_writer :region
165
+
166
+ # The authentication key for BGP peer configuration.
167
+ sig { returns(T.nilable(String)) }
168
+ attr_reader :secondary_bgp_key
169
+
170
+ sig { params(secondary_bgp_key: String).void }
171
+ attr_writer :secondary_bgp_key
172
+
173
+ # The identifier for your Virtual Private Cloud. The number will be different
174
+ # based upon your Cloud provider.<br /><br />This attribute is only necessary for
175
+ # GCE.
176
+ sig { returns(T.nilable(String)) }
177
+ attr_reader :secondary_cloud_account_id
178
+
179
+ sig { params(secondary_cloud_account_id: String).void }
180
+ attr_writer :secondary_cloud_account_id
181
+
182
+ # The IP address assigned for your side of the Virtual Cross
183
+ # Connect.<br /><br />If none is provided, one will be generated for
184
+ # you.<br /><br />This value can not be patched once the VXC has bene provisioned.
185
+ sig { returns(T.nilable(String)) }
186
+ attr_reader :secondary_cloud_ip
187
+
188
+ sig { params(secondary_cloud_ip: String).void }
189
+ attr_writer :secondary_cloud_ip
190
+
191
+ # Indicates whether the secondary circuit is enabled. Setting this to `false` will
192
+ # disable the circuit.
193
+ sig { returns(T.nilable(T::Boolean)) }
194
+ attr_reader :secondary_enabled
195
+
196
+ sig { params(secondary_enabled: T::Boolean).void }
197
+ attr_writer :secondary_enabled
198
+
199
+ # Whether the secondary BGP route is being announced.
200
+ sig { returns(T.nilable(T::Boolean)) }
201
+ attr_reader :secondary_routing_announcement
202
+
203
+ sig { params(secondary_routing_announcement: T::Boolean).void }
204
+ attr_writer :secondary_routing_announcement
205
+
206
+ # The IP address assigned to the Telnyx side of the Virtual Cross
207
+ # Connect.<br /><br />If none is provided, one will be generated for
208
+ # you.<br /><br />This value should be null for GCE as Google will only inform you
209
+ # of your assigned IP once the connection has been accepted.
210
+ sig { returns(T.nilable(String)) }
211
+ attr_reader :secondary_telnyx_ip
212
+
213
+ sig { params(secondary_telnyx_ip: String).void }
214
+ attr_writer :secondary_telnyx_ip
215
+
216
+ # Identifies the resource.
217
+ sig { returns(T.nilable(String)) }
218
+ attr_reader :id
219
+
220
+ sig { params(id: String).void }
221
+ attr_writer :id
222
+
223
+ # ISO 8601 formatted date-time indicating when the resource was created.
224
+ sig { returns(T.nilable(String)) }
225
+ attr_reader :created_at
226
+
227
+ sig { params(created_at: String).void }
228
+ attr_writer :created_at
229
+
230
+ # Identifies the type of the resource.
231
+ sig { returns(T.nilable(String)) }
232
+ attr_reader :record_type
233
+
234
+ sig { params(record_type: String).void }
235
+ attr_writer :record_type
236
+
237
+ # ISO 8601 formatted date-time indicating when the resource was updated.
238
+ sig { returns(T.nilable(String)) }
239
+ attr_reader :updated_at
240
+
241
+ sig { params(updated_at: String).void }
242
+ attr_writer :updated_at
243
+
244
+ # The current status of the interface deployment.
245
+ sig { returns(T.nilable(Telnyx::InterfaceStatus::TaggedSymbol)) }
246
+ attr_reader :status
247
+
248
+ sig { params(status: Telnyx::InterfaceStatus::OrSymbol).void }
249
+ attr_writer :status
250
+
251
+ sig do
252
+ params(
253
+ bgp_asn: Float,
254
+ cloud_provider:
255
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider::OrSymbol,
256
+ cloud_provider_region: String,
257
+ primary_cloud_account_id: String,
258
+ id: String,
259
+ created_at: String,
260
+ record_type: String,
261
+ updated_at: String,
262
+ name: String,
263
+ network_id: String,
264
+ status: Telnyx::InterfaceStatus::OrSymbol,
265
+ region_code: String,
266
+ bandwidth_mbps: Float,
267
+ primary_bgp_key: String,
268
+ primary_cloud_ip: String,
269
+ primary_enabled: T::Boolean,
270
+ primary_routing_announcement: T::Boolean,
271
+ primary_telnyx_ip: String,
272
+ region:
273
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::Region::OrHash,
274
+ secondary_bgp_key: String,
275
+ secondary_cloud_account_id: String,
276
+ secondary_cloud_ip: String,
277
+ secondary_enabled: T::Boolean,
278
+ secondary_routing_announcement: T::Boolean,
279
+ secondary_telnyx_ip: String
280
+ ).returns(T.attached_class)
281
+ end
282
+ def self.new(
283
+ # The Border Gateway Protocol (BGP) Autonomous System Number (ASN). If null, value
284
+ # will be assigned by Telnyx.
285
+ bgp_asn:,
286
+ # The Virtual Private Cloud with which you would like to establish a cross
287
+ # connect.
288
+ cloud_provider:,
289
+ # The region where your Virtual Private Cloud hosts are located.<br /><br />The
290
+ # available regions can be found using the /virtual_cross_connect_regions
291
+ # endpoint.
292
+ cloud_provider_region:,
293
+ # The identifier for your Virtual Private Cloud. The number will be different
294
+ # based upon your Cloud provider.
295
+ primary_cloud_account_id:,
296
+ # Identifies the resource.
297
+ id: nil,
298
+ # ISO 8601 formatted date-time indicating when the resource was created.
299
+ created_at: nil,
300
+ # Identifies the type of the resource.
301
+ record_type: nil,
302
+ # ISO 8601 formatted date-time indicating when the resource was updated.
303
+ updated_at: nil,
304
+ # A user specified name for the interface.
305
+ name: nil,
306
+ # The id of the network associated with the interface.
307
+ network_id: nil,
308
+ # The current status of the interface deployment.
309
+ status: nil,
310
+ # The region the interface should be deployed to.
311
+ region_code: nil,
312
+ # The desired throughput in Megabits per Second (Mbps) for your Virtual Cross
313
+ # Connect.<br /><br />The available bandwidths can be found using the
314
+ # /virtual_cross_connect_regions endpoint.
315
+ bandwidth_mbps: nil,
316
+ # The authentication key for BGP peer configuration.
317
+ primary_bgp_key: nil,
318
+ # The IP address assigned for your side of the Virtual Cross
319
+ # Connect.<br /><br />If none is provided, one will be generated for
320
+ # you.<br /><br />This value can not be patched once the VXC has bene provisioned.
321
+ primary_cloud_ip: nil,
322
+ # Indicates whether the primary circuit is enabled. Setting this to `false` will
323
+ # disable the circuit.
324
+ primary_enabled: nil,
325
+ # Whether the primary BGP route is being announced.
326
+ primary_routing_announcement: nil,
327
+ # The IP address assigned to the Telnyx side of the Virtual Cross
328
+ # Connect.<br /><br />If none is provided, one will be generated for
329
+ # you.<br /><br />This value should be null for GCE as Google will only inform you
330
+ # of your assigned IP once the connection has been accepted.
331
+ primary_telnyx_ip: nil,
332
+ region: nil,
333
+ # The authentication key for BGP peer configuration.
334
+ secondary_bgp_key: nil,
335
+ # The identifier for your Virtual Private Cloud. The number will be different
336
+ # based upon your Cloud provider.<br /><br />This attribute is only necessary for
337
+ # GCE.
338
+ secondary_cloud_account_id: nil,
339
+ # The IP address assigned for your side of the Virtual Cross
340
+ # Connect.<br /><br />If none is provided, one will be generated for
341
+ # you.<br /><br />This value can not be patched once the VXC has bene provisioned.
342
+ secondary_cloud_ip: nil,
343
+ # Indicates whether the secondary circuit is enabled. Setting this to `false` will
344
+ # disable the circuit.
345
+ secondary_enabled: nil,
346
+ # Whether the secondary BGP route is being announced.
347
+ secondary_routing_announcement: nil,
348
+ # The IP address assigned to the Telnyx side of the Virtual Cross
349
+ # Connect.<br /><br />If none is provided, one will be generated for
350
+ # you.<br /><br />This value should be null for GCE as Google will only inform you
351
+ # of your assigned IP once the connection has been accepted.
352
+ secondary_telnyx_ip: nil
353
+ )
354
+ end
355
+
356
+ sig do
357
+ override.returns(
358
+ {
359
+ id: String,
360
+ created_at: String,
361
+ record_type: String,
362
+ updated_at: String,
363
+ name: String,
364
+ network_id: String,
365
+ status: Telnyx::InterfaceStatus::TaggedSymbol,
366
+ region_code: String,
367
+ bgp_asn: Float,
368
+ cloud_provider:
369
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider::TaggedSymbol,
370
+ cloud_provider_region: String,
371
+ primary_cloud_account_id: String,
372
+ bandwidth_mbps: Float,
373
+ primary_bgp_key: String,
374
+ primary_cloud_ip: String,
375
+ primary_enabled: T::Boolean,
376
+ primary_routing_announcement: T::Boolean,
377
+ primary_telnyx_ip: String,
378
+ region:
379
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::Region,
380
+ secondary_bgp_key: String,
381
+ secondary_cloud_account_id: String,
382
+ secondary_cloud_ip: String,
383
+ secondary_enabled: T::Boolean,
384
+ secondary_routing_announcement: T::Boolean,
385
+ secondary_telnyx_ip: String
386
+ }
387
+ )
388
+ end
389
+ def to_hash
390
+ end
391
+
392
+ # The Virtual Private Cloud with which you would like to establish a cross
393
+ # connect.
394
+ module CloudProvider
395
+ extend Telnyx::Internal::Type::Enum
396
+
397
+ TaggedSymbol =
398
+ T.type_alias do
399
+ T.all(
400
+ Symbol,
401
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider
402
+ )
403
+ end
404
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
405
+
406
+ AWS =
407
+ T.let(
408
+ :aws,
409
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider::TaggedSymbol
410
+ )
411
+ AZURE =
412
+ T.let(
413
+ :azure,
414
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider::TaggedSymbol
415
+ )
416
+ GCE =
417
+ T.let(
418
+ :gce,
419
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider::TaggedSymbol
420
+ )
421
+
422
+ sig do
423
+ override.returns(
424
+ T::Array[
425
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::CloudProvider::TaggedSymbol
426
+ ]
427
+ )
428
+ end
429
+ def self.values
430
+ end
431
+ end
432
+
433
+ class Region < Telnyx::Internal::Type::BaseModel
434
+ OrHash =
435
+ T.type_alias do
436
+ T.any(
437
+ Telnyx::Models::VirtualCrossConnectCreateResponse::Data::Region,
438
+ Telnyx::Internal::AnyHash
439
+ )
440
+ end
441
+
442
+ # Region code of the interface.
443
+ sig { returns(T.nilable(String)) }
444
+ attr_reader :code
445
+
446
+ sig { params(code: String).void }
447
+ attr_writer :code
448
+
449
+ # Region name of the interface.
450
+ sig { returns(T.nilable(String)) }
451
+ attr_reader :name
452
+
453
+ sig { params(name: String).void }
454
+ attr_writer :name
455
+
456
+ # Identifies the type of the resource.
457
+ sig { returns(T.nilable(String)) }
458
+ attr_reader :record_type
459
+
460
+ sig { params(record_type: String).void }
461
+ attr_writer :record_type
462
+
463
+ sig do
464
+ params(code: String, name: String, record_type: String).returns(
465
+ T.attached_class
466
+ )
467
+ end
468
+ def self.new(
469
+ # Region code of the interface.
470
+ code: nil,
471
+ # Region name of the interface.
472
+ name: nil,
473
+ # Identifies the type of the resource.
474
+ record_type: nil
475
+ )
476
+ end
477
+
478
+ sig do
479
+ override.returns(
480
+ { code: String, name: String, record_type: String }
481
+ )
482
+ end
483
+ def to_hash
484
+ end
485
+ end
486
+ end
43
487
  end
44
488
  end
45
489
  end