trycourier 4.6.0 → 4.6.2

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/README.md +9 -9
  4. data/lib/trycourier/models/audience.rb +33 -9
  5. data/lib/trycourier/models/audience_filter_config.rb +18 -0
  6. data/lib/trycourier/models/audience_update_params.rb +27 -5
  7. data/lib/trycourier/models/elemental_channel_node.rb +3 -3
  8. data/lib/trycourier/models/filter_config.rb +42 -9
  9. data/lib/trycourier/models/inbound_track_event_params.rb +2 -2
  10. data/lib/trycourier/models/subscription_topic_new.rb +1 -1
  11. data/lib/trycourier/models.rb +2 -6
  12. data/lib/trycourier/resources/audiences.rb +7 -2
  13. data/lib/trycourier/resources/inbound.rb +1 -1
  14. data/lib/trycourier/resources/lists/subscriptions.rb +1 -1
  15. data/lib/trycourier/resources/notifications/checks.rb +3 -3
  16. data/lib/trycourier/resources/tenants/preferences/items.rb +3 -3
  17. data/lib/trycourier/resources/translations.rb +1 -1
  18. data/lib/trycourier/resources/users/preferences.rb +1 -1
  19. data/lib/trycourier/resources/users/tenants.rb +1 -1
  20. data/lib/trycourier/resources/users/tokens.rb +2 -2
  21. data/lib/trycourier/version.rb +1 -1
  22. data/lib/trycourier.rb +1 -3
  23. data/rbi/trycourier/models/audience.rbi +47 -15
  24. data/rbi/trycourier/models/audience_filter_config.rbi +32 -0
  25. data/rbi/trycourier/models/audience_update_params.rbi +45 -25
  26. data/rbi/trycourier/models/elemental_channel_node.rbi +6 -3
  27. data/rbi/trycourier/models/filter_config.rbi +72 -8
  28. data/rbi/trycourier/models/inbound_track_event_params.rbi +2 -2
  29. data/rbi/trycourier/models/subscription_topic_new.rbi +2 -2
  30. data/rbi/trycourier/models.rbi +2 -6
  31. data/rbi/trycourier/resources/audiences.rbi +6 -8
  32. data/rbi/trycourier/resources/inbound.rbi +1 -1
  33. data/rbi/trycourier/resources/lists/subscriptions.rbi +1 -1
  34. data/rbi/trycourier/resources/notifications/checks.rbi +3 -3
  35. data/rbi/trycourier/resources/tenants/preferences/items.rbi +4 -4
  36. data/rbi/trycourier/resources/translations.rbi +1 -1
  37. data/rbi/trycourier/resources/users/preferences.rbi +1 -1
  38. data/rbi/trycourier/resources/users/tenants.rbi +1 -1
  39. data/rbi/trycourier/resources/users/tokens.rbi +2 -2
  40. data/sig/trycourier/models/audience.rbs +28 -8
  41. data/sig/trycourier/models/audience_filter_config.rbs +13 -0
  42. data/sig/trycourier/models/audience_update_params.rbs +21 -5
  43. data/sig/trycourier/models/elemental_channel_node.rbs +2 -2
  44. data/sig/trycourier/models/filter_config.rbs +35 -4
  45. data/sig/trycourier/models.rbs +3 -7
  46. data/sig/trycourier/resources/audiences.rbs +2 -1
  47. metadata +19 -11
  48. data/lib/trycourier/models/filter.rb +0 -19
  49. data/lib/trycourier/models/nested_filter_config.rb +0 -49
  50. data/lib/trycourier/models/single_filter_config.rb +0 -62
  51. data/rbi/trycourier/models/filter.rbi +0 -19
  52. data/rbi/trycourier/models/nested_filter_config.rbi +0 -104
  53. data/rbi/trycourier/models/single_filter_config.rbi +0 -116
  54. data/sig/trycourier/models/filter.rbs +0 -12
  55. data/sig/trycourier/models/nested_filter_config.rbs +0 -64
  56. data/sig/trycourier/models/single_filter_config.rbs +0 -69
