surge_api 0.22.0 → 0.23.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: 81364bbceadc7ad152045b898442649e7b8b3207eefc535a0e8636d8bdb89ead
4
- data.tar.gz: cca60516b813bfcbc472bf934a9a2bccc7754511cfa674e76dd28b6482994e04
3
+ metadata.gz: 541f8a85e6dd07ee15cac3b443594f6b23bbf698b378bbc5bc55da6419722a61
4
+ data.tar.gz: e15984328219753afe1bb9bb52dc9b707242b8e54e167c008c575394f1a75583
5
5
  SHA512:
6
- metadata.gz: 96dfe4fc1d1abe42a82b4321e1ccdd93763beec2595feb89c7bbfdee1e0ba7bdfaf757c5246e5cce2f1febf6185f7e9eced094e215f6a53f64336eeca3d94640
7
- data.tar.gz: 8c580d749e58ad608241186d4cadfc61265299314c3c9cbecca34ca80f4e3a1c726ea4a4c6364cb9e87702113680eacea3d692d2bf7099b93f5a14fbec83ecac
6
+ metadata.gz: cf1f1c0febccea9dc939c89bf0b42d55ac270c21c1527e99dfbda2455938cffb43c6e331fe69943a804e217236cc0f9604a64a9f2de0e3430946c9f672adbc09
7
+ data.tar.gz: 1bedab08c1f123a8354f7338c7cfa85726ceec321b68e3f10568ef6b4c9045372d1aedd4c9268a4ddb9e46d385e8637e3ca93f543d78be96470afbb249ceac2b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.23.0 (2026-08-19)
4
+
5
+ Full Changelog: [v0.22.0...v0.23.0](https://github.com/surgeapi/ruby-sdk/compare/v0.22.0...v0.23.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** allow non us/canadian organizations ([d558bb0](https://github.com/surgeapi/ruby-sdk/commit/d558bb011a766c052623418137ad13c977f750d5))
10
+ * **api:** disable outbound for contacts ([8689417](https://github.com/surgeapi/ruby-sdk/commit/8689417b03df27a4aadd6b48cc611b48264ed03f))
11
+
3
12
  ## 0.22.0 (2026-08-04)
4
13
 
5
14
  Full Changelog: [v0.21.0...v0.22.0](https://github.com/surgeapi/ruby-sdk/compare/v0.21.0...v0.22.0)
data/README.md CHANGED
@@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application
17
17
  <!-- x-release-please-start-version -->
18
18
 
19
19
  ```ruby
20
- gem "surge_api", "~> 0.22.0"
20
+ gem "surge_api", "~> 0.23.0"
21
21
  ```
22
22
 
23
23
  <!-- x-release-please-end -->
@@ -89,14 +89,16 @@ module SurgeAPI
89
89
  # @!attribute identifier
90
90
  # The value of the identifier whose type is specified in the identifier_type
91
91
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
92
- # exactly 9 digits.
92
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
93
+ # digits.
93
94
  #
94
95
  # @return [String, nil]
95
96
  optional :identifier, String, nil?: true
96
97
 
97
98
  # @!attribute identifier_type
98
99
  # The type of identifier being provided for the organization. Use "ein" for US
99
- # businesses or "cbn" for Canadian businesses.
100
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
101
+ # international organizations.
100
102
  #
101
103
  # @return [Symbol, SurgeAPI::Models::AccountCreateParams::Organization::IdentifierType, nil]
102
104
  optional :identifier_type,
@@ -180,7 +182,7 @@ module SurgeAPI
180
182
  #
181
183
  # @param identifier [String, nil] The value of the identifier whose type is specified in the identifier_type field
182
184
  #
183
- # @param identifier_type [Symbol, SurgeAPI::Models::AccountCreateParams::Organization::IdentifierType, nil] The type of identifier being provided for the organization. Use "ein" for US bus
185
+ # @param identifier_type [Symbol, SurgeAPI::Models::AccountCreateParams::Organization::IdentifierType, nil] The type of identifier being provided for the organization. Use "ein" for US org
184
186
  #
185
187
  # @param industry [Symbol, SurgeAPI::Models::AccountCreateParams::Organization::Industry, nil] The industry in which the organization operates.
186
188
  #
@@ -355,7 +357,8 @@ module SurgeAPI
355
357
  end
356
358
 
357
359
  # The type of identifier being provided for the organization. Use "ein" for US
358
- # businesses or "cbn" for Canadian businesses.
360
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
361
+ # international organizations.
359
362
  #
360
363
  # @see SurgeAPI::Models::AccountCreateParams::Organization#identifier_type
361
364
  module IdentifierType
@@ -363,6 +366,7 @@ module SurgeAPI
363
366
 
364
367
  EIN = :ein
365
368
  CBN = :cbn
369
+ VAT = :vat
366
370
 
367
371
  # @!method self.values
368
372
  # @return [Array<Symbol>]
@@ -96,14 +96,16 @@ module SurgeAPI
96
96
  # @!attribute identifier
97
97
  # The value of the identifier whose type is specified in the identifier_type
98
98
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
99
- # exactly 9 digits.
99
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
100
+ # digits.
100
101
  #
101
102
  # @return [String, nil]
102
103
  optional :identifier, String, nil?: true
103
104
 
104
105
  # @!attribute identifier_type
105
106
  # The type of identifier being provided for the organization. Use "ein" for US
106
- # businesses or "cbn" for Canadian businesses.
107
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
108
+ # international organizations.
107
109
  #
108
110
  # @return [Symbol, SurgeAPI::Models::AccountUpdateParams::Organization::IdentifierType, nil]
109
111
  optional :identifier_type,
@@ -187,7 +189,7 @@ module SurgeAPI
187
189
  #
188
190
  # @param identifier [String, nil] The value of the identifier whose type is specified in the identifier_type field
189
191
  #
190
- # @param identifier_type [Symbol, SurgeAPI::Models::AccountUpdateParams::Organization::IdentifierType, nil] The type of identifier being provided for the organization. Use "ein" for US bus
192
+ # @param identifier_type [Symbol, SurgeAPI::Models::AccountUpdateParams::Organization::IdentifierType, nil] The type of identifier being provided for the organization. Use "ein" for US org
191
193
  #
192
194
  # @param industry [Symbol, SurgeAPI::Models::AccountUpdateParams::Organization::Industry, nil] The industry in which the organization operates.
193
195
  #
@@ -362,7 +364,8 @@ module SurgeAPI
362
364
  end
363
365
 
364
366
  # The type of identifier being provided for the organization. Use "ein" for US
365
- # businesses or "cbn" for Canadian businesses.
367
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
368
+ # international organizations.
366
369
  #
367
370
  # @see SurgeAPI::Models::AccountUpdateParams::Organization#identifier_type
368
371
  module IdentifierType
@@ -370,6 +373,7 @@ module SurgeAPI
370
373
 
371
374
  EIN = :ein
372
375
  CBN = :cbn
376
+ VAT = :vat
373
377
 
374
378
  # @!method self.values
375
379
  # @return [Array<Symbol>]
@@ -40,7 +40,13 @@ module SurgeAPI
40
40
  # @return [Hash{Symbol=>String}, nil]
41
41
  optional :metadata, SurgeAPI::Internal::Type::HashOf[String]
42
42
 
43
- # @!method initialize(id:, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil)
43
+ # @!attribute outbound_disabled
44
+ # Whether outbound messaging has been manually disabled for the contact.
45
+ #
46
+ # @return [Boolean, nil]
47
+ optional :outbound_disabled, SurgeAPI::Internal::Type::Boolean
48
+
49
+ # @!method initialize(id:, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, outbound_disabled: nil)
44
50
  # A contact who has consented to receive messages
45
51
  #
46
52
  # @param id [String] Unique identifier for the object.
@@ -54,6 +60,8 @@ module SurgeAPI
54
60
  # @param last_name [String] The contact's last name.
55
61
  #
56
62
  # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object.
63
+ #
64
+ # @param outbound_disabled [Boolean] Whether outbound messaging has been manually disabled for the contact.
57
65
  end
58
66
  end
59
67
  end
@@ -43,7 +43,13 @@ module SurgeAPI
43
43
  # @return [Hash{Symbol=>String}, nil]
44
44
  optional :metadata, SurgeAPI::Internal::Type::HashOf[String]
45
45
 
46
- # @!method initialize(account_id:, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, request_options: {})
46
+ # @!attribute outbound_disabled
47
+ # Whether outbound messaging should be manually disabled for the contact.
48
+ #
49
+ # @return [Boolean, nil]
50
+ optional :outbound_disabled, SurgeAPI::Internal::Type::Boolean
51
+
52
+ # @!method initialize(account_id:, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, outbound_disabled: nil, request_options: {})
47
53
  # @param account_id [String] The account for which the contact should be created.
48
54
  #
49
55
  # @param phone_number [String] The contact's phone number in E.164 format.
@@ -56,6 +62,8 @@ module SurgeAPI
56
62
  #
57
63
  # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object.
58
64
  #
65
+ # @param outbound_disabled [Boolean] Whether outbound messaging should be manually disabled for the contact.
66
+ #
59
67
  # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
60
68
  end
61
69
  end
@@ -43,7 +43,13 @@ module SurgeAPI
43
43
  # @return [Hash{Symbol=>String}, nil]
44
44
  optional :metadata, SurgeAPI::Internal::Type::HashOf[String]
45
45
 
46
- # @!method initialize(id:, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, request_options: {})
46
+ # @!attribute outbound_disabled
47
+ # Whether outbound messaging should be manually disabled for the contact.
48
+ #
49
+ # @return [Boolean, nil]
50
+ optional :outbound_disabled, SurgeAPI::Internal::Type::Boolean
51
+
52
+ # @!method initialize(id:, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, outbound_disabled: nil, request_options: {})
47
53
  # @param id [String] The ID of the contact to update.
48
54
  #
49
55
  # @param phone_number [String] The contact's phone number in E.164 format.
@@ -56,6 +62,8 @@ module SurgeAPI
56
62
  #
57
63
  # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object.
58
64
  #
65
+ # @param outbound_disabled [Boolean] Whether outbound messaging should be manually disabled for the contact.
66
+ #
59
67
  # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}]
60
68
  end
61
69
  end
@@ -132,7 +132,13 @@ module SurgeAPI
132
132
  # @return [Hash{Symbol=>String}, nil]
133
133
  optional :metadata, SurgeAPI::Internal::Type::HashOf[String]
134
134
 
135
- # @!method initialize(phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil)
135
+ # @!attribute outbound_disabled
136
+ # Whether outbound messaging should be manually disabled for the contact.
137
+ #
138
+ # @return [Boolean, nil]
139
+ optional :outbound_disabled, SurgeAPI::Internal::Type::Boolean
140
+
141
+ # @!method initialize(phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, outbound_disabled: nil)
136
142
  # Parameters for creating a contact
137
143
  #
138
144
  # @param phone_number [String] The contact's phone number in E.164 format.
@@ -144,6 +150,8 @@ module SurgeAPI
144
150
  # @param last_name [String] The contact's last name.
145
151
  #
146
152
  # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object.
153
+ #
154
+ # @param outbound_disabled [Boolean] Whether outbound messaging should be manually disabled for the contact.
147
155
  end
148
156
  end
149
157
 
@@ -36,14 +36,16 @@ module SurgeAPI
36
36
  # @!attribute identifier
37
37
  # The value of the identifier whose type is specified in the identifier_type
38
38
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
39
- # exactly 9 digits.
39
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
40
+ # digits.
40
41
  #
41
42
  # @return [String, nil]
42
43
  required :identifier, String, nil?: true
43
44
 
44
45
  # @!attribute identifier_type
45
46
  # The type of identifier being provided for the organization. Use "ein" for US
46
- # businesses or "cbn" for Canadian businesses.
47
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
48
+ # international organizations.
47
49
  #
48
50
  # @return [Symbol, SurgeAPI::Models::Organization::IdentifierType, nil]
49
51
  required :identifier_type, enum: -> { SurgeAPI::Organization::IdentifierType }, nil?: true
@@ -120,7 +122,7 @@ module SurgeAPI
120
122
  #
121
123
  # @param identifier [String, nil] The value of the identifier whose type is specified in the identifier_type field
122
124
  #
123
- # @param identifier_type [Symbol, SurgeAPI::Models::Organization::IdentifierType, nil] The type of identifier being provided for the organization. Use "ein" for US bus
125
+ # @param identifier_type [Symbol, SurgeAPI::Models::Organization::IdentifierType, nil] The type of identifier being provided for the organization. Use "ein" for US org
124
126
  #
125
127
  # @param industry [Symbol, SurgeAPI::Models::Organization::Industry, nil] The industry in which the organization operates.
126
128
  #
@@ -287,7 +289,8 @@ module SurgeAPI
287
289
  end
288
290
 
289
291
  # The type of identifier being provided for the organization. Use "ein" for US
290
- # businesses or "cbn" for Canadian businesses.
292
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
293
+ # international organizations.
291
294
  #
292
295
  # @see SurgeAPI::Models::Organization#identifier_type
293
296
  module IdentifierType
@@ -295,6 +298,7 @@ module SurgeAPI
295
298
 
296
299
  EIN = :ein
297
300
  CBN = :cbn
301
+ VAT = :vat
298
302
 
299
303
  # @!method self.values
300
304
  # @return [Array<Symbol>]
@@ -5,7 +5,7 @@ module SurgeAPI
5
5
  class Contacts
6
6
  # Creates a new Contact object.
7
7
  #
8
- # @overload create(account_id, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, request_options: {})
8
+ # @overload create(account_id, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, outbound_disabled: nil, request_options: {})
9
9
  #
10
10
  # @param account_id [String] The account for which the contact should be created.
11
11
  #
@@ -19,6 +19,8 @@ module SurgeAPI
19
19
  #
20
20
  # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object.
21
21
  #
22
+ # @param outbound_disabled [Boolean] Whether outbound messaging should be manually disabled for the contact.
23
+ #
22
24
  # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}, nil]
23
25
  #
24
26
  # @return [SurgeAPI::Models::Contact]
@@ -58,7 +60,7 @@ module SurgeAPI
58
60
  # Updates the specified contact by setting the values of the parameters passed.
59
61
  # Any parameters not provided will be left unchanged.
60
62
  #
61
- # @overload update(id, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, request_options: {})
63
+ # @overload update(id, phone_number:, email: nil, first_name: nil, last_name: nil, metadata: nil, outbound_disabled: nil, request_options: {})
62
64
  #
63
65
  # @param id [String] The ID of the contact to update.
64
66
  #
@@ -72,6 +74,8 @@ module SurgeAPI
72
74
  #
73
75
  # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object.
74
76
  #
77
+ # @param outbound_disabled [Boolean] Whether outbound messaging should be manually disabled for the contact.
78
+ #
75
79
  # @param request_options [SurgeAPI::RequestOptions, Hash{Symbol=>Object}, nil]
76
80
  #
77
81
  # @return [SurgeAPI::Models::Contact]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SurgeAPI
4
- VERSION = "0.22.0"
4
+ VERSION = "0.23.0"
5
5
  end
@@ -149,12 +149,14 @@ module SurgeAPI
149
149
 
150
150
  # The value of the identifier whose type is specified in the identifier_type
151
151
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
152
- # exactly 9 digits.
152
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
153
+ # digits.
153
154
  sig { returns(T.nilable(String)) }
154
155
  attr_accessor :identifier
155
156
 
156
157
  # The type of identifier being provided for the organization. Use "ein" for US
157
- # businesses or "cbn" for Canadian businesses.
158
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
159
+ # international organizations.
158
160
  sig do
159
161
  returns(
160
162
  T.nilable(
@@ -289,10 +291,12 @@ module SurgeAPI
289
291
  email: nil,
290
292
  # The value of the identifier whose type is specified in the identifier_type
291
293
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
292
- # exactly 9 digits.
294
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
295
+ # digits.
293
296
  identifier: nil,
294
297
  # The type of identifier being provided for the organization. Use "ein" for US
295
- # businesses or "cbn" for Canadian businesses.
298
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
299
+ # international organizations.
296
300
  identifier_type: nil,
297
301
  # The industry in which the organization operates.
298
302
  industry: nil,
@@ -613,7 +617,8 @@ module SurgeAPI
613
617
  end
614
618
 
615
619
  # The type of identifier being provided for the organization. Use "ein" for US
616
- # businesses or "cbn" for Canadian businesses.
620
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
621
+ # international organizations.
617
622
  module IdentifierType
618
623
  extend SurgeAPI::Internal::Type::Enum
619
624
 
@@ -636,6 +641,11 @@ module SurgeAPI
636
641
  :cbn,
637
642
  SurgeAPI::AccountCreateParams::Organization::IdentifierType::TaggedSymbol
638
643
  )
644
+ VAT =
645
+ T.let(
646
+ :vat,
647
+ SurgeAPI::AccountCreateParams::Organization::IdentifierType::TaggedSymbol
648
+ )
639
649
 
640
650
  sig do
641
651
  override.returns(
@@ -158,12 +158,14 @@ module SurgeAPI
158
158
 
159
159
  # The value of the identifier whose type is specified in the identifier_type
160
160
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
161
- # exactly 9 digits.
161
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
162
+ # digits.
162
163
  sig { returns(T.nilable(String)) }
163
164
  attr_accessor :identifier
164
165
 
165
166
  # The type of identifier being provided for the organization. Use "ein" for US
166
- # businesses or "cbn" for Canadian businesses.
167
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
168
+ # international organizations.
167
169
  sig do
168
170
  returns(
169
171
  T.nilable(
@@ -298,10 +300,12 @@ module SurgeAPI
298
300
  email: nil,
299
301
  # The value of the identifier whose type is specified in the identifier_type
300
302
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
301
- # exactly 9 digits.
303
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
304
+ # digits.
302
305
  identifier: nil,
303
306
  # The type of identifier being provided for the organization. Use "ein" for US
304
- # businesses or "cbn" for Canadian businesses.
307
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
308
+ # international organizations.
305
309
  identifier_type: nil,
306
310
  # The industry in which the organization operates.
307
311
  industry: nil,
@@ -622,7 +626,8 @@ module SurgeAPI
622
626
  end
623
627
 
624
628
  # The type of identifier being provided for the organization. Use "ein" for US
625
- # businesses or "cbn" for Canadian businesses.
629
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
630
+ # international organizations.
626
631
  module IdentifierType
627
632
  extend SurgeAPI::Internal::Type::Enum
628
633
 
@@ -645,6 +650,11 @@ module SurgeAPI
645
650
  :cbn,
646
651
  SurgeAPI::AccountUpdateParams::Organization::IdentifierType::TaggedSymbol
647
652
  )
653
+ VAT =
654
+ T.let(
655
+ :vat,
656
+ SurgeAPI::AccountUpdateParams::Organization::IdentifierType::TaggedSymbol
657
+ )
648
658
 
649
659
  sig do
650
660
  override.returns(
@@ -42,6 +42,13 @@ module SurgeAPI
42
42
  sig { params(metadata: T::Hash[Symbol, String]).void }
43
43
  attr_writer :metadata
44
44
 
45
+ # Whether outbound messaging has been manually disabled for the contact.
46
+ sig { returns(T.nilable(T::Boolean)) }
47
+ attr_reader :outbound_disabled
48
+
49
+ sig { params(outbound_disabled: T::Boolean).void }
50
+ attr_writer :outbound_disabled
51
+
45
52
  # A contact who has consented to receive messages
46
53
  sig do
47
54
  params(
@@ -50,7 +57,8 @@ module SurgeAPI
50
57
  email: String,
51
58
  first_name: String,
52
59
  last_name: String,
53
- metadata: T::Hash[Symbol, String]
60
+ metadata: T::Hash[Symbol, String],
61
+ outbound_disabled: T::Boolean
54
62
  ).returns(T.attached_class)
55
63
  end
56
64
  def self.new(
@@ -65,7 +73,9 @@ module SurgeAPI
65
73
  # The contact's last name.
66
74
  last_name: nil,
67
75
  # Set of key-value pairs that will be stored with the object.
68
- metadata: nil
76
+ metadata: nil,
77
+ # Whether outbound messaging has been manually disabled for the contact.
78
+ outbound_disabled: nil
69
79
  )
70
80
  end
71
81
 
@@ -77,7 +87,8 @@ module SurgeAPI
77
87
  email: String,
78
88
  first_name: String,
79
89
  last_name: String,
80
- metadata: T::Hash[Symbol, String]
90
+ metadata: T::Hash[Symbol, String],
91
+ outbound_disabled: T::Boolean
81
92
  }
82
93
  )
83
94
  end
@@ -47,6 +47,13 @@ module SurgeAPI
47
47
  sig { params(metadata: T::Hash[Symbol, String]).void }
48
48
  attr_writer :metadata
49
49
 
50
+ # Whether outbound messaging should be manually disabled for the contact.
51
+ sig { returns(T.nilable(T::Boolean)) }
52
+ attr_reader :outbound_disabled
53
+
54
+ sig { params(outbound_disabled: T::Boolean).void }
55
+ attr_writer :outbound_disabled
56
+
50
57
  sig do
51
58
  params(
52
59
  account_id: String,
@@ -55,6 +62,7 @@ module SurgeAPI
55
62
  first_name: String,
56
63
  last_name: String,
57
64
  metadata: T::Hash[Symbol, String],
65
+ outbound_disabled: T::Boolean,
58
66
  request_options: SurgeAPI::RequestOptions::OrHash
59
67
  ).returns(T.attached_class)
60
68
  end
@@ -71,6 +79,8 @@ module SurgeAPI
71
79
  last_name: nil,
72
80
  # Set of key-value pairs that will be stored with the object.
73
81
  metadata: nil,
82
+ # Whether outbound messaging should be manually disabled for the contact.
83
+ outbound_disabled: nil,
74
84
  request_options: {}
75
85
  )
76
86
  end
@@ -84,6 +94,7 @@ module SurgeAPI
84
94
  first_name: String,
85
95
  last_name: String,
86
96
  metadata: T::Hash[Symbol, String],
97
+ outbound_disabled: T::Boolean,
87
98
  request_options: SurgeAPI::RequestOptions
88
99
  }
89
100
  )
@@ -47,6 +47,13 @@ module SurgeAPI
47
47
  sig { params(metadata: T::Hash[Symbol, String]).void }
48
48
  attr_writer :metadata
49
49
 
50
+ # Whether outbound messaging should be manually disabled for the contact.
51
+ sig { returns(T.nilable(T::Boolean)) }
52
+ attr_reader :outbound_disabled
53
+
54
+ sig { params(outbound_disabled: T::Boolean).void }
55
+ attr_writer :outbound_disabled
56
+
50
57
  sig do
51
58
  params(
52
59
  id: String,
@@ -55,6 +62,7 @@ module SurgeAPI
55
62
  first_name: String,
56
63
  last_name: String,
57
64
  metadata: T::Hash[Symbol, String],
65
+ outbound_disabled: T::Boolean,
58
66
  request_options: SurgeAPI::RequestOptions::OrHash
59
67
  ).returns(T.attached_class)
60
68
  end
@@ -71,6 +79,8 @@ module SurgeAPI
71
79
  last_name: nil,
72
80
  # Set of key-value pairs that will be stored with the object.
73
81
  metadata: nil,
82
+ # Whether outbound messaging should be manually disabled for the contact.
83
+ outbound_disabled: nil,
74
84
  request_options: {}
75
85
  )
76
86
  end
@@ -84,6 +94,7 @@ module SurgeAPI
84
94
  first_name: String,
85
95
  last_name: String,
86
96
  metadata: T::Hash[Symbol, String],
97
+ outbound_disabled: T::Boolean,
87
98
  request_options: SurgeAPI::RequestOptions
88
99
  }
89
100
  )
