ark-email 0.5.2 → 0.7.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 (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +3 -3
  4. data/lib/ark_email/models/email_send_batch_params.rb +31 -7
  5. data/lib/ark_email/models/email_send_params.rb +46 -27
  6. data/lib/ark_email/models/email_send_raw_params.rb +9 -1
  7. data/lib/ark_email/models/suppression_bulk_create_params.rb +4 -2
  8. data/lib/ark_email/models/suppression_create_params.rb +3 -3
  9. data/lib/ark_email/models/tracking_create_params.rb +12 -12
  10. data/lib/ark_email/models/tracking_update_params.rb +12 -12
  11. data/lib/ark_email/models/webhook_create_params.rb +26 -23
  12. data/lib/ark_email/models/webhook_update_params.rb +10 -10
  13. data/lib/ark_email/resources/emails.rb +15 -11
  14. data/lib/ark_email/resources/suppressions.rb +1 -1
  15. data/lib/ark_email/resources/tracking.rb +8 -8
  16. data/lib/ark_email/resources/webhooks.rb +10 -10
  17. data/lib/ark_email/version.rb +1 -1
  18. data/rbi/ark_email/models/email_send_batch_params.rbi +42 -19
  19. data/rbi/ark_email/models/email_send_params.rbi +71 -71
  20. data/rbi/ark_email/models/email_send_raw_params.rbi +8 -0
  21. data/rbi/ark_email/models/suppression_bulk_create_params.rbi +11 -7
  22. data/rbi/ark_email/models/suppression_create_params.rbi +5 -8
  23. data/rbi/ark_email/models/tracking_create_params.rbi +18 -27
  24. data/rbi/ark_email/models/tracking_update_params.rbi +20 -32
  25. data/rbi/ark_email/models/webhook_create_params.rbi +40 -36
  26. data/rbi/ark_email/models/webhook_update_params.rbi +15 -30
  27. data/rbi/ark_email/resources/emails.rbi +35 -19
  28. data/rbi/ark_email/resources/suppressions.rbi +2 -2
  29. data/rbi/ark_email/resources/tracking.rbi +15 -15
  30. data/rbi/ark_email/resources/webhooks.rbi +19 -17
  31. data/sig/ark_email/models/email_send_batch_params.rbs +16 -17
  32. data/sig/ark_email/models/email_send_params.rbs +36 -49
  33. data/sig/ark_email/models/email_send_raw_params.rbs +10 -1
  34. data/sig/ark_email/models/suppression_bulk_create_params.rbs +4 -6
  35. data/sig/ark_email/models/suppression_create_params.rbs +4 -6
  36. data/sig/ark_email/models/tracking_create_params.rbs +16 -22
  37. data/sig/ark_email/models/tracking_update_params.rbs +16 -24
  38. data/sig/ark_email/models/webhook_create_params.rbs +12 -16
  39. data/sig/ark_email/models/webhook_update_params.rbs +20 -30
  40. data/sig/ark_email/resources/emails.rbs +10 -8
  41. data/sig/ark_email/resources/suppressions.rbs +1 -1
  42. data/sig/ark_email/resources/tracking.rbs +8 -8
  43. data/sig/ark_email/resources/webhooks.rbs +8 -8
  44. metadata +2 -2
@@ -10,15 +10,15 @@ module ArkEmail
10
10
  #
11
11
  # @overload create(domain_id:, name:, ssl_enabled: nil, track_clicks: nil, track_opens: nil, request_options: {})
12
12
  #
13
- # @param domain_id [String] ID of the sending domain to attach this track domain to
13
+ # @param domain_id [Integer] ID of the sending domain to attach this track domain to
14
14
  #
15
15
  # @param name [String] Subdomain name (e.g., 'track' for track.yourdomain.com)
16
16
  #
17
- # @param ssl_enabled [Boolean] Enable SSL for tracking URLs (recommended)
17
+ # @param ssl_enabled [Boolean, nil] Enable SSL for tracking URLs (accepts null, defaults to true)
18
18
  #
19
- # @param track_clicks [Boolean] Enable click tracking
19
+ # @param track_clicks [Boolean, nil] Enable click tracking (accepts null, defaults to true)
20
20
  #
21
- # @param track_opens [Boolean] Enable open tracking (tracking pixel)
21
+ # @param track_opens [Boolean, nil] Enable open tracking (tracking pixel, accepts null, defaults to true)
22
22
  #
23
23
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
24
24
  #
@@ -69,13 +69,13 @@ module ArkEmail
69
69
  #
70
70
  # @param tracking_id [String] Track domain ID or UUID
71
71
  #
72
- # @param excluded_click_domains [String] Comma-separated list of domains to exclude from click tracking
72
+ # @param excluded_click_domains [String, nil] Comma-separated list of domains to exclude from click tracking (accepts null)
73
73
  #
74
- # @param ssl_enabled [Boolean] Enable or disable SSL for tracking URLs
74
+ # @param ssl_enabled [Boolean, nil] Enable or disable SSL for tracking URLs (accepts null)
75
75
  #
76
- # @param track_clicks [Boolean] Enable or disable click tracking
76
+ # @param track_clicks [Boolean, nil] Enable or disable click tracking (accepts null)
77
77
  #
78
- # @param track_opens [Boolean] Enable or disable open tracking
78
+ # @param track_opens [Boolean, nil] Enable or disable open tracking (accepts null)
79
79
  #
80
80
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
81
81
  #
@@ -19,17 +19,17 @@ module ArkEmail
19
19
  # - `MessageLoaded` - Recipient opened the email
20
20
  # - `DomainDNSError` - Domain DNS issue detected
21
21
  #
22
- # @overload create(events:, name:, url:, all_events: nil, enabled: nil, request_options: {})
23
- #
24
- # @param events [Array<Symbol, ArkEmail::Models::WebhookCreateParams::Event>] Events to subscribe to:
22
+ # @overload create(name:, url:, all_events: nil, enabled: nil, events: nil, request_options: {})
25
23
  #
26
24
  # @param name [String] Webhook name for identification
27
25
  #
28
26
  # @param url [String] HTTPS endpoint URL
29
27
  #
30
- # @param all_events [Boolean] Subscribe to all events (ignores events array)
28
+ # @param all_events [Boolean, nil] Subscribe to all events (ignores events array, accepts null)
29
+ #
30
+ # @param enabled [Boolean, nil] Whether the webhook is enabled (accepts null)
31
31
  #
32
- # @param enabled [Boolean]
32
+ # @param events [Array<Symbol, ArkEmail::Models::WebhookCreateParams::Event>, nil] Events to subscribe to (accepts null):
33
33
  #
34
34
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
35
35
  #
@@ -71,11 +71,11 @@ module ArkEmail
71
71
  # @overload update(webhook_id, all_events: nil, enabled: nil, events: nil, name: nil, url: nil, request_options: {})
72
72
  #
73
73
  # @param webhook_id [String]
74
- # @param all_events [Boolean]
75
- # @param enabled [Boolean]
76
- # @param events [Array<String>]
77
- # @param name [String]
78
- # @param url [String]
74
+ # @param all_events [Boolean, nil]
75
+ # @param enabled [Boolean, nil]
76
+ # @param events [Array<String>, nil]
77
+ # @param name [String, nil]
78
+ # @param url [String, nil]
79
79
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
80
80
  #
81
81
  # @return [ArkEmail::Models::WebhookUpdateResponse]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ArkEmail
4
- VERSION = "0.5.2"
4
+ VERSION = "0.7.0"
5
5
  end
@@ -70,33 +70,55 @@ module ArkEmail
70
70
  attr_accessor :to
71
71
 
72
72
  sig { returns(T.nilable(String)) }
73
- attr_reader :html
74
-
75
- sig { params(html: String).void }
76
- attr_writer :html
73
+ attr_accessor :html
74
+
75
+ # Custom key-value pairs attached to an email for webhook correlation.
76
+ #
77
+ # When you send an email with metadata, these key-value pairs are:
78
+ #
79
+ # - **Stored** with the message
80
+ # - **Returned** in all webhook event payloads (MessageSent, MessageBounced, etc.)
81
+ # - **Never visible** to email recipients
82
+ #
83
+ # This is useful for correlating webhook events with your internal systems (e.g.,
84
+ # user IDs, order IDs, campaign identifiers).
85
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
86
+ attr_accessor :metadata
77
87
 
78
88
  sig { returns(T.nilable(String)) }
79
- attr_reader :tag
80
-
81
- sig { params(tag: String).void }
82
- attr_writer :tag
89
+ attr_accessor :tag
83
90
 
84
91
  sig { returns(T.nilable(String)) }
85
- attr_reader :text
86
-
87
- sig { params(text: String).void }
88
- attr_writer :text
92
+ attr_accessor :text
89
93
 
90
94
  sig do
91
95
  params(
92
96
  subject: String,
93
97
  to: T::Array[String],
94
- html: String,
95
- tag: String,
96
- text: String
98
+ html: T.nilable(String),
99
+ metadata: T.nilable(T::Hash[Symbol, String]),
100
+ tag: T.nilable(String),
101
+ text: T.nilable(String)
97
102
  ).returns(T.attached_class)
98
103
  end
99
- def self.new(subject:, to:, html: nil, tag: nil, text: nil)
104
+ def self.new(
105
+ subject:,
106
+ to:,
107
+ html: nil,
108
+ # Custom key-value pairs attached to an email for webhook correlation.
109
+ #
110
+ # When you send an email with metadata, these key-value pairs are:
111
+ #
112
+ # - **Stored** with the message
113
+ # - **Returned** in all webhook event payloads (MessageSent, MessageBounced, etc.)
114
+ # - **Never visible** to email recipients
115
+ #
116
+ # This is useful for correlating webhook events with your internal systems (e.g.,
117
+ # user IDs, order IDs, campaign identifiers).
118
+ metadata: nil,
119
+ tag: nil,
120
+ text: nil
121
+ )
100
122
  end
101
123
 
102
124
  sig do
@@ -104,9 +126,10 @@ module ArkEmail
104
126
  {
105
127
  subject: String,
106
128
  to: T::Array[String],
107
- html: String,
108
- tag: String,
109
- text: String
129
+ html: T.nilable(String),
130
+ metadata: T.nilable(T::Hash[Symbol, String]),
131
+ tag: T.nilable(String),
132
+ text: T.nilable(String)
110
133
  }
111
134
  )