@@ -0,0 +1,32 @@
1
+ # typed: strong
2
+
3
+ module Trycourier
4
+ module Models
5
+ class AudienceFilterConfig < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
7
+ T.type_alias do
8
+ T.any(Trycourier::AudienceFilterConfig, Trycourier::Internal::AnyHash)
9
+ end
10
+
11
+ # Array of filter rules (single conditions or nested groups)
12
+ sig { returns(T::Array[Trycourier::FilterConfig]) }
13
+ attr_accessor :filters
14
+
15
+ # Filter configuration for audience membership containing an array of filter rules
16
+ sig do
17
+ params(filters: T::Array[Trycourier::FilterConfig::OrHash]).returns(
18
+ T.attached_class
19
+ )
20
+ end
21
+ def self.new(
22
+ # Array of filter rules (single conditions or nested groups)
23
+ filters:
24
+ )
25
+ end
26
+
27
+ sig { override.returns({ filters: T::Array[Trycourier::FilterConfig] }) }
28
+ def to_hash
29
+ end
30
+ end
31
+ end
32
+ end
@@ -15,44 +15,44 @@ module Trycourier
15
15
  sig { returns(T.nilable(String)) }
16
16
  attr_accessor :description
17
17
 
18
- # A single filter to use for filtering
18
+ # Filter configuration for audience membership containing an array of filter rules
19
+ sig { returns(T.nilable(Trycourier::AudienceFilterConfig)) }
20
+ attr_reader :filter
21
+
19
22
  sig do
20
- returns(
21
- T.nilable(
22
- T.any(
23
- Trycourier::SingleFilterConfig,
24
- Trycourier::NestedFilterConfig
25
- )
26
- )
27
- )
23
+ params(filter: T.nilable(Trycourier::AudienceFilterConfig::OrHash)).void
28
24
  end
29
- attr_accessor :filter
25
+ attr_writer :filter
30
26
 
31
27
  # The name of the audience
32
28
  sig { returns(T.nilable(String)) }
33
29
  attr_accessor :name
34
30
 
31
+ # The logical operator (AND/OR) for the top-level filter
32
+ sig do
33
+ returns(T.nilable(Trycourier::AudienceUpdateParams::Operator::OrSymbol))
34
+ end
35
+ attr_accessor :operator
36
+
35
37
  sig do
36
38
  params(
37
39
  description: T.nilable(String),
38
- filter:
39
- T.nilable(
40
- T.any(
41
- Trycourier::SingleFilterConfig::OrHash,
42
- Trycourier::NestedFilterConfig::OrHash
43
- )
44
- ),
40
+ filter: T.nilable(Trycourier::AudienceFilterConfig::OrHash),
45
41
  name: T.nilable(String),
42
+ operator:
43
+ T.nilable(Trycourier::AudienceUpdateParams::Operator::OrSymbol),
46
44
  request_options: Trycourier::RequestOptions::OrHash
47
45
  ).returns(T.attached_class)
48
46
  end
49
47
  def self.new(
50
48
  # A description of the audience
51
49
  description: nil,
52
- # A single filter to use for filtering
50
+ # Filter configuration for audience membership containing an array of filter rules
53
51
  filter: nil,
54
52
  # The name of the audience
55
53
  name: nil,
54
+ # The logical operator (AND/OR) for the top-level filter
55
+ operator: nil,
56
56
  request_options: {}
57
57
  )
58
58
  end
@@ -61,20 +61,40 @@ module Trycourier
61
61
  override.returns(
62
62
  {
63
63
  description: T.nilable(String),
64
- filter:
65
- T.nilable(
66
- T.any(
67
- Trycourier::SingleFilterConfig,
68
- Trycourier::NestedFilterConfig
69
- )
70
- ),
64
+ filter: T.nilable(Trycourier::AudienceFilterConfig),
71
65
  name: T.nilable(String),
66
+ operator:
67
+ T.nilable(Trycourier::AudienceUpdateParams::Operator::OrSymbol),
72
68
  request_options: Trycourier::RequestOptions
73
69
  }
74
70
  )