@@ -261,6 +261,13 @@ module SurgeAPI
261
261
  sig { params(metadata: T::Hash[Symbol, String]).void }
262
262
  attr_writer :metadata
263
263
 
264
+ # Whether outbound messaging should be manually disabled for the contact.
265
+ sig { returns(T.nilable(T::Boolean)) }
266
+ attr_reader :outbound_disabled
267
+
268
+ sig { params(outbound_disabled: T::Boolean).void }
269
+ attr_writer :outbound_disabled
270
+
264
271
  # Parameters for creating a contact
265
272
  sig do
266
273
  params(
@@ -268,7 +275,8 @@ module SurgeAPI
268
275
  email: String,
269
276
  first_name: String,
270
277
  last_name: String,
271
- metadata: T::Hash[Symbol, String]
278
+ metadata: T::Hash[Symbol, String],
279
+ outbound_disabled: T::Boolean
272
280
  ).returns(T.attached_class)
273
281
  end
274
282
  def self.new(
@@ -281,7 +289,9 @@ module SurgeAPI
281
289
  # The contact's last name.
282
290
  last_name: nil,
283
291
  # Set of key-value pairs that will be stored with the object.
284
- metadata: nil
292
+ metadata: nil,
293
+ # Whether outbound messaging should be manually disabled for the contact.
294
+ outbound_disabled: nil
285
295
  )
