ark-email 0.14.0 → 0.15.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +3 -3
  4. data/lib/ark_email/client.rb +4 -0
  5. data/lib/ark_email/models/dns_record.rb +49 -19
  6. data/lib/ark_email/models/domain_create_response.rb +117 -25
  7. data/lib/ark_email/models/domain_list_response.rb +12 -13
  8. data/lib/ark_email/models/domain_retrieve_response.rb +117 -25
  9. data/lib/ark_email/models/domain_verify_response.rb +117 -25
  10. data/lib/ark_email/models/track_domain.rb +6 -2
  11. data/lib/ark_email/models/usage_retrieve_params.rb +14 -0
  12. data/lib/ark_email/models/usage_retrieve_response.rb +270 -0
  13. data/lib/ark_email/models/webhook_create_params.rb +0 -2
  14. data/lib/ark_email/models/webhook_create_response.rb +0 -2
  15. data/lib/ark_email/models/webhook_list_deliveries_params.rb +0 -2
  16. data/lib/ark_email/models/webhook_list_deliveries_response.rb +0 -2
  17. data/lib/ark_email/models/webhook_retrieve_delivery_response.rb +0 -2
  18. data/lib/ark_email/models/webhook_retrieve_response.rb +0 -2
  19. data/lib/ark_email/models/webhook_test_params.rb +0 -2
  20. data/lib/ark_email/models/webhook_update_response.rb +0 -2
  21. data/lib/ark_email/models.rb +2 -0
  22. data/lib/ark_email/resources/usage.rb +51 -0
  23. data/lib/ark_email/version.rb +1 -1
  24. data/lib/ark_email.rb +3 -0
  25. data/rbi/ark_email/client.rbi +3 -0
  26. data/rbi/ark_email/models/dns_record.rbi +57 -22
  27. data/rbi/ark_email/models/domain_create_response.rbi +189 -28
  28. data/rbi/ark_email/models/domain_list_response.rbi +13 -19
  29. data/rbi/ark_email/models/domain_retrieve_response.rbi +191 -28
  30. data/rbi/ark_email/models/domain_verify_response.rbi +189 -28
  31. data/rbi/ark_email/models/track_domain.rbi +4 -2
  32. data/rbi/ark_email/models/usage_retrieve_params.rbi +27 -0
  33. data/rbi/ark_email/models/usage_retrieve_response.rbi +511 -0
  34. data/rbi/ark_email/models/webhook_create_params.rbi +0 -10
  35. data/rbi/ark_email/models/webhook_create_response.rbi +0 -10
  36. data/rbi/ark_email/models/webhook_list_deliveries_params.rbi +0 -10
  37. data/rbi/ark_email/models/webhook_list_deliveries_response.rbi +0 -10
  38. data/rbi/ark_email/models/webhook_retrieve_delivery_response.rbi +0 -10
  39. data/rbi/ark_email/models/webhook_retrieve_response.rbi +0 -10
  40. data/rbi/ark_email/models/webhook_test_params.rbi +0 -10
  41. data/rbi/ark_email/models/webhook_update_response.rbi +0 -10
  42. data/rbi/ark_email/models.rbi +2 -0
  43. data/rbi/ark_email/resources/usage.rbi +40 -0
  44. data/sig/ark_email/client.rbs +2 -0
  45. data/sig/ark_email/models/dns_record.rbs +5 -0
  46. data/sig/ark_email/models/domain_create_response.rbs +27 -20
  47. data/sig/ark_email/models/domain_list_response.rbs +4 -16
  48. data/sig/ark_email/models/domain_retrieve_response.rbs +27 -20
  49. data/sig/ark_email/models/domain_verify_response.rbs +27 -20
  50. data/sig/ark_email/models/usage_retrieve_params.rbs +15 -0
  51. data/sig/ark_email/models/usage_retrieve_response.rbs +212 -0
  52. data/sig/ark_email/models/webhook_create_params.rbs +0 -4
  53. data/sig/ark_email/models/webhook_create_response.rbs +0 -4
  54. data/sig/ark_email/models/webhook_list_deliveries_params.rbs +0 -4
  55. data/sig/ark_email/models/webhook_list_deliveries_response.rbs +0 -4
  56. data/sig/ark_email/models/webhook_retrieve_delivery_response.rbs +0 -4
  57. data/sig/ark_email/models/webhook_retrieve_response.rbs +0 -4
  58. data/sig/ark_email/models/webhook_test_params.rbs +0 -4
  59. data/sig/ark_email/models/webhook_update_response.rbs +0 -4
  60. data/sig/ark_email/models.rbs +2 -0
  61. data/sig/ark_email/resources/usage.rbs +11 -0
  62. metadata +11 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ac63cc3ace8940ad2ecb1f1d70c585a7a18c45210c94df63bbb6b430c3a3b99