112
135
  end
@@ -31,69 +31,54 @@ module ArkEmail
31
31
  sig { returns(T::Array[String]) }
32
32
  attr_accessor :to
33
33
 
34
- # File attachments
34
+ # File attachments (accepts null)
35
35
  sig do
36
36
  returns(T.nilable(T::Array[ArkEmail::EmailSendParams::Attachment]))
37
37
  end
38
- attr_reader :attachments
38
+ attr_accessor :attachments
39
39
 
40
- sig do
41
- params(
42
- attachments: T::Array[ArkEmail::EmailSendParams::Attachment::OrHash]
43
- ).void
44
- end
45
- attr_writer :attachments
46
-
47
- # BCC recipients
40
+ # BCC recipients (accepts null)
48
41
  sig { returns(T.nilable(T::Array[String])) }
49
- attr_reader :bcc
50
-
51
- sig { params(bcc: T::Array[String]).void }
52
- attr_writer :bcc
42
+ attr_accessor :bcc
53
43
 
54
- # CC recipients
44
+ # CC recipients (accepts null)
55
45
  sig { returns(T.nilable(T::Array[String])) }
56
- attr_reader :cc
46
+ attr_accessor :cc
57
47
 
58
- sig { params(cc: T::Array[String]).void }
59
- attr_writer :cc
60
-
61
- # Custom email headers
48
+ # Custom email headers (accepts null)
62
49
  sig { returns(T.nilable(T::Hash[Symbol, String])) }