286
296
  end
287
297
 
@@ -292,7 +302,8 @@ module SurgeAPI
292
302
  email: String,
293
303
  first_name: String,
294
304
  last_name: String,
295
- metadata: T::Hash[Symbol, String]
305
+ metadata: T::Hash[Symbol, String],
306
+ outbound_disabled: T::Boolean
296
307
  }
297
308
  )
298
309
  end
@@ -38,12 +38,14 @@ module SurgeAPI
38
38
 
39
39
  # The value of the identifier whose type is specified in the identifier_type
40
40
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
41
- # exactly 9 digits.
41
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
42
+ # digits.
42
43
  sig { returns(T.nilable(String)) }
43
44
  attr_accessor :identifier
44
45
 
45
46
  # The type of identifier being provided for the organization. Use "ein" for US
46
- # businesses or "cbn" for Canadian businesses.
47
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
48
+ # international organizations.
47
49
  sig do
48
50
  returns(T.nilable(SurgeAPI::Organization::IdentifierType::TaggedSymbol))
49
51
  end
@@ -136,10 +138,12 @@ module SurgeAPI
136
138
  email:,
137
139
  # The value of the identifier whose type is specified in the identifier_type
138
140
  # field. For EIN, can be formatted with or without the hyphen. For CBN, must be