75
71
  end
76
72
  def to_hash
77
73
  end
74
+
75
+ # The logical operator (AND/OR) for the top-level filter
76
+ module Operator
77
+ extend Trycourier::Internal::Type::Enum
78
+
79
+ TaggedSymbol =
80
+ T.type_alias do
81
+ T.all(Symbol, Trycourier::AudienceUpdateParams::Operator)
82
+ end
83
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
84
+
85
+ AND =
86
+ T.let(:AND, Trycourier::AudienceUpdateParams::Operator::TaggedSymbol)
87
+ OR =
88
+ T.let(:OR, Trycourier::AudienceUpdateParams::Operator::TaggedSymbol)
89
+
90
+ sig do
91
+ override.returns(
92
+ T::Array[Trycourier::AudienceUpdateParams::Operator::TaggedSymbol]
93
+ )
94
+ end
95
+ def self.values
96
+ end
97
+ end
78
98
  end
79
99
  end
80
100
  end
@@ -10,8 +10,11 @@ module Trycourier
10
10
 
11
11
  # The channel the contents of this element should be applied to. Can be `email`,
12
12
  # `push`, `direct_message`, `sms` or a provider such as slack
13
- sig { returns(String) }
14
- attr_accessor :channel
13
+ sig { returns(T.nilable(String)) }
14
+ attr_reader :channel
15
+
16
+ sig { params(channel: String).void }
17
+ attr_writer :channel
15
18
 
16
19
  # Raw data to apply to the channel. If `elements` has not been specified, `raw` is
17
20
  # required.
