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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ab3fd5fdd91cecd2ffad82cae703dc8d9c5473efc077645329853a2065f6d67
4
- data.tar.gz: 7e7f140f8ef9a5a8f0accd73df700f12b3fddaf2bd28d7e9325c797231beba1e
3
+ metadata.gz: ddf19df44b85deecef1d6cbf6590336a3309035c29a4407967df568b5ac9ca19
4
+ data.tar.gz: d7048ca3b1397cd9c1ff148be90bb0bc24bcb691d543f511f8c94a7e9e6e3109
5
5
  SHA512:
6
- metadata.gz: 9f1136587d8764385067890cd6552cf7678f5005006c07388cc8dc4441e6fa95eaf0b4e30739545a5c9f3e56c9a6c10e854f1469d884b4d7ece6f117f2692d24
7
- data.tar.gz: 36544b79b5165b69642ac4dd91ed48777ae3142a601350ff8d09e0f1bbeaf92681abd262d170fae2824c121beff9ce17fcfe1466e2e9f65e67c3b571f4da82f4
6
+ metadata.gz: 1d9d815fed0a695d07f4fc015c0b05e9864dbbdbe7f905566032eef3f13eee959276aa7b4abe256eaa668b73c4b690f7e94e5cef31c8ad4bedef0bfeb0ef7ae0
7
+ data.tar.gz: 45de3d27d11501f0430b2f32ee215bea62af5884e1a3c2507a36d6e833b734e22d3f6b3cb2f9de3a208225adce8546f50087fa54e78fde260fcbf9a1c9381854
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.7.0 (2026-01-14)
4
+
5
+ Full Changelog: [v0.6.0...v0.7.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.6.0...v0.7.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** add metadata ([ce7e4f9](https://github.com/ArkHQ-io/ark-ruby/commit/ce7e4f902f732cd6cddd18d7efe81faddb6400c4))
10
+
11
+
12
+ ### Chores
13
+
14
+ * fix typo in descriptions ([56e8b92](https://github.com/ArkHQ-io/ark-ruby/commit/56e8b9247d89c53d9e522e5785f52be79b7abdd7))
15
+
16
+ ## 0.6.0 (2026-01-13)
17
+
18
+ Full Changelog: [v0.5.2...v0.6.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.5.2...v0.6.0)
19
+
20
+ ### Features
21
+
22
+ * **api:** manual updates ([d2ec147](https://github.com/ArkHQ-io/ark-ruby/commit/d2ec1479545bbc9000607cd6270798cfe6da5882))
23
+ * **api:** manual updates ([187b4cc](https://github.com/ArkHQ-io/ark-ruby/commit/187b4cc4ab952a33a00e82282249ebf48eb02c5a))
24
+
3
25
  ## 0.5.2 (2026-01-13)
4
26
 
5
27
  Full Changelog: [v0.5.1...v0.5.2](https://github.com/ArkHQ-io/ark-ruby/compare/v0.5.1...v0.5.2)
data/README.md CHANGED
@@ -8,8 +8,8 @@ It is generated with [Stainless](https://www.stainless.com/).
8
8
 
9
9
  Use the Ark MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
10
10
 
11
- [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=ark-email-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImFyay1lbWFpbC1tY3AiXX0)
12
- [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22ark-email-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22ark-email-mcp%22%5D%7D)
11
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=ark-email-mcp&config=eyJuYW1lIjoiYXJrLWVtYWlsLW1jcCIsInRyYW5zcG9ydCI6InNzZSIsInVybCI6Imh0dHBzOi8vYXJrLW1jcC5zdGxtY3AuY29tL3NzZSJ9)
12
+ [![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22ark-email-mcp%22%2C%22type%22%3A%22sse%22%2C%22url%22%3A%22https%3A%2F%2Fark-mcp.stlmcp.com%2Fsse%22%7D)
13
13
 
14
14
  > Note: You may need to set environment variables in your MCP client.
15
15
 
@@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application
26
26
  <!-- x-release-please-start-version -->
27
27
 
28
28
  ```ruby
29
- gem "ark-email", "~> 0.5.2"
29
+ gem "ark-email", "~> 0.7.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -46,24 +46,48 @@ module ArkEmail
46
46
  # @!attribute html
47
47
  #
48
48
  # @return [String, nil]
49
- optional :html, String
49
+ optional :html, String, nil?: true
50
+
51
+ # @!attribute metadata
52
+ # Custom key-value pairs attached to an email for webhook correlation.
53
+ #
54
+ # When you send an email with metadata, these key-value pairs are:
55
+ #
56
+ # - **Stored** with the message
57
+ # - **Returned** in all webhook event payloads (MessageSent, MessageBounced, etc.)
58
+ # - **Never visible** to email recipients
59
+ #
60
+ # This is useful for correlating webhook events with your internal systems (e.g.,
61
+ # user IDs, order IDs, campaign identifiers).
62
+ #
63
+ # @return [Hash{Symbol=>String}, nil]
64
+ optional :metadata, ArkEmail::Internal::Type::HashOf[String], nil?: true
50
65
 
51
66
  # @!attribute tag
52
67
  #
53
68
  # @return [String, nil]
54
- optional :tag, String
69
+ optional :tag, String, nil?: true
55
70
 
56
71
  # @!attribute text
57
72
  #
58
73
  # @return [String, nil]
59
- optional :text, String
74
+ optional :text, String, nil?: true
60
75
 
61
- # @!method initialize(subject:, to:, html: nil, tag: nil, text: nil)
76
+ # @!method initialize(subject:, to:, html: nil, metadata: nil, tag: nil, text: nil)
77
+ # Some parameter documentations has been truncated, see
78
+ # {ArkEmail::Models::EmailSendBatchParams::Email} for more details.
79
+ #
62
80
  # @param subject [String]
81
+ #
63
82
  # @param to [Array<String>]
64
- # @param html [String]
65
- # @param tag [String]
66
- # @param text [String]
83
+ #
84
+ # @param html [String, nil]
85
+ #
86
+ # @param metadata [Hash{Symbol=>String}, nil] Custom key-value pairs attached to an email for webhook correlation.
87
+ #
88
+ # @param tag [String, nil]
89
+ #
90
+ # @param text [String, nil]
67
91
  end
68
92
  end
69
93
  end
@@ -34,61 +34,78 @@ module ArkEmail
34
34
  required :to, ArkEmail::Internal::Type::ArrayOf[String]
35
35
 
36
36
  # @!attribute attachments
37
- # File attachments
37
+ # File attachments (accepts null)
38
38
  #
39
39
  # @return [Array<ArkEmail::Models::EmailSendParams::Attachment>, nil]
40
- optional :attachments, -> { ArkEmail::Internal::Type::ArrayOf[ArkEmail::EmailSendParams::Attachment] }
40
+ optional :attachments,
41
+ -> { ArkEmail::Internal::Type::ArrayOf[ArkEmail::EmailSendParams::Attachment] },
42
+ nil?: true
41
43
 
42
44
  # @!attribute bcc
43
- # BCC recipients
45
+ # BCC recipients (accepts null)
44
46
  #
45
47
  # @return [Array<String>, nil]
46
- optional :bcc, ArkEmail::Internal::Type::ArrayOf[String]
48
+ optional :bcc, ArkEmail::Internal::Type::ArrayOf[String], nil?: true
47
49
 
48
50
  # @!attribute cc
49
- # CC recipients
51
+ # CC recipients (accepts null)
50
52
  #
51
53
  # @return [Array<String>, nil]
52
- optional :cc, ArkEmail::Internal::Type::ArrayOf[String]
54
+ optional :cc, ArkEmail::Internal::Type::ArrayOf[String], nil?: true
53
55
 
54
56
  # @!attribute headers
55
- # Custom email headers
57
+ # Custom email headers (accepts null)
56
58
  #
57
59
  # @return [Hash{Symbol=>String}, nil]
58
- optional :headers, ArkEmail::Internal::Type::HashOf[String]
60
+ optional :headers, ArkEmail::Internal::Type::HashOf[String], nil?: true
59
61
 
60
62
  # @!attribute html
61
- # HTML body content. Maximum 5MB (5,242,880 characters). Combined with
62
- # attachments, the total message must not exceed 14MB.
63
+ # HTML body content (accepts null). Maximum 5MB (5,242,880 characters). Combined
64
+ # with attachments, the total message must not exceed 14MB.
63
65
  #
64
66
  # @return [String, nil]
65
- optional :html, String
67
+ optional :html, String, nil?: true
68
+
69
+ # @!attribute metadata
70
+ # Custom key-value pairs attached to an email for webhook correlation.
71
+ #
72
+ # When you send an email with metadata, these key-value pairs are:
73
+ #
74
+ # - **Stored** with the message
75
+ # - **Returned** in all webhook event payloads (MessageSent, MessageBounced, etc.)
76
+ # - **Never visible** to email recipients
77
+ #
78
+ # This is useful for correlating webhook events with your internal systems (e.g.,
79
+ # user IDs, order IDs, campaign identifiers).
80
+ #
81
+ # @return [Hash{Symbol=>String}, nil]
82
+ optional :metadata, ArkEmail::Internal::Type::HashOf[String], nil?: true
66
83
 
67
84
  # @!attribute reply_to
68
- # Reply-to address
85
+ # Reply-to address (accepts null)
69
86
  #
70
87
  # @return [String, nil]
71
- optional :reply_to, String, api_name: :replyTo
88
+ optional :reply_to, String, api_name: :replyTo, nil?: true
72
89
 
73
90
  # @!attribute tag
74
- # Tag for categorization and filtering
91
+ # Tag for categorization and filtering (accepts null)
75
92
  #
76
93
  # @return [String, nil]
77
- optional :tag, String
94
+ optional :tag, String, nil?: true
78
95
 
79
96
  # @!attribute text
80
- # Plain text body (auto-generated from HTML if not provided). Maximum 5MB
81
- # (5,242,880 characters).
97
+ # Plain text body (accepts null, auto-generated from HTML if not provided).
98
+ # Maximum 5MB (5,242,880 characters).
82
99
  #
83
100
  # @return [String, nil]
84
- optional :text, String
101
+ optional :text, String, nil?: true
85
102
 
86
103
  # @!attribute idempotency_key
87
104
  #
88
105
  # @return [String, nil]
89
106
  optional :idempotency_key, String
90
107
 
91
- # @!method initialize(from:, subject:, to:, attachments: nil, bcc: nil, cc: nil, headers: nil, html: nil, reply_to: nil, tag: nil, text: nil, idempotency_key: nil, request_options: {})
108
+ # @!method initialize(from:, subject:, to:, attachments: nil, bcc: nil, cc: nil, headers: nil, html: nil, metadata: nil, reply_to: nil, tag: nil, text: nil, idempotency_key: nil, request_options: {})
92
109
  # Some parameter documentations has been truncated, see
93
110
  # {ArkEmail::Models::EmailSendParams} for more details.
94
111
  #
@@ -98,21 +115,23 @@ module ArkEmail
98
115
  #
99
116
  # @param to [Array<String>] Recipient email addresses (max 50)
100
117
  #
101
- # @param attachments [Array<ArkEmail::Models::EmailSendParams::Attachment>] File attachments
118
+ # @param attachments [Array<ArkEmail::Models::EmailSendParams::Attachment>, nil] File attachments (accepts null)
119
+ #
120
+ # @param bcc [Array<String>, nil] BCC recipients (accepts null)
102
121
  #
103
- # @param bcc [Array<String>] BCC recipients
122
+ # @param cc [Array<String>, nil] CC recipients (accepts null)
104
123
  #
105
- # @param cc [Array<String>] CC recipients
124
+ # @param headers [Hash{Symbol=>String}, nil] Custom email headers (accepts null)
106
125
  #
107
- # @param headers [Hash{Symbol=>String}] Custom email headers
126
+ # @param html [String, nil] HTML body content (accepts null).
108
127
  #
109
- # @param html [String] HTML body content.
128
+ # @param metadata [Hash{Symbol=>String}, nil] Custom key-value pairs attached to an email for webhook correlation.
110
129
  #
111
- # @param reply_to [String] Reply-to address
130
+ # @param reply_to [String, nil] Reply-to address (accepts null)
112
131
  #
113
- # @param tag [String] Tag for categorization and filtering
132
+ # @param tag [String, nil] Tag for categorization and filtering (accepts null)
114
133
  #
115
- # @param text [String] Plain text body (auto-generated from HTML if not provided).
134
+ # @param text [String, nil] Plain text body (accepts null, auto-generated from HTML if not provided).
116
135
  #
117
136
  # @param idempotency_key [String]
118
137
  #
@@ -25,13 +25,21 @@ module ArkEmail
25
25
  # @return [Array<String>]
26
26
  required :rcpt_to, ArkEmail::Internal::Type::ArrayOf[String], api_name: :rcptTo
27
27
 
28
- # @!method initialize(data:, mail_from:, rcpt_to:, request_options: {})
28
+ # @!attribute bounce
29
+ # Whether this is a bounce message (accepts null)
30
+ #
31
+ # @return [Boolean, nil]
32
+ optional :bounce, ArkEmail::Internal::Type::Boolean, nil?: true
33
+
34
+ # @!method initialize(data:, mail_from:, rcpt_to:, bounce: nil, request_options: {})
29
35
  # @param data [String] Base64-encoded RFC 2822 message
30
36
  #
31
37
  # @param mail_from [String] Envelope sender address
32
38
  #
33
39
  # @param rcpt_to [Array<String>] Envelope recipient addresses
34
40
  #
41
+ # @param bounce [Boolean, nil] Whether this is a bounce message (accepts null)
42
+ #
35
43
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
36
44
  end
37
45
  end
@@ -24,13 +24,15 @@ module ArkEmail
24
24
  required :address, String
25
25
 
26
26
  # @!attribute reason
27
+ # Reason for suppression (accepts null)
27
28
  #
28
29
  # @return [String, nil]
29
- optional :reason, String
30
+ optional :reason, String, nil?: true
30
31
 
31
32
  # @!method initialize(address:, reason: nil)
32
33
  # @param address [String]
33
- # @param reason [String]
34
+ #
35
+ # @param reason [String, nil] Reason for suppression (accepts null)
34
36
  end
35
37
  end
36
38
  end
@@ -14,15 +14,15 @@ module ArkEmail
14
14
  required :address, String
15
15
 
16
16
  # @!attribute reason
17
- # Reason for suppression
17
+ # Reason for suppression (accepts null)
18
18
  #
19
19
  # @return [String, nil]
20
- optional :reason, String
20
+ optional :reason, String, nil?: true
21
21
 
22
22
  # @!method initialize(address:, reason: nil, request_options: {})
23
23
  # @param address [String] Email address to suppress
24
24
  #
25
- # @param reason [String] Reason for suppression
25
+ # @param reason [String, nil] Reason for suppression (accepts null)
26
26
  #
27
27
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
28
28
  end
@@ -10,8 +10,8 @@ module ArkEmail
10
10
  # @!attribute domain_id
11
11
  # ID of the sending domain to attach this track domain to
12
12
  #
13
- # @return [String]
14
- required :domain_id, String, api_name: :domainId
13
+ # @return [Integer]
14
+ required :domain_id, Integer, api_name: :domainId
15
15
 
16
16
  # @!attribute name
17
17
  # Subdomain name (e.g., 'track' for track.yourdomain.com)
@@ -20,33 +20,33 @@ module ArkEmail
20
20
  required :name, String
21
21
 
22
22
  # @!attribute ssl_enabled
23
- # Enable SSL for tracking URLs (recommended)
23
+ # Enable SSL for tracking URLs (accepts null, defaults to true)
24
24
  #
25
25
  # @return [Boolean, nil]
26
- optional :ssl_enabled, ArkEmail::Internal::Type::Boolean, api_name: :sslEnabled
26
+ optional :ssl_enabled, ArkEmail::Internal::Type::Boolean, api_name: :sslEnabled, nil?: true
27
27
 
28
28
  # @!attribute track_clicks
29
- # Enable click tracking
29
+ # Enable click tracking (accepts null, defaults to true)
30
30
  #
31
31
  # @return [Boolean, nil]
32
- optional :track_clicks, ArkEmail::Internal::Type::Boolean, api_name: :trackClicks
32
+ optional :track_clicks, ArkEmail::Internal::Type::Boolean, api_name: :trackClicks, nil?: true
33
33
 
34
34
  # @!attribute track_opens
35
- # Enable open tracking (tracking pixel)
35
+ # Enable open tracking (tracking pixel, accepts null, defaults to true)
36
36
  #
37
37
  # @return [Boolean, nil]
38
- optional :track_opens, ArkEmail::Internal::Type::Boolean, api_name: :trackOpens
38
+ optional :track_opens, ArkEmail::Internal::Type::Boolean, api_name: :trackOpens, nil?: true
39
39
 
40
40
  # @!method initialize(domain_id:, name:, ssl_enabled: nil, track_clicks: nil, track_opens: nil, request_options: {})
41
- # @param domain_id [String] ID of the sending domain to attach this track domain to
41
+ # @param domain_id [Integer] ID of the sending domain to attach this track domain to
42
42
  #
43
43
  # @param name [String] Subdomain name (e.g., 'track' for track.yourdomain.com)
44
44
  #
45
- # @param ssl_enabled [Boolean] Enable SSL for tracking URLs (recommended)
45
+ # @param ssl_enabled [Boolean, nil] Enable SSL for tracking URLs (accepts null, defaults to true)
46
46
  #
47
- # @param track_clicks [Boolean] Enable click tracking
47
+ # @param track_clicks [Boolean, nil] Enable click tracking (accepts null, defaults to true)
48
48
  #
49
- # @param track_opens [Boolean] Enable open tracking (tracking pixel)
49
+ # @param track_opens [Boolean, nil] Enable open tracking (tracking pixel, accepts null, defaults to true)
50
50
  #
51
51
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
52
52
  end
@@ -8,37 +8,37 @@ module ArkEmail
8
8
  include ArkEmail::Internal::Type::RequestParameters
9
9
 
10
10
  # @!attribute excluded_click_domains
11
- # Comma-separated list of domains to exclude from click tracking
11
+ # Comma-separated list of domains to exclude from click tracking (accepts null)
12
12
  #
13
13
  # @return [String, nil]
14
- optional :excluded_click_domains, String, api_name: :excludedClickDomains
14
+ optional :excluded_click_domains, String, api_name: :excludedClickDomains, nil?: true
15
15
 
16
16
  # @!attribute ssl_enabled
17
- # Enable or disable SSL for tracking URLs
17
+ # Enable or disable SSL for tracking URLs (accepts null)
18
18
  #
19
19
  # @return [Boolean, nil]
20
- optional :ssl_enabled, ArkEmail::Internal::Type::Boolean, api_name: :sslEnabled
20
+ optional :ssl_enabled, ArkEmail::Internal::Type::Boolean, api_name: :sslEnabled, nil?: true
21
21
 
22
22
  # @!attribute track_clicks
23
- # Enable or disable click tracking
23
+ # Enable or disable click tracking (accepts null)
24
24
  #
25
25
  # @return [Boolean, nil]
26
- optional :track_clicks, ArkEmail::Internal::Type::Boolean, api_name: :trackClicks
26
+ optional :track_clicks, ArkEmail::Internal::Type::Boolean, api_name: :trackClicks, nil?: true
27
27
 
28
28
  # @!attribute track_opens
29
- # Enable or disable open tracking
29
+ # Enable or disable open tracking (accepts null)
30
30
  #
31
31
  # @return [Boolean, nil]
32
- optional :track_opens, ArkEmail::Internal::Type::Boolean, api_name: :trackOpens
32
+ optional :track_opens, ArkEmail::Internal::Type::Boolean, api_name: :trackOpens, nil?: true
33
33
 
34
34
  # @!method initialize(excluded_click_domains: nil, ssl_enabled: nil, track_clicks: nil, track_opens: nil, request_options: {})
35
- # @param excluded_click_domains [String] Comma-separated list of domains to exclude from click tracking
35
+ # @param excluded_click_domains [String, nil] Comma-separated list of domains to exclude from click tracking (accepts null)
36
36
  #
37
- # @param ssl_enabled [Boolean] Enable or disable SSL for tracking URLs
37
+ # @param ssl_enabled [Boolean, nil] Enable or disable SSL for tracking URLs (accepts null)
38
38
  #
39
- # @param track_clicks [Boolean] Enable or disable click tracking
39
+ # @param track_clicks [Boolean, nil] Enable or disable click tracking (accepts null)
40
40
  #
41
- # @param track_opens [Boolean] Enable or disable open tracking
41
+ # @param track_opens [Boolean, nil] Enable or disable open tracking (accepts null)
42
42
  #
43
43
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
44
44
  end
@@ -7,21 +7,6 @@ module ArkEmail
7
7
  extend ArkEmail::Internal::Type::RequestParameters::Converter
8
8
  include ArkEmail::Internal::Type::RequestParameters
9
9
 
10
- # @!attribute events
11
- # Events to subscribe to:
12
- #
13
- # - `MessageSent` - Email successfully delivered to recipient's server
14
- # - `MessageDelayed` - Temporary delivery failure, will retry
15
- # - `MessageDeliveryFailed` - Permanent delivery failure
16
- # - `MessageHeld` - Email held for manual review
17
- # - `MessageBounced` - Email bounced back
18
- # - `MessageLinkClicked` - Recipient clicked a tracked link
19
- # - `MessageLoaded` - Recipient opened the email (tracking pixel loaded)
20
- # - `DomainDNSError` - DNS configuration issue detected
21
- #
22
- # @return [Array<Symbol, ArkEmail::Models::WebhookCreateParams::Event>]
23
- required :events, -> { ArkEmail::Internal::Type::ArrayOf[enum: ArkEmail::WebhookCreateParams::Event] }
24
-
25
10
  # @!attribute name
26
11
  # Webhook name for identification
27
12
  #
@@ -35,29 +20,47 @@ module ArkEmail
35
20
  required :url, String
36
21
 
37
22
  # @!attribute all_events
38
- # Subscribe to all events (ignores events array)
23
+ # Subscribe to all events (ignores events array, accepts null)
39
24
  #
40
25
  # @return [Boolean, nil]
41
- optional :all_events, ArkEmail::Internal::Type::Boolean, api_name: :allEvents
26
+ optional :all_events, ArkEmail::Internal::Type::Boolean, api_name: :allEvents, nil?: true
42
27
 
43
28
  # @!attribute enabled
29
+ # Whether the webhook is enabled (accepts null)
44
30
  #
45
31
  # @return [Boolean, nil]
46
- optional :enabled, ArkEmail::Internal::Type::Boolean
32
+ optional :enabled, ArkEmail::Internal::Type::Boolean, nil?: true
33
+
34
+ # @!attribute events
35
+ # Events to subscribe to (accepts null):
36
+ #
37
+ # - `MessageSent` - Email successfully delivered to recipient's server
38
+ # - `MessageDelayed` - Temporary delivery failure, will retry
39
+ # - `MessageDeliveryFailed` - Permanent delivery failure
40
+ # - `MessageHeld` - Email held for manual review
41
+ # - `MessageBounced` - Email bounced back
42
+ # - `MessageLinkClicked` - Recipient clicked a tracked link
43
+ # - `MessageLoaded` - Recipient opened the email (tracking pixel loaded)
44
+ # - `DomainDNSError` - DNS configuration issue detected
45
+ #
46
+ # @return [Array<Symbol, ArkEmail::Models::WebhookCreateParams::Event>, nil]
47
+ optional :events,
48
+ -> { ArkEmail::Internal::Type::ArrayOf[enum: ArkEmail::WebhookCreateParams::Event] },
49
+ nil?: true
47
50
 
48
- # @!method initialize(events:, name:, url:, all_events: nil, enabled: nil, request_options: {})
51
+ # @!method initialize(name:, url:, all_events: nil, enabled: nil, events: nil, request_options: {})
49
52
  # Some parameter documentations has been truncated, see
50
53
  # {ArkEmail::Models::WebhookCreateParams} for more details.
51
54
  #
52
- # @param events [Array<Symbol, ArkEmail::Models::WebhookCreateParams::Event>] Events to subscribe to:
53
- #
54
55
  # @param name [String] Webhook name for identification
55
56
  #
56
57
  # @param url [String] HTTPS endpoint URL
57
58
  #
58
- # @param all_events [Boolean] Subscribe to all events (ignores events array)
59
+ # @param all_events [Boolean, nil] Subscribe to all events (ignores events array, accepts null)
60
+ #
61
+ # @param enabled [Boolean, nil] Whether the webhook is enabled (accepts null)
59
62
  #
60
- # @param enabled [Boolean]
63
+ # @param events [Array<Symbol, ArkEmail::Models::WebhookCreateParams::Event>, nil] Events to subscribe to (accepts null):
61
64
  #
62
65
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
63
66
 
@@ -10,34 +10,34 @@ module ArkEmail
10
10
  # @!attribute all_events
11
11
  #
12
12
  # @return [Boolean, nil]
13
- optional :all_events, ArkEmail::Internal::Type::Boolean, api_name: :allEvents
13
+ optional :all_events, ArkEmail::Internal::Type::Boolean, api_name: :allEvents, nil?: true
14
14
 
15
15
  # @!attribute enabled
16
16
  #
17
17
  # @return [Boolean, nil]
18
- optional :enabled, ArkEmail::Internal::Type::Boolean
18
+ optional :enabled, ArkEmail::Internal::Type::Boolean, nil?: true
19
19
 
20
20
  # @!attribute events
21
21
  #
22
22
  # @return [Array<String>, nil]
23
- optional :events, ArkEmail::Internal::Type::ArrayOf[String]
23
+ optional :events, ArkEmail::Internal::Type::ArrayOf[String], nil?: true
24
24
 
25
25
  # @!attribute name
26
26
  #
27
27
  # @return [String, nil]
28
- optional :name, String
28
+ optional :name, String, nil?: true
29
29
 
30
30
  # @!attribute url
31
31
  #
32
32
  # @return [String, nil]
33
- optional :url, String
33
+ optional :url, String, nil?: true
34
34
 
35
35
  # @!method initialize(all_events: nil, enabled: nil, events: nil, name: nil, url: nil, request_options: {})
36
- # @param all_events [Boolean]
37
- # @param enabled [Boolean]
38
- # @param events [Array<String>]
39
- # @param name [String]
40
- # @param url [String]
36
+ # @param all_events [Boolean, nil]
37
+ # @param enabled [Boolean, nil]
38
+ # @param events [Array<String>, nil]
39
+ # @param name [String, nil]
40
+ # @param url [String, nil]
41
41
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}]
42
42
  end
43
43
  end
@@ -142,7 +142,7 @@ module ArkEmail
142
142
  # - `GET /emails/{id}/deliveries` - View delivery attempts
143
143
  # - `POST /emails/{id}/retry` - Retry failed delivery
144
144
  #
145
- # @overload send_(from:, subject:, to:, attachments: nil, bcc: nil, cc: nil, headers: nil, html: nil, reply_to: nil, tag: nil, text: nil, idempotency_key: nil, request_options: {})
145
+ # @overload send_(from:, subject:, to:, attachments: nil, bcc: nil, cc: nil, headers: nil, html: nil, metadata: nil, reply_to: nil, tag: nil, text: nil, idempotency_key: nil, request_options: {})
146
146
  #
147
147
  # @param from [String] Body param: Sender email address. Must be from a verified domain.
148
148
  #
@@ -150,21 +150,23 @@ module ArkEmail
150
150
  #
151
151
  # @param to [Array<String>] Body param: Recipient email addresses (max 50)
152
152
  #
153
- # @param attachments [Array<ArkEmail::Models::EmailSendParams::Attachment>] Body param: File attachments
153
+ # @param attachments [Array<ArkEmail::Models::EmailSendParams::Attachment>, nil] Body param: File attachments (accepts null)
154
154
  #
155
- # @param bcc [Array<String>] Body param: BCC recipients
155
+ # @param bcc [Array<String>, nil] Body param: BCC recipients (accepts null)
156
156
  #
157
- # @param cc [Array<String>] Body param: CC recipients
157
+ # @param cc [Array<String>, nil] Body param: CC recipients (accepts null)
158
158
  #
159
- # @param headers [Hash{Symbol=>String}] Body param: Custom email headers
159
+ # @param headers [Hash{Symbol=>String}, nil] Body param: Custom email headers (accepts null)
160
160
  #
161
- # @param html [String] Body param: HTML body content.
161
+ # @param html [String, nil] Body param: HTML body content (accepts null).
162
162
  #
163
- # @param reply_to [String] Body param: Reply-to address
163
+ # @param metadata [Hash{Symbol=>String}, nil] Body param: Custom key-value pairs attached to an email for webhook correlation.
164
164
  #
165
- # @param tag [String] Body param: Tag for categorization and filtering
165
+ # @param reply_to [String, nil] Body param: Reply-to address (accepts null)
166
166
  #
167
- # @param text [String] Body param: Plain text body (auto-generated from HTML if not provided).
167
+ # @param tag [String, nil] Body param: Tag for categorization and filtering (accepts null)
168
+ #
169
+ # @param text [String, nil] Body param: Plain text body (accepts null, auto-generated from HTML if not provi
168
170
  #
169
171
  # @param idempotency_key [String] Header param: Unique key for idempotent requests. If a request with this key was
170
172
  #
@@ -199,7 +201,7 @@ module ArkEmail
199
201
  #
200
202
  # @overload send_batch(emails:, from:, idempotency_key: nil, request_options: {})
201
203
  #
202
- # @param emails [Array<ArkEmail::Models::EmailSendBatchParams::Email>] Body param:
204
+ # @param emails [Array<ArkEmail::Models::EmailSendBatchParams::Email>] Body param
203
205
  #
204
206
  # @param from [String] Body param: Sender email for all messages
205
207
  #
@@ -228,7 +230,7 @@ module ArkEmail
228
230
  #
229
231
  # The `data` field should contain the base64-encoded raw email.
230
232
  #
231
- # @overload send_raw(data:, mail_from:, rcpt_to:, request_options: {})
233
+ # @overload send_raw(data:, mail_from:, rcpt_to:, bounce: nil, request_options: {})
232
234
  #
233
235
  # @param data [String] Base64-encoded RFC 2822 message
234
236
  #
@@ -236,6 +238,8 @@ module ArkEmail
236
238
  #
237
239
  # @param rcpt_to [Array<String>] Envelope recipient addresses
238
240
  #
241
+ # @param bounce [Boolean, nil] Whether this is a bounce message (accepts null)
242
+ #
239
243
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
240
244
  #
241
245
  # @return [ArkEmail::Models::EmailSendRawResponse]
@@ -10,7 +10,7 @@ module ArkEmail
10
10
  #
11
11
  # @param address [String] Email address to suppress
12
12
  #
13
- # @param reason [String] Reason for suppression
13
+ # @param reason [String, nil] Reason for suppression (accepts null)
14
14
  #
15
15
  # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil]
16
16
  #