139
- # exactly 9 digits.
141
+ # exactly 9 digits. For VAT, provide only the numeric portion, between 2 and 20
142
+ # digits.
140
143
  identifier:,
141
144
  # The type of identifier being provided for the organization. Use "ein" for US
142
- # businesses or "cbn" for Canadian businesses.
145
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
146
+ # international organizations.
143
147
  identifier_type:,
144
148
  # The industry in which the organization operates.
145
149
  industry:,
@@ -409,7 +413,8 @@ module SurgeAPI
409
413
  end
410
414
 
411
415
  # The type of identifier being provided for the organization. Use "ein" for US
412
- # businesses or "cbn" for Canadian businesses.
416
+ # organizations, "cbn" for Canadian organizations, or "vat" for supported
417
+ # international organizations.
413
418
  module IdentifierType
414
419
  extend SurgeAPI::Internal::Type::Enum
415
420
 
@@ -419,6 +424,7 @@ module SurgeAPI
419
424
 
420
425
  EIN = T.let(:ein, SurgeAPI::Organization::IdentifierType::TaggedSymbol)
421
426
  CBN = T.let(:cbn, SurgeAPI::Organization::IdentifierType::TaggedSymbol)
427
+ VAT = T.let(:vat, SurgeAPI::Organization::IdentifierType::TaggedSymbol)
422
428
 