@@ -37,7 +40,7 @@ module Trycourier
37
40
  def self.new(
38
41
  # The channel the contents of this element should be applied to. Can be `email`,
39
42
  # `push`, `direct_message`, `sms` or a provider such as slack
40
- channel:,
43
+ channel: nil,
41
44
  # Raw data to apply to the channel. If `elements` has not been specified, `raw` is
42
45
  # required.
43
46
  raw: nil
@@ -2,17 +2,81 @@
2
2
 
3
3
  module Trycourier
4
4
  module Models
5
- # A single filter to use for filtering
6
- module FilterConfig
7
- extend Trycourier::Internal::Type::Union
8
-
9
- Variants =
5
+ class FilterConfig < Trycourier::Internal::Type::BaseModel
6
+ OrHash =
10
7
  T.type_alias do
11
- T.any(Trycourier::SingleFilterConfig, Trycourier::NestedFilterConfig)
8
+ T.any(Trycourier::FilterConfig, Trycourier::Internal::AnyHash)
12
9
  end
13
10
 
14
- sig { override.returns(T::Array[Trycourier::FilterConfig::Variants]) }
15
- def self.variants
11
+ # The operator for this filter. Use comparison operators (EQ, GT, LT, GTE, LTE,
12
+ # NEQ, EXISTS, INCLUDES, STARTS_WITH, ENDS_WITH, IS_BEFORE, IS_AFTER, OMIT) for
13
+ # single conditions, or logical operators (AND, OR) for nested filter groups.
14
+ sig { returns(String) }
15
+ attr_accessor :operator
16
+
17
+ # Nested filter rules to combine with AND/OR. Required for nested filter groups,
18
+ # not used for single filter conditions.
19
+ sig { returns(T.nilable(T::Array[Trycourier::FilterConfig])) }
20
+ attr_reader :filters
21
+
22
+ sig { params(filters: T::Array[Trycourier::FilterConfig]).void }
23
+ attr_writer :filters
24
+
25
+ # The attribute path from the user profile to filter on. Required for single
26
+ # filter conditions, not used for nested filter groups.
27
+ sig { returns(T.nilable(String)) }
28
+ attr_reader :path
29
+
30
+ sig { params(path: String).void }
31
+ attr_writer :path
32
+
33
+ # The value to compare against. Required for single filter conditions, not used
34
+ # for nested filter groups.
35
+ sig { returns(T.nilable(String)) }
36
+ attr_reader :value
37
+
38
+ sig { params(value: String).void }
39
+ attr_writer :value
40
+
41
+ # A filter rule that can be either a single condition (with path/value) or a
42
+ # nested group (with filters array). Use comparison operators (EQ, GT, etc.) for
43
+ # single conditions, and logical operators (AND, OR) for nested groups.
44
+ sig do
45
+ params(
46
+ operator: String,
47
+ filters: T::Array[Trycourier::FilterConfig],
48
+ path: String,
49
+ value: String
50
+ ).returns(T.attached_class)
51
+ end
52
+ def self.new(
53
+ # The operator for this filter. Use comparison operators (EQ, GT, LT, GTE, LTE,
54
+ # NEQ, EXISTS, INCLUDES, STARTS_WITH, ENDS_WITH, IS_BEFORE, IS_AFTER, OMIT) for
55
+ # single conditions, or logical operators (AND, OR) for nested filter groups.
56
+ operator:,
57
+ # Nested filter rules to combine with AND/OR. Required for nested filter groups,
58
+ # not used for single filter conditions.
59
+ filters: nil,
60
+ # The attribute path from the user profile to filter on. Required for single
61
+ # filter conditions, not used for nested filter groups.
62
+ path: nil,
63
+ # The value to compare against. Required for single filter conditions, not used
64
+ # for nested filter groups.
65
+ value: nil
66
+ )
67
+ end
68
+
69
+ sig do
70
+ override.returns(
71
+ {
72
+ operator: String,
73
+ filters: T::Array[Trycourier::FilterConfig],
74
+ path: String,
75
+ value: String
76
+ }
77
+ )
78
+ end
79
+ def to_hash
16
80
  end
17
81
  end
18
82
  end
@@ -30,7 +30,7 @@ module Trycourier
30
30
  sig { returns(Trycourier::InboundTrackEventParams::Type::OrSymbol) }
31
31
  attr_accessor :type
32
32
 
33
- # The user id associatiated with the track
33
+ # The user id associated with the track
34
34
  sig { returns(T.nilable(String)) }
35
35
  attr_accessor :user_id
36
36
 
@@ -53,7 +53,7 @@ module Trycourier
53
53
  message_id:,
54
54
  properties:,
55
55
  type:,
56
- # The user id associatiated with the track
56
+ # The user id associated with the track
57
57
  user_id: nil,
58
58
  request_options: {}
59
59
  )
@@ -20,7 +20,7 @@ module Trycourier
20
20
  attr_accessor :custom_routing
21
21
 
22
22
  # Override channel routing with custom preferences. This will override any
23
- # template prefernces that are set, but a user can still customize their
23
+ # template preferences that are set, but a user can still customize their
24
24
  # preferences
25
25
  sig { returns(T.nilable(T::Boolean)) }
26
26
  attr_accessor :has_custom_routing
@@ -38,7 +38,7 @@ module Trycourier
38
38
  # The default channels to send to this tenant when has_custom_routing is enabled
39
39
  custom_routing: nil,
40
40
  # Override channel routing with custom preferences. This will override any
41
- # template prefernces that are set, but a user can still customize their
41
+ # template preferences that are set, but a user can still customize their
42
42
  # preferences
43
43
  has_custom_routing: nil
44
44
  )
@@ -13,6 +13,8 @@ module Trycourier
13
13
 
14
14
  AudienceFilter = Trycourier::Models::AudienceFilter
15
15
 
16
+ AudienceFilterConfig = Trycourier::Models::AudienceFilterConfig
17
+
16
18
  AudienceListMembersParams = Trycourier::Models::AudienceListMembersParams
17
19
 
18
20
  AudienceListParams = Trycourier::Models::AudienceListParams
@@ -129,8 +131,6 @@ module Trycourier
129
131
 
130
132
  Expo = Trycourier::Models::Expo
131
133
 
132
- Filter = Trycourier::Models::Filter
133
-
134
134
  FilterConfig = Trycourier::Models::FilterConfig