63
- attr_reader :headers
64
-
65
- sig { params(headers: T::Hash[Symbol, String]).void }
66
- attr_writer :headers
50
+ attr_accessor :headers
67
51
 
68
- # HTML body content. Maximum 5MB (5,242,880 characters). Combined with
69
- # attachments, the total message must not exceed 14MB.
52
+ # HTML body content (accepts null). Maximum 5MB (5,242,880 characters). Combined
53
+ # with attachments, the total message must not exceed 14MB.
70
54
  sig { returns(T.nilable(String)) }
71
- attr_reader :html
55
+ attr_accessor :html
72
56
 
73
- sig { params(html: String).void }
74
- attr_writer :html
57
+ # Custom key-value pairs attached to an email for webhook correlation.
58
+ #
59
+ # When you send an email with metadata, these key-value pairs are:
60
+ #
61
+ # - **Stored** with the message
62
+ # - **Returned** in all webhook event payloads (MessageSent, MessageBounced, etc.)
63
+ # - **Never visible** to email recipients
64
+ #
65
+ # This is useful for correlating webhook events with your internal systems (e.g.,
66
+ # user IDs, order IDs, campaign identifiers).
67
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
68
+ attr_accessor :metadata
75
69
 
76
- # Reply-to address
70
+ # Reply-to address (accepts null)
77
71
  sig { returns(T.nilable(String)) }