423
429
  sig do
424
430
  override.returns(
@@ -12,6 +12,7 @@ module SurgeAPI
12
12
  first_name: String,
13
13
  last_name: String,
14
14
  metadata: T::Hash[Symbol, String],
15
+ outbound_disabled: T::Boolean,
15
16
  request_options: SurgeAPI::RequestOptions::OrHash
16
17
  ).returns(SurgeAPI::Contact)
17
18
  end
@@ -28,6 +29,8 @@ module SurgeAPI
28
29
  last_name: nil,
29
30
  # Set of key-value pairs that will be stored with the object.
30
31
  metadata: nil,
32
+ # Whether outbound messaging should be manually disabled for the contact.
33
+ outbound_disabled: nil,
31
34
  request_options: {}
32
35
  )
33
36
  end
@@ -56,6 +59,7 @@ module SurgeAPI
56
59
  first_name: String,
57
60
  last_name: String,
58
61
  metadata: T::Hash[Symbol, String],
62
+ outbound_disabled: T::Boolean,
59
63
  request_options: SurgeAPI::RequestOptions::OrHash
60
64
  ).returns(SurgeAPI::Contact)
61
65
  end
@@ -72,6 +76,8 @@ module SurgeAPI
72
76
  last_name: nil,
73
77
  # Set of key-value pairs that will be stored with the object.