135
135
 
136
136
  Icons = Trycourier::Models::Icons
@@ -191,8 +191,6 @@ module Trycourier
191
191
 
192
192
  MultipleTokens = Trycourier::Models::MultipleTokens
193
193
 
194
- NestedFilterConfig = Trycourier::Models::NestedFilterConfig
195
-
196
194
  NotificationGetContent = Trycourier::Models::NotificationGetContent
197
195
 
198
196
  NotificationListParams = Trycourier::Models::NotificationListParams
@@ -257,8 +255,6 @@ module Trycourier
257
255
 
258
256
  SendToSlackUserID = Trycourier::Models::SendToSlackUserID
259
257
 
260
- SingleFilterConfig = Trycourier::Models::SingleFilterConfig
261
-
262
258
  Slack = Trycourier::Models::Slack
263
259
 
264
260
  SlackBaseProperties = Trycourier::Models::SlackBaseProperties
@@ -22,14 +22,10 @@ module Trycourier
22
22
  params(
23
23
  audience_id: String,
24
24
  description: T.nilable(String),
25
- filter:
26
- T.nilable(
27
- T.any(
28
- Trycourier::SingleFilterConfig::OrHash,
29
- Trycourier::NestedFilterConfig::OrHash
30
- )
31
- ),
25
+ filter: T.nilable(Trycourier::AudienceFilterConfig::OrHash),
32
26
  name: T.nilable(String),
27
+ operator:
28
+ T.nilable(Trycourier::AudienceUpdateParams::Operator::OrSymbol),
33
29
  request_options: Trycourier::RequestOptions::OrHash
34
30
  ).returns(Trycourier::Models::AudienceUpdateResponse)
35
31
  end
@@ -38,10 +34,12 @@ module Trycourier
38
34
  audience_id,
39
35
  # A description of the audience
40
36
  description: nil,
41
- # A single filter to use for filtering
37
+ # Filter configuration for audience membership containing an array of filter rules
42
38
  filter: nil,
43
39
  # The name of the audience
44
40
  name: nil,
41
+ # The logical operator (AND/OR) for the top-level filter
42
+ operator: nil,
45
43
  request_options: {}
46
44
  )
47
45
  end
@@ -23,7 +23,7 @@ module Trycourier
23
23
  message_id:,
24
24
  properties:,
25
25
  type:,
26
- # The user id associatiated with the track
26
+ # The user id associated with the track
27
27
  user_id: nil,
28
28
  request_options: {}
29
29
  )
@@ -71,7 +71,7 @@ module Trycourier
71
71
  user_id,
72
72
  # Path param: A unique identifier representing the list you wish to retrieve.
73
73
  list_id:,
74
- # Body param:
74
+ # Body param
75
75
  preferences: nil,
76
76
  request_options: {}
77
77
  )
@@ -13,11 +13,11 @@ module Trycourier
13
13
  ).returns(Trycourier::Models::Notifications::CheckUpdateResponse)
14
14
  end
15
15
  def update(
16
- # Path param:
16
+ # Path param
17
17
  submission_id,
18
- # Path param:
18
+ # Path param
19
19
  id:,
20
- # Body param:
20
+ # Body param
21
21
  checks:,
22
22
  request_options: {}
23
23
  )
@@ -20,18 +20,18 @@ module Trycourier
20
20
  ).void
21
21
  end
22
22
  def update(
23
- # Path param: Id fo the susbcription topic you want to have a default preference
23
+ # Path param: Id of the subscription topic you want to have a default preference
24
24
  # for.
25
25
  topic_id,
26
26
  # Path param: Id of the tenant to update the default preferences for.
27
27
  tenant_id:,
28
- # Body param:
28
+ # Body param
29
29
  status:,
30
30
  # Body param: The default channels to send to this tenant when has_custom_routing
31
31
  # is enabled
32
32
  custom_routing: nil,
33
33
  # Body param: Override channel routing with custom preferences. This will override
34
- # any template prefernces that are set, but a user can still customize their
34
+ # any template preferences that are set, but a user can still customize their
35
35
  # preferences
36
36
  has_custom_routing: nil,
37
37
  request_options: {}
@@ -47,7 +47,7 @@ module Trycourier
47
47
  ).void