4
- data.tar.gz: a6c0ec440d80966702b9e0603b5c5831261b1d0fcb95ea819648be26621aa564
3
+ metadata.gz: 2ab2c267c0272df886fd6e21d8c157bf1534777bdf72da459141654a96e31866
4
+ data.tar.gz: 84150c3d0ec9b98e472fd7e76f584dd380122359adab410691ab95efb9beb887
5
5
  SHA512:
6
- metadata.gz: 461156e2cf732613233c7b14eac670447d14515584bfdd1184949109cddcef392565907d1242e5c0e12def831a4eb967ca3c4f533480f9f296c67c9097bd1ab4
7
- data.tar.gz: 00333d40915c51936ecddfd10d2d365eda6675a4f7d3aa480720daeec944f8e05c6e6020f4e569d6033e7df5c4f3c2784eb6a39bee2e7a202079bc53f146b54d
6
+ metadata.gz: 0400a57909216e295f59867461f74717a4815f8e2b3db006d5afe0625e6683c74281069c2db3e3888ce5c7acaccc9f6472a7c7f9952cc1fb3024eb1acf8bb226
7
+ data.tar.gz: 00aaabff41043bc684fcb450aff04f3367927068d6500fd8e3ff67d62b34bcfbd48cfa3f6b071ea1da24c0094d8198feadb06942e721eef441000769b0f209fb
data/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.15.0 (2026-01-29)
4
+
5
+ Full Changelog: [v0.14.0...v0.15.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.14.0...v0.15.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** add usage and SendLimit Headers ([82a3ef2](https://github.com/ArkHQ-io/ark-ruby/commit/82a3ef2e4e91a97d9194304c82c1fe3daa9c6d7b))
10
+ * **api:** api update ([5e6a325](https://github.com/ArkHQ-io/ark-ruby/commit/5e6a325e656a4708985e0f9b02adec7947ceff3d))
11
+ * **api:** domain list improvement ([c5dd0aa](https://github.com/ArkHQ-io/ark-ruby/commit/c5dd0aae60d7bd626b13c34dab6a502832fe50d7))
12
+
13
+
14
+ ### Bug Fixes
15
+
16
+ * **docs:** fix mcp installation instructions for remote servers ([c5e6779](https://github.com/ArkHQ-io/ark-ruby/commit/c5e677982f2b09306b5cff24e6bb1c563a121f3b))
17
+
3
18
  ## 0.14.0 (2026-01-25)
4
19
 
5
20
  Full Changelog: [v0.13.0...v0.14.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.13.0...v0.14.0)
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=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)
11
+ [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=ark-email-mcp&config=eyJuYW1lIjoiYXJrLWVtYWlsLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL2Fyay1tY3Auc3RsbWNwLmNvbSIsImhlYWRlcnMiOnsieC1hcmstYXBpLWtleSI6Ik15IEFQSSBLZXkifX0)
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%22http%22%2C%22url%22%3A%22https%3A%2F%2Fark-mcp.stlmcp.com%22%2C%22headers%22%3A%7B%22x-ark-api-key%22%3A%22My%20API%20Key%22%7D%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.14.0"
29
+ gem "ark-email", "~> 0.15.0"
30
30
  ```
31
31
 
32
32
  <!-- x-release-please-end -->
@@ -42,6 +42,9 @@ module ArkEmail
42
42
  # @return [ArkEmail::Resources::Logs]
43
43
  attr_reader :logs
44
44
 
45
+ # @return [ArkEmail::Resources::Usage]
46
+ attr_reader :usage
47
+
45
48
  # @api private
46
49
  #
47
50
  # @return [Hash{String=>String}]
@@ -101,6 +104,7 @@ module ArkEmail
101
104
  @webhooks = ArkEmail::Resources::Webhooks.new(client: self)
102
105
  @tracking = ArkEmail::Resources::Tracking.new(client: self)
103
106
  @logs = ArkEmail::Resources::Logs.new(client: self)
107
+ @usage = ArkEmail::Resources::Usage.new(client: self)
104
108
  end
105
109
  end
106
110
  end
@@ -3,48 +3,78 @@
3
3
  module ArkEmail
4
4
  module Models
5
5
  class DNSRecord < ArkEmail::Internal::Type::BaseModel
6
+ # @!attribute full_name
7
+ # The complete fully-qualified domain name (FQDN). Use this as a reference to
8
+ # verify the record is configured correctly.
9
+ #
10
+ # @return [String]
11
+ required :full_name, String, api_name: :fullName
12
+
6
13
  # @!attribute name
7
- # DNS record name (hostname)
14
+ # The relative hostname to enter in your DNS provider. Most DNS providers
15
+ # auto-append the zone name, so you only need to enter this relative part.
16
+ #
17
+ # - `"@"` means the apex/root of the zone (for root domains)
18
+ # - `"mail"` for a subdomain like `mail.example.com`
19
+ # - `"ark-xyz._domainkey.mail"` for DKIM on a subdomain
8
20
  #
9
21
  # @return [String]
10
22
  required :name, String
11
23
 
12
24
  # @!attribute type
13
- # DNS record type
25
+ # The DNS record type to create
14
26
  #
15
27
  # @return [Symbol, ArkEmail::Models::DNSRecord::Type]
16
28
  required :type, enum: -> { ArkEmail::DNSRecord::Type }
17
29
 
18
30
  # @!attribute value
19
- # DNS record value
31
+ # The value to set for the DNS record
20
32
  #
21
33
  # @return [String]
22
34
  required :value, String
23
35
 
24
36
  # @!attribute status
25
- # DNS verification status:
37
+ # Current verification status of this DNS record:
26
38
  #
27
- # - `OK` - Record is correctly configured
28
- # - `Missing` - Record not found in DNS
29
- # - `Invalid` - Record exists but has wrong value
30
- # - `null` - Not yet checked
39
+ # - `OK` - Record is correctly configured and verified
40
+ # - `Missing` - Record was not found in your DNS
41
+ # - `Invalid` - Record exists but has an incorrect value
42
+ # - `null` - Record has not been checked yet
31
43
  #
32
44
  # @return [Symbol, ArkEmail::Models::DNSRecord::Status, nil]
33
45
  optional :status, enum: -> { ArkEmail::DNSRecord::Status }, nil?: true
34
46
 
35
- # @!method initialize(name:, type:, value:, status: nil)
47
+ # @!method initialize(full_name:, name:, type:, value:, status: nil)
36
48
  # Some parameter documentations has been truncated, see
37
49
  # {ArkEmail::Models::DNSRecord} for more details.
38
50
  #
39
- # @param name [String] DNS record name (hostname)
51
+ # A DNS record that needs to be configured in your domain's DNS settings.
52
+ #
53
+ # The `name` field contains the relative hostname to enter in your DNS provider
54
+ # (which auto-appends the zone). The `fullName` field contains the complete
55
+ # fully-qualified domain name (FQDN) for reference.
56
+ #
57
+ # **Example for subdomain `mail.example.com`:**
58
+ #
59
+ # - `name`: `"mail"` (what you enter in DNS provider)
60
+ # - `fullName`: `"mail.example.com"` (the complete hostname)
61
+ #
62
+ # **Example for root domain `example.com`:**
63
+ #
64
+ # - `name`: `"@"` (DNS shorthand for apex/root)
65
+ # - `fullName`: `"example.com"`
66
+ #
67
+ # @param full_name [String] The complete fully-qualified domain name (FQDN).
68
+ #
69
+ # @param name [String] The relative hostname to enter in your DNS provider.
40
70
  #
41
- # @param type [Symbol, ArkEmail::Models::DNSRecord::Type] DNS record type
71
+ # @param type [Symbol, ArkEmail::Models::DNSRecord::Type] The DNS record type to create
42
72
  #
43
- # @param value [String] DNS record value
73
+ # @param value [String] The value to set for the DNS record
44
74
  #
45
- # @param status [Symbol, ArkEmail::Models::DNSRecord::Status, nil] DNS verification status:
75
+ # @param status [Symbol, ArkEmail::Models::DNSRecord::Status, nil] Current verification status of this DNS record:
46
76
 
47
- # DNS record type
77
+ # The DNS record type to create
48
78
  #
49
79
  # @see ArkEmail::Models::DNSRecord#type
50
80
  module Type
@@ -58,12 +88,12 @@ module ArkEmail
58
88
  # @return [Array<Symbol>]
59
89
  end
60
90
 
61
- # DNS verification status:
91
+ # Current verification status of this DNS record:
62
92
  #
63
- # - `OK` - Record is correctly configured
64
- # - `Missing` - Record not found in DNS
65
- # - `Invalid` - Record exists but has wrong value
66
- # - `null` - Not yet checked
93
+ # - `OK` - Record is correctly configured and verified
94
+ # - `Missing` - Record was not found in your DNS
95
+ # - `Invalid` - Record exists but has an incorrect value
96
+ # - `null` - Record has not been checked yet
67
97
  #
68
98
  # @see ArkEmail::Models::DNSRecord#status
69
99
  module Status
@@ -27,82 +27,174 @@ module ArkEmail
27
27
  # @see ArkEmail::Models::DomainCreateResponse#data
28
28
  class Data < ArkEmail::Internal::Type::BaseModel
29
29
  # @!attribute id
30
- # Domain ID
30
+ # Unique domain identifier
31
31
  #
32
- # @return [String]
33
- required :id, String
32
+ # @return [Integer]
33
+ required :id, Integer
34
34
 
35
35
  # @!attribute created_at
36
+ # Timestamp when the domain was added
36
37
  #
37
38
  # @return [Time]
38
39
  required :created_at, Time, api_name: :createdAt
39
40
 
40
41
  # @!attribute dns_records
42
+ # DNS records that must be added to your domain's DNS settings. Null if records
43
+ # are not yet generated.
44
+ #
45
+ # **Important:** The `name` field contains the relative hostname that you should
46
+ # enter in your DNS provider. Most DNS providers auto-append the zone name, so you
47
+ # only need to enter the relative part.
48
+ #
49
+ # For subdomains like `mail.example.com`, the zone is `example.com`, so:
50
+ #
51
+ # - SPF `name` would be `mail` (not `@`)
52
+ # - DKIM `name` would be `ark-xyz._domainkey.mail`
53
+ # - Return Path `name` would be `psrp.mail`
41
54
  #
42
- # @return [ArkEmail::Models::DomainCreateResponse::Data::DNSRecords]
55
+ # @return [ArkEmail::Models::DomainCreateResponse::Data::DNSRecords, nil]
43
56
  required :dns_records,
44
57
  -> { ArkEmail::Models::DomainCreateResponse::Data::DNSRecords },
45
- api_name: :dnsRecords
58
+ api_name: :dnsRecords,
59
+ nil?: true
46
60
 
47
61
  # @!attribute name
48
- # Domain name
62
+ # The domain name used for sending emails
49
63
  #
50
64
  # @return [String]
51
65
  required :name, String
52
66
 
53
67
  # @!attribute uuid
68
+ # UUID of the domain
54
69
  #
55
70
  # @return [String]
56
71
  required :uuid, String
57
72
 
58
73
  # @!attribute verified
59
- # Whether DNS is verified
74
+ # Whether all DNS records (SPF, DKIM, Return Path) are correctly configured.
75
+ # Domain must be verified before sending emails.
60
76
  #
61
77
  # @return [Boolean]
62
78
  required :verified, ArkEmail::Internal::Type::Boolean
63
79
 
64
80
  # @!attribute verified_at
65
- # When the domain was verified (null if not verified)
81
+ # Timestamp when the domain ownership was verified, or null if not yet verified
66
82
  #
67
83
  # @return [Time, nil]
68
84
  optional :verified_at, Time, api_name: :verifiedAt, nil?: true
69
85
 
70
86
  # @!method initialize(id:, created_at:, dns_records:, name:, uuid:, verified:, verified_at: nil)
71
- # @param id [String] Domain ID
87
+ # Some parameter documentations has been truncated, see
88
+ # {ArkEmail::Models::DomainCreateResponse::Data} for more details.
72
89
  #
73
- # @param created_at [Time]
90
+ # @param id [Integer] Unique domain identifier
74
91
  #
75
- # @param dns_records [ArkEmail::Models::DomainCreateResponse::Data::DNSRecords]
92
+ # @param created_at [Time] Timestamp when the domain was added
76
93
  #
77
- # @param name [String] Domain name
94
+ # @param dns_records [ArkEmail::Models::DomainCreateResponse::Data::DNSRecords, nil] DNS records that must be added to your domain's DNS settings. Null if records ar
78
95
  #
79
- # @param uuid [String]
96
+ # @param name [String] The domain name used for sending emails
80
97
  #
81
- # @param verified [Boolean] Whether DNS is verified
98
+ # @param uuid [String] UUID of the domain
82
99
  #
83
- # @param verified_at [Time, nil] When the domain was verified (null if not verified)
100
+ # @param verified [Boolean] Whether all DNS records (SPF, DKIM, Return Path) are correctly configured. Domai
101
+ #
102
+ # @param verified_at [Time, nil] Timestamp when the domain ownership was verified, or null if not yet verified
84
103
 
85
104
  # @see ArkEmail::Models::DomainCreateResponse::Data#dns_records
86
105
  class DNSRecords < ArkEmail::Internal::Type::BaseModel
87
106
  # @!attribute dkim
107
+ # A DNS record that needs to be configured in your domain's DNS settings.
108
+ #
109
+ # The `name` field contains the relative hostname to enter in your DNS provider
110
+ # (which auto-appends the zone). The `fullName` field contains the complete
111
+ # fully-qualified domain name (FQDN) for reference.
112
+ #
113
+ # **Example for subdomain `mail.example.com`:**
114
+ #
115
+ # - `name`: `"mail"` (what you enter in DNS provider)
116
+ # - `fullName`: `"mail.example.com"` (the complete hostname)
88
117
  #
89
- # @return [ArkEmail::Models::DNSRecord]
90
- required :dkim, -> { ArkEmail::DNSRecord }
118
+ # **Example for root domain `example.com`:**
119
+ #
120
+ # - `name`: `"@"` (DNS shorthand for apex/root)
121
+ # - `fullName`: `"example.com"`
122
+ #
123
+ # @return [ArkEmail::Models::DNSRecord, nil]
124
+ optional :dkim, -> { ArkEmail::DNSRecord }, nil?: true
91
125
 
92
126
  # @!attribute return_path
127
+ # A DNS record that needs to be configured in your domain's DNS settings.
128
+ #
129
+ # The `name` field contains the relative hostname to enter in your DNS provider
130
+ # (which auto-appends the zone). The `fullName` field contains the complete
131
+ # fully-qualified domain name (FQDN) for reference.
132
+ #
133
+ # **Example for subdomain `mail.example.com`:**
134
+ #
135
+ # - `name`: `"mail"` (what you enter in DNS provider)
136
+ # - `fullName`: `"mail.example.com"` (the complete hostname)
137
+ #
138
+ # **Example for root domain `example.com`:**
139
+ #
140
+ # - `name`: `"@"` (DNS shorthand for apex/root)
141
+ # - `fullName`: `"example.com"`
93
142
  #
94
- # @return [ArkEmail::Models::DNSRecord]
95
- required :return_path, -> { ArkEmail::DNSRecord }, api_name: :returnPath
143
+ # @return [ArkEmail::Models::DNSRecord, nil]
144
+ optional :return_path, -> { ArkEmail::DNSRecord }, api_name: :returnPath, nil?: true
96
145
 
97
146
  # @!attribute spf
147
+ # A DNS record that needs to be configured in your domain's DNS settings.
98
148
  #
99
- # @return [ArkEmail::Models::DNSRecord]
100
- required :spf, -> { ArkEmail::DNSRecord }
149
+ # The `name` field contains the relative hostname to enter in your DNS provider
150
+ # (which auto-appends the zone). The `fullName` field contains the complete
151
+ # fully-qualified domain name (FQDN) for reference.
152
+ #
153
+ # **Example for subdomain `mail.example.com`:**
154
+ #
155
+ # - `name`: `"mail"` (what you enter in DNS provider)
156
+ # - `fullName`: `"mail.example.com"` (the complete hostname)
157
+ #
158
+ # **Example for root domain `example.com`:**
159
+ #
160
+ # - `name`: `"@"` (DNS shorthand for apex/root)
161
+ # - `fullName`: `"example.com"`
162
+ #
163
+ # @return [ArkEmail::Models::DNSRecord, nil]
164
+ optional :spf, -> { ArkEmail::DNSRecord }, nil?: true
165
+
166
+ # @!attribute zone
167
+ # The DNS zone (registrable domain) where records should be added. This is the
168
+ # root domain that your DNS provider manages. For `mail.example.com`, the zone is
169
+ # `example.com`. For `example.co.uk`, the zone is `example.co.uk`.
170
+ #
171
+ # @return [String, nil]
172
+ optional :zone, String
101
173
 
102
- # @!method initialize(dkim:, return_path:, spf:)
103
- # @param dkim [ArkEmail::Models::DNSRecord]
104
- # @param return_path [ArkEmail::Models::DNSRecord]
105
- # @param spf [ArkEmail::Models::DNSRecord]
174
+ # @!method initialize(dkim: nil, return_path: nil, spf: nil, zone: nil)
175
+ # Some parameter documentations has been truncated, see
176
+ # {ArkEmail::Models::DomainCreateResponse::Data::DNSRecords} for more details.
177
+ #
178
+ # DNS records that must be added to your domain's DNS settings. Null if records
179
+ # are not yet generated.
180
+ #
181
+ # **Important:** The `name` field contains the relative hostname that you should
182
+ # enter in your DNS provider. Most DNS providers auto-append the zone name, so you
183
+ # only need to enter the relative part.
184
+ #
185
+ # For subdomains like `mail.example.com`, the zone is `example.com`, so:
186
+ #
187
+ # - SPF `name` would be `mail` (not `@`)
188
+ # - DKIM `name` would be `ark-xyz._domainkey.mail`
189
+ # - Return Path `name` would be `psrp.mail`
190
+ #
191
+ # @param dkim [ArkEmail::Models::DNSRecord, nil] A DNS record that needs to be configured in your domain's DNS settings.
192
+ #
193
+ # @param return_path [ArkEmail::Models::DNSRecord, nil] A DNS record that needs to be configured in your domain's DNS settings.
194
+ #
195
+ # @param spf [ArkEmail::Models::DNSRecord, nil] A DNS record that needs to be configured in your domain's DNS settings.
196
+ #
197
+ # @param zone [String] The DNS zone (registrable domain) where records should be added.
106
198
  end
107
199
  end
108
200
  end
@@ -37,34 +37,33 @@ module ArkEmail
37
37
 
38
38
  class Domain < ArkEmail::Internal::Type::BaseModel
39
39
  # @!attribute id
40
- # Domain ID
40
+ # Unique domain identifier
41
41
  #
42
- # @return [String]
43
- required :id, String
44
-
45
- # @!attribute dns_ok
46
- #
47
- # @return [Boolean]
48
- required :dns_ok, ArkEmail::Internal::Type::Boolean, api_name: :dnsOk
42
+ # @return [Integer]
43
+ required :id, Integer
49
44
 
50
45
  # @!attribute name
46
+ # The domain name used for sending emails
51
47
  #
52
48
  # @return [String]
53
49
  required :name, String
54
50
 
55
51
  # @!attribute verified
52
+ # Whether all DNS records (SPF, DKIM, Return Path) are correctly configured.
53
+ # Domain must be verified before sending emails.
56
54
  #
57
55
  # @return [Boolean]
58
56
  required :verified, ArkEmail::Internal::Type::Boolean
59
57
 
60
- # @!method initialize(id:, dns_ok:, name:, verified:)
61
- # @param id [String] Domain ID
58
+ # @!method initialize(id:, name:, verified:)
59
+ # Some parameter documentations has been truncated, see
60
+ # {ArkEmail::Models::DomainListResponse::Data::Domain} for more details.
62
61
  #
63
- # @param dns_ok [Boolean]
62
+ # @param id [Integer] Unique domain identifier
64
63
  #
65
- # @param name [String]
64
+ # @param name [String] The domain name used for sending emails
66
65
  #
67
- # @param verified [Boolean]
66
+ # @param verified [Boolean] Whether all DNS records (SPF, DKIM, Return Path) are correctly configured. Domai
68
67
  end
69
68
  end
70
69
  end
@@ -27,82 +27,174 @@ module ArkEmail
27
27
  # @see ArkEmail::Models::DomainRetrieveResponse#data
28
28
  class Data < ArkEmail::Internal::Type::BaseModel
29
29
  # @!attribute id
30
- # Domain ID
30
+ # Unique domain identifier
31
31
  #
32
- # @return [String]
33
- required :id, String
32
+ # @return [Integer]
33
+ required :id, Integer
34
34
 
35
35
  # @!attribute created_at
36
+ # Timestamp when the domain was added
36
37
  #
37
38
  # @return [Time]
38
39
  required :created_at, Time, api_name: :createdAt
39
40
 
40
41
  # @!attribute dns_records
42
+ # DNS records that must be added to your domain's DNS settings. Null if records
43
+ # are not yet generated.
44
+ #
45
+ # **Important:** The `name` field contains the relative hostname that you should
46
+ # enter in your DNS provider. Most DNS providers auto-append the zone name, so you
47
+ # only need to enter the relative part.
48
+ #
49
+ # For subdomains like `mail.example.com`, the zone is `example.com`, so:
50
+ #
51
+ # - SPF `name` would be `mail` (not `@`)
52
+ # - DKIM `name` would be `ark-xyz._domainkey.mail`
53
+ # - Return Path `name` would be `psrp.mail`
41
54
  #
42
- # @return [ArkEmail::Models::DomainRetrieveResponse::Data::DNSRecords]
55
+ # @return [ArkEmail::Models::DomainRetrieveResponse::Data::DNSRecords, nil]
43
56
  required :dns_records,
44
57
  -> { ArkEmail::Models::DomainRetrieveResponse::Data::DNSRecords },
45
- api_name: :dnsRecords
58
+ api_name: :dnsRecords,
59
+ nil?: true
46
60
 
47
61
  # @!attribute name
48
- # Domain name
62
+ # The domain name used for sending emails
49
63
  #
50
64
  # @return [String]
51
65
  required :name, String
52
66
 
53
67
  # @!attribute uuid
68
+ # UUID of the domain
54
69
  #
55
70
  # @return [String]
56
71
  required :uuid, String
57
72
 
58
73
  # @!attribute verified
59
- # Whether DNS is verified
74
+ # Whether all DNS records (SPF, DKIM, Return Path) are correctly configured.
75
+ # Domain must be verified before sending emails.
60
76
  #
61
77
  # @return [Boolean]
62
78
  required :verified, ArkEmail::Internal::Type::Boolean
63
79
 
64
80
  # @!attribute verified_at
65
- # When the domain was verified (null if not verified)
81
+ # Timestamp when the domain ownership was verified, or null if not yet verified
66
82
  #
67
83
  # @return [Time, nil]
68
84
  optional :verified_at, Time, api_name: :verifiedAt, nil?: true
69
85
 
70
86
  # @!method initialize(id:, created_at:, dns_records:, name:, uuid:, verified:, verified_at: nil)
71
- # @param id [String] Domain ID
87
+ # Some parameter documentations has been truncated, see
88
+ # {ArkEmail::Models::DomainRetrieveResponse::Data} for more details.
72
89
  #
73
- # @param created_at [Time]
90
+ # @param id [Integer] Unique domain identifier
74
91
  #
75
- # @param dns_records [ArkEmail::Models::DomainRetrieveResponse::Data::DNSRecords]
92
+ # @param created_at [Time] Timestamp when the domain was added
76
93
  #
77
- # @param name [String] Domain name
94
+ # @param dns_records [ArkEmail::Models::DomainRetrieveResponse::Data::DNSRecords, nil] DNS records that must be added to your domain's DNS settings. Null if records ar
78
95
  #
79
- # @param uuid [String]
96
+ # @param name [String] The domain name used for sending emails
80
97
  #
81
- # @param verified [Boolean] Whether DNS is verified
98
+ # @param uuid [String] UUID of the domain
82
99
  #
83
- # @param verified_at [Time, nil] When the domain was verified (null if not verified)
100
+ # @param verified [Boolean] Whether all DNS records (SPF, DKIM, Return Path) are correctly configured. Domai
101
+ #
102
+ # @param verified_at [Time, nil] Timestamp when the domain ownership was verified, or null if not yet verified
84
103
 
85
104
  # @see ArkEmail::Models::DomainRetrieveResponse::Data#dns_records
86
105
  class DNSRecords < ArkEmail::Internal::Type::BaseModel
87
106
  # @!attribute dkim
107
+ # A DNS record that needs to be configured in your domain's DNS settings.
108
+ #
109
+ # The `name` field contains the relative hostname to enter in your DNS provider
110
+ # (which auto-appends the zone). The `fullName` field contains the complete
111
+ # fully-qualified domain name (FQDN) for reference.
112
+ #
113
+ # **Example for subdomain `mail.example.com`:**
114
+ #
115
+ # - `name`: `"mail"` (what you enter in DNS provider)
116
+ # - `fullName`: `"mail.example.com"` (the complete hostname)
88
117
  #
89
- # @return [ArkEmail::Models::DNSRecord]
90
- required :dkim, -> { ArkEmail::DNSRecord }
118
+ # **Example for root domain `example.com`:**
119
+ #
120
+ # - `name`: `"@"` (DNS shorthand for apex/root)
121
+ # - `fullName`: `"example.com"`
122
+ #
123
+ # @return [ArkEmail::Models::DNSRecord, nil]
124
+ optional :dkim, -> { ArkEmail::DNSRecord }, nil?: true
91
125
 
92
126
  # @!attribute return_path
127
+ # A DNS record that needs to be configured in your domain's DNS settings.
128
+ #
129
+ # The `name` field contains the relative hostname to enter in your DNS provider
130
+ # (which auto-appends the zone). The `fullName` field contains the complete
131
+ # fully-qualified domain name (FQDN) for reference.
132
+ #
133
+ # **Example for subdomain `mail.example.com`:**
134
+ #
135
+ # - `name`: `"mail"` (what you enter in DNS provider)
136
+ # - `fullName`: `"mail.example.com"` (the complete hostname)
137
+ #
138
+ # **Example for root domain `example.com`:**
139
+ #
140
+ # - `name`: `"@"` (DNS shorthand for apex/root)
141
+ # - `fullName`: `"example.com"`
93
142
  #
94
- # @return [ArkEmail::Models::DNSRecord]
95
- required :return_path, -> { ArkEmail::DNSRecord }, api_name: :returnPath
143
+ # @return [ArkEmail::Models::DNSRecord, nil]
144
+ optional :return_path, -> { ArkEmail::DNSRecord }, api_name: :returnPath, nil?: true
96
145
 
97
146
  # @!attribute spf
147
+ # A DNS record that needs to be configured in your domain's DNS settings.
98
148
  #
99
- # @return [ArkEmail::Models::DNSRecord]
100
- required :spf, -> { ArkEmail::DNSRecord }
149
+ # The `name` field contains the relative hostname to enter in your DNS provider
150
+ # (which auto-appends the zone). The `fullName` field contains the complete
151
+ # fully-qualified domain name (FQDN) for reference.
152
+ #
153
+ # **Example for subdomain `mail.example.com`:**
154
+ #
155
+ # - `name`: `"mail"` (what you enter in DNS provider)
156
+ # - `fullName`: `"mail.example.com"` (the complete hostname)
157
+ #
158
+ # **Example for root domain `example.com`:**
159
+ #
160
+ # - `name`: `"@"` (DNS shorthand for apex/root)
161
+ # - `fullName`: `"example.com"`
162
+ #
163
+ # @return [ArkEmail::Models::DNSRecord, nil]
164
+ optional :spf, -> { ArkEmail::DNSRecord }, nil?: true
165
+
166
+ # @!attribute zone
167
+ # The DNS zone (registrable domain) where records should be added. This is the
168
+ # root domain that your DNS provider manages. For `mail.example.com`, the zone is
169
+ # `example.com`. For `example.co.uk`, the zone is `example.co.uk`.
170
+ #
171
+ # @return [String, nil]
172
+ optional :zone, String
101
173
 
102
- # @!method initialize(dkim:, return_path:, spf:)
103
- # @param dkim [ArkEmail::Models::DNSRecord]
104
- # @param return_path [ArkEmail::Models::DNSRecord]
105
- # @param spf [ArkEmail::Models::DNSRecord]
174
+ # @!method initialize(dkim: nil, return_path: nil, spf: nil, zone: nil)
175
+ # Some parameter documentations has been truncated, see
176
+ # {ArkEmail::Models::DomainRetrieveResponse::Data::DNSRecords} for more details.
177
+ #
178
+ # DNS records that must be added to your domain's DNS settings. Null if records
179
+ # are not yet generated.
180
+ #
181
+ # **Important:** The `name` field contains the relative hostname that you should
182
+ # enter in your DNS provider. Most DNS providers auto-append the zone name, so you
183
+ # only need to enter the relative part.
184
+ #
185
+ # For subdomains like `mail.example.com`, the zone is `example.com`, so:
186
+ #
187
+ # - SPF `name` would be `mail` (not `@`)
188
+ # - DKIM `name` would be `ark-xyz._domainkey.mail`
189
+ # - Return Path `name` would be `psrp.mail`
190
+ #
191
+ # @param dkim [ArkEmail::Models::DNSRecord, nil] A DNS record that needs to be configured in your domain's DNS settings.
192
+ #
193
+ # @param return_path [ArkEmail::Models::DNSRecord, nil] A DNS record that needs to be configured in your domain's DNS settings.
194
+ #
195
+ # @param spf [ArkEmail::Models::DNSRecord, nil] A DNS record that needs to be configured in your domain's DNS settings.
196
+ #
197
+ # @param zone [String] The DNS zone (registrable domain) where records should be added.
106
198
  end
107
199
  end
108
200
  end