78
- attr_reader :reply_to
72
+ attr_accessor :reply_to
79
73
 
80
- sig { params(reply_to: String).void }
81
- attr_writer :reply_to
82
-
83
- # Tag for categorization and filtering
74
+ # Tag for categorization and filtering (accepts null)
84
75
  sig { returns(T.nilable(String)) }
85
- attr_reader :tag
86
-
87
- sig { params(tag: String).void }
88
- attr_writer :tag
76
+ attr_accessor :tag
89
77
 
90
- # Plain text body (auto-generated from HTML if not provided). Maximum 5MB
91
- # (5,242,880 characters).
78
+ # Plain text body (accepts null, auto-generated from HTML if not provided).
79
+ # Maximum 5MB (5,242,880 characters).
92
80
  sig { returns(T.nilable(String)) }
93
- attr_reader :text
94
-
95
- sig { params(text: String).void }
96
- attr_writer :text
81
+ attr_accessor :text
97
82
 
98
83
  sig { returns(T.nilable(String)) }
99
84
  attr_reader :idempotency_key
@@ -106,14 +91,16 @@ module ArkEmail
106
91
  from: String,
107
92
  subject: String,
108
93
  to: T::Array[String],
109
- attachments: T::Array[ArkEmail::EmailSendParams::Attachment::OrHash],
110
- bcc: T::Array[String],
111
- cc: T::Array[String],
112
- headers: T::Hash[Symbol, String],
113
- html: String,
114
- reply_to: String,
115
- tag: String,
116
- text: String,
94
+ attachments:
95
+ T.nilable(T::Array[ArkEmail::EmailSendParams::Attachment::OrHash]),
96
+ bcc: T.nilable(T::Array[String]),
97
+ cc: T.nilable(T::Array[String]),
98
+ headers: T.nilable(T::Hash[Symbol, String]),
99
+ html: T.nilable(String),
100
+ metadata: T.nilable(T::Hash[Symbol, String]),
101
+ reply_to: T.nilable(String),
102
+ tag: T.nilable(String),
103
+ text: T.nilable(String),
117
104
  idempotency_key: String,
118
105
  request_options: ArkEmail::RequestOptions::OrHash
119
106
  ).returns(T.attached_class)
@@ -133,23 +120,34 @@ module ArkEmail
133
120
  subject:,
134
121
  # Recipient email addresses (max 50)
135
122
  to:,
136
- # File attachments
123
+ # File attachments (accepts null)
137
124
  attachments: nil,
138
- # BCC recipients
125
+ # BCC recipients (accepts null)
139
126
  bcc: nil,
140
- # CC recipients
127
+ # CC recipients (accepts null)
141
128
  cc: nil,
142
- # Custom email headers
129
+ # Custom email headers (accepts null)
143
130
  headers: nil,
144
- # HTML body content. Maximum 5MB (5,242,880 characters). Combined with
145
- # attachments, the total message must not exceed 14MB.
131
+ # HTML body content (accepts null). Maximum 5MB (5,242,880 characters). Combined
132
+ # with attachments, the total message must not exceed 14MB.
146
133
  html: nil,
147
- # Reply-to address
134
+ # Custom key-value pairs attached to an email for webhook correlation.
135
+ #
136
+ # When you send an email with metadata, these key-value pairs are:
137
+ #
138
+ # - **Stored** with the message
139
+ # - **Returned** in all webhook event payloads (MessageSent, MessageBounced, etc.)
140
+ # - **Never visible** to email recipients
141
+ #
142
+ # This is useful for correlating webhook events with your internal systems (e.g.,
143
+ # user IDs, order IDs, campaign identifiers).
144
+ metadata: nil,
145
+ # Reply-to address (accepts null)
148
146
  reply_to: nil,