48
48
  end
49
49
  def delete(
50
- # Id fo the susbcription topic you want to have a default preference for.
50
+ # Id of the subscription topic you want to have a default preference for.
51
51
  topic_id,
52
52
  # Id of the tenant to update the default preferences for.
53
53
  tenant_id:,
@@ -36,7 +36,7 @@ module Trycourier
36
36
  # Path param: The domain you want to retrieve translations for. Only `default` is
37
37
  # supported at the moment
38
38
  domain:,
39
- # Body param:
39
+ # Body param
40
40
  body:,
41
41
  request_options: {}
42
42
  )
@@ -62,7 +62,7 @@ module Trycourier
62
62
  # Path param: A unique identifier associated with the user whose preferences you
63
63
  # wish to retrieve.
64
64
  user_id:,
65
- # Body param:
65
+ # Body param
66
66
  topic:,
67
67
  # Query param: Update the preferences of a user for this specific tenant context.
68
68
  tenant_id: nil,
@@ -59,7 +59,7 @@ module Trycourier
59
59
  tenant_id,
60
60
  # Path param: Id of the user to be added to the supplied tenant.
61
61
  user_id:,
62
- # Body param:
62
+ # Body param
63
63
  profile: nil,
64
64
  request_options: {}
65
65
  )
@@ -36,7 +36,7 @@ module Trycourier
36
36
  token,
37
37
  # Path param: The user's ID. This can be any uniquely identifiable string.
38
38
  user_id:,
39
- # Body param:
39
+ # Body param
40
40
  patch:,
41
41
  request_options: {}
42
42
  )
@@ -109,7 +109,7 @@ module Trycourier
109
109
  user_id:,
110
110
  # Body param: Full body of the token. Must match token in URL path parameter.
111
111
  body_token:,
112
- # Body param:
112
+ # Body param
113
113
  provider_key:,
114
114
  # Body param: Information about the device the token came from.
115
115
  device: nil,
@@ -5,9 +5,10 @@ module Trycourier
5
5
  id: String,
6
6
  created_at: String,
7
7
  description: String,
8
- filter: Trycourier::Models::filter,
9
8
  name: String,
10
- updated_at: String
9
+ updated_at: String,
10
+ filter: Trycourier::AudienceFilterConfig?,
11
+ operator: Trycourier::Models::Audience::operator
11
12
  }
12
13
 
13
14
  class Audience < Trycourier::Internal::Type::BaseModel
@@ -17,29 +18,48 @@ module Trycourier
17
18
 
18
19
  attr_accessor description: String
19
20
 
20
- attr_accessor filter: Trycourier::Models::filter
21
-
22
21
  attr_accessor name: String
23
22
 
24
23
  attr_accessor updated_at: String
25
24
 
25
+ attr_accessor filter: Trycourier::AudienceFilterConfig?
26
+
27
+ attr_reader operator: Trycourier::Models::Audience::operator?
28
+
29
+ def operator=: (
30
+ Trycourier::Models::Audience::operator
31
+ ) -> Trycourier::Models::Audience::operator
32
+
26
33
  def initialize: (
27
34
  id: String,
28
35
  created_at: String,
29
36
  description: String,
30
- filter: Trycourier::Models::filter,
31
37
  name: String,
32
- updated_at: String
38
+ updated_at: String,
39
+ ?filter: Trycourier::AudienceFilterConfig?,
40
+ ?operator: Trycourier::Models::Audience::operator
33
41
  ) -> void
34
42
 
35
43
  def to_hash: -> {
36
44
  id: String,
37
45
  created_at: String,
38
46
  description: String,
39
- filter: Trycourier::Models::filter,
40
47
  name: String,
41
- updated_at: String
48
+ updated_at: String,
49
+ filter: Trycourier::AudienceFilterConfig?,
50
+ operator: Trycourier::Models::Audience::operator
42
51
  }