74
78
  metadata: nil,
79
+ # Whether outbound messaging should be manually disabled for the contact.
80
+ outbound_disabled: nil,
75
81
  request_options: {}
76
82
  )
77
83
  end
@@ -234,13 +234,14 @@ module SurgeAPI
234
234
  end
235
235
  end
236
236
 
237
- type identifier_type = :ein | :cbn
237
+ type identifier_type = :ein | :cbn | :vat
238
238
 
239
239
  module IdentifierType
240
240
  extend SurgeAPI::Internal::Type::Enum
241
241
 
242
242
  EIN: :ein
243
243
  CBN: :cbn
244
+ VAT: :vat
244
245
 
245
246
  def self?.values: -> ::Array[SurgeAPI::Models::AccountCreateParams::Organization::identifier_type]
246
247
  end
@@ -241,13 +241,14 @@ module SurgeAPI
241
241
  end
242
242
  end
243
243
 
244
- type identifier_type = :ein | :cbn
244
+ type identifier_type = :ein | :cbn | :vat
245
245
 
246
246
  module IdentifierType
247
247
  extend SurgeAPI::Internal::Type::Enum
248
248
 
249
249
  EIN: :ein
250
250
  CBN: :cbn
251
+ VAT: :vat
251
252
 
252
253
  def self?.values: -> ::Array[SurgeAPI::Models::AccountUpdateParams::Organization::identifier_type]