149
- # Tag for categorization and filtering
147
+ # Tag for categorization and filtering (accepts null)
150
148
  tag: nil,
151
- # Plain text body (auto-generated from HTML if not provided). Maximum 5MB
152
- # (5,242,880 characters).
149
+ # Plain text body (accepts null, auto-generated from HTML if not provided).
150
+ # Maximum 5MB (5,242,880 characters).
153
151
  text: nil,
154
152
  idempotency_key: nil,
155
153
  request_options: {}
@@ -162,14 +160,16 @@ module ArkEmail
162
160
  from: String,
163
161
  subject: String,
164
162
  to: T::Array[String],
165
- attachments: T::Array[ArkEmail::EmailSendParams::Attachment],
166
- bcc: T::Array[String],
167
- cc: T::Array[String],
168
- headers: T::Hash[Symbol, String],
169
- html: String,
170
- reply_to: String,
171
- tag: String,
172
- text: String,
163
+ attachments:
164
+ T.nilable(T::Array[ArkEmail::EmailSendParams::Attachment]),
165
+ bcc: T.nilable(T::Array[String]),
166
+ cc: T.nilable(T::Array[String]),
167
+ headers: T.nilable(T::Hash[Symbol, String]),
168
+ html: T.nilable(String),
169
+ metadata: T.nilable(T::Hash[Symbol, String]),
170
+ reply_to: T.nilable(String),
171
+ tag: T.nilable(String),
172
+ text: T.nilable(String),
173
173
  idempotency_key: String,
174
174
  request_options: ArkEmail::RequestOptions
175
175
  }
@@ -23,11 +23,16 @@ module ArkEmail
23
23
  sig { returns(T::Array[String]) }
24
24
  attr_accessor :rcpt_to
25
25
 
26
+ # Whether this is a bounce message (accepts null)
27
+ sig { returns(T.nilable(T::Boolean)) }
28
+ attr_accessor :bounce
29
+
26
30
  sig do
27
31
  params(
28
32
  data: String,
29
33
  mail_from: String,
30
34
  rcpt_to: T::Array[String],
35
+ bounce: T.nilable(T::Boolean),
31
36
  request_options: ArkEmail::RequestOptions::OrHash
32
37
  ).returns(T.attached_class)
33
38
  end
@@ -38,6 +43,8 @@ module ArkEmail
38
43
  mail_from:,
39
44
  # Envelope recipient addresses
40
45
  rcpt_to:,
46
+ # Whether this is a bounce message (accepts null)
47
+ bounce: nil,
41
48
  request_options: {}
42
49
  )
43
50
  end
@@ -48,6 +55,7 @@ module ArkEmail
48
55
  data: String,
49
56
  mail_from: String,
50
57
  rcpt_to: T::Array[String],
58
+ bounce: T.nilable(T::Boolean),
51
59
  request_options: ArkEmail::RequestOptions
52
60
  }
53
61
  )
@@ -55,19 +55,23 @@ module ArkEmail
55
55
  sig { returns(String) }
56
56
  attr_accessor :address
57
57
 
58
+ # Reason for suppression (accepts null)
58
59
  sig { returns(T.nilable(String)) }
59
- attr_reader :reason
60
-
61
- sig { params(reason: String).void }
62
- attr_writer :reason
60
+ attr_accessor :reason
63
61
 
64
62
  sig do
65
- params(address: String, reason: String).returns(T.attached_class)
63
+ params(address: String, reason: T.nilable(String)).returns(
64
+ T.attached_class
65
+ )
66
66
  end
67
- def self.new(address:, reason: nil)
67
+ def self.new(
68
+ address:,
69
+ # Reason for suppression (accepts null)
70
+ reason: nil
71
+ )
68
72
  end
69
73
 
70
- sig { override.returns({ address: String, reason: String }) }
74
+ sig { override.returns({ address: String, reason: T.nilable(String) }) }
71
75
  def to_hash
72
76
  end
73
77
  end