52
+
53
+ type operator = :AND | :OR
54
+
55
+ module Operator
56
+ extend Trycourier::Internal::Type::Enum
57
+
58
+ AND: :AND
59
+ OR: :OR
60
+
61
+ def self?.values: -> ::Array[Trycourier::Models::Audience::operator]
62
+ end
43
63
  end
44
64
  end
45
65
  end
@@ -0,0 +1,13 @@
1
+ module Trycourier
2
+ module Models
3
+ type audience_filter_config = { filters: ::Array[Trycourier::FilterConfig] }
4
+
5
+ class AudienceFilterConfig < Trycourier::Internal::Type::BaseModel
6
+ attr_accessor filters: ::Array[Trycourier::FilterConfig]
7
+
8
+ def initialize: (filters: ::Array[Trycourier::FilterConfig]) -> void
9
+
10
+ def to_hash: -> { filters: ::Array[Trycourier::FilterConfig] }
11
+ end
12
+ end
13
+ end
@@ -3,8 +3,9 @@ module Trycourier
3
3
  type audience_update_params =
4
4
  {
5
5
  description: String?,
6
- filter: Trycourier::Models::filter?,
7
- name: String?
6
+ filter: Trycourier::AudienceFilterConfig?,
7
+ name: String?,
8
+ operator: Trycourier::Models::AudienceUpdateParams::operator?
8
9
  }
9
10
  & Trycourier::Internal::Type::request_parameters
10
11
 
@@ -14,23 +15,38 @@ module Trycourier
14
15
 
15
16
  attr_accessor description: String?
16
17
 
17
- attr_accessor filter: Trycourier::Models::filter?
18
+ attr_accessor filter: Trycourier::AudienceFilterConfig?
18
19
 
19
20
  attr_accessor name: String?
20
21
 
22
+ attr_accessor operator: Trycourier::Models::AudienceUpdateParams::operator?
23
+
21
24
  def initialize: (
22
25
  ?description: String?,
23
- ?filter: Trycourier::Models::filter?,
26
+ ?filter: Trycourier::AudienceFilterConfig?,
24
27
  ?name: String?,
28
+ ?operator: Trycourier::Models::AudienceUpdateParams::operator?,
25
29
  ?request_options: Trycourier::request_opts
26
30
  ) -> void
27
31
 
28
32
  def to_hash: -> {
29
33
  description: String?,
30
- filter: Trycourier::Models::filter?,
34
+ filter: Trycourier::AudienceFilterConfig?,
31
35
  name: String?,
36
+ operator: Trycourier::Models::AudienceUpdateParams::operator?,
32
37
  request_options: Trycourier::RequestOptions
33
38
  }
39
+
40
+ type operator = :AND | :OR
41
+
42
+ module Operator
43
+ extend Trycourier::Internal::Type::Enum
44
+
45
+ AND: :AND
46
+ OR: :OR
47
+
48
+ def self?.values: -> ::Array[Trycourier::Models::AudienceUpdateParams::operator]
49
+ end
34
50
  end
35
51
  end
36
52
  end
@@ -3,7 +3,7 @@ module Trycourier
3
3
  type elemental_channel_node = { channel: String, raw: ::Hash[Symbol, top]? }
4
4
 
5
5
  class ElementalChannelNode < Trycourier::Models::ElementalBaseNode
6
- def channel: -> String
6
+ def channel: -> String?
7
7
 
8
8
  def channel=: (String _) -> String
9
9
 
@@ -11,7 +11,7 @@ module Trycourier
11
11
 
12
12
  def raw=: (::Hash[Symbol, top]? _) -> ::Hash[Symbol, top]?
13
13
 
14
- def initialize: (channel: String, ?raw: ::Hash[Symbol, top]?) -> void
14
+ def initialize: (?channel: String, ?raw: ::Hash[Symbol, top]?) -> void
15
15
 
16
16
  def to_hash: -> { channel: String, raw: ::Hash[Symbol, top]? }
17
17
  end