253
254
  end
@@ -7,7 +7,8 @@ module SurgeAPI
7
7
  email: String,
8
8
  first_name: String,
9
9
  last_name: String,
10
- metadata: ::Hash[Symbol, String]
10
+ metadata: ::Hash[Symbol, String],
11
+ outbound_disabled: bool
11
12
  }
12
13
 
13
14
  class Contact < SurgeAPI::Internal::Type::BaseModel
@@ -31,13 +32,18 @@ module SurgeAPI
31
32
 
32
33
  def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
33
34
 
35
+ attr_reader outbound_disabled: bool?
36
+
37
+ def outbound_disabled=: (bool) -> bool
38
+
34
39
  def initialize: (
35
40
  id: String,
36
41
  phone_number: String,
37
42
  ?email: String,
38
43
  ?first_name: String,
39
44
  ?last_name: String,
40
- ?metadata: ::Hash[Symbol, String]
45
+ ?metadata: ::Hash[Symbol, String],
46
+ ?outbound_disabled: bool
41
47
  ) -> void
42
48
 
43
49
  def to_hash: -> {
@@ -46,7 +52,8 @@ module SurgeAPI
46
52
  email: String,
47
53
  first_name: String,
48
54
  last_name: String,
49
- metadata: ::Hash[Symbol, String]
55
+ metadata: ::Hash[Symbol, String],
56
+ outbound_disabled: bool
50
57
  }
51
58
  end
52
59
  end
@@ -7,7 +7,8 @@ module SurgeAPI
7
7
  email: String,
8
8
  first_name: String,
9
9
  last_name: String,
10
- metadata: ::Hash[Symbol, String]
10
+ metadata: ::Hash[Symbol, String],
11
+ outbound_disabled: bool
11
12
  }
12
13
  & SurgeAPI::Internal::Type::request_parameters
13
14
 
@@ -35,6 +36,10 @@ module SurgeAPI
35
36
 
36
37
  def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
37
38
 
39
+ attr_reader outbound_disabled: bool?
40
+
41
+ def outbound_disabled=: (bool) -> bool
42
+
38
43
  def initialize: (
39
44
  account_id: String,
40
45
  phone_number: String,
@@ -42,6 +47,7 @@ module SurgeAPI
42
47
  ?first_name: String,
43
48
  ?last_name: String,
44
49
  ?metadata: ::Hash[Symbol, String],
50
+ ?outbound_disabled: bool,
45
51
  ?request_options: SurgeAPI::request_opts
46
52
  ) -> void