@@ -15,24 +15,21 @@ module ArkEmail
15
15
  sig { returns(String) }
16
16
  attr_accessor :address
17
17
 
18
- # Reason for suppression
18
+ # Reason for suppression (accepts null)
19
19
  sig { returns(T.nilable(String)) }
20
- attr_reader :reason
21
-
22
- sig { params(reason: String).void }
23
- attr_writer :reason
20
+ attr_accessor :reason
24
21
 
25
22
  sig do
26
23
  params(
27
24
  address: String,
28
- reason: String,
25
+ reason: T.nilable(String),
29
26
  request_options: ArkEmail::RequestOptions::OrHash
30
27
  ).returns(T.attached_class)
31
28
  end
32
29
  def self.new(
33
30
  # Email address to suppress
34
31
  address:,
35
- # Reason for suppression
32
+ # Reason for suppression (accepts null)
36
33
  reason: nil,
37
34
  request_options: {}
38
35
  )
@@ -42,7 +39,7 @@ module ArkEmail
42
39
  override.returns(
43
40
  {
44
41
  address: String,
45
- reason: String,
42
+ reason: T.nilable(String),
46
43
  request_options: ArkEmail::RequestOptions
47
44
  }
48
45
  )
@@ -12,41 +12,32 @@ module ArkEmail
12
12
  end
13
13
 
14
14
  # ID of the sending domain to attach this track domain to
15
- sig { returns(String) }
15
+ sig { returns(Integer) }
16
16
  attr_accessor :domain_id
17
17
 
18
18
  # Subdomain name (e.g., 'track' for track.yourdomain.com)
19
19
  sig { returns(String) }
20
20
  attr_accessor :name
21
21
 
22
- # Enable SSL for tracking URLs (recommended)
22
+ # Enable SSL for tracking URLs (accepts null, defaults to true)
23
23
  sig { returns(T.nilable(T::Boolean)) }
24
- attr_reader :ssl_enabled
25
-
26
- sig { params(ssl_enabled: T::Boolean).void }
27
- attr_writer :ssl_enabled
24
+ attr_accessor :ssl_enabled
28
25
 
29
- # Enable click tracking
26
+ # Enable click tracking (accepts null, defaults to true)
30
27
  sig { returns(T.nilable(T::Boolean)) }
31
- attr_reader :track_clicks
28
+ attr_accessor :track_clicks
32
29
 
33
- sig { params(track_clicks: T::Boolean).void }
34
- attr_writer :track_clicks
35
-
36
- # Enable open tracking (tracking pixel)
30
+ # Enable open tracking (tracking pixel, accepts null, defaults to true)
37
31
  sig { returns(T.nilable(T::Boolean)) }
38
- attr_reader :track_opens
39
-
40
- sig { params(track_opens: T::Boolean).void }
41
- attr_writer :track_opens
32
+ attr_accessor :track_opens
42
33
 
43
34
  sig do
44
35
  params(
45
- domain_id: String,
36
+ domain_id: Integer,
46
37
  name: String,
47
- ssl_enabled: T::Boolean,
48
- track_clicks: T::Boolean,
49
- track_opens: T::Boolean,
38
+ ssl_enabled: T.nilable(T::Boolean),
39
+ track_clicks: T.nilable(T::Boolean),
40
+ track_opens: T.nilable(T::Boolean),
50
41
  request_options: ArkEmail::RequestOptions::OrHash
51
42
  ).returns(T.attached_class)
52
43
  end
@@ -55,11 +46,11 @@ module ArkEmail
55
46
  domain_id:,
56
47
  # Subdomain name (e.g., 'track' for track.yourdomain.com)
57
48
  name:,
58
- # Enable SSL for tracking URLs (recommended)
49
+ # Enable SSL for tracking URLs (accepts null, defaults to true)
59
50
  ssl_enabled: nil,
60
- # Enable click tracking
51
+ # Enable click tracking (accepts null, defaults to true)
61
52
  track_clicks: nil,
62
- # Enable open tracking (tracking pixel)
53
+ # Enable open tracking (tracking pixel, accepts null, defaults to true)
63
54
  track_opens: nil,
64
55
  request_options: {}
65
56
  )
@@ -68,11 +59,11 @@ module ArkEmail
68
59
  sig do
69
60
  override.returns(
70
61
  {
71
- domain_id: String,
62
+ domain_id: Integer,
72
63
  name: String,
73
- ssl_enabled: T::Boolean,
74
- track_clicks: T::Boolean,
75
- track_opens: T::Boolean,
64
+ ssl_enabled: T.nilable(T::Boolean),
65
+ track_clicks: T.nilable(T::Boolean),
66
+ track_opens: T.nilable(T::Boolean),
76
67
  request_options: ArkEmail::RequestOptions
77
68
  }
78
69
  )
@@ -11,51 +11,39 @@ module ArkEmail
11
11
  T.any(ArkEmail::TrackingUpdateParams, ArkEmail::Internal::AnyHash)
12
12
  end
13
13
 
14
- # Comma-separated list of domains to exclude from click tracking
14
+ # Comma-separated list of domains to exclude from click tracking (accepts null)
15
15
  sig { returns(T.nilable(String)) }
16
- attr_reader :excluded_click_domains
16
+ attr_accessor :excluded_click_domains
17
17
 
18
- sig { params(excluded_click_domains: String).void }
19
- attr_writer :excluded_click_domains
20
-
21
- # Enable or disable SSL for tracking URLs
18
+ # Enable or disable SSL for tracking URLs (accepts null)
22
19
  sig { returns(T.nilable(T::Boolean)) }
23
- attr_reader :ssl_enabled
24
-
25
- sig { params(ssl_enabled: T::Boolean).void }
26
- attr_writer :ssl_enabled
20
+ attr_accessor :ssl_enabled
27
21
 
28
- # Enable or disable click tracking
22
+ # Enable or disable click tracking (accepts null)
29
23
  sig { returns(T.nilable(T::Boolean)) }
30
- attr_reader :track_clicks
24
+ attr_accessor :track_clicks
31
25
 
32
- sig { params(track_clicks: T::Boolean).void }
33
- attr_writer :track_clicks
34
-
35
- # Enable or disable open tracking
26
+ # Enable or disable open tracking (accepts null)
36
27
  sig { returns(T.nilable(T::Boolean)) }
37
- attr_reader :track_opens
38
-
39
- sig { params(track_opens: T::Boolean).void }
40
- attr_writer :track_opens
28
+ attr_accessor :track_opens
41
29
 
42
30
  sig do
43
31
  params(
44
- excluded_click_domains: String,
45
- ssl_enabled: T::Boolean,
46
- track_clicks: T::Boolean,
47
- track_opens: T::Boolean,
32
+ excluded_click_domains: T.nilable(String),
33
+ ssl_enabled: T.nilable(T::Boolean),
34
+ track_clicks: T.nilable(T::Boolean),
35
+ track_opens: T.nilable(T::Boolean),
48
36
  request_options: ArkEmail::RequestOptions::OrHash
49
37
  ).returns(T.attached_class)
50
38
  end
51
39
  def self.new(
52
- # Comma-separated list of domains to exclude from click tracking
40
+ # Comma-separated list of domains to exclude from click tracking (accepts null)
53
41
  excluded_click_domains: nil,
54
- # Enable or disable SSL for tracking URLs
42
+ # Enable or disable SSL for tracking URLs (accepts null)
55
43
  ssl_enabled: nil,
56
- # Enable or disable click tracking
44
+ # Enable or disable click tracking (accepts null)
57
45
  track_clicks: nil,
58
- # Enable or disable open tracking
46
+ # Enable or disable open tracking (accepts null)
59
47
  track_opens: nil,
60
48
  request_options: {}
61
49
  )
@@ -64,10 +52,10 @@ module ArkEmail
64
52
  sig do
65
53
  override.returns(
66
54
  {
67
- excluded_click_domains: String,
68
- ssl_enabled: T::Boolean,
69
- track_clicks: T::Boolean,
70
- track_opens: T::Boolean,
55
+ excluded_click_domains: T.nilable(String),
56
+ ssl_enabled: T.nilable(T::Boolean),
57
+ track_clicks: T.nilable(T::Boolean),
58
+ track_opens: T.nilable(T::Boolean),
71
59
  request_options: ArkEmail::RequestOptions
72
60
  }
73
61
  )