47
53
 
@@ -52,6 +58,7 @@ module SurgeAPI
52
58
  first_name: String,
53
59
  last_name: String,
54
60
  metadata: ::Hash[Symbol, String],
61
+ outbound_disabled: bool,
55
62
  request_options: SurgeAPI::RequestOptions
56
63
  }
57
64
  end
@@ -7,7 +7,8 @@ module SurgeAPI
7
7
  email: String,
8
8
  first_name: String,
9
9
  last_name: String,
10
- metadata: ::Hash[Symbol, String]
10
+ metadata: ::Hash[Symbol, String],
11
+ outbound_disabled: bool
11
12
  }
12
13
  & SurgeAPI::Internal::Type::request_parameters
13
14
 
@@ -35,6 +36,10 @@ module SurgeAPI
35
36
 
36
37
  def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
37
38
 
39
+ attr_reader outbound_disabled: bool?
40
+
41
+ def outbound_disabled=: (bool) -> bool
42
+
38
43
  def initialize: (
39
44
  id: String,
40
45
  phone_number: String,
@@ -42,6 +47,7 @@ module SurgeAPI
42
47
  ?first_name: String,
43
48
  ?last_name: String,
44
49
  ?metadata: ::Hash[Symbol, String],
50
+ ?outbound_disabled: bool,
45
51
  ?request_options: SurgeAPI::request_opts
46
52
  ) -> void
47
53
 
@@ -52,6 +58,7 @@ module SurgeAPI
52
58
  first_name: String,
53
59
  last_name: String,
54
60
  metadata: ::Hash[Symbol, String],
61
+ outbound_disabled: bool,
55
62
  request_options: SurgeAPI::RequestOptions
56
63
  }
57
64
  end
@@ -91,7 +91,8 @@ module SurgeAPI
91
91
  email: String,
92
92
  first_name: String,
93
93
  last_name: String,
94
- metadata: ::Hash[Symbol, String]
94
+ metadata: ::Hash[Symbol, String],
95
+ outbound_disabled: bool
95
96
  }
96
97
 
97
98
  class Contact < SurgeAPI::Internal::Type::BaseModel
@@ -113,12 +114,17 @@ module SurgeAPI
113
114
 
114
115
  def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String]
115
116
 
117
+ attr_reader outbound_disabled: bool?
118
+
119
+ def outbound_disabled=: (bool) -> bool
120
+
116
121
  def initialize: (
117
122
  phone_number: String,
118
123
  ?email: String,
119
124
  ?first_name: String,
120
125
  ?last_name: String,
121
- ?metadata: ::Hash[Symbol, String]
126
+ ?metadata: ::Hash[Symbol, String],
127
+ ?outbound_disabled: bool
122
128
  ) -> void
123
129
 
124
130
  def to_hash: -> {
@@ -126,7 +132,8 @@ module SurgeAPI
126
132
  email: String,
127
133
  first_name: String,
128
134
  last_name: String,
129
- metadata: ::Hash[Symbol, String]
135
+ metadata: ::Hash[Symbol, String],
136
+ outbound_disabled: bool
130
137
  }
131
138
  end
132
139
  end
@@ -187,13 +187,14 @@ module SurgeAPI
187
187
  end
188
188
  end
189
189
 
190
- type identifier_type = :ein | :cbn
190
+ type identifier_type = :ein | :cbn | :vat
191
191
 
192
192
  module IdentifierType
193
193
  extend SurgeAPI::Internal::Type::Enum
194
194
 
195
195
  EIN: :ein
196
196
  CBN: :cbn
197
+ VAT: :vat
197
198
 
198
199
  def self?.values: -> ::Array[SurgeAPI::Models::Organization::identifier_type]
199
200
  end
@@ -8,6 +8,7 @@ module SurgeAPI
8
8
  ?first_name: String,
9
9
  ?last_name: String,
10
10
  ?metadata: ::Hash[Symbol, String],
11
+ ?outbound_disabled: bool,
11
12
  ?request_options: SurgeAPI::request_opts
12
13
  ) -> SurgeAPI::Contact
13
14
 
@@ -23,6 +24,7 @@ module SurgeAPI
23
24
  ?first_name: String,
24
25
  ?last_name: String,
25
26
  ?metadata: ::Hash[Symbol, String],
27
+ ?outbound_disabled: bool,
26
28
  ?request_options: SurgeAPI::request_opts
27
29
  ) -> SurgeAPI::Contact
28
30
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surge_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Surge
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-08-04 00:00:00.000000000 Z
11
+ date: 2026-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cgi