From da19395e69b2bd5c5f0fc365750d3398eb2af7ae Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 16:02:23 +0000 Subject: [PATCH 01/11] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index f1de74b..632d072 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 58 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/ark%2Fark-ee4b9d190e3aaa146b08bc0ffed1c802dc353c3fdc37fc0097f2350ab3714b70.yml -openapi_spec_hash: 0dad8b2e562ba7ce879425ab92169d85 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/ark%2Fark-e38e03901debaf06900a69aa6cb30ea71d8710b1d0ecfbae3bf01669e4bd2e5f.yml +openapi_spec_hash: 4263c6c25f42e56d44c5a5f53560674b config_hash: b70b11b10fc614f91f1c6f028b40780f From cf3474e7812cb2455181007e9bbec3e59eaab5a7 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Wed, 18 Feb 2026 16:14:16 +0000 Subject: [PATCH 02/11] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 632d072..c8ee129 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 58 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/ark%2Fark-e38e03901debaf06900a69aa6cb30ea71d8710b1d0ecfbae3bf01669e4bd2e5f.yml -openapi_spec_hash: 4263c6c25f42e56d44c5a5f53560674b +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/ark%2Fark-98a90852ffca49f4e26c613afff433b17023ee1f81f38ad38a5dad60a0d09881.yml +openapi_spec_hash: c6fd865dd6995df15cf9e6ada2ae791e config_hash: b70b11b10fc614f91f1c6f028b40780f From e0cbedce73ed0f6dbd683cb3dc04b8aa9937a434 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 07:27:20 +0000 Subject: [PATCH 03/11] chore: update mock server docs --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eae9fa6..63eadc8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -68,8 +68,8 @@ $ bundle exec rake Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests. -```bash -$ npx prism mock path/to/your/openapi.yml +```sh +$ ./scripts/mock ``` ```bash From d4434933efda6c1cc2cab76c52319113f67aab91 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 10:20:25 +0000 Subject: [PATCH 04/11] feat(api): add tenantId to send --- .stats.yml | 4 +-- lib/ark_email/models/email_list_response.rb | 10 ++++++- .../email_retrieve_deliveries_response.rb | 10 ++++++- .../models/email_retrieve_response.rb | 10 ++++++- lib/ark_email/models/email_retry_response.rb | 10 ++++++- .../models/email_send_batch_params.rb | 19 ++++++++++++- .../models/email_send_batch_response.rb | 10 ++++++- lib/ark_email/models/email_send_params.rb | 16 ++++++++++- lib/ark_email/models/email_send_raw_params.rb | 16 ++++++++++- .../models/email_send_raw_response.rb | 10 ++++++- lib/ark_email/models/email_send_response.rb | 10 ++++++- lib/ark_email/resources/emails.rb | 12 ++++++--- rbi/ark_email/models/email_list_response.rbi | 8 ++++++ .../email_retrieve_deliveries_response.rbi | 14 +++++++--- .../models/email_retrieve_response.rbi | 8 ++++++ rbi/ark_email/models/email_retry_response.rbi | 18 ++++++++++--- .../models/email_send_batch_params.rbi | 20 ++++++++++++++ .../models/email_send_batch_response.rbi | 8 ++++++ rbi/ark_email/models/email_send_params.rbi | 20 ++++++++++++++ .../models/email_send_raw_params.rbi | 20 ++++++++++++++ .../models/email_send_raw_response.rbi | 8 ++++++ rbi/ark_email/models/email_send_response.rbi | 8 ++++++ rbi/ark_email/resources/emails.rbi | 27 +++++++++++++++++++ sig/ark_email/models/email_list_response.rbs | 5 ++++ .../email_retrieve_deliveries_response.rbs | 11 +++++--- .../models/email_retrieve_response.rbs | 5 ++++ sig/ark_email/models/email_retry_response.rbs | 8 +++--- .../models/email_send_batch_params.rbs | 5 ++++ .../models/email_send_batch_response.rbs | 5 ++++ sig/ark_email/models/email_send_params.rbs | 5 ++++ .../models/email_send_raw_params.rbs | 12 ++++++++- .../models/email_send_raw_response.rbs | 5 ++++ sig/ark_email/models/email_send_response.rbs | 5 ++++ sig/ark_email/resources/emails.rbs | 3 +++ test/ark_email/resources/emails_test.rb | 1 + 35 files changed, 338 insertions(+), 28 deletions(-) diff --git a/.stats.yml b/.stats.yml index c8ee129..e530c9b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 58 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/ark%2Fark-98a90852ffca49f4e26c613afff433b17023ee1f81f38ad38a5dad60a0d09881.yml -openapi_spec_hash: c6fd865dd6995df15cf9e6ada2ae791e +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/ark%2Fark-06c3025bf12b191c3906b28173c9b359e24481dd2839dbf3e6dd0b80c1de3fd6.yml +openapi_spec_hash: d8f8fb1f78579997b6381d64cba4e826 config_hash: b70b11b10fc614f91f1c6f028b40780f diff --git a/lib/ark_email/models/email_list_response.rb b/lib/ark_email/models/email_list_response.rb index 3a6b4aa..528579f 100644 --- a/lib/ark_email/models/email_list_response.rb +++ b/lib/ark_email/models/email_list_response.rb @@ -33,6 +33,12 @@ class EmailListResponse < ArkEmail::Internal::Type::BaseModel # @return [String] required :subject, String + # @!attribute tenant_id + # The tenant ID this email belongs to + # + # @return [String] + required :tenant_id, String, api_name: :tenantId + # @!attribute timestamp # # @return [Float] @@ -53,7 +59,7 @@ class EmailListResponse < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :tag, String - # @!method initialize(id:, from:, status:, subject:, timestamp:, timestamp_iso:, to:, tag: nil) + # @!method initialize(id:, from:, status:, subject:, tenant_id:, timestamp:, timestamp_iso:, to:, tag: nil) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailListResponse} for more details. # @@ -65,6 +71,8 @@ class EmailListResponse < ArkEmail::Internal::Type::BaseModel # # @param subject [String] # + # @param tenant_id [String] The tenant ID this email belongs to + # # @param timestamp [Float] # # @param timestamp_iso [Time] diff --git a/lib/ark_email/models/email_retrieve_deliveries_response.rb b/lib/ark_email/models/email_retrieve_deliveries_response.rb index 22708a3..aa4519c 100644 --- a/lib/ark_email/models/email_retrieve_deliveries_response.rb +++ b/lib/ark_email/models/email_retrieve_deliveries_response.rb @@ -71,7 +71,13 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [Symbol, ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status] required :status, enum: -> { ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status } - # @!method initialize(id:, can_retry_manually:, deliveries:, retry_state:, status:) + # @!attribute tenant_id + # The tenant ID this email belongs to + # + # @return [String] + required :tenant_id, String, api_name: :tenantId + + # @!method initialize(id:, can_retry_manually:, deliveries:, retry_state:, status:, tenant_id:) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data} for more details. # @@ -84,6 +90,8 @@ class Data < ArkEmail::Internal::Type::BaseModel # @param retry_state [ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState, nil] Information about the current retry state of a message that is queued for delive # # @param status [Symbol, ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status] Current message status (lowercase). Possible values: + # + # @param tenant_id [String] The tenant ID this email belongs to class Delivery < ArkEmail::Internal::Type::BaseModel # @!attribute id diff --git a/lib/ark_email/models/email_retrieve_response.rb b/lib/ark_email/models/email_retrieve_response.rb index e3432ac..fd843ce 100644 --- a/lib/ark_email/models/email_retrieve_response.rb +++ b/lib/ark_email/models/email_retrieve_response.rb @@ -63,6 +63,12 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [String] required :subject, String + # @!attribute tenant_id + # The tenant ID this email belongs to + # + # @return [String] + required :tenant_id, String, api_name: :tenantId + # @!attribute timestamp # Unix timestamp when the email was sent # @@ -150,7 +156,7 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :tag, String - # @!method initialize(id:, from:, scope:, status:, subject:, timestamp:, timestamp_iso:, to:, activity: nil, attachments: nil, deliveries: nil, headers: nil, html_body: nil, message_id: nil, plain_body: nil, raw_message: nil, spam: nil, spam_score: nil, tag: nil) + # @!method initialize(id:, from:, scope:, status:, subject:, tenant_id:, timestamp:, timestamp_iso:, to:, activity: nil, attachments: nil, deliveries: nil, headers: nil, html_body: nil, message_id: nil, plain_body: nil, raw_message: nil, spam: nil, spam_score: nil, tag: nil) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailRetrieveResponse::Data} for more details. # @@ -164,6 +170,8 @@ class Data < ArkEmail::Internal::Type::BaseModel # # @param subject [String] Email subject line # + # @param tenant_id [String] The tenant ID this email belongs to + # # @param timestamp [Float] Unix timestamp when the email was sent # # @param timestamp_iso [Time] ISO 8601 formatted timestamp diff --git a/lib/ark_email/models/email_retry_response.rb b/lib/ark_email/models/email_retry_response.rb index 3f5c9ca..f882a74 100644 --- a/lib/ark_email/models/email_retry_response.rb +++ b/lib/ark_email/models/email_retry_response.rb @@ -37,10 +37,18 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [String] required :message, String - # @!method initialize(id:, message:) + # @!attribute tenant_id + # The tenant ID this email belongs to + # + # @return [String] + required :tenant_id, String, api_name: :tenantId + + # @!method initialize(id:, message:, tenant_id:) # @param id [String] Email identifier (token) # # @param message [String] + # + # @param tenant_id [String] The tenant ID this email belongs to end end end diff --git a/lib/ark_email/models/email_send_batch_params.rb b/lib/ark_email/models/email_send_batch_params.rb index c8d975a..afb3726 100644 --- a/lib/ark_email/models/email_send_batch_params.rb +++ b/lib/ark_email/models/email_send_batch_params.rb @@ -18,16 +18,33 @@ class EmailSendBatchParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :from, String + # @!attribute tenant_id + # The tenant ID to send this batch from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + # + # @return [String, nil] + optional :tenant_id, String, api_name: :tenantId, nil?: true + # @!attribute idempotency_key # # @return [String, nil] optional :idempotency_key, String - # @!method initialize(emails:, from:, idempotency_key: nil, request_options: {}) + # @!method initialize(emails:, from:, tenant_id: nil, idempotency_key: nil, request_options: {}) + # Some parameter documentations has been truncated, see + # {ArkEmail::Models::EmailSendBatchParams} for more details. + # # @param emails [Array] # # @param from [String] Sender email for all messages # + # @param tenant_id [String, nil] The tenant ID to send this batch from. Determines which tenant's + # # @param idempotency_key [String] # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/ark_email/models/email_send_batch_response.rb b/lib/ark_email/models/email_send_batch_response.rb index 4e9abf6..0caecae 100644 --- a/lib/ark_email/models/email_send_batch_response.rb +++ b/lib/ark_email/models/email_send_batch_response.rb @@ -45,6 +45,12 @@ class Data < ArkEmail::Internal::Type::BaseModel required :messages, -> { ArkEmail::Internal::Type::HashOf[ArkEmail::Models::EmailSendBatchResponse::Data::Message] } + # @!attribute tenant_id + # The tenant ID this batch was sent from + # + # @return [String] + required :tenant_id, String, api_name: :tenantId + # @!attribute total # Total emails in the batch # @@ -58,7 +64,7 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [Boolean, nil] optional :sandbox, ArkEmail::Internal::Type::Boolean - # @!method initialize(accepted:, failed:, messages:, total:, sandbox: nil) + # @!method initialize(accepted:, failed:, messages:, tenant_id:, total:, sandbox: nil) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailSendBatchResponse::Data} for more details. # @@ -68,6 +74,8 @@ class Data < ArkEmail::Internal::Type::BaseModel # # @param messages [Hash{Symbol=>ArkEmail::Models::EmailSendBatchResponse::Data::Message}] Map of recipient email to message info # + # @param tenant_id [String] The tenant ID this batch was sent from + # # @param total [Integer] Total emails in the batch # # @param sandbox [Boolean] Whether this batch was sent in sandbox mode. diff --git a/lib/ark_email/models/email_send_params.rb b/lib/ark_email/models/email_send_params.rb index 1d16b14..30fdee0 100644 --- a/lib/ark_email/models/email_send_params.rb +++ b/lib/ark_email/models/email_send_params.rb @@ -105,6 +105,18 @@ class EmailSendParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :tag, String, nil?: true + # @!attribute tenant_id + # The tenant ID to send this email from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + # + # @return [String, nil] + optional :tenant_id, String, api_name: :tenantId, nil?: true + # @!attribute text # Plain text body (accepts null, auto-generated from HTML if not provided). # Maximum 5MB (5,242,880 characters). @@ -117,7 +129,7 @@ class EmailSendParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :idempotency_key, String - # @!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: {}) + # @!method initialize(from:, subject:, to:, attachments: nil, bcc: nil, cc: nil, headers: nil, html: nil, metadata: nil, reply_to: nil, tag: nil, tenant_id: nil, text: nil, idempotency_key: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailSendParams} for more details. # @@ -143,6 +155,8 @@ class EmailSendParams < ArkEmail::Internal::Type::BaseModel # # @param tag [String, nil] Tag for categorization and filtering (accepts null) # + # @param tenant_id [String, nil] The tenant ID to send this email from. Determines which tenant's + # # @param text [String, nil] Plain text body (accepts null, auto-generated from HTML if not provided). # # @param idempotency_key [String] diff --git a/lib/ark_email/models/email_send_raw_params.rb b/lib/ark_email/models/email_send_raw_params.rb index f33f0ab..e1444c5 100644 --- a/lib/ark_email/models/email_send_raw_params.rb +++ b/lib/ark_email/models/email_send_raw_params.rb @@ -43,7 +43,19 @@ class EmailSendRawParams < ArkEmail::Internal::Type::BaseModel # @return [Boolean, nil] optional :bounce, ArkEmail::Internal::Type::Boolean, nil?: true - # @!method initialize(from:, raw_message:, to:, bounce: nil, request_options: {}) + # @!attribute tenant_id + # The tenant ID to send this email from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + # + # @return [String, nil] + optional :tenant_id, String, api_name: :tenantId, nil?: true + + # @!method initialize(from:, raw_message:, to:, bounce: nil, tenant_id: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailSendRawParams} for more details. # @@ -55,6 +67,8 @@ class EmailSendRawParams < ArkEmail::Internal::Type::BaseModel # # @param bounce [Boolean, nil] Whether this is a bounce message (accepts null) # + # @param tenant_id [String, nil] The tenant ID to send this email from. Determines which tenant's + # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/email_send_raw_response.rb b/lib/ark_email/models/email_send_raw_response.rb index f622945..3555fd1 100644 --- a/lib/ark_email/models/email_send_raw_response.rb +++ b/lib/ark_email/models/email_send_raw_response.rb @@ -38,6 +38,12 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [Symbol, ArkEmail::Models::EmailSendRawResponse::Data::Status] required :status, enum: -> { ArkEmail::Models::EmailSendRawResponse::Data::Status } + # @!attribute tenant_id + # The tenant ID this email was sent from + # + # @return [String] + required :tenant_id, String, api_name: :tenantId + # @!attribute to # List of recipient addresses # @@ -57,7 +63,7 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [Boolean, nil] optional :sandbox, ArkEmail::Internal::Type::Boolean - # @!method initialize(id:, status:, to:, message_id: nil, sandbox: nil) + # @!method initialize(id:, status:, tenant_id:, to:, message_id: nil, sandbox: nil) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailSendRawResponse::Data} for more details. # @@ -65,6 +71,8 @@ class Data < ArkEmail::Internal::Type::BaseModel # # @param status [Symbol, ArkEmail::Models::EmailSendRawResponse::Data::Status] Current delivery status # + # @param tenant_id [String] The tenant ID this email was sent from + # # @param to [Array] List of recipient addresses # # @param message_id [String] SMTP Message-ID header value diff --git a/lib/ark_email/models/email_send_response.rb b/lib/ark_email/models/email_send_response.rb index b5e56ab..d9978ba 100644 --- a/lib/ark_email/models/email_send_response.rb +++ b/lib/ark_email/models/email_send_response.rb @@ -38,6 +38,12 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [Symbol, ArkEmail::Models::EmailSendResponse::Data::Status] required :status, enum: -> { ArkEmail::Models::EmailSendResponse::Data::Status } + # @!attribute tenant_id + # The tenant ID this email was sent from + # + # @return [String] + required :tenant_id, String, api_name: :tenantId + # @!attribute to # List of recipient addresses # @@ -57,7 +63,7 @@ class Data < ArkEmail::Internal::Type::BaseModel # @return [Boolean, nil] optional :sandbox, ArkEmail::Internal::Type::Boolean - # @!method initialize(id:, status:, to:, message_id: nil, sandbox: nil) + # @!method initialize(id:, status:, tenant_id:, to:, message_id: nil, sandbox: nil) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailSendResponse::Data} for more details. # @@ -65,6 +71,8 @@ class Data < ArkEmail::Internal::Type::BaseModel # # @param status [Symbol, ArkEmail::Models::EmailSendResponse::Data::Status] Current delivery status # + # @param tenant_id [String] The tenant ID this email was sent from + # # @param to [Array] List of recipient addresses # # @param message_id [String] SMTP Message-ID header value diff --git a/lib/ark_email/resources/emails.rb b/lib/ark_email/resources/emails.rb index 4fe64e3..e3a2e69 100644 --- a/lib/ark_email/resources/emails.rb +++ b/lib/ark_email/resources/emails.rb @@ -181,7 +181,7 @@ def retry_(email_id, params = {}) # - `GET /emails/{emailId}/deliveries` - View delivery attempts # - `POST /emails/{emailId}/retry` - Retry failed delivery # - # @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: {}) + # @overload send_(from:, subject:, to:, attachments: nil, bcc: nil, cc: nil, headers: nil, html: nil, metadata: nil, reply_to: nil, tag: nil, tenant_id: nil, text: nil, idempotency_key: nil, request_options: {}) # # @param from [String] Body param: Sender email address. Must be from a verified domain OR use sandbox # @@ -205,6 +205,8 @@ def retry_(email_id, params = {}) # # @param tag [String, nil] Body param: Tag for categorization and filtering (accepts null) # + # @param tenant_id [String, nil] Body param: The tenant ID to send this email from. Determines which tenant's + # # @param text [String, nil] Body param: Plain text body (accepts null, auto-generated from HTML if not provi # # @param idempotency_key [String] Header param: Unique key for idempotent requests. If a request with this key was @@ -238,12 +240,14 @@ def send_(params) # # **Idempotency:** Supports `Idempotency-Key` header for safe retries. # - # @overload send_batch(emails:, from:, idempotency_key: nil, request_options: {}) + # @overload send_batch(emails:, from:, tenant_id: nil, idempotency_key: nil, request_options: {}) # # @param emails [Array] Body param # # @param from [String] Body param: Sender email for all messages # + # @param tenant_id [String, nil] Body param: The tenant ID to send this batch from. Determines which tenant's + # # @param idempotency_key [String] Header param: Unique key for idempotent requests. If a request with this key was # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil] @@ -274,7 +278,7 @@ def send_batch(params) # message (with headers like From, To, Subject, Content-Type, followed by a blank # line and the body) must be encoded to base64 before sending. # - # @overload send_raw(from:, raw_message:, to:, bounce: nil, request_options: {}) + # @overload send_raw(from:, raw_message:, to:, bounce: nil, tenant_id: nil, request_options: {}) # # @param from [String] Sender email address. Must be from a verified domain. # @@ -284,6 +288,8 @@ def send_batch(params) # # @param bounce [Boolean, nil] Whether this is a bounce message (accepts null) # + # @param tenant_id [String, nil] The tenant ID to send this email from. Determines which tenant's + # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}, nil] # # @return [ArkEmail::Models::EmailSendRawResponse] diff --git a/rbi/ark_email/models/email_list_response.rbi b/rbi/ark_email/models/email_list_response.rbi index fd4a5b9..d08a44a 100644 --- a/rbi/ark_email/models/email_list_response.rbi +++ b/rbi/ark_email/models/email_list_response.rbi @@ -32,6 +32,10 @@ module ArkEmail sig { returns(String) } attr_accessor :subject + # The tenant ID this email belongs to + sig { returns(String) } + attr_accessor :tenant_id + sig { returns(Float) } attr_accessor :timestamp @@ -53,6 +57,7 @@ module ArkEmail from: String, status: ArkEmail::Models::EmailListResponse::Status::OrSymbol, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, @@ -73,6 +78,8 @@ module ArkEmail # - `held` - Held for manual review status:, subject:, + # The tenant ID this email belongs to + tenant_id:, timestamp:, timestamp_iso:, to:, @@ -87,6 +94,7 @@ module ArkEmail from: String, status: ArkEmail::Models::EmailListResponse::Status::TaggedSymbol, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, diff --git a/rbi/ark_email/models/email_retrieve_deliveries_response.rbi b/rbi/ark_email/models/email_retrieve_deliveries_response.rbi index f492ae6..cdf935f 100644 --- a/rbi/ark_email/models/email_retrieve_deliveries_response.rbi +++ b/rbi/ark_email/models/email_retrieve_deliveries_response.rbi @@ -118,6 +118,10 @@ module ArkEmail end attr_accessor :status + # The tenant ID this email belongs to + sig { returns(String) } + attr_accessor :tenant_id + sig do params( id: String, @@ -131,7 +135,8 @@ module ArkEmail ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState::OrHash ), status: - ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::OrSymbol + ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::OrSymbol, + tenant_id: String ).returns(T.attached_class) end def self.new( @@ -155,7 +160,9 @@ module ArkEmail # - `hardfail` - Permanent failure, will not retry # - `held` - Held for manual review (suppression list, etc.) # - `bounced` - Bounced by recipient server - status: + status:, + # The tenant ID this email belongs to + tenant_id: ) end @@ -173,7 +180,8 @@ module ArkEmail ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState ), status: - ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol + ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Status::TaggedSymbol, + tenant_id: String } ) end diff --git a/rbi/ark_email/models/email_retrieve_response.rbi b/rbi/ark_email/models/email_retrieve_response.rbi index 35e4865..07b5a49 100644 --- a/rbi/ark_email/models/email_retrieve_response.rbi +++ b/rbi/ark_email/models/email_retrieve_response.rbi @@ -94,6 +94,10 @@ module ArkEmail sig { returns(String) } attr_accessor :subject + # The tenant ID this email belongs to + sig { returns(String) } + attr_accessor :tenant_id + # Unix timestamp when the email was sent sig { returns(Float) } attr_accessor :timestamp @@ -230,6 +234,7 @@ module ArkEmail status: ArkEmail::Models::EmailRetrieveResponse::Data::Status::OrSymbol, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, @@ -271,6 +276,8 @@ module ArkEmail status:, # Email subject line subject:, + # The tenant ID this email belongs to + tenant_id:, # Unix timestamp when the email was sent timestamp:, # ISO 8601 formatted timestamp @@ -313,6 +320,7 @@ module ArkEmail status: ArkEmail::Models::EmailRetrieveResponse::Data::Status::TaggedSymbol, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, diff --git a/rbi/ark_email/models/email_retry_response.rbi b/rbi/ark_email/models/email_retry_response.rbi index 7b0d4bc..2149c44 100644 --- a/rbi/ark_email/models/email_retry_response.rbi +++ b/rbi/ark_email/models/email_retry_response.rbi @@ -66,15 +66,27 @@ module ArkEmail sig { returns(String) } attr_accessor :message - sig { params(id: String, message: String).returns(T.attached_class) } + # The tenant ID this email belongs to + sig { returns(String) } + attr_accessor :tenant_id + + sig do + params(id: String, message: String, tenant_id: String).returns( + T.attached_class + ) + end def self.new( # Email identifier (token) id:, - message: + message:, + # The tenant ID this email belongs to + tenant_id: ) end - sig { override.returns({ id: String, message: String }) } + sig do + override.returns({ id: String, message: String, tenant_id: String }) + end def to_hash end end diff --git a/rbi/ark_email/models/email_send_batch_params.rbi b/rbi/ark_email/models/email_send_batch_params.rbi index 48e1d74..00a8f1d 100644 --- a/rbi/ark_email/models/email_send_batch_params.rbi +++ b/rbi/ark_email/models/email_send_batch_params.rbi @@ -18,6 +18,16 @@ module ArkEmail sig { returns(String) } attr_accessor :from + # The tenant ID to send this batch from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + sig { returns(T.nilable(String)) } + attr_accessor :tenant_id + sig { returns(T.nilable(String)) } attr_reader :idempotency_key @@ -28,6 +38,7 @@ module ArkEmail params( emails: T::Array[ArkEmail::EmailSendBatchParams::Email::OrHash], from: String, + tenant_id: T.nilable(String), idempotency_key: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) @@ -36,6 +47,14 @@ module ArkEmail emails:, # Sender email for all messages from:, + # The tenant ID to send this batch from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + tenant_id: nil, idempotency_key: nil, request_options: {} ) @@ -46,6 +65,7 @@ module ArkEmail { emails: T::Array[ArkEmail::EmailSendBatchParams::Email], from: String, + tenant_id: T.nilable(String), idempotency_key: String, request_options: ArkEmail::RequestOptions } diff --git a/rbi/ark_email/models/email_send_batch_response.rbi b/rbi/ark_email/models/email_send_batch_response.rbi index 7f7ae2e..286cda9 100644 --- a/rbi/ark_email/models/email_send_batch_response.rbi +++ b/rbi/ark_email/models/email_send_batch_response.rbi @@ -80,6 +80,10 @@ module ArkEmail end attr_accessor :messages + # The tenant ID this batch was sent from + sig { returns(String) } + attr_accessor :tenant_id + # Total emails in the batch sig { returns(Integer) } attr_accessor :total @@ -101,6 +105,7 @@ module ArkEmail Symbol, ArkEmail::Models::EmailSendBatchResponse::Data::Message::OrHash ], + tenant_id: String, total: Integer, sandbox: T::Boolean ).returns(T.attached_class) @@ -112,6 +117,8 @@ module ArkEmail failed:, # Map of recipient email to message info messages:, + # The tenant ID this batch was sent from + tenant_id:, # Total emails in the batch total:, # Whether this batch was sent in sandbox mode. Only present (and true) for sandbox @@ -130,6 +137,7 @@ module ArkEmail Symbol, ArkEmail::Models::EmailSendBatchResponse::Data::Message ], + tenant_id: String, total: Integer, sandbox: T::Boolean } diff --git a/rbi/ark_email/models/email_send_params.rbi b/rbi/ark_email/models/email_send_params.rbi index ff2ac1a..7233e8e 100644 --- a/rbi/ark_email/models/email_send_params.rbi +++ b/rbi/ark_email/models/email_send_params.rbi @@ -87,6 +87,16 @@ module ArkEmail sig { returns(T.nilable(String)) } attr_accessor :tag + # The tenant ID to send this email from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + sig { returns(T.nilable(String)) } + attr_accessor :tenant_id + # Plain text body (accepts null, auto-generated from HTML if not provided). # Maximum 5MB (5,242,880 characters). sig { returns(T.nilable(String)) } @@ -112,6 +122,7 @@ module ArkEmail metadata: T.nilable(T::Hash[Symbol, String]), reply_to: T.nilable(String), tag: T.nilable(String), + tenant_id: T.nilable(String), text: T.nilable(String), idempotency_key: String, request_options: ArkEmail::RequestOptions::OrHash @@ -170,6 +181,14 @@ module ArkEmail reply_to: nil, # Tag for categorization and filtering (accepts null) tag: nil, + # The tenant ID to send this email from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + tenant_id: nil, # Plain text body (accepts null, auto-generated from HTML if not provided). # Maximum 5MB (5,242,880 characters). text: nil, @@ -193,6 +212,7 @@ module ArkEmail metadata: T.nilable(T::Hash[Symbol, String]), reply_to: T.nilable(String), tag: T.nilable(String), + tenant_id: T.nilable(String), text: T.nilable(String), idempotency_key: String, request_options: ArkEmail::RequestOptions diff --git a/rbi/ark_email/models/email_send_raw_params.rbi b/rbi/ark_email/models/email_send_raw_params.rbi index ed16418..8826a18 100644 --- a/rbi/ark_email/models/email_send_raw_params.rbi +++ b/rbi/ark_email/models/email_send_raw_params.rbi @@ -39,12 +39,23 @@ module ArkEmail sig { returns(T.nilable(T::Boolean)) } attr_accessor :bounce + # The tenant ID to send this email from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + sig { returns(T.nilable(String)) } + attr_accessor :tenant_id + sig do params( from: String, raw_message: String, to: T::Array[String], bounce: T.nilable(T::Boolean), + tenant_id: T.nilable(String), request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end @@ -69,6 +80,14 @@ module ArkEmail to:, # Whether this is a bounce message (accepts null) bounce: nil, + # The tenant ID to send this email from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + tenant_id: nil, request_options: {} ) end @@ -80,6 +99,7 @@ module ArkEmail raw_message: String, to: T::Array[String], bounce: T.nilable(T::Boolean), + tenant_id: T.nilable(String), request_options: ArkEmail::RequestOptions } ) diff --git a/rbi/ark_email/models/email_send_raw_response.rbi b/rbi/ark_email/models/email_send_raw_response.rbi index f5771bd..8c9bff9 100644 --- a/rbi/ark_email/models/email_send_raw_response.rbi +++ b/rbi/ark_email/models/email_send_raw_response.rbi @@ -71,6 +71,10 @@ module ArkEmail end attr_accessor :status + # The tenant ID this email was sent from + sig { returns(String) } + attr_accessor :tenant_id + # List of recipient addresses sig { returns(T::Array[String]) } attr_accessor :to @@ -95,6 +99,7 @@ module ArkEmail id: String, status: ArkEmail::Models::EmailSendRawResponse::Data::Status::OrSymbol, + tenant_id: String, to: T::Array[String], message_id: String, sandbox: T::Boolean @@ -105,6 +110,8 @@ module ArkEmail id:, # Current delivery status status:, + # The tenant ID this email was sent from + tenant_id:, # List of recipient addresses to:, # SMTP Message-ID header value @@ -121,6 +128,7 @@ module ArkEmail id: String, status: ArkEmail::Models::EmailSendRawResponse::Data::Status::TaggedSymbol, + tenant_id: String, to: T::Array[String], message_id: String, sandbox: T::Boolean diff --git a/rbi/ark_email/models/email_send_response.rbi b/rbi/ark_email/models/email_send_response.rbi index 04d65d6..0bdd4f5 100644 --- a/rbi/ark_email/models/email_send_response.rbi +++ b/rbi/ark_email/models/email_send_response.rbi @@ -71,6 +71,10 @@ module ArkEmail end attr_accessor :status + # The tenant ID this email was sent from + sig { returns(String) } + attr_accessor :tenant_id + # List of recipient addresses sig { returns(T::Array[String]) } attr_accessor :to @@ -94,6 +98,7 @@ module ArkEmail params( id: String, status: ArkEmail::Models::EmailSendResponse::Data::Status::OrSymbol, + tenant_id: String, to: T::Array[String], message_id: String, sandbox: T::Boolean @@ -104,6 +109,8 @@ module ArkEmail id:, # Current delivery status status:, + # The tenant ID this email was sent from + tenant_id:, # List of recipient addresses to:, # SMTP Message-ID header value @@ -120,6 +127,7 @@ module ArkEmail id: String, status: ArkEmail::Models::EmailSendResponse::Data::Status::TaggedSymbol, + tenant_id: String, to: T::Array[String], message_id: String, sandbox: T::Boolean diff --git a/rbi/ark_email/resources/emails.rbi b/rbi/ark_email/resources/emails.rbi index 2d83d7c..47365b7 100644 --- a/rbi/ark_email/resources/emails.rbi +++ b/rbi/ark_email/resources/emails.rbi @@ -180,6 +180,7 @@ module ArkEmail metadata: T.nilable(T::Hash[Symbol, String]), reply_to: T.nilable(String), tag: T.nilable(String), + tenant_id: T.nilable(String), text: T.nilable(String), idempotency_key: String, request_options: ArkEmail::RequestOptions::OrHash @@ -239,6 +240,14 @@ module ArkEmail reply_to: nil, # Body param: Tag for categorization and filtering (accepts null) tag: nil, + # Body param: The tenant ID to send this email from. Determines which tenant's + # configuration (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + tenant_id: nil, # Body param: Plain text body (accepts null, auto-generated from HTML if not # provided). Maximum 5MB (5,242,880 characters). text: nil, @@ -260,6 +269,7 @@ module ArkEmail params( emails: T::Array[ArkEmail::EmailSendBatchParams::Email::OrHash], from: String, + tenant_id: T.nilable(String), idempotency_key: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(ArkEmail::Models::EmailSendBatchResponse) @@ -269,6 +279,14 @@ module ArkEmail emails:, # Body param: Sender email for all messages from:, + # Body param: The tenant ID to send this batch from. Determines which tenant's + # configuration (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + tenant_id: nil, # Header param: Unique key for idempotent requests. If a request with this key was # already processed, the cached response is returned. Keys expire after 24 hours. idempotency_key: nil, @@ -288,6 +306,7 @@ module ArkEmail raw_message: String, to: T::Array[String], bounce: T.nilable(T::Boolean), + tenant_id: T.nilable(String), request_options: ArkEmail::RequestOptions::OrHash ).returns(ArkEmail::Models::EmailSendRawResponse) end @@ -312,6 +331,14 @@ module ArkEmail to:, # Whether this is a bounce message (accepts null) bounce: nil, + # The tenant ID to send this email from. Determines which tenant's configuration + # (domains, webhooks, tracking) is used. + # + # - If your API key is scoped to a specific tenant, this must match that tenant or + # be omitted. + # - If your API key is org-level, specify the tenant to send from. + # - If omitted, the organization's default tenant is used. + tenant_id: nil, request_options: {} ) end diff --git a/sig/ark_email/models/email_list_response.rbs b/sig/ark_email/models/email_list_response.rbs index d5a454d..7f874c0 100644 --- a/sig/ark_email/models/email_list_response.rbs +++ b/sig/ark_email/models/email_list_response.rbs @@ -6,6 +6,7 @@ module ArkEmail from: String, status: ArkEmail::Models::EmailListResponse::status, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, @@ -21,6 +22,8 @@ module ArkEmail attr_accessor subject: String + attr_accessor tenant_id: String + attr_accessor timestamp: Float attr_accessor timestamp_iso: Time @@ -36,6 +39,7 @@ module ArkEmail from: String, status: ArkEmail::Models::EmailListResponse::status, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, @@ -47,6 +51,7 @@ module ArkEmail from: String, status: ArkEmail::Models::EmailListResponse::status, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, diff --git a/sig/ark_email/models/email_retrieve_deliveries_response.rbs b/sig/ark_email/models/email_retrieve_deliveries_response.rbs index 20e5c53..7abb383 100644 --- a/sig/ark_email/models/email_retrieve_deliveries_response.rbs +++ b/sig/ark_email/models/email_retrieve_deliveries_response.rbs @@ -32,7 +32,8 @@ module ArkEmail can_retry_manually: bool, deliveries: ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery], retry_state: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState?, - status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status + status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status, + tenant_id: String } class Data < ArkEmail::Internal::Type::BaseModel @@ -46,12 +47,15 @@ module ArkEmail attr_accessor status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status + attr_accessor tenant_id: String + def initialize: ( id: String, can_retry_manually: bool, deliveries: ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery], retry_state: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState?, - status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status + status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status, + tenant_id: String ) -> void def to_hash: -> { @@ -59,7 +63,8 @@ module ArkEmail can_retry_manually: bool, deliveries: ::Array[ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::Delivery], retry_state: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::RetryState?, - status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status + status: ArkEmail::Models::EmailRetrieveDeliveriesResponse::Data::status, + tenant_id: String } type delivery = diff --git a/sig/ark_email/models/email_retrieve_response.rbs b/sig/ark_email/models/email_retrieve_response.rbs index 69227c7..768b82c 100644 --- a/sig/ark_email/models/email_retrieve_response.rbs +++ b/sig/ark_email/models/email_retrieve_response.rbs @@ -33,6 +33,7 @@ module ArkEmail scope: ArkEmail::Models::EmailRetrieveResponse::Data::scope, status: ArkEmail::Models::EmailRetrieveResponse::Data::status, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, @@ -60,6 +61,8 @@ module ArkEmail attr_accessor subject: String + attr_accessor tenant_id: String + attr_accessor timestamp: Float attr_accessor timestamp_iso: Time @@ -122,6 +125,7 @@ module ArkEmail scope: ArkEmail::Models::EmailRetrieveResponse::Data::scope, status: ArkEmail::Models::EmailRetrieveResponse::Data::status, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, @@ -144,6 +148,7 @@ module ArkEmail scope: ArkEmail::Models::EmailRetrieveResponse::Data::scope, status: ArkEmail::Models::EmailRetrieveResponse::Data::status, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, diff --git a/sig/ark_email/models/email_retry_response.rbs b/sig/ark_email/models/email_retry_response.rbs index 379ba38..4837058 100644 --- a/sig/ark_email/models/email_retry_response.rbs +++ b/sig/ark_email/models/email_retry_response.rbs @@ -26,16 +26,18 @@ module ArkEmail success: true } - type data = { id: String, message: String } + type data = { id: String, message: String, tenant_id: String } class Data < ArkEmail::Internal::Type::BaseModel attr_accessor id: String attr_accessor message: String - def initialize: (id: String, message: String) -> void + attr_accessor tenant_id: String - def to_hash: -> { id: String, message: String } + def initialize: (id: String, message: String, tenant_id: String) -> void + + def to_hash: -> { id: String, message: String, tenant_id: String } end end end diff --git a/sig/ark_email/models/email_send_batch_params.rbs b/sig/ark_email/models/email_send_batch_params.rbs index 453148e..c734f3d 100644 --- a/sig/ark_email/models/email_send_batch_params.rbs +++ b/sig/ark_email/models/email_send_batch_params.rbs @@ -4,6 +4,7 @@ module ArkEmail { emails: ::Array[ArkEmail::EmailSendBatchParams::Email], from: String, + tenant_id: String?, idempotency_key: String } & ArkEmail::Internal::Type::request_parameters @@ -16,6 +17,8 @@ module ArkEmail attr_accessor from: String + attr_accessor tenant_id: String? + attr_reader idempotency_key: String? def idempotency_key=: (String) -> String @@ -23,6 +26,7 @@ module ArkEmail def initialize: ( emails: ::Array[ArkEmail::EmailSendBatchParams::Email], from: String, + ?tenant_id: String?, ?idempotency_key: String, ?request_options: ArkEmail::request_opts ) -> void @@ -30,6 +34,7 @@ module ArkEmail def to_hash: -> { emails: ::Array[ArkEmail::EmailSendBatchParams::Email], from: String, + tenant_id: String?, idempotency_key: String, request_options: ArkEmail::RequestOptions } diff --git a/sig/ark_email/models/email_send_batch_response.rbs b/sig/ark_email/models/email_send_batch_response.rbs index 0b347e6..5cf1bb1 100644 --- a/sig/ark_email/models/email_send_batch_response.rbs +++ b/sig/ark_email/models/email_send_batch_response.rbs @@ -31,6 +31,7 @@ module ArkEmail accepted: Integer, failed: Integer, messages: ::Hash[Symbol, ArkEmail::Models::EmailSendBatchResponse::Data::Message], + tenant_id: String, total: Integer, sandbox: bool } @@ -42,6 +43,8 @@ module ArkEmail attr_accessor messages: ::Hash[Symbol, ArkEmail::Models::EmailSendBatchResponse::Data::Message] + attr_accessor tenant_id: String + attr_accessor total: Integer attr_reader sandbox: bool? @@ -52,6 +55,7 @@ module ArkEmail accepted: Integer, failed: Integer, messages: ::Hash[Symbol, ArkEmail::Models::EmailSendBatchResponse::Data::Message], + tenant_id: String, total: Integer, ?sandbox: bool ) -> void @@ -60,6 +64,7 @@ module ArkEmail accepted: Integer, failed: Integer, messages: ::Hash[Symbol, ArkEmail::Models::EmailSendBatchResponse::Data::Message], + tenant_id: String, total: Integer, sandbox: bool } diff --git a/sig/ark_email/models/email_send_params.rbs b/sig/ark_email/models/email_send_params.rbs index c08580b..43f0170 100644 --- a/sig/ark_email/models/email_send_params.rbs +++ b/sig/ark_email/models/email_send_params.rbs @@ -13,6 +13,7 @@ module ArkEmail metadata: ::Hash[Symbol, String]?, reply_to: String?, tag: String?, + tenant_id: String?, text: String?, idempotency_key: String } @@ -44,6 +45,8 @@ module ArkEmail attr_accessor tag: String? + attr_accessor tenant_id: String? + attr_accessor text: String? attr_reader idempotency_key: String? @@ -62,6 +65,7 @@ module ArkEmail ?metadata: ::Hash[Symbol, String]?, ?reply_to: String?, ?tag: String?, + ?tenant_id: String?, ?text: String?, ?idempotency_key: String, ?request_options: ArkEmail::request_opts @@ -79,6 +83,7 @@ module ArkEmail metadata: ::Hash[Symbol, String]?, reply_to: String?, tag: String?, + tenant_id: String?, text: String?, idempotency_key: String, request_options: ArkEmail::RequestOptions diff --git a/sig/ark_email/models/email_send_raw_params.rbs b/sig/ark_email/models/email_send_raw_params.rbs index 98cc750..2421638 100644 --- a/sig/ark_email/models/email_send_raw_params.rbs +++ b/sig/ark_email/models/email_send_raw_params.rbs @@ -1,7 +1,13 @@ module ArkEmail module Models type email_send_raw_params = - { from: String, raw_message: String, to: ::Array[String], bounce: bool? } + { + from: String, + raw_message: String, + to: ::Array[String], + bounce: bool?, + tenant_id: String? + } & ArkEmail::Internal::Type::request_parameters class EmailSendRawParams < ArkEmail::Internal::Type::BaseModel @@ -16,11 +22,14 @@ module ArkEmail attr_accessor bounce: bool? + attr_accessor tenant_id: String? + def initialize: ( from: String, raw_message: String, to: ::Array[String], ?bounce: bool?, + ?tenant_id: String?, ?request_options: ArkEmail::request_opts ) -> void @@ -29,6 +38,7 @@ module ArkEmail raw_message: String, to: ::Array[String], bounce: bool?, + tenant_id: String?, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/email_send_raw_response.rbs b/sig/ark_email/models/email_send_raw_response.rbs index 2ab1e07..66ba01a 100644 --- a/sig/ark_email/models/email_send_raw_response.rbs +++ b/sig/ark_email/models/email_send_raw_response.rbs @@ -30,6 +30,7 @@ module ArkEmail { id: String, status: ArkEmail::Models::EmailSendRawResponse::Data::status, + tenant_id: String, to: ::Array[String], message_id: String, sandbox: bool @@ -40,6 +41,8 @@ module ArkEmail attr_accessor status: ArkEmail::Models::EmailSendRawResponse::Data::status + attr_accessor tenant_id: String + attr_accessor to: ::Array[String] attr_reader message_id: String? @@ -53,6 +56,7 @@ module ArkEmail def initialize: ( id: String, status: ArkEmail::Models::EmailSendRawResponse::Data::status, + tenant_id: String, to: ::Array[String], ?message_id: String, ?sandbox: bool @@ -61,6 +65,7 @@ module ArkEmail def to_hash: -> { id: String, status: ArkEmail::Models::EmailSendRawResponse::Data::status, + tenant_id: String, to: ::Array[String], message_id: String, sandbox: bool diff --git a/sig/ark_email/models/email_send_response.rbs b/sig/ark_email/models/email_send_response.rbs index 7426534..75ea80a 100644 --- a/sig/ark_email/models/email_send_response.rbs +++ b/sig/ark_email/models/email_send_response.rbs @@ -30,6 +30,7 @@ module ArkEmail { id: String, status: ArkEmail::Models::EmailSendResponse::Data::status, + tenant_id: String, to: ::Array[String], message_id: String, sandbox: bool @@ -40,6 +41,8 @@ module ArkEmail attr_accessor status: ArkEmail::Models::EmailSendResponse::Data::status + attr_accessor tenant_id: String + attr_accessor to: ::Array[String] attr_reader message_id: String? @@ -53,6 +56,7 @@ module ArkEmail def initialize: ( id: String, status: ArkEmail::Models::EmailSendResponse::Data::status, + tenant_id: String, to: ::Array[String], ?message_id: String, ?sandbox: bool @@ -61,6 +65,7 @@ module ArkEmail def to_hash: -> { id: String, status: ArkEmail::Models::EmailSendResponse::Data::status, + tenant_id: String, to: ::Array[String], message_id: String, sandbox: bool diff --git a/sig/ark_email/resources/emails.rbs b/sig/ark_email/resources/emails.rbs index bb68cad..9821df5 100644 --- a/sig/ark_email/resources/emails.rbs +++ b/sig/ark_email/resources/emails.rbs @@ -41,6 +41,7 @@ module ArkEmail ?metadata: ::Hash[Symbol, String]?, ?reply_to: String?, ?tag: String?, + ?tenant_id: String?, ?text: String?, ?idempotency_key: String, ?request_options: ArkEmail::request_opts @@ -49,6 +50,7 @@ module ArkEmail def send_batch: ( emails: ::Array[ArkEmail::EmailSendBatchParams::Email], from: String, + ?tenant_id: String?, ?idempotency_key: String, ?request_options: ArkEmail::request_opts ) -> ArkEmail::Models::EmailSendBatchResponse @@ -58,6 +60,7 @@ module ArkEmail raw_message: String, to: ::Array[String], ?bounce: bool?, + ?tenant_id: String?, ?request_options: ArkEmail::request_opts ) -> ArkEmail::Models::EmailSendRawResponse diff --git a/test/ark_email/resources/emails_test.rb b/test/ark_email/resources/emails_test.rb index b07eb19..dad8ddb 100644 --- a/test/ark_email/resources/emails_test.rb +++ b/test/ark_email/resources/emails_test.rb @@ -39,6 +39,7 @@ def test_list from: String, status: ArkEmail::Models::EmailListResponse::Status, subject: String, + tenant_id: String, timestamp: Float, timestamp_iso: Time, to: String, From 1af3ac341b43b64d6e491c72a0a8bda9408625e1 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 27 Feb 2026 08:14:50 +0000 Subject: [PATCH 05/11] fix: properly mock time in ruby ci tests --- test/ark_email/client_test.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/test/ark_email/client_test.rb b/test/ark_email/client_test.rb index 7324634..60e9098 100644 --- a/test/ark_email/client_test.rb +++ b/test/ark_email/client_test.rb @@ -110,19 +110,21 @@ def test_client_retry_after_seconds end def test_client_retry_after_date + time_now = Time.now + stub_request(:post, "http://localhost/emails").to_return_json( status: 500, - headers: {"retry-after" => (Time.now + 10).httpdate}, + headers: {"retry-after" => (time_now + 10).httpdate}, body: {} ) ark = ArkEmail::Client.new(base_url: "http://localhost", api_key: "My API Key", max_retries: 1) + Thread.current.thread_variable_set(:time_now, time_now) assert_raises(ArkEmail::Errors::InternalServerError) do - Thread.current.thread_variable_set(:time_now, Time.now) ark.emails.send_(from: "Acme ", subject: "Hello World", to: ["user@example.com"]) - Thread.current.thread_variable_set(:time_now, nil) end + Thread.current.thread_variable_set(:time_now, nil) assert_requested(:any, /./, times: 2) assert_in_delta(10, Thread.current.thread_variable_get(:mock_sleep).last, 1.0) From 52ec8d221046d735dd605aab684f17e074478cf9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 13:54:33 +0000 Subject: [PATCH 06/11] chore(internal): codegen related update --- lib/ark_email/client.rb | 79 ++++++++++ lib/ark_email/internal/util.rb | 31 ++++ lib/ark_email/resources/emails.rb | 15 +- lib/ark_email/resources/limits.rb | 16 ++ lib/ark_email/resources/logs.rb | 23 ++- lib/ark_email/resources/platform/webhooks.rb | 3 +- lib/ark_email/resources/tenants.rb | 139 +++++++++++++++++- .../resources/tenants/credentials.rb | 6 +- lib/ark_email/resources/tenants/domains.rb | 14 ++ .../resources/tenants/suppressions.rb | 14 +- lib/ark_email/resources/tenants/tracking.rb | 22 +++ lib/ark_email/resources/tenants/usage.rb | 27 +++- lib/ark_email/resources/tenants/webhooks.rb | 58 +++++++- lib/ark_email/resources/usage.rb | 30 +++- rbi/ark_email/client.rbi | 79 ++++++++++ rbi/ark_email/internal/util.rbi | 20 +++ rbi/ark_email/resources/emails.rbi | 9 ++ rbi/ark_email/resources/limits.rbi | 16 ++ rbi/ark_email/resources/logs.rbi | 20 +++ rbi/ark_email/resources/tenants.rbi | 136 +++++++++++++++++ rbi/ark_email/resources/tenants/domains.rbi | 14 ++ .../resources/tenants/suppressions.rbi | 11 ++ rbi/ark_email/resources/tenants/tracking.rbi | 22 +++ rbi/ark_email/resources/tenants/usage.rbi | 21 +++ rbi/ark_email/resources/tenants/webhooks.rbi | 55 +++++++ rbi/ark_email/resources/usage.rbi | 21 +++ sig/ark_email/internal/util.rbs | 10 ++ 27 files changed, 897 insertions(+), 14 deletions(-) diff --git a/lib/ark_email/client.rb b/lib/ark_email/client.rb index 273e93b..39564a5 100644 --- a/lib/ark_email/client.rb +++ b/lib/ark_email/client.rb @@ -24,18 +24,97 @@ class Client < ArkEmail::Internal::Transport::BaseClient # @return [String] attr_reader :api_key + # Send and manage email messages. + # + # **Quick Reference:** + # + # - `POST /emails` - Send a single email + # - `POST /emails/batch` - Send up to 100 emails + # - `GET /emails/{emailId}` - Get email status and details + # - `GET /emails` - List sent emails + # - `POST /emails/{emailId}/retry` - Retry failed delivery # @return [ArkEmail::Resources::Emails] attr_reader :emails + # Access API request logs for debugging and monitoring. + # + # Every API request is logged with details including: + # + # - Request method, path, and endpoint + # - Response status code and duration + # - Error details (code, message) for failed requests + # - SDK information (name, version) + # - Rate limit state at time of request + # - Request and response bodies (for single log retrieval) + # + # **Retention:** Logs are retained for 90 days. + # + # **Body storage:** Request and response bodies are stored encrypted and truncated + # at 25KB. Bodies are only returned when retrieving a single log entry. + # + # **Quick Reference:** + # + # - `GET /logs` - List API request logs with filters + # - `GET /logs/{requestId}` - Get full details including request/response bodies # @return [ArkEmail::Resources::Logs] attr_reader :logs + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` # @return [ArkEmail::Resources::Usage] attr_reader :usage + # Check account rate limits and send limits. + # + # The limits endpoint returns current status for operational limits: + # + # - **Rate limit:** API requests per second (currently 10/sec) + # - **Send limit:** Emails per hour (default 100/hour for new accounts) + # - **Billing:** Credit balance and auto-recharge configuration + # + # **AI Integration Note:** This endpoint is designed for AI agents and MCP servers + # to understand account constraints before taking actions. Call this endpoint + # first when planning batch operations to avoid hitting limits unexpectedly. + # + # **Quick Reference:** + # + # - `GET /limits` - Get current rate limits and send limits + # - `GET /usage` - (Deprecated) Use `/limits` instead # @return [ArkEmail::Resources::Limits] attr_reader :limits + # Manage tenants (your customers). + # + # Create a tenant for each of your customers to track their email sending + # separately. Store the tenant `id` in your database and use `metadata` for any + # custom data. + # + # **Quick Reference:** + # + # - `POST /tenants` - Create a new tenant + # - `GET /tenants` - List all tenants (paginated) + # - `GET /tenants/{id}` - Get tenant details + # - `PATCH /tenants/{id}` - Update tenant name, metadata, or status + # - `DELETE /tenants/{id}` - Delete a tenant # @return [ArkEmail::Resources::Tenants] attr_reader :tenants diff --git a/lib/ark_email/internal/util.rb b/lib/ark_email/internal/util.rb index a4034ae..72520bc 100644 --- a/lib/ark_email/internal/util.rb +++ b/lib/ark_email/internal/util.rb @@ -490,6 +490,37 @@ def writable_enum(&blk) JSONL_CONTENT = %r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)} class << self + # @api private + # + # @param query [Hash{Symbol=>Object}] + # + # @return [Hash{Symbol=>Object}] + def encode_query_params(query) + out = {} + query.each { write_query_param_element!(out, _1, _2) } + out + end + + # @api private + # + # @param collection [Hash{Symbol=>Object}] + # @param key [String] + # @param element [Object] + # + # @return [nil] + private def write_query_param_element!(collection, key, element) + case element + in Hash + element.each do |name, value| + write_query_param_element!(collection, "#{key}[#{name}]", value) + end + in Array + collection[key] = element.map(&:to_s).join(",") + else + collection[key] = element.to_s + end + end + # @api private # # @param y [Enumerator::Yielder] diff --git a/lib/ark_email/resources/emails.rb b/lib/ark_email/resources/emails.rb index e3a2e69..a61ff34 100644 --- a/lib/ark_email/resources/emails.rb +++ b/lib/ark_email/resources/emails.rb @@ -2,6 +2,15 @@ module ArkEmail module Resources + # Send and manage email messages. + # + # **Quick Reference:** + # + # - `POST /emails` - Send a single email + # - `POST /emails/batch` - Send up to 100 emails + # - `GET /emails/{emailId}` - Get email status and details + # - `GET /emails` - List sent emails + # - `POST /emails/{emailId}/retry` - Retry failed delivery class Emails # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailRetrieveParams} for more details. @@ -25,10 +34,11 @@ class Emails # @see ArkEmail::Models::EmailRetrieveParams def retrieve(email_id, params = {}) parsed, options = ArkEmail::EmailRetrieveParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["emails/%1$s", email_id], - query: parsed, + query: query, model: ArkEmail::Models::EmailRetrieveResponse, options: options ) @@ -72,10 +82,11 @@ def retrieve(email_id, params = {}) # @see ArkEmail::Models::EmailListParams def list(params = {}) parsed, options = ArkEmail::EmailListParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "emails", - query: parsed.transform_keys(per_page: "perPage"), + query: query.transform_keys(per_page: "perPage"), page: ArkEmail::Internal::PageNumberPagination, model: ArkEmail::Models::EmailListResponse, options: options diff --git a/lib/ark_email/resources/limits.rb b/lib/ark_email/resources/limits.rb index 53fd47c..0afd129 100644 --- a/lib/ark_email/resources/limits.rb +++ b/lib/ark_email/resources/limits.rb @@ -2,6 +2,22 @@ module ArkEmail module Resources + # Check account rate limits and send limits. + # + # The limits endpoint returns current status for operational limits: + # + # - **Rate limit:** API requests per second (currently 10/sec) + # - **Send limit:** Emails per hour (default 100/hour for new accounts) + # - **Billing:** Credit balance and auto-recharge configuration + # + # **AI Integration Note:** This endpoint is designed for AI agents and MCP servers + # to understand account constraints before taking actions. Call this endpoint + # first when planning batch operations to avoid hitting limits unexpectedly. + # + # **Quick Reference:** + # + # - `GET /limits` - Get current rate limits and send limits + # - `GET /usage` - (Deprecated) Use `/limits` instead class Limits # Returns current rate limit and send limit information for your account. # diff --git a/lib/ark_email/resources/logs.rb b/lib/ark_email/resources/logs.rb index 8ba7248..7dbe017 100644 --- a/lib/ark_email/resources/logs.rb +++ b/lib/ark_email/resources/logs.rb @@ -2,6 +2,26 @@ module ArkEmail module Resources + # Access API request logs for debugging and monitoring. + # + # Every API request is logged with details including: + # + # - Request method, path, and endpoint + # - Response status code and duration + # - Error details (code, message) for failed requests + # - SDK information (name, version) + # - Rate limit state at time of request + # - Request and response bodies (for single log retrieval) + # + # **Retention:** Logs are retained for 90 days. + # + # **Body storage:** Request and response bodies are stored encrypted and truncated + # at 25KB. Bodies are only returned when retrieving a single log entry. + # + # **Quick Reference:** + # + # - `GET /logs` - List API request logs with filters + # - `GET /logs/{requestId}` - Get full details including request/response bodies class Logs # Retrieve detailed information about a specific API request log, including the # full request and response bodies. @@ -92,10 +112,11 @@ def retrieve(request_id, params = {}) # @see ArkEmail::Models::LogListParams def list(params = {}) parsed, options = ArkEmail::LogListParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "logs", - query: parsed.transform_keys( + query: query.transform_keys( credential_id: "credentialId", end_date: "endDate", per_page: "perPage", diff --git a/lib/ark_email/resources/platform/webhooks.rb b/lib/ark_email/resources/platform/webhooks.rb index cacb738..1baaef2 100644 --- a/lib/ark_email/resources/platform/webhooks.rb +++ b/lib/ark_email/resources/platform/webhooks.rb @@ -189,10 +189,11 @@ def delete(webhook_id, params = {}) # @see ArkEmail::Models::Platform::WebhookListDeliveriesParams def list_deliveries(params = {}) parsed, options = ArkEmail::Platform::WebhookListDeliveriesParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "platform/webhooks/deliveries", - query: parsed.transform_keys(per_page: "perPage", tenant_id: "tenantId", webhook_id: "webhookId"), + query: query.transform_keys(per_page: "perPage", tenant_id: "tenantId", webhook_id: "webhookId"), page: ArkEmail::Internal::PageNumberPagination, model: ArkEmail::Models::Platform::WebhookListDeliveriesResponse, options: options diff --git a/lib/ark_email/resources/tenants.rb b/lib/ark_email/resources/tenants.rb index 9136a88..a37fcb9 100644 --- a/lib/ark_email/resources/tenants.rb +++ b/lib/ark_email/resources/tenants.rb @@ -2,22 +2,158 @@ module ArkEmail module Resources + # Manage tenants (your customers). + # + # Create a tenant for each of your customers to track their email sending + # separately. Store the tenant `id` in your database and use `metadata` for any + # custom data. + # + # **Quick Reference:** + # + # - `POST /tenants` - Create a new tenant + # - `GET /tenants` - List all tenants (paginated) + # - `GET /tenants/{id}` - Get tenant details + # - `PATCH /tenants/{id}` - Update tenant name, metadata, or status + # - `DELETE /tenants/{id}` - Delete a tenant class Tenants # @return [ArkEmail::Resources::Tenants::Credentials] attr_reader :credentials + # Manage sending domains. + # + # Before you can send emails, you need to: + # + # 1. Add a domain + # 2. Configure DNS records (SPF, DKIM, Return Path) + # 3. Verify the domain + # + # **Quick Reference:** + # + # - `POST /domains` - Add a new domain + # - `GET /domains` - List all domains + # - `POST /domains/{id}/verify` - Check DNS and verify domain + # - `DELETE /domains/{id}` - Remove a domain # @return [ArkEmail::Resources::Tenants::Domains] attr_reader :domains + # Manage the suppression list. + # + # Suppressed email addresses will not receive any emails. Addresses are + # automatically suppressed when they hard bounce or file spam complaints. + # + # **Quick Reference:** + # + # - `GET /suppressions` - List suppressed addresses + # - `POST /suppressions` - Add to suppression list + # - `DELETE /suppressions/{email}` - Remove from suppression list + # - `GET /suppressions/{email}` - Check if address is suppressed # @return [ArkEmail::Resources::Tenants::Suppressions] attr_reader :suppressions + # Configure webhook endpoints for real-time notifications. + # + # Webhooks notify your application when email events occur: + # + # - Email delivered, bounced, or failed + # - Email opened or link clicked + # - Spam complaint received + # + # **Quick Reference:** + # + # - `POST /webhooks` - Create a webhook endpoint + # - `GET /webhooks` - List all webhooks + # - `POST /webhooks/{id}/test` - Test a webhook with sample data + # - `PATCH /webhooks/{id}` - Update webhook configuration + # - `DELETE /webhooks/{id}` - Remove a webhook + # - `GET /webhooks/{id}/deliveries` - List delivery attempts + # - `GET /webhooks/{id}/deliveries/{deliveryId}` - Get delivery details + # - `POST /webhooks/{id}/deliveries/{deliveryId}/replay` - Replay a delivery + # + # ## Webhook Signatures + # + # All webhooks are cryptographically signed using RSA-SHA256 for security. Each + # webhook request includes: + # + # | Header | Description | + # | --------------------- | ------------------------------------------------------- | + # | `X-Ark-Signature` | Base64-encoded RSA-SHA256 signature of the request body | + # | `X-Ark-Signature-KID` | Key ID identifying which public key was used | + # + # Verify signatures by fetching the public key from: + # + # ``` + # GET https://mail.arkhq.io/.well-known/jwks.json + # ``` + # + # ```javascript + # const crypto = require("crypto"); + # + # async function verifyWebhook(payload, signatureBase64, publicKey) { + # const signature = Buffer.from(signatureBase64, "base64"); + # const verifier = crypto.createVerify("RSA-SHA256"); + # verifier.update(payload); + # return verifier.verify(publicKey, signature); + # } + # + # // In your webhook handler: + # const isValid = await verifyWebhook( + # rawBody, + # req.headers["x-ark-signature"], + # cachedPublicKey + # ); + # ``` + # + # **Important:** Always verify signatures before processing webhook data. See the + # [Webhook Integration Guide](/guides/webhook-integration) for complete examples. # @return [ArkEmail::Resources::Tenants::Webhooks] attr_reader :webhooks + # Manage track domains for open and click tracking. + # + # Track domains enable you to track when recipients: + # + # - Open your emails (tracking pixel) + # - Click links in your emails + # + # **Setup Process:** + # + # 1. Create a track domain with `POST /tracking` + # 2. Add the CNAME record to your DNS + # 3. Verify DNS with `POST /tracking/{id}/verify` + # 4. Track domain is ready when `dnsOk` is true + # + # **Quick Reference:** + # + # - `POST /tracking` - Create a new track domain + # - `GET /tracking` - List all track domains + # - `GET /tracking/{id}` - Get track domain details + # - `POST /tracking/{id}/verify` - Verify DNS configuration + # - `PATCH /tracking/{id}` - Enable/disable tracking features + # - `DELETE /tracking/{id}` - Remove a track domain # @return [ArkEmail::Resources::Tenants::Tracking] attr_reader :tracking + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` # @return [ArkEmail::Resources::Tenants::Usage] attr_reader :usage @@ -121,10 +257,11 @@ def update(tenant_id, params = {}) # @see ArkEmail::Models::TenantListParams def list(params = {}) parsed, options = ArkEmail::TenantListParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "tenants", - query: parsed.transform_keys(per_page: "perPage"), + query: query.transform_keys(per_page: "perPage"), page: ArkEmail::Internal::PageNumberPagination, model: ArkEmail::Tenant, options: options diff --git a/lib/ark_email/resources/tenants/credentials.rb b/lib/ark_email/resources/tenants/credentials.rb index 5cecef2..28a8306 100644 --- a/lib/ark_email/resources/tenants/credentials.rb +++ b/lib/ark_email/resources/tenants/credentials.rb @@ -63,6 +63,7 @@ def create(tenant_id, params) # @see ArkEmail::Models::Tenants::CredentialRetrieveParams def retrieve(credential_id, params) parsed, options = ArkEmail::Tenants::CredentialRetrieveParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) tenant_id = parsed.delete(:tenant_id) do raise ArgumentError.new("missing required path argument #{_1}") @@ -70,7 +71,7 @@ def retrieve(credential_id, params) @client.request( method: :get, path: ["tenants/%1$s/credentials/%2$s", tenant_id, credential_id], - query: parsed, + query: query, model: ArkEmail::Models::Tenants::CredentialRetrieveResponse, options: options ) @@ -141,10 +142,11 @@ def update(credential_id, params) # @see ArkEmail::Models::Tenants::CredentialListParams def list(tenant_id, params = {}) parsed, options = ArkEmail::Tenants::CredentialListParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["tenants/%1$s/credentials", tenant_id], - query: parsed.transform_keys(per_page: "perPage"), + query: query.transform_keys(per_page: "perPage"), page: ArkEmail::Internal::PageNumberPagination, model: ArkEmail::Models::Tenants::CredentialListResponse, options: options diff --git a/lib/ark_email/resources/tenants/domains.rb b/lib/ark_email/resources/tenants/domains.rb index 5808448..8a2733f 100644 --- a/lib/ark_email/resources/tenants/domains.rb +++ b/lib/ark_email/resources/tenants/domains.rb @@ -3,6 +3,20 @@ module ArkEmail module Resources class Tenants + # Manage sending domains. + # + # Before you can send emails, you need to: + # + # 1. Add a domain + # 2. Configure DNS records (SPF, DKIM, Return Path) + # 3. Verify the domain + # + # **Quick Reference:** + # + # - `POST /domains` - Add a new domain + # - `GET /domains` - List all domains + # - `POST /domains/{id}/verify` - Check DNS and verify domain + # - `DELETE /domains/{id}` - Remove a domain class Domains # Add a new sending domain to a tenant. Returns DNS records that must be # configured before the domain can be verified. diff --git a/lib/ark_email/resources/tenants/suppressions.rb b/lib/ark_email/resources/tenants/suppressions.rb index 1fd0c2b..4fb1b6c 100644 --- a/lib/ark_email/resources/tenants/suppressions.rb +++ b/lib/ark_email/resources/tenants/suppressions.rb @@ -3,6 +3,17 @@ module ArkEmail module Resources class Tenants + # Manage the suppression list. + # + # Suppressed email addresses will not receive any emails. Addresses are + # automatically suppressed when they hard bounce or file spam complaints. + # + # **Quick Reference:** + # + # - `GET /suppressions` - List suppressed addresses + # - `POST /suppressions` - Add to suppression list + # - `DELETE /suppressions/{email}` - Remove from suppression list + # - `GET /suppressions/{email}` - Check if address is suppressed class Suppressions # Add an email address to the tenant's suppression list. The address will not # receive any emails from this tenant until removed. @@ -76,10 +87,11 @@ def retrieve(email, params) # @see ArkEmail::Models::Tenants::SuppressionListParams def list(tenant_id, params = {}) parsed, options = ArkEmail::Tenants::SuppressionListParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["tenants/%1$s/suppressions", tenant_id], - query: parsed.transform_keys(per_page: "perPage"), + query: query.transform_keys(per_page: "perPage"), page: ArkEmail::Internal::PageNumberPagination, model: ArkEmail::Models::Tenants::SuppressionListResponse, options: options diff --git a/lib/ark_email/resources/tenants/tracking.rb b/lib/ark_email/resources/tenants/tracking.rb index 8b66dc7..1c4c284 100644 --- a/lib/ark_email/resources/tenants/tracking.rb +++ b/lib/ark_email/resources/tenants/tracking.rb @@ -3,6 +3,28 @@ module ArkEmail module Resources class Tenants + # Manage track domains for open and click tracking. + # + # Track domains enable you to track when recipients: + # + # - Open your emails (tracking pixel) + # - Click links in your emails + # + # **Setup Process:** + # + # 1. Create a track domain with `POST /tracking` + # 2. Add the CNAME record to your DNS + # 3. Verify DNS with `POST /tracking/{id}/verify` + # 4. Track domain is ready when `dnsOk` is true + # + # **Quick Reference:** + # + # - `POST /tracking` - Create a new track domain + # - `GET /tracking` - List all track domains + # - `GET /tracking/{id}` - Get track domain details + # - `POST /tracking/{id}/verify` - Verify DNS configuration + # - `PATCH /tracking/{id}` - Enable/disable tracking features + # - `DELETE /tracking/{id}` - Remove a track domain class Tracking # Create a new track domain for open/click tracking for a tenant. # diff --git a/lib/ark_email/resources/tenants/usage.rb b/lib/ark_email/resources/tenants/usage.rb index d614f53..28ccb24 100644 --- a/lib/ark_email/resources/tenants/usage.rb +++ b/lib/ark_email/resources/tenants/usage.rb @@ -3,6 +3,27 @@ module ArkEmail module Resources class Tenants + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` class Usage # Some parameter documentations has been truncated, see # {ArkEmail::Models::Tenants::UsageRetrieveParams} for more details. @@ -43,10 +64,11 @@ class Usage # @see ArkEmail::Models::Tenants::UsageRetrieveParams def retrieve(tenant_id, params = {}) parsed, options = ArkEmail::Tenants::UsageRetrieveParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["tenants/%1$s/usage", tenant_id], - query: parsed, + query: query, model: ArkEmail::Models::Tenants::UsageRetrieveResponse, options: options ) @@ -86,10 +108,11 @@ def retrieve(tenant_id, params = {}) # @see ArkEmail::Models::Tenants::UsageRetrieveTimeseriesParams def retrieve_timeseries(tenant_id, params = {}) parsed, options = ArkEmail::Tenants::UsageRetrieveTimeseriesParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: ["tenants/%1$s/usage/timeseries", tenant_id], - query: parsed, + query: query, model: ArkEmail::Models::Tenants::UsageRetrieveTimeseriesResponse, options: options ) diff --git a/lib/ark_email/resources/tenants/webhooks.rb b/lib/ark_email/resources/tenants/webhooks.rb index a366411..4475f5f 100644 --- a/lib/ark_email/resources/tenants/webhooks.rb +++ b/lib/ark_email/resources/tenants/webhooks.rb @@ -3,6 +3,61 @@ module ArkEmail module Resources class Tenants + # Configure webhook endpoints for real-time notifications. + # + # Webhooks notify your application when email events occur: + # + # - Email delivered, bounced, or failed + # - Email opened or link clicked + # - Spam complaint received + # + # **Quick Reference:** + # + # - `POST /webhooks` - Create a webhook endpoint + # - `GET /webhooks` - List all webhooks + # - `POST /webhooks/{id}/test` - Test a webhook with sample data + # - `PATCH /webhooks/{id}` - Update webhook configuration + # - `DELETE /webhooks/{id}` - Remove a webhook + # - `GET /webhooks/{id}/deliveries` - List delivery attempts + # - `GET /webhooks/{id}/deliveries/{deliveryId}` - Get delivery details + # - `POST /webhooks/{id}/deliveries/{deliveryId}/replay` - Replay a delivery + # + # ## Webhook Signatures + # + # All webhooks are cryptographically signed using RSA-SHA256 for security. Each + # webhook request includes: + # + # | Header | Description | + # | --------------------- | ------------------------------------------------------- | + # | `X-Ark-Signature` | Base64-encoded RSA-SHA256 signature of the request body | + # | `X-Ark-Signature-KID` | Key ID identifying which public key was used | + # + # Verify signatures by fetching the public key from: + # + # ``` + # GET https://mail.arkhq.io/.well-known/jwks.json + # ``` + # + # ```javascript + # const crypto = require("crypto"); + # + # async function verifyWebhook(payload, signatureBase64, publicKey) { + # const signature = Buffer.from(signatureBase64, "base64"); + # const verifier = crypto.createVerify("RSA-SHA256"); + # verifier.update(payload); + # return verifier.verify(publicKey, signature); + # } + # + # // In your webhook handler: + # const isValid = await verifyWebhook( + # rawBody, + # req.headers["x-ark-signature"], + # cachedPublicKey + # ); + # ``` + # + # **Important:** Always verify signatures before processing webhook data. See the + # [Webhook Integration Guide](/guides/webhook-integration) for complete examples. class Webhooks # Some parameter documentations has been truncated, see # {ArkEmail::Models::Tenants::WebhookCreateParams} for more details. @@ -207,6 +262,7 @@ def delete(webhook_id, params) # @see ArkEmail::Models::Tenants::WebhookListDeliveriesParams def list_deliveries(webhook_id, params) parsed, options = ArkEmail::Tenants::WebhookListDeliveriesParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) tenant_id = parsed.delete(:tenant_id) do raise ArgumentError.new("missing required path argument #{_1}") @@ -214,7 +270,7 @@ def list_deliveries(webhook_id, params) @client.request( method: :get, path: ["tenants/%1$s/webhooks/%2$s/deliveries", tenant_id, webhook_id], - query: parsed.transform_keys(per_page: "perPage"), + query: query.transform_keys(per_page: "perPage"), model: ArkEmail::Models::Tenants::WebhookListDeliveriesResponse, options: options ) diff --git a/lib/ark_email/resources/usage.rb b/lib/ark_email/resources/usage.rb index 0f4d1fc..57cd368 100644 --- a/lib/ark_email/resources/usage.rb +++ b/lib/ark_email/resources/usage.rb @@ -2,6 +2,27 @@ module ArkEmail module Resources + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` class Usage # Some parameter documentations has been truncated, see # {ArkEmail::Models::UsageRetrieveParams} for more details. @@ -41,10 +62,11 @@ class Usage # @see ArkEmail::Models::UsageRetrieveParams def retrieve(params = {}) parsed, options = ArkEmail::UsageRetrieveParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "usage", - query: parsed, + query: query, model: ArkEmail::OrgUsageSummary, options: options ) @@ -96,10 +118,11 @@ def retrieve(params = {}) # @see ArkEmail::Models::UsageExportParams def export(params = {}) parsed, options = ArkEmail::UsageExportParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "usage/export", - query: parsed.transform_keys(format_: "format", min_sent: "minSent"), + query: query.transform_keys(format_: "format", min_sent: "minSent"), model: ArkEmail::Internal::Type::ArrayOf[ArkEmail::Models::UsageExportResponseItem], options: options ) @@ -155,10 +178,11 @@ def export(params = {}) # @see ArkEmail::Models::UsageListTenantsParams def list_tenants(params = {}) parsed, options = ArkEmail::UsageListTenantsParams.dump_request(params) + query = ArkEmail::Internal::Util.encode_query_params(parsed) @client.request( method: :get, path: "usage/tenants", - query: parsed.transform_keys(min_sent: "minSent", per_page: "perPage"), + query: query.transform_keys(min_sent: "minSent", per_page: "perPage"), page: ArkEmail::Internal::PageNumberPagination, model: ArkEmail::TenantUsageItem, options: options diff --git a/rbi/ark_email/client.rbi b/rbi/ark_email/client.rbi index 8c89907..3547d8b 100644 --- a/rbi/ark_email/client.rbi +++ b/rbi/ark_email/client.rbi @@ -19,18 +19,97 @@ module ArkEmail sig { returns(String) } attr_reader :api_key + # Send and manage email messages. + # + # **Quick Reference:** + # + # - `POST /emails` - Send a single email + # - `POST /emails/batch` - Send up to 100 emails + # - `GET /emails/{emailId}` - Get email status and details + # - `GET /emails` - List sent emails + # - `POST /emails/{emailId}/retry` - Retry failed delivery sig { returns(ArkEmail::Resources::Emails) } attr_reader :emails + # Access API request logs for debugging and monitoring. + # + # Every API request is logged with details including: + # + # - Request method, path, and endpoint + # - Response status code and duration + # - Error details (code, message) for failed requests + # - SDK information (name, version) + # - Rate limit state at time of request + # - Request and response bodies (for single log retrieval) + # + # **Retention:** Logs are retained for 90 days. + # + # **Body storage:** Request and response bodies are stored encrypted and truncated + # at 25KB. Bodies are only returned when retrieving a single log entry. + # + # **Quick Reference:** + # + # - `GET /logs` - List API request logs with filters + # - `GET /logs/{requestId}` - Get full details including request/response bodies sig { returns(ArkEmail::Resources::Logs) } attr_reader :logs + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` sig { returns(ArkEmail::Resources::Usage) } attr_reader :usage + # Check account rate limits and send limits. + # + # The limits endpoint returns current status for operational limits: + # + # - **Rate limit:** API requests per second (currently 10/sec) + # - **Send limit:** Emails per hour (default 100/hour for new accounts) + # - **Billing:** Credit balance and auto-recharge configuration + # + # **AI Integration Note:** This endpoint is designed for AI agents and MCP servers + # to understand account constraints before taking actions. Call this endpoint + # first when planning batch operations to avoid hitting limits unexpectedly. + # + # **Quick Reference:** + # + # - `GET /limits` - Get current rate limits and send limits + # - `GET /usage` - (Deprecated) Use `/limits` instead sig { returns(ArkEmail::Resources::Limits) } attr_reader :limits + # Manage tenants (your customers). + # + # Create a tenant for each of your customers to track their email sending + # separately. Store the tenant `id` in your database and use `metadata` for any + # custom data. + # + # **Quick Reference:** + # + # - `POST /tenants` - Create a new tenant + # - `GET /tenants` - List all tenants (paginated) + # - `GET /tenants/{id}` - Get tenant details + # - `PATCH /tenants/{id}` - Update tenant name, metadata, or status + # - `DELETE /tenants/{id}` - Delete a tenant sig { returns(ArkEmail::Resources::Tenants) } attr_reader :tenants diff --git a/rbi/ark_email/internal/util.rbi b/rbi/ark_email/internal/util.rbi index 6e00cf4..ed3aa6e 100644 --- a/rbi/ark_email/internal/util.rbi +++ b/rbi/ark_email/internal/util.rbi @@ -301,6 +301,26 @@ module ArkEmail T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp) class << self + # @api private + sig do + params(query: ArkEmail::Internal::AnyHash).returns( + ArkEmail::Internal::AnyHash + ) + end + def encode_query_params(query) + end + + # @api private + sig do + params( + collection: ArkEmail::Internal::AnyHash, + key: String, + element: T.anything + ).void + end + private def write_query_param_element!(collection, key, element) + end + # @api private sig do params( diff --git a/rbi/ark_email/resources/emails.rbi b/rbi/ark_email/resources/emails.rbi index 47365b7..b74afb2 100644 --- a/rbi/ark_email/resources/emails.rbi +++ b/rbi/ark_email/resources/emails.rbi @@ -2,6 +2,15 @@ module ArkEmail module Resources + # Send and manage email messages. + # + # **Quick Reference:** + # + # - `POST /emails` - Send a single email + # - `POST /emails/batch` - Send up to 100 emails + # - `GET /emails/{emailId}` - Get email status and details + # - `GET /emails` - List sent emails + # - `POST /emails/{emailId}/retry` - Retry failed delivery class Emails # Retrieve detailed information about a specific email including delivery status, # timestamps, and optionally the email content. diff --git a/rbi/ark_email/resources/limits.rbi b/rbi/ark_email/resources/limits.rbi index d1fb5aa..9ad7828 100644 --- a/rbi/ark_email/resources/limits.rbi +++ b/rbi/ark_email/resources/limits.rbi @@ -2,6 +2,22 @@ module ArkEmail module Resources + # Check account rate limits and send limits. + # + # The limits endpoint returns current status for operational limits: + # + # - **Rate limit:** API requests per second (currently 10/sec) + # - **Send limit:** Emails per hour (default 100/hour for new accounts) + # - **Billing:** Credit balance and auto-recharge configuration + # + # **AI Integration Note:** This endpoint is designed for AI agents and MCP servers + # to understand account constraints before taking actions. Call this endpoint + # first when planning batch operations to avoid hitting limits unexpectedly. + # + # **Quick Reference:** + # + # - `GET /limits` - Get current rate limits and send limits + # - `GET /usage` - (Deprecated) Use `/limits` instead class Limits # Returns current rate limit and send limit information for your account. # diff --git a/rbi/ark_email/resources/logs.rbi b/rbi/ark_email/resources/logs.rbi index 5004539..6f6b807 100644 --- a/rbi/ark_email/resources/logs.rbi +++ b/rbi/ark_email/resources/logs.rbi @@ -2,6 +2,26 @@ module ArkEmail module Resources + # Access API request logs for debugging and monitoring. + # + # Every API request is logged with details including: + # + # - Request method, path, and endpoint + # - Response status code and duration + # - Error details (code, message) for failed requests + # - SDK information (name, version) + # - Rate limit state at time of request + # - Request and response bodies (for single log retrieval) + # + # **Retention:** Logs are retained for 90 days. + # + # **Body storage:** Request and response bodies are stored encrypted and truncated + # at 25KB. Bodies are only returned when retrieving a single log entry. + # + # **Quick Reference:** + # + # - `GET /logs` - List API request logs with filters + # - `GET /logs/{requestId}` - Get full details including request/response bodies class Logs # Retrieve detailed information about a specific API request log, including the # full request and response bodies. diff --git a/rbi/ark_email/resources/tenants.rbi b/rbi/ark_email/resources/tenants.rbi index 999c92e..2f9717f 100644 --- a/rbi/ark_email/resources/tenants.rbi +++ b/rbi/ark_email/resources/tenants.rbi @@ -2,22 +2,158 @@ module ArkEmail module Resources + # Manage tenants (your customers). + # + # Create a tenant for each of your customers to track their email sending + # separately. Store the tenant `id` in your database and use `metadata` for any + # custom data. + # + # **Quick Reference:** + # + # - `POST /tenants` - Create a new tenant + # - `GET /tenants` - List all tenants (paginated) + # - `GET /tenants/{id}` - Get tenant details + # - `PATCH /tenants/{id}` - Update tenant name, metadata, or status + # - `DELETE /tenants/{id}` - Delete a tenant class Tenants sig { returns(ArkEmail::Resources::Tenants::Credentials) } attr_reader :credentials + # Manage sending domains. + # + # Before you can send emails, you need to: + # + # 1. Add a domain + # 2. Configure DNS records (SPF, DKIM, Return Path) + # 3. Verify the domain + # + # **Quick Reference:** + # + # - `POST /domains` - Add a new domain + # - `GET /domains` - List all domains + # - `POST /domains/{id}/verify` - Check DNS and verify domain + # - `DELETE /domains/{id}` - Remove a domain sig { returns(ArkEmail::Resources::Tenants::Domains) } attr_reader :domains + # Manage the suppression list. + # + # Suppressed email addresses will not receive any emails. Addresses are + # automatically suppressed when they hard bounce or file spam complaints. + # + # **Quick Reference:** + # + # - `GET /suppressions` - List suppressed addresses + # - `POST /suppressions` - Add to suppression list + # - `DELETE /suppressions/{email}` - Remove from suppression list + # - `GET /suppressions/{email}` - Check if address is suppressed sig { returns(ArkEmail::Resources::Tenants::Suppressions) } attr_reader :suppressions + # Configure webhook endpoints for real-time notifications. + # + # Webhooks notify your application when email events occur: + # + # - Email delivered, bounced, or failed + # - Email opened or link clicked + # - Spam complaint received + # + # **Quick Reference:** + # + # - `POST /webhooks` - Create a webhook endpoint + # - `GET /webhooks` - List all webhooks + # - `POST /webhooks/{id}/test` - Test a webhook with sample data + # - `PATCH /webhooks/{id}` - Update webhook configuration + # - `DELETE /webhooks/{id}` - Remove a webhook + # - `GET /webhooks/{id}/deliveries` - List delivery attempts + # - `GET /webhooks/{id}/deliveries/{deliveryId}` - Get delivery details + # - `POST /webhooks/{id}/deliveries/{deliveryId}/replay` - Replay a delivery + # + # ## Webhook Signatures + # + # All webhooks are cryptographically signed using RSA-SHA256 for security. Each + # webhook request includes: + # + # | Header | Description | + # | --------------------- | ------------------------------------------------------- | + # | `X-Ark-Signature` | Base64-encoded RSA-SHA256 signature of the request body | + # | `X-Ark-Signature-KID` | Key ID identifying which public key was used | + # + # Verify signatures by fetching the public key from: + # + # ``` + # GET https://mail.arkhq.io/.well-known/jwks.json + # ``` + # + # ```javascript + # const crypto = require("crypto"); + # + # async function verifyWebhook(payload, signatureBase64, publicKey) { + # const signature = Buffer.from(signatureBase64, "base64"); + # const verifier = crypto.createVerify("RSA-SHA256"); + # verifier.update(payload); + # return verifier.verify(publicKey, signature); + # } + # + # // In your webhook handler: + # const isValid = await verifyWebhook( + # rawBody, + # req.headers["x-ark-signature"], + # cachedPublicKey + # ); + # ``` + # + # **Important:** Always verify signatures before processing webhook data. See the + # [Webhook Integration Guide](/guides/webhook-integration) for complete examples. sig { returns(ArkEmail::Resources::Tenants::Webhooks) } attr_reader :webhooks + # Manage track domains for open and click tracking. + # + # Track domains enable you to track when recipients: + # + # - Open your emails (tracking pixel) + # - Click links in your emails + # + # **Setup Process:** + # + # 1. Create a track domain with `POST /tracking` + # 2. Add the CNAME record to your DNS + # 3. Verify DNS with `POST /tracking/{id}/verify` + # 4. Track domain is ready when `dnsOk` is true + # + # **Quick Reference:** + # + # - `POST /tracking` - Create a new track domain + # - `GET /tracking` - List all track domains + # - `GET /tracking/{id}` - Get track domain details + # - `POST /tracking/{id}/verify` - Verify DNS configuration + # - `PATCH /tracking/{id}` - Enable/disable tracking features + # - `DELETE /tracking/{id}` - Remove a track domain sig { returns(ArkEmail::Resources::Tenants::Tracking) } attr_reader :tracking + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` sig { returns(ArkEmail::Resources::Tenants::Usage) } attr_reader :usage diff --git a/rbi/ark_email/resources/tenants/domains.rbi b/rbi/ark_email/resources/tenants/domains.rbi index c06f4cd..46f7935 100644 --- a/rbi/ark_email/resources/tenants/domains.rbi +++ b/rbi/ark_email/resources/tenants/domains.rbi @@ -3,6 +3,20 @@ module ArkEmail module Resources class Tenants + # Manage sending domains. + # + # Before you can send emails, you need to: + # + # 1. Add a domain + # 2. Configure DNS records (SPF, DKIM, Return Path) + # 3. Verify the domain + # + # **Quick Reference:** + # + # - `POST /domains` - Add a new domain + # - `GET /domains` - List all domains + # - `POST /domains/{id}/verify` - Check DNS and verify domain + # - `DELETE /domains/{id}` - Remove a domain class Domains # Add a new sending domain to a tenant. Returns DNS records that must be # configured before the domain can be verified. diff --git a/rbi/ark_email/resources/tenants/suppressions.rbi b/rbi/ark_email/resources/tenants/suppressions.rbi index 574fecf..cfe84a3 100644 --- a/rbi/ark_email/resources/tenants/suppressions.rbi +++ b/rbi/ark_email/resources/tenants/suppressions.rbi @@ -3,6 +3,17 @@ module ArkEmail module Resources class Tenants + # Manage the suppression list. + # + # Suppressed email addresses will not receive any emails. Addresses are + # automatically suppressed when they hard bounce or file spam complaints. + # + # **Quick Reference:** + # + # - `GET /suppressions` - List suppressed addresses + # - `POST /suppressions` - Add to suppression list + # - `DELETE /suppressions/{email}` - Remove from suppression list + # - `GET /suppressions/{email}` - Check if address is suppressed class Suppressions # Add an email address to the tenant's suppression list. The address will not # receive any emails from this tenant until removed. diff --git a/rbi/ark_email/resources/tenants/tracking.rbi b/rbi/ark_email/resources/tenants/tracking.rbi index 4ba1bbe..459f0bb 100644 --- a/rbi/ark_email/resources/tenants/tracking.rbi +++ b/rbi/ark_email/resources/tenants/tracking.rbi @@ -3,6 +3,28 @@ module ArkEmail module Resources class Tenants + # Manage track domains for open and click tracking. + # + # Track domains enable you to track when recipients: + # + # - Open your emails (tracking pixel) + # - Click links in your emails + # + # **Setup Process:** + # + # 1. Create a track domain with `POST /tracking` + # 2. Add the CNAME record to your DNS + # 3. Verify DNS with `POST /tracking/{id}/verify` + # 4. Track domain is ready when `dnsOk` is true + # + # **Quick Reference:** + # + # - `POST /tracking` - Create a new track domain + # - `GET /tracking` - List all track domains + # - `GET /tracking/{id}` - Get track domain details + # - `POST /tracking/{id}/verify` - Verify DNS configuration + # - `PATCH /tracking/{id}` - Enable/disable tracking features + # - `DELETE /tracking/{id}` - Remove a track domain class Tracking # Create a new track domain for open/click tracking for a tenant. # diff --git a/rbi/ark_email/resources/tenants/usage.rbi b/rbi/ark_email/resources/tenants/usage.rbi index 785dc4c..68fefef 100644 --- a/rbi/ark_email/resources/tenants/usage.rbi +++ b/rbi/ark_email/resources/tenants/usage.rbi @@ -3,6 +3,27 @@ module ArkEmail module Resources class Tenants + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` class Usage # Returns email sending statistics for a specific tenant over a time period. # diff --git a/rbi/ark_email/resources/tenants/webhooks.rbi b/rbi/ark_email/resources/tenants/webhooks.rbi index 6f8a644..6ffbd6a 100644 --- a/rbi/ark_email/resources/tenants/webhooks.rbi +++ b/rbi/ark_email/resources/tenants/webhooks.rbi @@ -3,6 +3,61 @@ module ArkEmail module Resources class Tenants + # Configure webhook endpoints for real-time notifications. + # + # Webhooks notify your application when email events occur: + # + # - Email delivered, bounced, or failed + # - Email opened or link clicked + # - Spam complaint received + # + # **Quick Reference:** + # + # - `POST /webhooks` - Create a webhook endpoint + # - `GET /webhooks` - List all webhooks + # - `POST /webhooks/{id}/test` - Test a webhook with sample data + # - `PATCH /webhooks/{id}` - Update webhook configuration + # - `DELETE /webhooks/{id}` - Remove a webhook + # - `GET /webhooks/{id}/deliveries` - List delivery attempts + # - `GET /webhooks/{id}/deliveries/{deliveryId}` - Get delivery details + # - `POST /webhooks/{id}/deliveries/{deliveryId}/replay` - Replay a delivery + # + # ## Webhook Signatures + # + # All webhooks are cryptographically signed using RSA-SHA256 for security. Each + # webhook request includes: + # + # | Header | Description | + # | --------------------- | ------------------------------------------------------- | + # | `X-Ark-Signature` | Base64-encoded RSA-SHA256 signature of the request body | + # | `X-Ark-Signature-KID` | Key ID identifying which public key was used | + # + # Verify signatures by fetching the public key from: + # + # ``` + # GET https://mail.arkhq.io/.well-known/jwks.json + # ``` + # + # ```javascript + # const crypto = require("crypto"); + # + # async function verifyWebhook(payload, signatureBase64, publicKey) { + # const signature = Buffer.from(signatureBase64, "base64"); + # const verifier = crypto.createVerify("RSA-SHA256"); + # verifier.update(payload); + # return verifier.verify(publicKey, signature); + # } + # + # // In your webhook handler: + # const isValid = await verifyWebhook( + # rawBody, + # req.headers["x-ark-signature"], + # cachedPublicKey + # ); + # ``` + # + # **Important:** Always verify signatures before processing webhook data. See the + # [Webhook Integration Guide](/guides/webhook-integration) for complete examples. class Webhooks # Create a webhook endpoint to receive email event notifications for a tenant. # diff --git a/rbi/ark_email/resources/usage.rbi b/rbi/ark_email/resources/usage.rbi index 799c858..b791af8 100644 --- a/rbi/ark_email/resources/usage.rbi +++ b/rbi/ark_email/resources/usage.rbi @@ -2,6 +2,27 @@ module ArkEmail module Resources + # Per-tenant usage analytics and bulk reporting. + # + # Track email sending statistics for each tenant to power billing, dashboards, and + # monitoring. + # + # **Single Tenant Usage:** + # + # - `GET /tenants/{id}/usage` - Get usage stats for a specific tenant + # - `GET /tenants/{id}/usage/timeseries` - Get time-bucketed data for charts + # + # **Bulk Usage:** + # + # - `GET /usage/tenants` - Get usage for all tenants (paginated, sortable) + # - `GET /usage/export` - Export usage data as CSV, JSONL, or JSON + # + # **Period Formats:** + # + # - Shortcuts: `today`, `yesterday`, `this_month`, `last_month`, `last_7_days`, + # `last_30_days` + # - Month: `2024-01` + # - Date range: `2024-01-01..2024-01-15` class Usage # Returns aggregated email sending statistics for your entire organization. For # per-tenant breakdown, use `GET /usage/tenants`. diff --git a/sig/ark_email/internal/util.rbs b/sig/ark_email/internal/util.rbs index a26404a..ab576ac 100644 --- a/sig/ark_email/internal/util.rbs +++ b/sig/ark_email/internal/util.rbs @@ -106,6 +106,16 @@ module ArkEmail JSON_CONTENT: Regexp JSONL_CONTENT: Regexp + def encode_query_params: ( + ::Hash[Symbol, top] query + ) -> ::Hash[Symbol, top] + + private def write_query_param_element!: ( + ::Hash[Symbol, top] collection, + String key, + top element + ) -> nil + def self?.write_multipart_content: ( Enumerator::Yielder y, val: top, From 07f4b8f01d304d412aef6898dc8d003f701e2733 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 14:25:33 +0000 Subject: [PATCH 07/11] chore(ci): add build step --- .github/workflows/ci.yml | 34 ++++++++++ scripts/utils/upload-artifact.sh | 113 +++++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100755 scripts/utils/upload-artifact.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cadfca8..8b0f14a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,40 @@ on: - 'stl-preview-base/**' jobs: + build: + timeout-minutes: 10 + name: build + permissions: + contents: read + id-token: write + runs-on: ${{ github.repository == 'stainless-sdks/ark-ruby' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + if: |- + github.repository == 'stainless-sdks/ark-ruby' && + (github.event_name == 'push' || github.event.pull_request.head.repo.fork) + steps: + - uses: actions/checkout@v6 + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: false + - run: |- + bundle install + + - name: Get GitHub OIDC Token + if: github.repository == 'stainless-sdks/ark-ruby' + id: github-oidc + uses: actions/github-script@v8 + with: + script: core.setOutput('github_token', await core.getIDToken()); + + - name: Build and upload gem artifacts + if: github.repository == 'stainless-sdks/ark-ruby' + env: + URL: https://pkg.stainless.com/s + AUTH: ${{ steps.github-oidc.outputs.github_token }} + SHA: ${{ github.sha }} + PACKAGE_NAME: ark_email + run: ./scripts/utils/upload-artifact.sh lint: timeout-minutes: 10 name: lint diff --git a/scripts/utils/upload-artifact.sh b/scripts/utils/upload-artifact.sh new file mode 100755 index 0000000..8d7d721 --- /dev/null +++ b/scripts/utils/upload-artifact.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# ANSI Color Codes +GREEN='\033[32m' +RED='\033[31m' +NC='\033[0m' # No Color + +DIST_DIR="dist" + +log_error() { + local msg="$1" + local headers="$2" + local body="$3" + echo -e "${RED}${msg}${NC}" + [[ -f "$headers" ]] && echo -e "${RED}Headers:$(cat "$headers")${NC}" + echo -e "${RED}Body: ${body}${NC}" + exit 1 +} + +upload_file() { + local file_name="$1" + local tmp_headers + tmp_headers=$(mktemp) + + if [ -f "$file_name" ]; then + echo -e "${GREEN}Processing file: $file_name${NC}" + pkg_file_name="${file_name#"${DIST_DIR}/"}" + + # Get signed URL for uploading artifact file + signed_url_response=$(curl -X POST -G "$URL" \ + -sS --retry 5 \ + -D "$tmp_headers" \ + --data-urlencode "filename=$pkg_file_name" \ + -H "Authorization: Bearer $AUTH" \ + -H "Content-Type: application/json") + + # Validate JSON and extract URL + if ! signed_url=$(echo "$signed_url_response" | jq -e -r '.url' 2>/dev/null) || [[ "$signed_url" == "null" ]]; then + log_error "Failed to get valid signed URL" "$tmp_headers" "$signed_url_response" + fi + + # Set content-type based on file extension + local extension="${file_name##*.}" + local content_type + case "$extension" in + gem) content_type="application/octet-stream" ;; + gz) content_type="application/gzip" ;; + rz) content_type="application/octet-stream" ;; + html) content_type="text/html" ;; + *) content_type="application/octet-stream" ;; + esac + + # Upload file + upload_response=$(curl -v -X PUT \ + --retry 5 \ + --retry-all-errors \ + -D "$tmp_headers" \ + -H "Content-Type: $content_type" \ + --data-binary "@${file_name}" "$signed_url" 2>&1) + + if ! echo "$upload_response" | grep -q "HTTP/[0-9.]* 200"; then + log_error "Failed to upload artifact file" "$tmp_headers" "$upload_response" + fi + + # Insert small throttle to reduce rate limiting risk + sleep 0.1 + fi +} + +walk_tree() { + local current_dir="$1" + + for entry in "$current_dir"/*; do + # Check that entry is valid + [ -e "$entry" ] || [ -h "$entry" ] || continue + + if [ -d "$entry" ]; then + walk_tree "$entry" + else + upload_file "$entry" + fi + done +} + +cd "$(dirname "$0")/../.." + +echo "::group::Building gem" +VERSION_FILE="lib/${PACKAGE_NAME}/version.rb" +if [[ ! -f "$VERSION_FILE" ]]; then + echo -e "${RED}Version file not found: ${VERSION_FILE}${NC}" + exit 1 +fi +SHORT_SHA="${SHA:0:7}" +sed -i.bak -E "s/(VERSION = \"[^\"]+)\"/\1.beta.${SHORT_SHA}\"/" "$VERSION_FILE" +rm -f "${VERSION_FILE}.bak" + +gem build +mkdir -p "${DIST_DIR}/gems" +mv ./*.gem "${DIST_DIR}/gems/" +echo "::endgroup::" + +echo "::group::Generating gem index" +gem generate_index --directory "$DIST_DIR" +echo "::endgroup::" + +echo "::group::Uploading to pkg.stainless.com" +walk_tree "$DIST_DIR" +echo "::endgroup::" + +echo -e "${GREEN}Gem artifacts uploaded to Stainless storage.${NC}" +echo -e "\033[32mInstallation: bundle remove ark-email && bundle add ark-email --source 'https://pkg.stainless.com/s/ark-ruby/$SHA'\033[0m" From 59ed473b3a2c74b6baecde451956fb1a24829489 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 12:53:14 +0000 Subject: [PATCH 08/11] chore(internal): codegen related update --- .../models/email_retrieve_deliveries_params.rb | 8 +++++++- lib/ark_email/models/email_retrieve_params.rb | 9 ++++++++- lib/ark_email/models/email_retry_params.rb | 8 +++++++- lib/ark_email/models/log_retrieve_params.rb | 8 +++++++- .../models/platform/webhook_delete_params.rb | 8 +++++++- .../platform/webhook_replay_delivery_params.rb | 8 +++++++- .../webhook_retrieve_delivery_params.rb | 8 +++++++- .../models/platform/webhook_retrieve_params.rb | 8 +++++++- .../models/platform/webhook_test_params.rb | 9 ++++++++- .../models/platform/webhook_update_params.rb | 9 ++++++++- lib/ark_email/models/tenant_delete_params.rb | 8 +++++++- lib/ark_email/models/tenant_retrieve_params.rb | 8 +++++++- lib/ark_email/models/tenant_update_params.rb | 9 ++++++++- .../models/tenants/credential_create_params.rb | 9 ++++++++- .../models/tenants/credential_delete_params.rb | 8 +++++++- .../models/tenants/credential_list_params.rb | 9 ++++++++- .../tenants/credential_retrieve_params.rb | 9 ++++++++- .../models/tenants/credential_update_params.rb | 9 ++++++++- .../models/tenants/domain_create_params.rb | 9 ++++++++- .../models/tenants/domain_delete_params.rb | 8 +++++++- .../models/tenants/domain_list_params.rb | 8 +++++++- .../models/tenants/domain_retrieve_params.rb | 8 +++++++- .../models/tenants/domain_verify_params.rb | 8 +++++++- .../tenants/suppression_create_params.rb | 9 ++++++++- .../tenants/suppression_delete_params.rb | 8 +++++++- .../models/tenants/suppression_list_params.rb | 8 +++++++- .../tenants/suppression_retrieve_params.rb | 8 +++++++- .../models/tenants/tracking_create_params.rb | 9 ++++++++- .../models/tenants/tracking_delete_params.rb | 8 +++++++- .../models/tenants/tracking_list_params.rb | 8 +++++++- .../models/tenants/tracking_retrieve_params.rb | 8 +++++++- .../models/tenants/tracking_update_params.rb | 9 ++++++++- .../models/tenants/tracking_verify_params.rb | 8 +++++++- .../models/tenants/usage_retrieve_params.rb | 9 ++++++++- .../usage_retrieve_timeseries_params.rb | 9 ++++++++- .../models/tenants/webhook_create_params.rb | 9 ++++++++- .../models/tenants/webhook_delete_params.rb | 8 +++++++- .../tenants/webhook_list_deliveries_params.rb | 9 ++++++++- .../models/tenants/webhook_list_params.rb | 8 +++++++- .../tenants/webhook_replay_delivery_params.rb | 8 +++++++- .../webhook_retrieve_delivery_params.rb | 8 +++++++- .../models/tenants/webhook_retrieve_params.rb | 8 +++++++- .../models/tenants/webhook_test_params.rb | 9 ++++++++- .../models/tenants/webhook_update_params.rb | 8 +++++++- .../email_retrieve_deliveries_params.rbi | 18 +++++++++++++----- rbi/ark_email/models/email_retrieve_params.rbi | 11 ++++++++++- rbi/ark_email/models/email_retry_params.rbi | 18 +++++++++++++----- rbi/ark_email/models/log_retrieve_params.rbi | 18 +++++++++++++----- .../models/platform/webhook_delete_params.rbi | 18 +++++++++++++----- .../webhook_replay_delivery_params.rbi | 18 +++++++++++++----- .../webhook_retrieve_delivery_params.rbi | 18 +++++++++++++----- .../platform/webhook_retrieve_params.rbi | 18 +++++++++++++----- .../models/platform/webhook_test_params.rbi | 6 ++++++ .../models/platform/webhook_update_params.rbi | 6 ++++++ rbi/ark_email/models/tenant_delete_params.rbi | 18 +++++++++++++----- .../models/tenant_retrieve_params.rbi | 18 +++++++++++++----- rbi/ark_email/models/tenant_update_params.rbi | 6 ++++++ .../tenants/credential_create_params.rbi | 6 ++++++ .../tenants/credential_delete_params.rbi | 12 ++++++++++-- .../models/tenants/credential_list_params.rbi | 6 ++++++ .../tenants/credential_retrieve_params.rbi | 6 ++++++ .../tenants/credential_update_params.rbi | 6 ++++++ .../models/tenants/domain_create_params.rbi | 11 ++++++++++- .../models/tenants/domain_delete_params.rbi | 12 ++++++++++-- .../models/tenants/domain_list_params.rbi | 18 +++++++++++++----- .../models/tenants/domain_retrieve_params.rbi | 12 ++++++++++-- .../models/tenants/domain_verify_params.rbi | 12 ++++++++++-- .../tenants/suppression_create_params.rbi | 6 ++++++ .../tenants/suppression_delete_params.rbi | 12 ++++++++++-- .../models/tenants/suppression_list_params.rbi | 7 ++++++- .../tenants/suppression_retrieve_params.rbi | 12 ++++++++++-- .../models/tenants/tracking_create_params.rbi | 6 ++++++ .../models/tenants/tracking_delete_params.rbi | 12 ++++++++++-- .../models/tenants/tracking_list_params.rbi | 18 +++++++++++++----- .../tenants/tracking_retrieve_params.rbi | 12 ++++++++++-- .../models/tenants/tracking_update_params.rbi | 6 ++++++ .../models/tenants/tracking_verify_params.rbi | 12 ++++++++++-- .../models/tenants/usage_retrieve_params.rbi | 6 ++++++ .../usage_retrieve_timeseries_params.rbi | 6 ++++++ .../models/tenants/webhook_create_params.rbi | 6 ++++++ .../models/tenants/webhook_delete_params.rbi | 12 ++++++++++-- .../tenants/webhook_list_deliveries_params.rbi | 6 ++++++ .../models/tenants/webhook_list_params.rbi | 18 +++++++++++++----- .../tenants/webhook_replay_delivery_params.rbi | 7 ++++++- .../webhook_retrieve_delivery_params.rbi | 7 ++++++- .../models/tenants/webhook_retrieve_params.rbi | 12 ++++++++++-- .../models/tenants/webhook_test_params.rbi | 6 ++++++ .../models/tenants/webhook_update_params.rbi | 6 ++++++ .../email_retrieve_deliveries_params.rbs | 14 +++++++++++--- sig/ark_email/models/email_retrieve_params.rbs | 7 ++++++- sig/ark_email/models/email_retry_params.rbs | 14 +++++++++++--- sig/ark_email/models/log_retrieve_params.rbs | 14 +++++++++++--- .../models/platform/webhook_delete_params.rbs | 14 +++++++++++--- .../webhook_replay_delivery_params.rbs | 14 +++++++++++--- .../webhook_retrieve_delivery_params.rbs | 14 +++++++++++--- .../platform/webhook_retrieve_params.rbs | 14 +++++++++++--- .../models/platform/webhook_test_params.rbs | 9 ++++++++- .../models/platform/webhook_update_params.rbs | 5 +++++ sig/ark_email/models/tenant_delete_params.rbs | 14 +++++++++++--- .../models/tenant_retrieve_params.rbs | 14 +++++++++++--- sig/ark_email/models/tenant_update_params.rbs | 5 +++++ .../tenants/credential_create_params.rbs | 5 +++++ .../tenants/credential_delete_params.rbs | 7 ++++++- .../models/tenants/credential_list_params.rbs | 5 +++++ .../tenants/credential_retrieve_params.rbs | 6 +++++- .../tenants/credential_update_params.rbs | 6 +++++- .../models/tenants/domain_create_params.rbs | 7 ++++++- .../models/tenants/domain_delete_params.rbs | 7 ++++++- .../models/tenants/domain_list_params.rbs | 14 +++++++++++--- .../models/tenants/domain_retrieve_params.rbs | 7 ++++++- .../models/tenants/domain_verify_params.rbs | 7 ++++++- .../tenants/suppression_create_params.rbs | 6 +++++- .../tenants/suppression_delete_params.rbs | 7 ++++++- .../models/tenants/suppression_list_params.rbs | 6 +++++- .../tenants/suppression_retrieve_params.rbs | 7 ++++++- .../models/tenants/tracking_create_params.rbs | 5 +++++ .../models/tenants/tracking_delete_params.rbs | 7 ++++++- .../models/tenants/tracking_list_params.rbs | 14 +++++++++++--- .../tenants/tracking_retrieve_params.rbs | 7 ++++++- .../models/tenants/tracking_update_params.rbs | 5 +++++ .../models/tenants/tracking_verify_params.rbs | 7 ++++++- .../models/tenants/usage_retrieve_params.rbs | 6 +++++- .../usage_retrieve_timeseries_params.rbs | 5 +++++ .../models/tenants/webhook_create_params.rbs | 5 +++++ .../models/tenants/webhook_delete_params.rbs | 7 ++++++- .../tenants/webhook_list_deliveries_params.rbs | 5 +++++ .../models/tenants/webhook_list_params.rbs | 14 +++++++++++--- .../tenants/webhook_replay_delivery_params.rbs | 6 +++++- .../webhook_retrieve_delivery_params.rbs | 6 +++++- .../models/tenants/webhook_retrieve_params.rbs | 7 ++++++- .../models/tenants/webhook_test_params.rbs | 5 +++++ .../models/tenants/webhook_update_params.rbs | 5 +++++ 132 files changed, 1033 insertions(+), 188 deletions(-) diff --git a/lib/ark_email/models/email_retrieve_deliveries_params.rb b/lib/ark_email/models/email_retrieve_deliveries_params.rb index 4f76703..022dfa5 100644 --- a/lib/ark_email/models/email_retrieve_deliveries_params.rb +++ b/lib/ark_email/models/email_retrieve_deliveries_params.rb @@ -7,7 +7,13 @@ class EmailRetrieveDeliveriesParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute email_id + # + # @return [String] + required :email_id, String + + # @!method initialize(email_id:, request_options: {}) + # @param email_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/email_retrieve_params.rb b/lib/ark_email/models/email_retrieve_params.rb index bf9499c..63eeb42 100644 --- a/lib/ark_email/models/email_retrieve_params.rb +++ b/lib/ark_email/models/email_retrieve_params.rb @@ -7,6 +7,11 @@ class EmailRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute email_id + # + # @return [String] + required :email_id, String + # @!attribute expand # Comma-separated list of fields to include: # @@ -21,10 +26,12 @@ class EmailRetrieveParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :expand, String - # @!method initialize(expand: nil, request_options: {}) + # @!method initialize(email_id:, expand: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::EmailRetrieveParams} for more details. # + # @param email_id [String] + # # @param expand [String] Comma-separated list of fields to include: # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/ark_email/models/email_retry_params.rb b/lib/ark_email/models/email_retry_params.rb index f496659..aa48a5a 100644 --- a/lib/ark_email/models/email_retry_params.rb +++ b/lib/ark_email/models/email_retry_params.rb @@ -7,7 +7,13 @@ class EmailRetryParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute email_id + # + # @return [String] + required :email_id, String + + # @!method initialize(email_id:, request_options: {}) + # @param email_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/log_retrieve_params.rb b/lib/ark_email/models/log_retrieve_params.rb index 36db949..10093a1 100644 --- a/lib/ark_email/models/log_retrieve_params.rb +++ b/lib/ark_email/models/log_retrieve_params.rb @@ -7,7 +7,13 @@ class LogRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute request_id + # + # @return [String] + required :request_id, String + + # @!method initialize(request_id:, request_options: {}) + # @param request_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/platform/webhook_delete_params.rb b/lib/ark_email/models/platform/webhook_delete_params.rb index 0d0309b..44c9c34 100644 --- a/lib/ark_email/models/platform/webhook_delete_params.rb +++ b/lib/ark_email/models/platform/webhook_delete_params.rb @@ -8,7 +8,13 @@ class WebhookDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + + # @!method initialize(webhook_id:, request_options: {}) + # @param webhook_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/platform/webhook_replay_delivery_params.rb b/lib/ark_email/models/platform/webhook_replay_delivery_params.rb index 6f8ff7d..98370e8 100644 --- a/lib/ark_email/models/platform/webhook_replay_delivery_params.rb +++ b/lib/ark_email/models/platform/webhook_replay_delivery_params.rb @@ -8,7 +8,13 @@ class WebhookReplayDeliveryParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute delivery_id + # + # @return [String] + required :delivery_id, String + + # @!method initialize(delivery_id:, request_options: {}) + # @param delivery_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/platform/webhook_retrieve_delivery_params.rb b/lib/ark_email/models/platform/webhook_retrieve_delivery_params.rb index e12e0c3..4ea6efd 100644 --- a/lib/ark_email/models/platform/webhook_retrieve_delivery_params.rb +++ b/lib/ark_email/models/platform/webhook_retrieve_delivery_params.rb @@ -8,7 +8,13 @@ class WebhookRetrieveDeliveryParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute delivery_id + # + # @return [String] + required :delivery_id, String + + # @!method initialize(delivery_id:, request_options: {}) + # @param delivery_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/platform/webhook_retrieve_params.rb b/lib/ark_email/models/platform/webhook_retrieve_params.rb index 669b86f..ff34b3f 100644 --- a/lib/ark_email/models/platform/webhook_retrieve_params.rb +++ b/lib/ark_email/models/platform/webhook_retrieve_params.rb @@ -8,7 +8,13 @@ class WebhookRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + + # @!method initialize(webhook_id:, request_options: {}) + # @param webhook_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/platform/webhook_test_params.rb b/lib/ark_email/models/platform/webhook_test_params.rb index e4f2502..2ff3563 100644 --- a/lib/ark_email/models/platform/webhook_test_params.rb +++ b/lib/ark_email/models/platform/webhook_test_params.rb @@ -8,13 +8,20 @@ class WebhookTestParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + # @!attribute event # Event type to simulate # # @return [Symbol, ArkEmail::Models::Platform::WebhookTestParams::Event] required :event, enum: -> { ArkEmail::Platform::WebhookTestParams::Event } - # @!method initialize(event:, request_options: {}) + # @!method initialize(webhook_id:, event:, request_options: {}) + # @param webhook_id [String] + # # @param event [Symbol, ArkEmail::Models::Platform::WebhookTestParams::Event] Event type to simulate # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/ark_email/models/platform/webhook_update_params.rb b/lib/ark_email/models/platform/webhook_update_params.rb index 86240c7..a8e5e8d 100644 --- a/lib/ark_email/models/platform/webhook_update_params.rb +++ b/lib/ark_email/models/platform/webhook_update_params.rb @@ -8,6 +8,11 @@ class WebhookUpdateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + # @!attribute enabled # Enable or disable the webhook # @@ -33,7 +38,9 @@ class WebhookUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :url, String - # @!method initialize(enabled: nil, events: nil, name: nil, url: nil, request_options: {}) + # @!method initialize(webhook_id:, enabled: nil, events: nil, name: nil, url: nil, request_options: {}) + # @param webhook_id [String] + # # @param enabled [Boolean] Enable or disable the webhook # # @param events [Array] Events to subscribe to. Empty array means all events. diff --git a/lib/ark_email/models/tenant_delete_params.rb b/lib/ark_email/models/tenant_delete_params.rb index 7c6456a..f4e02c8 100644 --- a/lib/ark_email/models/tenant_delete_params.rb +++ b/lib/ark_email/models/tenant_delete_params.rb @@ -7,7 +7,13 @@ class TenantDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + + # @!method initialize(tenant_id:, request_options: {}) + # @param tenant_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenant_retrieve_params.rb b/lib/ark_email/models/tenant_retrieve_params.rb index 29849fd..d93b24f 100644 --- a/lib/ark_email/models/tenant_retrieve_params.rb +++ b/lib/ark_email/models/tenant_retrieve_params.rb @@ -7,7 +7,13 @@ class TenantRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + + # @!method initialize(tenant_id:, request_options: {}) + # @param tenant_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenant_update_params.rb b/lib/ark_email/models/tenant_update_params.rb index 05a4928..0428055 100644 --- a/lib/ark_email/models/tenant_update_params.rb +++ b/lib/ark_email/models/tenant_update_params.rb @@ -7,6 +7,11 @@ class TenantUpdateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute metadata # Custom key-value pairs. Useful for storing references to your internal systems. # @@ -36,10 +41,12 @@ class TenantUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [Symbol, ArkEmail::Models::TenantUpdateParams::Status, nil] optional :status, enum: -> { ArkEmail::TenantUpdateParams::Status } - # @!method initialize(metadata: nil, name: nil, status: nil, request_options: {}) + # @!method initialize(tenant_id:, metadata: nil, name: nil, status: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::TenantUpdateParams} for more details. # + # @param tenant_id [String] + # # @param metadata [Hash{Symbol=>String, Float, Boolean, nil}, nil] Custom key-value pairs. Useful for storing references to your internal systems. # # @param name [String] Display name for the tenant diff --git a/lib/ark_email/models/tenants/credential_create_params.rb b/lib/ark_email/models/tenants/credential_create_params.rb index 6d9d538..03ee6a8 100644 --- a/lib/ark_email/models/tenants/credential_create_params.rb +++ b/lib/ark_email/models/tenants/credential_create_params.rb @@ -8,6 +8,11 @@ class CredentialCreateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute name # Name for the credential. Can only contain letters, numbers, hyphens, and # underscores. Max 50 characters. @@ -24,10 +29,12 @@ class CredentialCreateParams < ArkEmail::Internal::Type::BaseModel # @return [Symbol, ArkEmail::Models::Tenants::CredentialCreateParams::Type] required :type, enum: -> { ArkEmail::Tenants::CredentialCreateParams::Type } - # @!method initialize(name:, type:, request_options: {}) + # @!method initialize(tenant_id:, name:, type:, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::Tenants::CredentialCreateParams} for more details. # + # @param tenant_id [String] + # # @param name [String] Name for the credential. Can only contain letters, numbers, # # @param type [Symbol, ArkEmail::Models::Tenants::CredentialCreateParams::Type] Type of credential: diff --git a/lib/ark_email/models/tenants/credential_delete_params.rb b/lib/ark_email/models/tenants/credential_delete_params.rb index d83f2da..437813e 100644 --- a/lib/ark_email/models/tenants/credential_delete_params.rb +++ b/lib/ark_email/models/tenants/credential_delete_params.rb @@ -13,8 +13,14 @@ class CredentialDeleteParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute credential_id + # + # @return [Integer] + required :credential_id, Integer + + # @!method initialize(tenant_id:, credential_id:, request_options: {}) # @param tenant_id [String] + # @param credential_id [Integer] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/credential_list_params.rb b/lib/ark_email/models/tenants/credential_list_params.rb index 869d707..1a679c1 100644 --- a/lib/ark_email/models/tenants/credential_list_params.rb +++ b/lib/ark_email/models/tenants/credential_list_params.rb @@ -8,6 +8,11 @@ class CredentialListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute page # Page number (1-indexed) # @@ -26,7 +31,9 @@ class CredentialListParams < ArkEmail::Internal::Type::BaseModel # @return [Symbol, ArkEmail::Models::Tenants::CredentialListParams::Type, nil] optional :type, enum: -> { ArkEmail::Tenants::CredentialListParams::Type } - # @!method initialize(page: nil, per_page: nil, type: nil, request_options: {}) + # @!method initialize(tenant_id:, page: nil, per_page: nil, type: nil, request_options: {}) + # @param tenant_id [String] + # # @param page [Integer] Page number (1-indexed) # # @param per_page [Integer] Number of items per page (max 100) diff --git a/lib/ark_email/models/tenants/credential_retrieve_params.rb b/lib/ark_email/models/tenants/credential_retrieve_params.rb index 9c36ee8..5a74851 100644 --- a/lib/ark_email/models/tenants/credential_retrieve_params.rb +++ b/lib/ark_email/models/tenants/credential_retrieve_params.rb @@ -13,15 +13,22 @@ class CredentialRetrieveParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String + # @!attribute credential_id + # + # @return [Integer] + required :credential_id, Integer + # @!attribute reveal # Set to `true` to include the credential key in the response # # @return [Boolean, nil] optional :reveal, ArkEmail::Internal::Type::Boolean - # @!method initialize(tenant_id:, reveal: nil, request_options: {}) + # @!method initialize(tenant_id:, credential_id:, reveal: nil, request_options: {}) # @param tenant_id [String] # + # @param credential_id [Integer] + # # @param reveal [Boolean] Set to `true` to include the credential key in the response # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/ark_email/models/tenants/credential_update_params.rb b/lib/ark_email/models/tenants/credential_update_params.rb index a3e7b53..c86588f 100644 --- a/lib/ark_email/models/tenants/credential_update_params.rb +++ b/lib/ark_email/models/tenants/credential_update_params.rb @@ -13,6 +13,11 @@ class CredentialUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String + # @!attribute credential_id + # + # @return [Integer] + required :credential_id, Integer + # @!attribute hold # Set to `true` to disable the credential (put on hold). Set to `false` to enable # the credential (release from hold). @@ -26,12 +31,14 @@ class CredentialUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :name, String - # @!method initialize(tenant_id:, hold: nil, name: nil, request_options: {}) + # @!method initialize(tenant_id:, credential_id:, hold: nil, name: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::Tenants::CredentialUpdateParams} for more details. # # @param tenant_id [String] # + # @param credential_id [Integer] + # # @param hold [Boolean] Set to `true` to disable the credential (put on hold). # # @param name [String] New name for the credential diff --git a/lib/ark_email/models/tenants/domain_create_params.rb b/lib/ark_email/models/tenants/domain_create_params.rb index 2c5f869..5b33f09 100644 --- a/lib/ark_email/models/tenants/domain_create_params.rb +++ b/lib/ark_email/models/tenants/domain_create_params.rb @@ -8,13 +8,20 @@ class DomainCreateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute name # Domain name (e.g., "mail.example.com") # # @return [String] required :name, String - # @!method initialize(name:, request_options: {}) + # @!method initialize(tenant_id:, name:, request_options: {}) + # @param tenant_id [String] + # # @param name [String] Domain name (e.g., "mail.example.com") # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/ark_email/models/tenants/domain_delete_params.rb b/lib/ark_email/models/tenants/domain_delete_params.rb index 6a5a9c9..b0256d9 100644 --- a/lib/ark_email/models/tenants/domain_delete_params.rb +++ b/lib/ark_email/models/tenants/domain_delete_params.rb @@ -13,8 +13,14 @@ class DomainDeleteParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute domain_id + # + # @return [String] + required :domain_id, String + + # @!method initialize(tenant_id:, domain_id:, request_options: {}) # @param tenant_id [String] + # @param domain_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/domain_list_params.rb b/lib/ark_email/models/tenants/domain_list_params.rb index 1b5f731..5792dff 100644 --- a/lib/ark_email/models/tenants/domain_list_params.rb +++ b/lib/ark_email/models/tenants/domain_list_params.rb @@ -8,7 +8,13 @@ class DomainListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + + # @!method initialize(tenant_id:, request_options: {}) + # @param tenant_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/domain_retrieve_params.rb b/lib/ark_email/models/tenants/domain_retrieve_params.rb index 547f5c6..c945fa4 100644 --- a/lib/ark_email/models/tenants/domain_retrieve_params.rb +++ b/lib/ark_email/models/tenants/domain_retrieve_params.rb @@ -13,8 +13,14 @@ class DomainRetrieveParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute domain_id + # + # @return [String] + required :domain_id, String + + # @!method initialize(tenant_id:, domain_id:, request_options: {}) # @param tenant_id [String] + # @param domain_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/domain_verify_params.rb b/lib/ark_email/models/tenants/domain_verify_params.rb index d91fa80..c8590a5 100644 --- a/lib/ark_email/models/tenants/domain_verify_params.rb +++ b/lib/ark_email/models/tenants/domain_verify_params.rb @@ -13,8 +13,14 @@ class DomainVerifyParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute domain_id + # + # @return [String] + required :domain_id, String + + # @!method initialize(tenant_id:, domain_id:, request_options: {}) # @param tenant_id [String] + # @param domain_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/suppression_create_params.rb b/lib/ark_email/models/tenants/suppression_create_params.rb index bb6c3fe..9a0e6ae 100644 --- a/lib/ark_email/models/tenants/suppression_create_params.rb +++ b/lib/ark_email/models/tenants/suppression_create_params.rb @@ -8,6 +8,11 @@ class SuppressionCreateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute address # Email address to suppress # @@ -20,7 +25,9 @@ class SuppressionCreateParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :reason, String, nil?: true - # @!method initialize(address:, reason: nil, request_options: {}) + # @!method initialize(tenant_id:, address:, reason: nil, request_options: {}) + # @param tenant_id [String] + # # @param address [String] Email address to suppress # # @param reason [String, nil] Reason for suppression (accepts null) diff --git a/lib/ark_email/models/tenants/suppression_delete_params.rb b/lib/ark_email/models/tenants/suppression_delete_params.rb index fbf287b..63611c2 100644 --- a/lib/ark_email/models/tenants/suppression_delete_params.rb +++ b/lib/ark_email/models/tenants/suppression_delete_params.rb @@ -13,8 +13,14 @@ class SuppressionDeleteParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute email + # + # @return [String] + required :email, String + + # @!method initialize(tenant_id:, email:, request_options: {}) # @param tenant_id [String] + # @param email [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/suppression_list_params.rb b/lib/ark_email/models/tenants/suppression_list_params.rb index 640497a..fa67d7f 100644 --- a/lib/ark_email/models/tenants/suppression_list_params.rb +++ b/lib/ark_email/models/tenants/suppression_list_params.rb @@ -8,6 +8,11 @@ class SuppressionListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute page # # @return [Integer, nil] @@ -18,7 +23,8 @@ class SuppressionListParams < ArkEmail::Internal::Type::BaseModel # @return [Integer, nil] optional :per_page, Integer - # @!method initialize(page: nil, per_page: nil, request_options: {}) + # @!method initialize(tenant_id:, page: nil, per_page: nil, request_options: {}) + # @param tenant_id [String] # @param page [Integer] # @param per_page [Integer] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/ark_email/models/tenants/suppression_retrieve_params.rb b/lib/ark_email/models/tenants/suppression_retrieve_params.rb index 20418d8..845ff7b 100644 --- a/lib/ark_email/models/tenants/suppression_retrieve_params.rb +++ b/lib/ark_email/models/tenants/suppression_retrieve_params.rb @@ -13,8 +13,14 @@ class SuppressionRetrieveParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute email + # + # @return [String] + required :email, String + + # @!method initialize(tenant_id:, email:, request_options: {}) # @param tenant_id [String] + # @param email [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/tracking_create_params.rb b/lib/ark_email/models/tenants/tracking_create_params.rb index 24954d5..6cc2eb0 100644 --- a/lib/ark_email/models/tenants/tracking_create_params.rb +++ b/lib/ark_email/models/tenants/tracking_create_params.rb @@ -8,6 +8,11 @@ class TrackingCreateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute domain_id # ID of the sending domain to attach this track domain to # @@ -38,7 +43,9 @@ class TrackingCreateParams < ArkEmail::Internal::Type::BaseModel # @return [Boolean, nil] optional :track_opens, ArkEmail::Internal::Type::Boolean, api_name: :trackOpens, nil?: true - # @!method initialize(domain_id:, name:, ssl_enabled: nil, track_clicks: nil, track_opens: nil, request_options: {}) + # @!method initialize(tenant_id:, domain_id:, name:, ssl_enabled: nil, track_clicks: nil, track_opens: nil, request_options: {}) + # @param tenant_id [String] + # # @param domain_id [Integer] ID of the sending domain to attach this track domain to # # @param name [String] Subdomain name (e.g., 'track' for track.yourdomain.com) diff --git a/lib/ark_email/models/tenants/tracking_delete_params.rb b/lib/ark_email/models/tenants/tracking_delete_params.rb index 883ba4f..9b6fbba 100644 --- a/lib/ark_email/models/tenants/tracking_delete_params.rb +++ b/lib/ark_email/models/tenants/tracking_delete_params.rb @@ -13,8 +13,14 @@ class TrackingDeleteParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute tracking_id + # + # @return [String] + required :tracking_id, String + + # @!method initialize(tenant_id:, tracking_id:, request_options: {}) # @param tenant_id [String] + # @param tracking_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/tracking_list_params.rb b/lib/ark_email/models/tenants/tracking_list_params.rb index 5eae472..39b7723 100644 --- a/lib/ark_email/models/tenants/tracking_list_params.rb +++ b/lib/ark_email/models/tenants/tracking_list_params.rb @@ -8,7 +8,13 @@ class TrackingListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + + # @!method initialize(tenant_id:, request_options: {}) + # @param tenant_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/tracking_retrieve_params.rb b/lib/ark_email/models/tenants/tracking_retrieve_params.rb index 7a21370..5371855 100644 --- a/lib/ark_email/models/tenants/tracking_retrieve_params.rb +++ b/lib/ark_email/models/tenants/tracking_retrieve_params.rb @@ -13,8 +13,14 @@ class TrackingRetrieveParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute tracking_id + # + # @return [String] + required :tracking_id, String + + # @!method initialize(tenant_id:, tracking_id:, request_options: {}) # @param tenant_id [String] + # @param tracking_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/tracking_update_params.rb b/lib/ark_email/models/tenants/tracking_update_params.rb index 19d2949..f015ed0 100644 --- a/lib/ark_email/models/tenants/tracking_update_params.rb +++ b/lib/ark_email/models/tenants/tracking_update_params.rb @@ -13,6 +13,11 @@ class TrackingUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String + # @!attribute tracking_id + # + # @return [String] + required :tracking_id, String + # @!attribute excluded_click_domains # Comma-separated list of domains to exclude from click tracking (accepts null) # @@ -37,9 +42,11 @@ class TrackingUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [Boolean, nil] optional :track_opens, ArkEmail::Internal::Type::Boolean, api_name: :trackOpens, nil?: true - # @!method initialize(tenant_id:, excluded_click_domains: nil, ssl_enabled: nil, track_clicks: nil, track_opens: nil, request_options: {}) + # @!method initialize(tenant_id:, tracking_id:, excluded_click_domains: nil, ssl_enabled: nil, track_clicks: nil, track_opens: nil, request_options: {}) # @param tenant_id [String] # + # @param tracking_id [String] + # # @param excluded_click_domains [String, nil] Comma-separated list of domains to exclude from click tracking (accepts null) # # @param ssl_enabled [Boolean, nil] Enable or disable SSL for tracking URLs (accepts null) diff --git a/lib/ark_email/models/tenants/tracking_verify_params.rb b/lib/ark_email/models/tenants/tracking_verify_params.rb index d49b236..819a051 100644 --- a/lib/ark_email/models/tenants/tracking_verify_params.rb +++ b/lib/ark_email/models/tenants/tracking_verify_params.rb @@ -13,8 +13,14 @@ class TrackingVerifyParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute tracking_id + # + # @return [String] + required :tracking_id, String + + # @!method initialize(tenant_id:, tracking_id:, request_options: {}) # @param tenant_id [String] + # @param tracking_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/usage_retrieve_params.rb b/lib/ark_email/models/tenants/usage_retrieve_params.rb index b35609e..5c2f751 100644 --- a/lib/ark_email/models/tenants/usage_retrieve_params.rb +++ b/lib/ark_email/models/tenants/usage_retrieve_params.rb @@ -8,6 +8,11 @@ class UsageRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute period # Time period for usage data. Defaults to current month. # @@ -28,10 +33,12 @@ class UsageRetrieveParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :timezone, String - # @!method initialize(period: nil, timezone: nil, request_options: {}) + # @!method initialize(tenant_id:, period: nil, timezone: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::Tenants::UsageRetrieveParams} for more details. # + # @param tenant_id [String] + # # @param period [String] Time period for usage data. Defaults to current month. # # @param timezone [String] Timezone for period calculations (IANA format). Defaults to UTC. diff --git a/lib/ark_email/models/tenants/usage_retrieve_timeseries_params.rb b/lib/ark_email/models/tenants/usage_retrieve_timeseries_params.rb index 8b13152..e5f0319 100644 --- a/lib/ark_email/models/tenants/usage_retrieve_timeseries_params.rb +++ b/lib/ark_email/models/tenants/usage_retrieve_timeseries_params.rb @@ -8,6 +8,11 @@ class UsageRetrieveTimeseriesParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute granularity # Time bucket size for data points # @@ -26,7 +31,9 @@ class UsageRetrieveTimeseriesParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :timezone, String - # @!method initialize(granularity: nil, period: nil, timezone: nil, request_options: {}) + # @!method initialize(tenant_id:, granularity: nil, period: nil, timezone: nil, request_options: {}) + # @param tenant_id [String] + # # @param granularity [Symbol, ArkEmail::Models::Tenants::UsageRetrieveTimeseriesParams::Granularity] Time bucket size for data points # # @param period [String] Time period for timeseries data. Defaults to current month. diff --git a/lib/ark_email/models/tenants/webhook_create_params.rb b/lib/ark_email/models/tenants/webhook_create_params.rb index 28db0e4..0de798c 100644 --- a/lib/ark_email/models/tenants/webhook_create_params.rb +++ b/lib/ark_email/models/tenants/webhook_create_params.rb @@ -8,6 +8,11 @@ class WebhookCreateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + # @!attribute name # Webhook name for identification # @@ -51,10 +56,12 @@ class WebhookCreateParams < ArkEmail::Internal::Type::BaseModel }, nil?: true - # @!method initialize(name:, url:, all_events: nil, enabled: nil, events: nil, request_options: {}) + # @!method initialize(tenant_id:, name:, url:, all_events: nil, enabled: nil, events: nil, request_options: {}) # Some parameter documentations has been truncated, see # {ArkEmail::Models::Tenants::WebhookCreateParams} for more details. # + # @param tenant_id [String] + # # @param name [String] Webhook name for identification # # @param url [String] HTTPS endpoint URL diff --git a/lib/ark_email/models/tenants/webhook_delete_params.rb b/lib/ark_email/models/tenants/webhook_delete_params.rb index b7dcacb..feda5fc 100644 --- a/lib/ark_email/models/tenants/webhook_delete_params.rb +++ b/lib/ark_email/models/tenants/webhook_delete_params.rb @@ -13,8 +13,14 @@ class WebhookDeleteParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + + # @!method initialize(tenant_id:, webhook_id:, request_options: {}) # @param tenant_id [String] + # @param webhook_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/webhook_list_deliveries_params.rb b/lib/ark_email/models/tenants/webhook_list_deliveries_params.rb index 565cc2c..15aef10 100644 --- a/lib/ark_email/models/tenants/webhook_list_deliveries_params.rb +++ b/lib/ark_email/models/tenants/webhook_list_deliveries_params.rb @@ -13,6 +13,11 @@ class WebhookListDeliveriesParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + # @!attribute after # Only deliveries after this Unix timestamp # @@ -49,9 +54,11 @@ class WebhookListDeliveriesParams < ArkEmail::Internal::Type::BaseModel # @return [Boolean, nil] optional :success, ArkEmail::Internal::Type::Boolean - # @!method initialize(tenant_id:, after: nil, before: nil, event: nil, page: nil, per_page: nil, success: nil, request_options: {}) + # @!method initialize(tenant_id:, webhook_id:, after: nil, before: nil, event: nil, page: nil, per_page: nil, success: nil, request_options: {}) # @param tenant_id [String] # + # @param webhook_id [String] + # # @param after [Integer] Only deliveries after this Unix timestamp # # @param before [Integer] Only deliveries before this Unix timestamp diff --git a/lib/ark_email/models/tenants/webhook_list_params.rb b/lib/ark_email/models/tenants/webhook_list_params.rb index 16453d3..29b9de1 100644 --- a/lib/ark_email/models/tenants/webhook_list_params.rb +++ b/lib/ark_email/models/tenants/webhook_list_params.rb @@ -8,7 +8,13 @@ class WebhookListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - # @!method initialize(request_options: {}) + # @!attribute tenant_id + # + # @return [String] + required :tenant_id, String + + # @!method initialize(tenant_id:, request_options: {}) + # @param tenant_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/webhook_replay_delivery_params.rb b/lib/ark_email/models/tenants/webhook_replay_delivery_params.rb index 643bcb6..5a47999 100644 --- a/lib/ark_email/models/tenants/webhook_replay_delivery_params.rb +++ b/lib/ark_email/models/tenants/webhook_replay_delivery_params.rb @@ -18,9 +18,15 @@ class WebhookReplayDeliveryParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :webhook_id, String - # @!method initialize(tenant_id:, webhook_id:, request_options: {}) + # @!attribute delivery_id + # + # @return [String] + required :delivery_id, String + + # @!method initialize(tenant_id:, webhook_id:, delivery_id:, request_options: {}) # @param tenant_id [String] # @param webhook_id [String] + # @param delivery_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/webhook_retrieve_delivery_params.rb b/lib/ark_email/models/tenants/webhook_retrieve_delivery_params.rb index e7e5694..e67cb91 100644 --- a/lib/ark_email/models/tenants/webhook_retrieve_delivery_params.rb +++ b/lib/ark_email/models/tenants/webhook_retrieve_delivery_params.rb @@ -18,9 +18,15 @@ class WebhookRetrieveDeliveryParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :webhook_id, String - # @!method initialize(tenant_id:, webhook_id:, request_options: {}) + # @!attribute delivery_id + # + # @return [String] + required :delivery_id, String + + # @!method initialize(tenant_id:, webhook_id:, delivery_id:, request_options: {}) # @param tenant_id [String] # @param webhook_id [String] + # @param delivery_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/webhook_retrieve_params.rb b/lib/ark_email/models/tenants/webhook_retrieve_params.rb index c7c8743..9cf30f8 100644 --- a/lib/ark_email/models/tenants/webhook_retrieve_params.rb +++ b/lib/ark_email/models/tenants/webhook_retrieve_params.rb @@ -13,8 +13,14 @@ class WebhookRetrieveParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String - # @!method initialize(tenant_id:, request_options: {}) + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + + # @!method initialize(tenant_id:, webhook_id:, request_options: {}) # @param tenant_id [String] + # @param webhook_id [String] # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] end end diff --git a/lib/ark_email/models/tenants/webhook_test_params.rb b/lib/ark_email/models/tenants/webhook_test_params.rb index d0906d3..b044a11 100644 --- a/lib/ark_email/models/tenants/webhook_test_params.rb +++ b/lib/ark_email/models/tenants/webhook_test_params.rb @@ -13,15 +13,22 @@ class WebhookTestParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + # @!attribute event # Event type to simulate # # @return [Symbol, ArkEmail::Models::Tenants::WebhookTestParams::Event] required :event, enum: -> { ArkEmail::Tenants::WebhookTestParams::Event } - # @!method initialize(tenant_id:, event:, request_options: {}) + # @!method initialize(tenant_id:, webhook_id:, event:, request_options: {}) # @param tenant_id [String] # + # @param webhook_id [String] + # # @param event [Symbol, ArkEmail::Models::Tenants::WebhookTestParams::Event] Event type to simulate # # @param request_options [ArkEmail::RequestOptions, Hash{Symbol=>Object}] diff --git a/lib/ark_email/models/tenants/webhook_update_params.rb b/lib/ark_email/models/tenants/webhook_update_params.rb index f8baf3e..7cc01fb 100644 --- a/lib/ark_email/models/tenants/webhook_update_params.rb +++ b/lib/ark_email/models/tenants/webhook_update_params.rb @@ -13,6 +13,11 @@ class WebhookUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [String] required :tenant_id, String + # @!attribute webhook_id + # + # @return [String] + required :webhook_id, String + # @!attribute all_events # # @return [Boolean, nil] @@ -38,8 +43,9 @@ class WebhookUpdateParams < ArkEmail::Internal::Type::BaseModel # @return [String, nil] optional :url, String, nil?: true - # @!method initialize(tenant_id:, all_events: nil, enabled: nil, events: nil, name: nil, url: nil, request_options: {}) + # @!method initialize(tenant_id:, webhook_id:, all_events: nil, enabled: nil, events: nil, name: nil, url: nil, request_options: {}) # @param tenant_id [String] + # @param webhook_id [String] # @param all_events [Boolean, nil] # @param enabled [Boolean, nil] # @param events [Array, nil] diff --git a/rbi/ark_email/models/email_retrieve_deliveries_params.rbi b/rbi/ark_email/models/email_retrieve_deliveries_params.rbi index 79f2df8..22e92a6 100644 --- a/rbi/ark_email/models/email_retrieve_deliveries_params.rbi +++ b/rbi/ark_email/models/email_retrieve_deliveries_params.rbi @@ -14,15 +14,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :email_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + email_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(email_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { email_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/email_retrieve_params.rbi b/rbi/ark_email/models/email_retrieve_params.rbi index 3eff4e7..8efc31a 100644 --- a/rbi/ark_email/models/email_retrieve_params.rbi +++ b/rbi/ark_email/models/email_retrieve_params.rbi @@ -11,6 +11,9 @@ module ArkEmail T.any(ArkEmail::EmailRetrieveParams, ArkEmail::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :email_id + # Comma-separated list of fields to include: # # - `full` - Include all expanded fields in a single request @@ -28,11 +31,13 @@ module ArkEmail sig do params( + email_id: String, expand: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + email_id:, # Comma-separated list of fields to include: # # - `full` - Include all expanded fields in a single request @@ -49,7 +54,11 @@ module ArkEmail sig do override.returns( - { expand: String, request_options: ArkEmail::RequestOptions } + { + email_id: String, + expand: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/email_retry_params.rbi b/rbi/ark_email/models/email_retry_params.rbi index 02d7aa3..faab712 100644 --- a/rbi/ark_email/models/email_retry_params.rbi +++ b/rbi/ark_email/models/email_retry_params.rbi @@ -11,15 +11,23 @@ module ArkEmail T.any(ArkEmail::EmailRetryParams, ArkEmail::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :email_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + email_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(email_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { email_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/log_retrieve_params.rbi b/rbi/ark_email/models/log_retrieve_params.rbi index a3c6fe1..be3faa3 100644 --- a/rbi/ark_email/models/log_retrieve_params.rbi +++ b/rbi/ark_email/models/log_retrieve_params.rbi @@ -11,15 +11,23 @@ module ArkEmail T.any(ArkEmail::LogRetrieveParams, ArkEmail::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :request_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + request_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(request_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { request_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/platform/webhook_delete_params.rbi b/rbi/ark_email/models/platform/webhook_delete_params.rbi index c94f5a9..afc2266 100644 --- a/rbi/ark_email/models/platform/webhook_delete_params.rbi +++ b/rbi/ark_email/models/platform/webhook_delete_params.rbi @@ -15,15 +15,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :webhook_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + webhook_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(webhook_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { webhook_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/platform/webhook_replay_delivery_params.rbi b/rbi/ark_email/models/platform/webhook_replay_delivery_params.rbi index 5aabcd8..f5d877e 100644 --- a/rbi/ark_email/models/platform/webhook_replay_delivery_params.rbi +++ b/rbi/ark_email/models/platform/webhook_replay_delivery_params.rbi @@ -15,15 +15,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :delivery_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + delivery_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(delivery_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { delivery_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/platform/webhook_retrieve_delivery_params.rbi b/rbi/ark_email/models/platform/webhook_retrieve_delivery_params.rbi index 1889af8..a185e49 100644 --- a/rbi/ark_email/models/platform/webhook_retrieve_delivery_params.rbi +++ b/rbi/ark_email/models/platform/webhook_retrieve_delivery_params.rbi @@ -15,15 +15,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :delivery_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + delivery_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(delivery_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { delivery_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/platform/webhook_retrieve_params.rbi b/rbi/ark_email/models/platform/webhook_retrieve_params.rbi index ab9f1a2..186085e 100644 --- a/rbi/ark_email/models/platform/webhook_retrieve_params.rbi +++ b/rbi/ark_email/models/platform/webhook_retrieve_params.rbi @@ -15,15 +15,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :webhook_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + webhook_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(webhook_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { webhook_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/platform/webhook_test_params.rbi b/rbi/ark_email/models/platform/webhook_test_params.rbi index 251cc4b..2413584 100644 --- a/rbi/ark_email/models/platform/webhook_test_params.rbi +++ b/rbi/ark_email/models/platform/webhook_test_params.rbi @@ -15,17 +15,22 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :webhook_id + # Event type to simulate sig { returns(ArkEmail::Platform::WebhookTestParams::Event::OrSymbol) } attr_accessor :event sig do params( + webhook_id: String, event: ArkEmail::Platform::WebhookTestParams::Event::OrSymbol, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + webhook_id:, # Event type to simulate event:, request_options: {} @@ -35,6 +40,7 @@ module ArkEmail sig do override.returns( { + webhook_id: String, event: ArkEmail::Platform::WebhookTestParams::Event::OrSymbol, request_options: ArkEmail::RequestOptions } diff --git a/rbi/ark_email/models/platform/webhook_update_params.rbi b/rbi/ark_email/models/platform/webhook_update_params.rbi index 57d4390..d40380c 100644 --- a/rbi/ark_email/models/platform/webhook_update_params.rbi +++ b/rbi/ark_email/models/platform/webhook_update_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :webhook_id + # Enable or disable the webhook sig { returns(T.nilable(T::Boolean)) } attr_reader :enabled @@ -56,6 +59,7 @@ module ArkEmail sig do params( + webhook_id: String, enabled: T::Boolean, events: T::Array[ @@ -67,6 +71,7 @@ module ArkEmail ).returns(T.attached_class) end def self.new( + webhook_id:, # Enable or disable the webhook enabled: nil, # Events to subscribe to. Empty array means all events. @@ -82,6 +87,7 @@ module ArkEmail sig do override.returns( { + webhook_id: String, enabled: T::Boolean, events: T::Array[ diff --git a/rbi/ark_email/models/tenant_delete_params.rbi b/rbi/ark_email/models/tenant_delete_params.rbi index 8ce2d57..2df4749 100644 --- a/rbi/ark_email/models/tenant_delete_params.rbi +++ b/rbi/ark_email/models/tenant_delete_params.rbi @@ -11,15 +11,23 @@ module ArkEmail T.any(ArkEmail::TenantDeleteParams, ArkEmail::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :tenant_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + tenant_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(tenant_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { tenant_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/tenant_retrieve_params.rbi b/rbi/ark_email/models/tenant_retrieve_params.rbi index 67a0bd9..38daf8f 100644 --- a/rbi/ark_email/models/tenant_retrieve_params.rbi +++ b/rbi/ark_email/models/tenant_retrieve_params.rbi @@ -11,15 +11,23 @@ module ArkEmail T.any(ArkEmail::TenantRetrieveParams, ArkEmail::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :tenant_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + tenant_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(tenant_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { tenant_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/tenant_update_params.rbi b/rbi/ark_email/models/tenant_update_params.rbi index 4be90e3..c8f54ea 100644 --- a/rbi/ark_email/models/tenant_update_params.rbi +++ b/rbi/ark_email/models/tenant_update_params.rbi @@ -11,6 +11,9 @@ module ArkEmail T.any(ArkEmail::TenantUpdateParams, ArkEmail::Internal::AnyHash) end + sig { returns(String) } + attr_accessor :tenant_id + # Custom key-value pairs. Useful for storing references to your internal systems. # # **Limits:** @@ -49,6 +52,7 @@ module ArkEmail sig do params( + tenant_id: String, metadata: T.nilable( T::Hash[ @@ -62,6 +66,7 @@ module ArkEmail ).returns(T.attached_class) end def self.new( + tenant_id:, # Custom key-value pairs. Useful for storing references to your internal systems. # # **Limits:** @@ -82,6 +87,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, metadata: T.nilable( T::Hash[ diff --git a/rbi/ark_email/models/tenants/credential_create_params.rbi b/rbi/ark_email/models/tenants/credential_create_params.rbi index b4d3e2c..e8142fe 100644 --- a/rbi/ark_email/models/tenants/credential_create_params.rbi +++ b/rbi/ark_email/models/tenants/credential_create_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # Name for the credential. Can only contain letters, numbers, hyphens, and # underscores. Max 50 characters. sig { returns(String) } @@ -31,12 +34,14 @@ module ArkEmail sig do params( + tenant_id: String, name: String, type: ArkEmail::Tenants::CredentialCreateParams::Type::OrSymbol, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + tenant_id:, # Name for the credential. Can only contain letters, numbers, hyphens, and # underscores. Max 50 characters. name:, @@ -52,6 +57,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, name: String, type: ArkEmail::Tenants::CredentialCreateParams::Type::OrSymbol, request_options: ArkEmail::RequestOptions diff --git a/rbi/ark_email/models/tenants/credential_delete_params.rbi b/rbi/ark_email/models/tenants/credential_delete_params.rbi index 6eb5284..83b1130 100644 --- a/rbi/ark_email/models/tenants/credential_delete_params.rbi +++ b/rbi/ark_email/models/tenants/credential_delete_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(Integer) } + attr_accessor :credential_id + sig do params( tenant_id: String, + credential_id: Integer, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, credential_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + credential_id: Integer, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/credential_list_params.rbi b/rbi/ark_email/models/tenants/credential_list_params.rbi index d8f1fe1..03a171a 100644 --- a/rbi/ark_email/models/tenants/credential_list_params.rbi +++ b/rbi/ark_email/models/tenants/credential_list_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # Page number (1-indexed) sig { returns(T.nilable(Integer)) } attr_reader :page @@ -46,6 +49,7 @@ module ArkEmail sig do params( + tenant_id: String, page: Integer, per_page: Integer, type: ArkEmail::Tenants::CredentialListParams::Type::OrSymbol, @@ -53,6 +57,7 @@ module ArkEmail ).returns(T.attached_class) end def self.new( + tenant_id:, # Page number (1-indexed) page: nil, # Number of items per page (max 100) @@ -66,6 +71,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, page: Integer, per_page: Integer, type: ArkEmail::Tenants::CredentialListParams::Type::OrSymbol, diff --git a/rbi/ark_email/models/tenants/credential_retrieve_params.rbi b/rbi/ark_email/models/tenants/credential_retrieve_params.rbi index d4be330..9e90866 100644 --- a/rbi/ark_email/models/tenants/credential_retrieve_params.rbi +++ b/rbi/ark_email/models/tenants/credential_retrieve_params.rbi @@ -18,6 +18,9 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(Integer) } + attr_accessor :credential_id + # Set to `true` to include the credential key in the response sig { returns(T.nilable(T::Boolean)) } attr_reader :reveal @@ -28,12 +31,14 @@ module ArkEmail sig do params( tenant_id: String, + credential_id: Integer, reveal: T::Boolean, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( tenant_id:, + credential_id:, # Set to `true` to include the credential key in the response reveal: nil, request_options: {} @@ -44,6 +49,7 @@ module ArkEmail override.returns( { tenant_id: String, + credential_id: Integer, reveal: T::Boolean, request_options: ArkEmail::RequestOptions } diff --git a/rbi/ark_email/models/tenants/credential_update_params.rbi b/rbi/ark_email/models/tenants/credential_update_params.rbi index 2c63777..694a4c4 100644 --- a/rbi/ark_email/models/tenants/credential_update_params.rbi +++ b/rbi/ark_email/models/tenants/credential_update_params.rbi @@ -18,6 +18,9 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(Integer) } + attr_accessor :credential_id + # Set to `true` to disable the credential (put on hold). Set to `false` to enable # the credential (release from hold). sig { returns(T.nilable(T::Boolean)) } @@ -36,6 +39,7 @@ module ArkEmail sig do params( tenant_id: String, + credential_id: Integer, hold: T::Boolean, name: String, request_options: ArkEmail::RequestOptions::OrHash @@ -43,6 +47,7 @@ module ArkEmail end def self.new( tenant_id:, + credential_id:, # Set to `true` to disable the credential (put on hold). Set to `false` to enable # the credential (release from hold). hold: nil, @@ -56,6 +61,7 @@ module ArkEmail override.returns( { tenant_id: String, + credential_id: Integer, hold: T::Boolean, name: String, request_options: ArkEmail::RequestOptions diff --git a/rbi/ark_email/models/tenants/domain_create_params.rbi b/rbi/ark_email/models/tenants/domain_create_params.rbi index ef96700..be7b4eb 100644 --- a/rbi/ark_email/models/tenants/domain_create_params.rbi +++ b/rbi/ark_email/models/tenants/domain_create_params.rbi @@ -15,17 +15,22 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # Domain name (e.g., "mail.example.com") sig { returns(String) } attr_accessor :name sig do params( + tenant_id: String, name: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + tenant_id:, # Domain name (e.g., "mail.example.com") name:, request_options: {} @@ -34,7 +39,11 @@ module ArkEmail sig do override.returns( - { name: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + name: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/domain_delete_params.rbi b/rbi/ark_email/models/tenants/domain_delete_params.rbi index 2eee0d7..b1d001d 100644 --- a/rbi/ark_email/models/tenants/domain_delete_params.rbi +++ b/rbi/ark_email/models/tenants/domain_delete_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :domain_id + sig do params( tenant_id: String, + domain_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, domain_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + domain_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/domain_list_params.rbi b/rbi/ark_email/models/tenants/domain_list_params.rbi index 34a290a..a8aaf90 100644 --- a/rbi/ark_email/models/tenants/domain_list_params.rbi +++ b/rbi/ark_email/models/tenants/domain_list_params.rbi @@ -15,15 +15,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + tenant_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(tenant_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { tenant_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/tenants/domain_retrieve_params.rbi b/rbi/ark_email/models/tenants/domain_retrieve_params.rbi index c87b9c8..6a200e9 100644 --- a/rbi/ark_email/models/tenants/domain_retrieve_params.rbi +++ b/rbi/ark_email/models/tenants/domain_retrieve_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :domain_id + sig do params( tenant_id: String, + domain_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, domain_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + domain_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/domain_verify_params.rbi b/rbi/ark_email/models/tenants/domain_verify_params.rbi index 850b835..d6bf966 100644 --- a/rbi/ark_email/models/tenants/domain_verify_params.rbi +++ b/rbi/ark_email/models/tenants/domain_verify_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :domain_id + sig do params( tenant_id: String, + domain_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, domain_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + domain_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/suppression_create_params.rbi b/rbi/ark_email/models/tenants/suppression_create_params.rbi index 89c144a..1594902 100644 --- a/rbi/ark_email/models/tenants/suppression_create_params.rbi +++ b/rbi/ark_email/models/tenants/suppression_create_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # Email address to suppress sig { returns(String) } attr_accessor :address @@ -25,12 +28,14 @@ module ArkEmail sig do params( + tenant_id: String, address: String, reason: T.nilable(String), request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + tenant_id:, # Email address to suppress address:, # Reason for suppression (accepts null) @@ -42,6 +47,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, address: String, reason: T.nilable(String), request_options: ArkEmail::RequestOptions diff --git a/rbi/ark_email/models/tenants/suppression_delete_params.rbi b/rbi/ark_email/models/tenants/suppression_delete_params.rbi index 8567095..1d7ba8b 100644 --- a/rbi/ark_email/models/tenants/suppression_delete_params.rbi +++ b/rbi/ark_email/models/tenants/suppression_delete_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :email + sig do params( tenant_id: String, + email: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, email:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + email: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/suppression_list_params.rbi b/rbi/ark_email/models/tenants/suppression_list_params.rbi index bc7f9f8..e7a2247 100644 --- a/rbi/ark_email/models/tenants/suppression_list_params.rbi +++ b/rbi/ark_email/models/tenants/suppression_list_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + sig { returns(T.nilable(Integer)) } attr_reader :page @@ -29,17 +32,19 @@ module ArkEmail sig do params( + tenant_id: String, page: Integer, per_page: Integer, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(page: nil, per_page: nil, request_options: {}) + def self.new(tenant_id:, page: nil, per_page: nil, request_options: {}) end sig do override.returns( { + tenant_id: String, page: Integer, per_page: Integer, request_options: ArkEmail::RequestOptions diff --git a/rbi/ark_email/models/tenants/suppression_retrieve_params.rbi b/rbi/ark_email/models/tenants/suppression_retrieve_params.rbi index 7782a8b..6ef31b4 100644 --- a/rbi/ark_email/models/tenants/suppression_retrieve_params.rbi +++ b/rbi/ark_email/models/tenants/suppression_retrieve_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :email + sig do params( tenant_id: String, + email: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, email:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + email: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/tracking_create_params.rbi b/rbi/ark_email/models/tenants/tracking_create_params.rbi index d237413..ce4a850 100644 --- a/rbi/ark_email/models/tenants/tracking_create_params.rbi +++ b/rbi/ark_email/models/tenants/tracking_create_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # ID of the sending domain to attach this track domain to sig { returns(Integer) } attr_accessor :domain_id @@ -37,6 +40,7 @@ module ArkEmail sig do params( + tenant_id: String, domain_id: Integer, name: String, ssl_enabled: T.nilable(T::Boolean), @@ -46,6 +50,7 @@ module ArkEmail ).returns(T.attached_class) end def self.new( + tenant_id:, # ID of the sending domain to attach this track domain to domain_id:, # Subdomain name (e.g., 'track' for track.yourdomain.com) @@ -63,6 +68,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, domain_id: Integer, name: String, ssl_enabled: T.nilable(T::Boolean), diff --git a/rbi/ark_email/models/tenants/tracking_delete_params.rbi b/rbi/ark_email/models/tenants/tracking_delete_params.rbi index 336db05..1d1aedb 100644 --- a/rbi/ark_email/models/tenants/tracking_delete_params.rbi +++ b/rbi/ark_email/models/tenants/tracking_delete_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :tracking_id + sig do params( tenant_id: String, + tracking_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, tracking_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + tracking_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/tracking_list_params.rbi b/rbi/ark_email/models/tenants/tracking_list_params.rbi index 6946442..d846d6d 100644 --- a/rbi/ark_email/models/tenants/tracking_list_params.rbi +++ b/rbi/ark_email/models/tenants/tracking_list_params.rbi @@ -15,15 +15,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + tenant_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(tenant_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { tenant_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/tenants/tracking_retrieve_params.rbi b/rbi/ark_email/models/tenants/tracking_retrieve_params.rbi index d287d10..4cf6b45 100644 --- a/rbi/ark_email/models/tenants/tracking_retrieve_params.rbi +++ b/rbi/ark_email/models/tenants/tracking_retrieve_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :tracking_id + sig do params( tenant_id: String, + tracking_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, tracking_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + tracking_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/tracking_update_params.rbi b/rbi/ark_email/models/tenants/tracking_update_params.rbi index 71302ad..2a6a821 100644 --- a/rbi/ark_email/models/tenants/tracking_update_params.rbi +++ b/rbi/ark_email/models/tenants/tracking_update_params.rbi @@ -18,6 +18,9 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :tracking_id + # Comma-separated list of domains to exclude from click tracking (accepts null) sig { returns(T.nilable(String)) } attr_accessor :excluded_click_domains @@ -37,6 +40,7 @@ module ArkEmail sig do params( tenant_id: String, + tracking_id: String, excluded_click_domains: T.nilable(String), ssl_enabled: T.nilable(T::Boolean), track_clicks: T.nilable(T::Boolean), @@ -46,6 +50,7 @@ module ArkEmail end def self.new( tenant_id:, + tracking_id:, # Comma-separated list of domains to exclude from click tracking (accepts null) excluded_click_domains: nil, # Enable or disable SSL for tracking URLs (accepts null) @@ -62,6 +67,7 @@ module ArkEmail override.returns( { tenant_id: String, + tracking_id: String, excluded_click_domains: T.nilable(String), ssl_enabled: T.nilable(T::Boolean), track_clicks: T.nilable(T::Boolean), diff --git a/rbi/ark_email/models/tenants/tracking_verify_params.rbi b/rbi/ark_email/models/tenants/tracking_verify_params.rbi index 26fcd77..4f9a76e 100644 --- a/rbi/ark_email/models/tenants/tracking_verify_params.rbi +++ b/rbi/ark_email/models/tenants/tracking_verify_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :tracking_id + sig do params( tenant_id: String, + tracking_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, tracking_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + tracking_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/usage_retrieve_params.rbi b/rbi/ark_email/models/tenants/usage_retrieve_params.rbi index 8c46d61..9fbfcf5 100644 --- a/rbi/ark_email/models/tenants/usage_retrieve_params.rbi +++ b/rbi/ark_email/models/tenants/usage_retrieve_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # Time period for usage data. Defaults to current month. # # **Formats:** @@ -39,12 +42,14 @@ module ArkEmail sig do params( + tenant_id: String, period: String, timezone: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( + tenant_id:, # Time period for usage data. Defaults to current month. # # **Formats:** @@ -64,6 +69,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, period: String, timezone: String, request_options: ArkEmail::RequestOptions diff --git a/rbi/ark_email/models/tenants/usage_retrieve_timeseries_params.rbi b/rbi/ark_email/models/tenants/usage_retrieve_timeseries_params.rbi index 9c62ef8..fb3c3b5 100644 --- a/rbi/ark_email/models/tenants/usage_retrieve_timeseries_params.rbi +++ b/rbi/ark_email/models/tenants/usage_retrieve_timeseries_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # Time bucket size for data points sig do returns( @@ -49,6 +52,7 @@ module ArkEmail sig do params( + tenant_id: String, granularity: ArkEmail::Tenants::UsageRetrieveTimeseriesParams::Granularity::OrSymbol, period: String, @@ -57,6 +61,7 @@ module ArkEmail ).returns(T.attached_class) end def self.new( + tenant_id:, # Time bucket size for data points granularity: nil, # Time period for timeseries data. Defaults to current month. @@ -70,6 +75,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, granularity: ArkEmail::Tenants::UsageRetrieveTimeseriesParams::Granularity::OrSymbol, period: String, diff --git a/rbi/ark_email/models/tenants/webhook_create_params.rbi b/rbi/ark_email/models/tenants/webhook_create_params.rbi index 1a6671e..f624608 100644 --- a/rbi/ark_email/models/tenants/webhook_create_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_create_params.rbi @@ -15,6 +15,9 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + # Webhook name for identification sig { returns(String) } attr_accessor :name @@ -52,6 +55,7 @@ module ArkEmail sig do params( + tenant_id: String, name: String, url: String, all_events: T.nilable(T::Boolean), @@ -66,6 +70,7 @@ module ArkEmail ).returns(T.attached_class) end def self.new( + tenant_id:, # Webhook name for identification name:, # HTTPS endpoint URL @@ -92,6 +97,7 @@ module ArkEmail sig do override.returns( { + tenant_id: String, name: String, url: String, all_events: T.nilable(T::Boolean), diff --git a/rbi/ark_email/models/tenants/webhook_delete_params.rbi b/rbi/ark_email/models/tenants/webhook_delete_params.rbi index d8d6764..01564ac 100644 --- a/rbi/ark_email/models/tenants/webhook_delete_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_delete_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :webhook_id + sig do params( tenant_id: String, + webhook_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, webhook_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + webhook_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/webhook_list_deliveries_params.rbi b/rbi/ark_email/models/tenants/webhook_list_deliveries_params.rbi index a68911e..26d6473 100644 --- a/rbi/ark_email/models/tenants/webhook_list_deliveries_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_list_deliveries_params.rbi @@ -18,6 +18,9 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :webhook_id + # Only deliveries after this Unix timestamp sig { returns(T.nilable(Integer)) } attr_reader :after @@ -74,6 +77,7 @@ module ArkEmail sig do params( tenant_id: String, + webhook_id: String, after: Integer, before: Integer, event: @@ -86,6 +90,7 @@ module ArkEmail end def self.new( tenant_id:, + webhook_id:, # Only deliveries after this Unix timestamp after: nil, # Only deliveries before this Unix timestamp @@ -106,6 +111,7 @@ module ArkEmail override.returns( { tenant_id: String, + webhook_id: String, after: Integer, before: Integer, event: diff --git a/rbi/ark_email/models/tenants/webhook_list_params.rbi b/rbi/ark_email/models/tenants/webhook_list_params.rbi index e1d06a4..765c8ca 100644 --- a/rbi/ark_email/models/tenants/webhook_list_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_list_params.rbi @@ -15,15 +15,23 @@ module ArkEmail ) end + sig { returns(String) } + attr_accessor :tenant_id + sig do - params(request_options: ArkEmail::RequestOptions::OrHash).returns( - T.attached_class - ) + params( + tenant_id: String, + request_options: ArkEmail::RequestOptions::OrHash + ).returns(T.attached_class) end - def self.new(request_options: {}) + def self.new(tenant_id:, request_options: {}) end - sig { override.returns({ request_options: ArkEmail::RequestOptions }) } + sig do + override.returns( + { tenant_id: String, request_options: ArkEmail::RequestOptions } + ) + end def to_hash end end diff --git a/rbi/ark_email/models/tenants/webhook_replay_delivery_params.rbi b/rbi/ark_email/models/tenants/webhook_replay_delivery_params.rbi index 7766010..c89c96e 100644 --- a/rbi/ark_email/models/tenants/webhook_replay_delivery_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_replay_delivery_params.rbi @@ -21,14 +21,18 @@ module ArkEmail sig { returns(String) } attr_accessor :webhook_id + sig { returns(String) } + attr_accessor :delivery_id + sig do params( tenant_id: String, webhook_id: String, + delivery_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, webhook_id:, request_options: {}) + def self.new(tenant_id:, webhook_id:, delivery_id:, request_options: {}) end sig do @@ -36,6 +40,7 @@ module ArkEmail { tenant_id: String, webhook_id: String, + delivery_id: String, request_options: ArkEmail::RequestOptions } ) diff --git a/rbi/ark_email/models/tenants/webhook_retrieve_delivery_params.rbi b/rbi/ark_email/models/tenants/webhook_retrieve_delivery_params.rbi index 5d04ea3..411d57d 100644 --- a/rbi/ark_email/models/tenants/webhook_retrieve_delivery_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_retrieve_delivery_params.rbi @@ -21,14 +21,18 @@ module ArkEmail sig { returns(String) } attr_accessor :webhook_id + sig { returns(String) } + attr_accessor :delivery_id + sig do params( tenant_id: String, webhook_id: String, + delivery_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, webhook_id:, request_options: {}) + def self.new(tenant_id:, webhook_id:, delivery_id:, request_options: {}) end sig do @@ -36,6 +40,7 @@ module ArkEmail { tenant_id: String, webhook_id: String, + delivery_id: String, request_options: ArkEmail::RequestOptions } ) diff --git a/rbi/ark_email/models/tenants/webhook_retrieve_params.rbi b/rbi/ark_email/models/tenants/webhook_retrieve_params.rbi index 840dca3..aabc975 100644 --- a/rbi/ark_email/models/tenants/webhook_retrieve_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_retrieve_params.rbi @@ -18,18 +18,26 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :webhook_id + sig do params( tenant_id: String, + webhook_id: String, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end - def self.new(tenant_id:, request_options: {}) + def self.new(tenant_id:, webhook_id:, request_options: {}) end sig do override.returns( - { tenant_id: String, request_options: ArkEmail::RequestOptions } + { + tenant_id: String, + webhook_id: String, + request_options: ArkEmail::RequestOptions + } ) end def to_hash diff --git a/rbi/ark_email/models/tenants/webhook_test_params.rbi b/rbi/ark_email/models/tenants/webhook_test_params.rbi index d96b38e..27aac25 100644 --- a/rbi/ark_email/models/tenants/webhook_test_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_test_params.rbi @@ -18,6 +18,9 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :webhook_id + # Event type to simulate sig { returns(ArkEmail::Tenants::WebhookTestParams::Event::OrSymbol) } attr_accessor :event @@ -25,12 +28,14 @@ module ArkEmail sig do params( tenant_id: String, + webhook_id: String, event: ArkEmail::Tenants::WebhookTestParams::Event::OrSymbol, request_options: ArkEmail::RequestOptions::OrHash ).returns(T.attached_class) end def self.new( tenant_id:, + webhook_id:, # Event type to simulate event:, request_options: {} @@ -41,6 +46,7 @@ module ArkEmail override.returns( { tenant_id: String, + webhook_id: String, event: ArkEmail::Tenants::WebhookTestParams::Event::OrSymbol, request_options: ArkEmail::RequestOptions } diff --git a/rbi/ark_email/models/tenants/webhook_update_params.rbi b/rbi/ark_email/models/tenants/webhook_update_params.rbi index 4ae1f81..782ccb0 100644 --- a/rbi/ark_email/models/tenants/webhook_update_params.rbi +++ b/rbi/ark_email/models/tenants/webhook_update_params.rbi @@ -18,6 +18,9 @@ module ArkEmail sig { returns(String) } attr_accessor :tenant_id + sig { returns(String) } + attr_accessor :webhook_id + sig { returns(T.nilable(T::Boolean)) } attr_accessor :all_events @@ -36,6 +39,7 @@ module ArkEmail sig do params( tenant_id: String, + webhook_id: String, all_events: T.nilable(T::Boolean), enabled: T.nilable(T::Boolean), events: T.nilable(T::Array[String]), @@ -46,6 +50,7 @@ module ArkEmail end def self.new( tenant_id:, + webhook_id:, all_events: nil, enabled: nil, events: nil, @@ -59,6 +64,7 @@ module ArkEmail override.returns( { tenant_id: String, + webhook_id: String, all_events: T.nilable(T::Boolean), enabled: T.nilable(T::Boolean), events: T.nilable(T::Array[String]), diff --git a/sig/ark_email/models/email_retrieve_deliveries_params.rbs b/sig/ark_email/models/email_retrieve_deliveries_params.rbs index 8d28023..6b9ff41 100644 --- a/sig/ark_email/models/email_retrieve_deliveries_params.rbs +++ b/sig/ark_email/models/email_retrieve_deliveries_params.rbs @@ -1,15 +1,23 @@ module ArkEmail module Models type email_retrieve_deliveries_params = - { } & ArkEmail::Internal::Type::request_parameters + { email_id: String } & ArkEmail::Internal::Type::request_parameters class EmailRetrieveDeliveriesParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor email_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + email_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + email_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/email_retrieve_params.rbs b/sig/ark_email/models/email_retrieve_params.rbs index 99ffb22..83a6c10 100644 --- a/sig/ark_email/models/email_retrieve_params.rbs +++ b/sig/ark_email/models/email_retrieve_params.rbs @@ -1,22 +1,27 @@ module ArkEmail module Models type email_retrieve_params = - { expand: String } & ArkEmail::Internal::Type::request_parameters + { email_id: String, expand: String } + & ArkEmail::Internal::Type::request_parameters class EmailRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor email_id: String + attr_reader expand: String? def expand=: (String) -> String def initialize: ( + email_id: String, ?expand: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { + email_id: String, expand: String, request_options: ArkEmail::RequestOptions } diff --git a/sig/ark_email/models/email_retry_params.rbs b/sig/ark_email/models/email_retry_params.rbs index 587041d..a9f7dcd 100644 --- a/sig/ark_email/models/email_retry_params.rbs +++ b/sig/ark_email/models/email_retry_params.rbs @@ -1,15 +1,23 @@ module ArkEmail module Models type email_retry_params = - { } & ArkEmail::Internal::Type::request_parameters + { email_id: String } & ArkEmail::Internal::Type::request_parameters class EmailRetryParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor email_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + email_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + email_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/log_retrieve_params.rbs b/sig/ark_email/models/log_retrieve_params.rbs index 51c1acf..901f0a8 100644 --- a/sig/ark_email/models/log_retrieve_params.rbs +++ b/sig/ark_email/models/log_retrieve_params.rbs @@ -1,15 +1,23 @@ module ArkEmail module Models type log_retrieve_params = - { } & ArkEmail::Internal::Type::request_parameters + { request_id: String } & ArkEmail::Internal::Type::request_parameters class LogRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor request_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + request_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + request_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/platform/webhook_delete_params.rbs b/sig/ark_email/models/platform/webhook_delete_params.rbs index 88456b7..f1adc77 100644 --- a/sig/ark_email/models/platform/webhook_delete_params.rbs +++ b/sig/ark_email/models/platform/webhook_delete_params.rbs @@ -2,15 +2,23 @@ module ArkEmail module Models module Platform type webhook_delete_params = - { } & ArkEmail::Internal::Type::request_parameters + { webhook_id: String } & ArkEmail::Internal::Type::request_parameters class WebhookDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor webhook_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + webhook_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + webhook_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/platform/webhook_replay_delivery_params.rbs b/sig/ark_email/models/platform/webhook_replay_delivery_params.rbs index fc820b6..7bc20d8 100644 --- a/sig/ark_email/models/platform/webhook_replay_delivery_params.rbs +++ b/sig/ark_email/models/platform/webhook_replay_delivery_params.rbs @@ -2,15 +2,23 @@ module ArkEmail module Models module Platform type webhook_replay_delivery_params = - { } & ArkEmail::Internal::Type::request_parameters + { delivery_id: String } & ArkEmail::Internal::Type::request_parameters class WebhookReplayDeliveryParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor delivery_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + delivery_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + delivery_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/platform/webhook_retrieve_delivery_params.rbs b/sig/ark_email/models/platform/webhook_retrieve_delivery_params.rbs index 61b13a8..4d20a2d 100644 --- a/sig/ark_email/models/platform/webhook_retrieve_delivery_params.rbs +++ b/sig/ark_email/models/platform/webhook_retrieve_delivery_params.rbs @@ -2,15 +2,23 @@ module ArkEmail module Models module Platform type webhook_retrieve_delivery_params = - { } & ArkEmail::Internal::Type::request_parameters + { delivery_id: String } & ArkEmail::Internal::Type::request_parameters class WebhookRetrieveDeliveryParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor delivery_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + delivery_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + delivery_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/platform/webhook_retrieve_params.rbs b/sig/ark_email/models/platform/webhook_retrieve_params.rbs index 7980ea1..6fc8259 100644 --- a/sig/ark_email/models/platform/webhook_retrieve_params.rbs +++ b/sig/ark_email/models/platform/webhook_retrieve_params.rbs @@ -2,15 +2,23 @@ module ArkEmail module Models module Platform type webhook_retrieve_params = - { } & ArkEmail::Internal::Type::request_parameters + { webhook_id: String } & ArkEmail::Internal::Type::request_parameters class WebhookRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor webhook_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + webhook_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + webhook_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/platform/webhook_test_params.rbs b/sig/ark_email/models/platform/webhook_test_params.rbs index 66f78a4..f444aca 100644 --- a/sig/ark_email/models/platform/webhook_test_params.rbs +++ b/sig/ark_email/models/platform/webhook_test_params.rbs @@ -2,21 +2,28 @@ module ArkEmail module Models module Platform type webhook_test_params = - { event: ArkEmail::Models::Platform::WebhookTestParams::event } + { + webhook_id: String, + event: ArkEmail::Models::Platform::WebhookTestParams::event + } & ArkEmail::Internal::Type::request_parameters class WebhookTestParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor webhook_id: String + attr_accessor event: ArkEmail::Models::Platform::WebhookTestParams::event def initialize: ( + webhook_id: String, event: ArkEmail::Models::Platform::WebhookTestParams::event, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { + webhook_id: String, event: ArkEmail::Models::Platform::WebhookTestParams::event, request_options: ArkEmail::RequestOptions } diff --git a/sig/ark_email/models/platform/webhook_update_params.rbs b/sig/ark_email/models/platform/webhook_update_params.rbs index c23f34b..41df2b8 100644 --- a/sig/ark_email/models/platform/webhook_update_params.rbs +++ b/sig/ark_email/models/platform/webhook_update_params.rbs @@ -3,6 +3,7 @@ module ArkEmail module Platform type webhook_update_params = { + webhook_id: String, enabled: bool, events: ::Array[ArkEmail::Models::Platform::WebhookUpdateParams::event], name: String, @@ -14,6 +15,8 @@ module ArkEmail extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor webhook_id: String + attr_reader enabled: bool? def enabled=: (bool) -> bool @@ -33,6 +36,7 @@ module ArkEmail def url=: (String) -> String def initialize: ( + webhook_id: String, ?enabled: bool, ?events: ::Array[ArkEmail::Models::Platform::WebhookUpdateParams::event], ?name: String, @@ -41,6 +45,7 @@ module ArkEmail ) -> void def to_hash: -> { + webhook_id: String, enabled: bool, events: ::Array[ArkEmail::Models::Platform::WebhookUpdateParams::event], name: String, diff --git a/sig/ark_email/models/tenant_delete_params.rbs b/sig/ark_email/models/tenant_delete_params.rbs index 1112987..f091d09 100644 --- a/sig/ark_email/models/tenant_delete_params.rbs +++ b/sig/ark_email/models/tenant_delete_params.rbs @@ -1,15 +1,23 @@ module ArkEmail module Models type tenant_delete_params = - { } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String } & ArkEmail::Internal::Type::request_parameters class TenantDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor tenant_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + tenant_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + tenant_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/tenant_retrieve_params.rbs b/sig/ark_email/models/tenant_retrieve_params.rbs index d039f6a..d63588d 100644 --- a/sig/ark_email/models/tenant_retrieve_params.rbs +++ b/sig/ark_email/models/tenant_retrieve_params.rbs @@ -1,15 +1,23 @@ module ArkEmail module Models type tenant_retrieve_params = - { } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String } & ArkEmail::Internal::Type::request_parameters class TenantRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor tenant_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + tenant_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + tenant_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/tenant_update_params.rbs b/sig/ark_email/models/tenant_update_params.rbs index ba52dfe..396ec82 100644 --- a/sig/ark_email/models/tenant_update_params.rbs +++ b/sig/ark_email/models/tenant_update_params.rbs @@ -2,6 +2,7 @@ module ArkEmail module Models type tenant_update_params = { + tenant_id: String, metadata: ::Hash[Symbol, ArkEmail::Models::TenantUpdateParams::metadata?]?, name: String, status: ArkEmail::Models::TenantUpdateParams::status @@ -12,6 +13,8 @@ module ArkEmail extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_accessor metadata: ::Hash[Symbol, ArkEmail::Models::TenantUpdateParams::metadata?]? attr_reader name: String? @@ -25,6 +28,7 @@ module ArkEmail ) -> ArkEmail::Models::TenantUpdateParams::status def initialize: ( + tenant_id: String, ?metadata: ::Hash[Symbol, ArkEmail::Models::TenantUpdateParams::metadata?]?, ?name: String, ?status: ArkEmail::Models::TenantUpdateParams::status, @@ -32,6 +36,7 @@ module ArkEmail ) -> void def to_hash: -> { + tenant_id: String, metadata: ::Hash[Symbol, ArkEmail::Models::TenantUpdateParams::metadata?]?, name: String, status: ArkEmail::Models::TenantUpdateParams::status, diff --git a/sig/ark_email/models/tenants/credential_create_params.rbs b/sig/ark_email/models/tenants/credential_create_params.rbs index b68715f..7f64cd0 100644 --- a/sig/ark_email/models/tenants/credential_create_params.rbs +++ b/sig/ark_email/models/tenants/credential_create_params.rbs @@ -3,6 +3,7 @@ module ArkEmail module Tenants type credential_create_params = { + tenant_id: String, name: String, type: ArkEmail::Models::Tenants::CredentialCreateParams::type_ } @@ -12,17 +13,21 @@ module ArkEmail extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_accessor name: String attr_accessor type: ArkEmail::Models::Tenants::CredentialCreateParams::type_ def initialize: ( + tenant_id: String, name: String, type: ArkEmail::Models::Tenants::CredentialCreateParams::type_, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { + tenant_id: String, name: String, type: ArkEmail::Models::Tenants::CredentialCreateParams::type_, request_options: ArkEmail::RequestOptions diff --git a/sig/ark_email/models/tenants/credential_delete_params.rbs b/sig/ark_email/models/tenants/credential_delete_params.rbs index cbd4841..6cca346 100644 --- a/sig/ark_email/models/tenants/credential_delete_params.rbs +++ b/sig/ark_email/models/tenants/credential_delete_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type credential_delete_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, credential_id: Integer } + & ArkEmail::Internal::Type::request_parameters class CredentialDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor credential_id: Integer + def initialize: ( tenant_id: String, + credential_id: Integer, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + credential_id: Integer, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/credential_list_params.rbs b/sig/ark_email/models/tenants/credential_list_params.rbs index 484ecf4..0f738f2 100644 --- a/sig/ark_email/models/tenants/credential_list_params.rbs +++ b/sig/ark_email/models/tenants/credential_list_params.rbs @@ -3,6 +3,7 @@ module ArkEmail module Tenants type credential_list_params = { + tenant_id: String, page: Integer, per_page: Integer, type: ArkEmail::Models::Tenants::CredentialListParams::type_ @@ -13,6 +14,8 @@ module ArkEmail extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_reader page: Integer? def page=: (Integer) -> Integer @@ -28,6 +31,7 @@ module ArkEmail ) -> ArkEmail::Models::Tenants::CredentialListParams::type_ def initialize: ( + tenant_id: String, ?page: Integer, ?per_page: Integer, ?type: ArkEmail::Models::Tenants::CredentialListParams::type_, @@ -35,6 +39,7 @@ module ArkEmail ) -> void def to_hash: -> { + tenant_id: String, page: Integer, per_page: Integer, type: ArkEmail::Models::Tenants::CredentialListParams::type_, diff --git a/sig/ark_email/models/tenants/credential_retrieve_params.rbs b/sig/ark_email/models/tenants/credential_retrieve_params.rbs index f9d368c..7699fbe 100644 --- a/sig/ark_email/models/tenants/credential_retrieve_params.rbs +++ b/sig/ark_email/models/tenants/credential_retrieve_params.rbs @@ -2,7 +2,7 @@ module ArkEmail module Models module Tenants type credential_retrieve_params = - { tenant_id: String, reveal: bool } + { tenant_id: String, credential_id: Integer, reveal: bool } & ArkEmail::Internal::Type::request_parameters class CredentialRetrieveParams < ArkEmail::Internal::Type::BaseModel @@ -11,18 +11,22 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor credential_id: Integer + attr_reader reveal: bool? def reveal=: (bool) -> bool def initialize: ( tenant_id: String, + credential_id: Integer, ?reveal: bool, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + credential_id: Integer, reveal: bool, request_options: ArkEmail::RequestOptions } diff --git a/sig/ark_email/models/tenants/credential_update_params.rbs b/sig/ark_email/models/tenants/credential_update_params.rbs index b704a25..754f284 100644 --- a/sig/ark_email/models/tenants/credential_update_params.rbs +++ b/sig/ark_email/models/tenants/credential_update_params.rbs @@ -2,7 +2,7 @@ module ArkEmail module Models module Tenants type credential_update_params = - { tenant_id: String, hold: bool, name: String } + { tenant_id: String, credential_id: Integer, hold: bool, name: String } & ArkEmail::Internal::Type::request_parameters class CredentialUpdateParams < ArkEmail::Internal::Type::BaseModel @@ -11,6 +11,8 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor credential_id: Integer + attr_reader hold: bool? def hold=: (bool) -> bool @@ -21,6 +23,7 @@ module ArkEmail def initialize: ( tenant_id: String, + credential_id: Integer, ?hold: bool, ?name: String, ?request_options: ArkEmail::request_opts @@ -28,6 +31,7 @@ module ArkEmail def to_hash: -> { tenant_id: String, + credential_id: Integer, hold: bool, name: String, request_options: ArkEmail::RequestOptions diff --git a/sig/ark_email/models/tenants/domain_create_params.rbs b/sig/ark_email/models/tenants/domain_create_params.rbs index 8504b30..568a8f8 100644 --- a/sig/ark_email/models/tenants/domain_create_params.rbs +++ b/sig/ark_email/models/tenants/domain_create_params.rbs @@ -2,20 +2,25 @@ module ArkEmail module Models module Tenants type domain_create_params = - { name: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, name: String } + & ArkEmail::Internal::Type::request_parameters class DomainCreateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_accessor name: String def initialize: ( + tenant_id: String, name: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { + tenant_id: String, name: String, request_options: ArkEmail::RequestOptions } diff --git a/sig/ark_email/models/tenants/domain_delete_params.rbs b/sig/ark_email/models/tenants/domain_delete_params.rbs index 47202ff..bcce005 100644 --- a/sig/ark_email/models/tenants/domain_delete_params.rbs +++ b/sig/ark_email/models/tenants/domain_delete_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type domain_delete_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, domain_id: String } + & ArkEmail::Internal::Type::request_parameters class DomainDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor domain_id: String + def initialize: ( tenant_id: String, + domain_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + domain_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/domain_list_params.rbs b/sig/ark_email/models/tenants/domain_list_params.rbs index 1fed5f3..adf4283 100644 --- a/sig/ark_email/models/tenants/domain_list_params.rbs +++ b/sig/ark_email/models/tenants/domain_list_params.rbs @@ -2,15 +2,23 @@ module ArkEmail module Models module Tenants type domain_list_params = - { } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String } & ArkEmail::Internal::Type::request_parameters class DomainListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor tenant_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + tenant_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + tenant_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/tenants/domain_retrieve_params.rbs b/sig/ark_email/models/tenants/domain_retrieve_params.rbs index 202ded9..a1ba06f 100644 --- a/sig/ark_email/models/tenants/domain_retrieve_params.rbs +++ b/sig/ark_email/models/tenants/domain_retrieve_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type domain_retrieve_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, domain_id: String } + & ArkEmail::Internal::Type::request_parameters class DomainRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor domain_id: String + def initialize: ( tenant_id: String, + domain_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + domain_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/domain_verify_params.rbs b/sig/ark_email/models/tenants/domain_verify_params.rbs index 1a5cb3a..8975fa7 100644 --- a/sig/ark_email/models/tenants/domain_verify_params.rbs +++ b/sig/ark_email/models/tenants/domain_verify_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type domain_verify_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, domain_id: String } + & ArkEmail::Internal::Type::request_parameters class DomainVerifyParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor domain_id: String + def initialize: ( tenant_id: String, + domain_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + domain_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/suppression_create_params.rbs b/sig/ark_email/models/tenants/suppression_create_params.rbs index 04237d4..0bc3e0f 100644 --- a/sig/ark_email/models/tenants/suppression_create_params.rbs +++ b/sig/ark_email/models/tenants/suppression_create_params.rbs @@ -2,24 +2,28 @@ module ArkEmail module Models module Tenants type suppression_create_params = - { address: String, reason: String? } + { tenant_id: String, address: String, reason: String? } & ArkEmail::Internal::Type::request_parameters class SuppressionCreateParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_accessor address: String attr_accessor reason: String? def initialize: ( + tenant_id: String, address: String, ?reason: String?, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { + tenant_id: String, address: String, reason: String?, request_options: ArkEmail::RequestOptions diff --git a/sig/ark_email/models/tenants/suppression_delete_params.rbs b/sig/ark_email/models/tenants/suppression_delete_params.rbs index dd0dccc..c2e516c 100644 --- a/sig/ark_email/models/tenants/suppression_delete_params.rbs +++ b/sig/ark_email/models/tenants/suppression_delete_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type suppression_delete_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, email: String } + & ArkEmail::Internal::Type::request_parameters class SuppressionDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor email: String + def initialize: ( tenant_id: String, + email: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + email: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/suppression_list_params.rbs b/sig/ark_email/models/tenants/suppression_list_params.rbs index c2eed93..8c88a42 100644 --- a/sig/ark_email/models/tenants/suppression_list_params.rbs +++ b/sig/ark_email/models/tenants/suppression_list_params.rbs @@ -2,13 +2,15 @@ module ArkEmail module Models module Tenants type suppression_list_params = - { page: Integer, per_page: Integer } + { tenant_id: String, page: Integer, per_page: Integer } & ArkEmail::Internal::Type::request_parameters class SuppressionListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_reader page: Integer? def page=: (Integer) -> Integer @@ -18,12 +20,14 @@ module ArkEmail def per_page=: (Integer) -> Integer def initialize: ( + tenant_id: String, ?page: Integer, ?per_page: Integer, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { + tenant_id: String, page: Integer, per_page: Integer, request_options: ArkEmail::RequestOptions diff --git a/sig/ark_email/models/tenants/suppression_retrieve_params.rbs b/sig/ark_email/models/tenants/suppression_retrieve_params.rbs index fa75259..f4ec5c8 100644 --- a/sig/ark_email/models/tenants/suppression_retrieve_params.rbs +++ b/sig/ark_email/models/tenants/suppression_retrieve_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type suppression_retrieve_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, email: String } + & ArkEmail::Internal::Type::request_parameters class SuppressionRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor email: String + def initialize: ( tenant_id: String, + email: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + email: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/tracking_create_params.rbs b/sig/ark_email/models/tenants/tracking_create_params.rbs index 1ffd87c..195e4c6 100644 --- a/sig/ark_email/models/tenants/tracking_create_params.rbs +++ b/sig/ark_email/models/tenants/tracking_create_params.rbs @@ -3,6 +3,7 @@ module ArkEmail module Tenants type tracking_create_params = { + tenant_id: String, domain_id: Integer, name: String, ssl_enabled: bool?, @@ -15,6 +16,8 @@ module ArkEmail extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_accessor domain_id: Integer attr_accessor name: String @@ -26,6 +29,7 @@ module ArkEmail attr_accessor track_opens: bool? def initialize: ( + tenant_id: String, domain_id: Integer, name: String, ?ssl_enabled: bool?, @@ -35,6 +39,7 @@ module ArkEmail ) -> void def to_hash: -> { + tenant_id: String, domain_id: Integer, name: String, ssl_enabled: bool?, diff --git a/sig/ark_email/models/tenants/tracking_delete_params.rbs b/sig/ark_email/models/tenants/tracking_delete_params.rbs index a247458..9fa4f8c 100644 --- a/sig/ark_email/models/tenants/tracking_delete_params.rbs +++ b/sig/ark_email/models/tenants/tracking_delete_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type tracking_delete_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, tracking_id: String } + & ArkEmail::Internal::Type::request_parameters class TrackingDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor tracking_id: String + def initialize: ( tenant_id: String, + tracking_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + tracking_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/tracking_list_params.rbs b/sig/ark_email/models/tenants/tracking_list_params.rbs index 0486676..70a7037 100644 --- a/sig/ark_email/models/tenants/tracking_list_params.rbs +++ b/sig/ark_email/models/tenants/tracking_list_params.rbs @@ -2,15 +2,23 @@ module ArkEmail module Models module Tenants type tracking_list_params = - { } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String } & ArkEmail::Internal::Type::request_parameters class TrackingListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor tenant_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + tenant_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + tenant_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/tenants/tracking_retrieve_params.rbs b/sig/ark_email/models/tenants/tracking_retrieve_params.rbs index 3125283..9b4fa60 100644 --- a/sig/ark_email/models/tenants/tracking_retrieve_params.rbs +++ b/sig/ark_email/models/tenants/tracking_retrieve_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type tracking_retrieve_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, tracking_id: String } + & ArkEmail::Internal::Type::request_parameters class TrackingRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor tracking_id: String + def initialize: ( tenant_id: String, + tracking_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + tracking_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/tracking_update_params.rbs b/sig/ark_email/models/tenants/tracking_update_params.rbs index 976d068..c42508c 100644 --- a/sig/ark_email/models/tenants/tracking_update_params.rbs +++ b/sig/ark_email/models/tenants/tracking_update_params.rbs @@ -4,6 +4,7 @@ module ArkEmail type tracking_update_params = { tenant_id: String, + tracking_id: String, excluded_click_domains: String?, ssl_enabled: bool?, track_clicks: bool?, @@ -17,6 +18,8 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor tracking_id: String + attr_accessor excluded_click_domains: String? attr_accessor ssl_enabled: bool? @@ -27,6 +30,7 @@ module ArkEmail def initialize: ( tenant_id: String, + tracking_id: String, ?excluded_click_domains: String?, ?ssl_enabled: bool?, ?track_clicks: bool?, @@ -36,6 +40,7 @@ module ArkEmail def to_hash: -> { tenant_id: String, + tracking_id: String, excluded_click_domains: String?, ssl_enabled: bool?, track_clicks: bool?, diff --git a/sig/ark_email/models/tenants/tracking_verify_params.rbs b/sig/ark_email/models/tenants/tracking_verify_params.rbs index ea2f45f..8f09fb2 100644 --- a/sig/ark_email/models/tenants/tracking_verify_params.rbs +++ b/sig/ark_email/models/tenants/tracking_verify_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type tracking_verify_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, tracking_id: String } + & ArkEmail::Internal::Type::request_parameters class TrackingVerifyParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor tracking_id: String + def initialize: ( tenant_id: String, + tracking_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + tracking_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/usage_retrieve_params.rbs b/sig/ark_email/models/tenants/usage_retrieve_params.rbs index 5fc6fb2..d516bec 100644 --- a/sig/ark_email/models/tenants/usage_retrieve_params.rbs +++ b/sig/ark_email/models/tenants/usage_retrieve_params.rbs @@ -2,13 +2,15 @@ module ArkEmail module Models module Tenants type usage_retrieve_params = - { period: String, timezone: String } + { tenant_id: String, period: String, timezone: String } & ArkEmail::Internal::Type::request_parameters class UsageRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_reader period: String? def period=: (String) -> String @@ -18,12 +20,14 @@ module ArkEmail def timezone=: (String) -> String def initialize: ( + tenant_id: String, ?period: String, ?timezone: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { + tenant_id: String, period: String, timezone: String, request_options: ArkEmail::RequestOptions diff --git a/sig/ark_email/models/tenants/usage_retrieve_timeseries_params.rbs b/sig/ark_email/models/tenants/usage_retrieve_timeseries_params.rbs index 7f707bb..ec91df7 100644 --- a/sig/ark_email/models/tenants/usage_retrieve_timeseries_params.rbs +++ b/sig/ark_email/models/tenants/usage_retrieve_timeseries_params.rbs @@ -3,6 +3,7 @@ module ArkEmail module Tenants type usage_retrieve_timeseries_params = { + tenant_id: String, granularity: ArkEmail::Models::Tenants::UsageRetrieveTimeseriesParams::granularity, period: String, timezone: String @@ -13,6 +14,8 @@ module ArkEmail extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_reader granularity: ArkEmail::Models::Tenants::UsageRetrieveTimeseriesParams::granularity? def granularity=: ( @@ -28,6 +31,7 @@ module ArkEmail def timezone=: (String) -> String def initialize: ( + tenant_id: String, ?granularity: ArkEmail::Models::Tenants::UsageRetrieveTimeseriesParams::granularity, ?period: String, ?timezone: String, @@ -35,6 +39,7 @@ module ArkEmail ) -> void def to_hash: -> { + tenant_id: String, granularity: ArkEmail::Models::Tenants::UsageRetrieveTimeseriesParams::granularity, period: String, timezone: String, diff --git a/sig/ark_email/models/tenants/webhook_create_params.rbs b/sig/ark_email/models/tenants/webhook_create_params.rbs index 0bb6d20..8e3ec92 100644 --- a/sig/ark_email/models/tenants/webhook_create_params.rbs +++ b/sig/ark_email/models/tenants/webhook_create_params.rbs @@ -3,6 +3,7 @@ module ArkEmail module Tenants type webhook_create_params = { + tenant_id: String, name: String, url: String, all_events: bool?, @@ -15,6 +16,8 @@ module ArkEmail extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters + attr_accessor tenant_id: String + attr_accessor name: String attr_accessor url: String @@ -26,6 +29,7 @@ module ArkEmail attr_accessor events: ::Array[ArkEmail::Models::Tenants::WebhookCreateParams::event]? def initialize: ( + tenant_id: String, name: String, url: String, ?all_events: bool?, @@ -35,6 +39,7 @@ module ArkEmail ) -> void def to_hash: -> { + tenant_id: String, name: String, url: String, all_events: bool?, diff --git a/sig/ark_email/models/tenants/webhook_delete_params.rbs b/sig/ark_email/models/tenants/webhook_delete_params.rbs index a8d4df2..62f2899 100644 --- a/sig/ark_email/models/tenants/webhook_delete_params.rbs +++ b/sig/ark_email/models/tenants/webhook_delete_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type webhook_delete_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, webhook_id: String } + & ArkEmail::Internal::Type::request_parameters class WebhookDeleteParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor webhook_id: String + def initialize: ( tenant_id: String, + webhook_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + webhook_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/webhook_list_deliveries_params.rbs b/sig/ark_email/models/tenants/webhook_list_deliveries_params.rbs index d0de752..520e900 100644 --- a/sig/ark_email/models/tenants/webhook_list_deliveries_params.rbs +++ b/sig/ark_email/models/tenants/webhook_list_deliveries_params.rbs @@ -4,6 +4,7 @@ module ArkEmail type webhook_list_deliveries_params = { tenant_id: String, + webhook_id: String, after: Integer, before: Integer, event: ArkEmail::Models::Tenants::WebhookListDeliveriesParams::event, @@ -19,6 +20,8 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor webhook_id: String + attr_reader after: Integer? def after=: (Integer) -> Integer @@ -47,6 +50,7 @@ module ArkEmail def initialize: ( tenant_id: String, + webhook_id: String, ?after: Integer, ?before: Integer, ?event: ArkEmail::Models::Tenants::WebhookListDeliveriesParams::event, @@ -58,6 +62,7 @@ module ArkEmail def to_hash: -> { tenant_id: String, + webhook_id: String, after: Integer, before: Integer, event: ArkEmail::Models::Tenants::WebhookListDeliveriesParams::event, diff --git a/sig/ark_email/models/tenants/webhook_list_params.rbs b/sig/ark_email/models/tenants/webhook_list_params.rbs index 836e3a7..706bc78 100644 --- a/sig/ark_email/models/tenants/webhook_list_params.rbs +++ b/sig/ark_email/models/tenants/webhook_list_params.rbs @@ -2,15 +2,23 @@ module ArkEmail module Models module Tenants type webhook_list_params = - { } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String } & ArkEmail::Internal::Type::request_parameters class WebhookListParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter include ArkEmail::Internal::Type::RequestParameters - def initialize: (?request_options: ArkEmail::request_opts) -> void + attr_accessor tenant_id: String - def to_hash: -> { request_options: ArkEmail::RequestOptions } + def initialize: ( + tenant_id: String, + ?request_options: ArkEmail::request_opts + ) -> void + + def to_hash: -> { + tenant_id: String, + request_options: ArkEmail::RequestOptions + } end end end diff --git a/sig/ark_email/models/tenants/webhook_replay_delivery_params.rbs b/sig/ark_email/models/tenants/webhook_replay_delivery_params.rbs index 56d0b52..5e70e96 100644 --- a/sig/ark_email/models/tenants/webhook_replay_delivery_params.rbs +++ b/sig/ark_email/models/tenants/webhook_replay_delivery_params.rbs @@ -2,7 +2,7 @@ module ArkEmail module Models module Tenants type webhook_replay_delivery_params = - { tenant_id: String, webhook_id: String } + { tenant_id: String, webhook_id: String, delivery_id: String } & ArkEmail::Internal::Type::request_parameters class WebhookReplayDeliveryParams < ArkEmail::Internal::Type::BaseModel @@ -13,15 +13,19 @@ module ArkEmail attr_accessor webhook_id: String + attr_accessor delivery_id: String + def initialize: ( tenant_id: String, webhook_id: String, + delivery_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, webhook_id: String, + delivery_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/webhook_retrieve_delivery_params.rbs b/sig/ark_email/models/tenants/webhook_retrieve_delivery_params.rbs index fe51587..16f6acc 100644 --- a/sig/ark_email/models/tenants/webhook_retrieve_delivery_params.rbs +++ b/sig/ark_email/models/tenants/webhook_retrieve_delivery_params.rbs @@ -2,7 +2,7 @@ module ArkEmail module Models module Tenants type webhook_retrieve_delivery_params = - { tenant_id: String, webhook_id: String } + { tenant_id: String, webhook_id: String, delivery_id: String } & ArkEmail::Internal::Type::request_parameters class WebhookRetrieveDeliveryParams < ArkEmail::Internal::Type::BaseModel @@ -13,15 +13,19 @@ module ArkEmail attr_accessor webhook_id: String + attr_accessor delivery_id: String + def initialize: ( tenant_id: String, webhook_id: String, + delivery_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, webhook_id: String, + delivery_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/webhook_retrieve_params.rbs b/sig/ark_email/models/tenants/webhook_retrieve_params.rbs index 167c38d..1f9c17d 100644 --- a/sig/ark_email/models/tenants/webhook_retrieve_params.rbs +++ b/sig/ark_email/models/tenants/webhook_retrieve_params.rbs @@ -2,7 +2,8 @@ module ArkEmail module Models module Tenants type webhook_retrieve_params = - { tenant_id: String } & ArkEmail::Internal::Type::request_parameters + { tenant_id: String, webhook_id: String } + & ArkEmail::Internal::Type::request_parameters class WebhookRetrieveParams < ArkEmail::Internal::Type::BaseModel extend ArkEmail::Internal::Type::RequestParameters::Converter @@ -10,13 +11,17 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor webhook_id: String + def initialize: ( tenant_id: String, + webhook_id: String, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + webhook_id: String, request_options: ArkEmail::RequestOptions } end diff --git a/sig/ark_email/models/tenants/webhook_test_params.rbs b/sig/ark_email/models/tenants/webhook_test_params.rbs index 42b43e6..a571d1e 100644 --- a/sig/ark_email/models/tenants/webhook_test_params.rbs +++ b/sig/ark_email/models/tenants/webhook_test_params.rbs @@ -4,6 +4,7 @@ module ArkEmail type webhook_test_params = { tenant_id: String, + webhook_id: String, event: ArkEmail::Models::Tenants::WebhookTestParams::event } & ArkEmail::Internal::Type::request_parameters @@ -14,16 +15,20 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor webhook_id: String + attr_accessor event: ArkEmail::Models::Tenants::WebhookTestParams::event def initialize: ( tenant_id: String, + webhook_id: String, event: ArkEmail::Models::Tenants::WebhookTestParams::event, ?request_options: ArkEmail::request_opts ) -> void def to_hash: -> { tenant_id: String, + webhook_id: String, event: ArkEmail::Models::Tenants::WebhookTestParams::event, request_options: ArkEmail::RequestOptions } diff --git a/sig/ark_email/models/tenants/webhook_update_params.rbs b/sig/ark_email/models/tenants/webhook_update_params.rbs index 90659a2..32027bc 100644 --- a/sig/ark_email/models/tenants/webhook_update_params.rbs +++ b/sig/ark_email/models/tenants/webhook_update_params.rbs @@ -4,6 +4,7 @@ module ArkEmail type webhook_update_params = { tenant_id: String, + webhook_id: String, all_events: bool?, enabled: bool?, events: ::Array[String]?, @@ -18,6 +19,8 @@ module ArkEmail attr_accessor tenant_id: String + attr_accessor webhook_id: String + attr_accessor all_events: bool? attr_accessor enabled: bool? @@ -30,6 +33,7 @@ module ArkEmail def initialize: ( tenant_id: String, + webhook_id: String, ?all_events: bool?, ?enabled: bool?, ?events: ::Array[String]?, @@ -40,6 +44,7 @@ module ArkEmail def to_hash: -> { tenant_id: String, + webhook_id: String, all_events: bool?, enabled: bool?, events: ::Array[String]?, From 8be7c3f8333306f7e3687ade2d770a928abbf270 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 6 Mar 2026 13:05:54 +0000 Subject: [PATCH 09/11] chore(test): do not count install time for mock server timeout --- scripts/mock | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/scripts/mock b/scripts/mock index 0b28f6e..bcf3b39 100755 --- a/scripts/mock +++ b/scripts/mock @@ -21,11 +21,22 @@ echo "==> Starting mock server with URL ${URL}" # Run prism mock on the given spec if [ "$1" == "--daemon" ]; then + # Pre-install the package so the download doesn't eat into the startup timeout + npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism --version + npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log & - # Wait for server to come online + # Wait for server to come online (max 30s) echo -n "Waiting for server" + attempts=0 while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do + attempts=$((attempts + 1)) + if [ "$attempts" -ge 300 ]; then + echo + echo "Timed out waiting for Prism server to start" + cat .prism.log + exit 1 + fi echo -n "." sleep 0.1 done From 84760cec19c56830abbe97179c421be8ec8d0573 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 19:01:14 +0000 Subject: [PATCH 10/11] chore(ci): skip uploading artifacts on stainless-internal branches --- .github/workflows/ci.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8b0f14a..8200386 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,14 +33,18 @@ jobs: bundle install - name: Get GitHub OIDC Token - if: github.repository == 'stainless-sdks/ark-ruby' + if: |- + github.repository == 'stainless-sdks/ark-ruby' && + !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc uses: actions/github-script@v8 with: script: core.setOutput('github_token', await core.getIDToken()); - name: Build and upload gem artifacts - if: github.repository == 'stainless-sdks/ark-ruby' + if: |- + github.repository == 'stainless-sdks/ark-ruby' && + !startsWith(github.ref, 'refs/heads/stl/') env: URL: https://pkg.stainless.com/s AUTH: ${{ steps.github-oidc.outputs.github_token }} From 6f432c45c1fb8921c4820437b9fa3f183e5739f4 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 19:19:23 +0000 Subject: [PATCH 11/11] release: 0.20.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 23 +++++++++++++++++++++++ Gemfile.lock | 2 +- README.md | 2 +- lib/ark_email/version.rb | 2 +- 5 files changed, 27 insertions(+), 4 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e756293..0c2ecec 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.19.0" + ".": "0.20.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 07afb71..899dd1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,28 @@ # Changelog +## 0.20.0 (2026-03-07) + +Full Changelog: [v0.19.0...v0.20.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.19.0...v0.20.0) + +### Features + +* **api:** add tenantId to send ([d443493](https://github.com/ArkHQ-io/ark-ruby/commit/d4434933efda6c1cc2cab76c52319113f67aab91)) + + +### Bug Fixes + +* properly mock time in ruby ci tests ([1af3ac3](https://github.com/ArkHQ-io/ark-ruby/commit/1af3ac341b43b64d6e491c72a0a8bda9408625e1)) + + +### Chores + +* **ci:** add build step ([07f4b8f](https://github.com/ArkHQ-io/ark-ruby/commit/07f4b8f01d304d412aef6898dc8d003f701e2733)) +* **ci:** skip uploading artifacts on stainless-internal branches ([84760ce](https://github.com/ArkHQ-io/ark-ruby/commit/84760cec19c56830abbe97179c421be8ec8d0573)) +* **internal:** codegen related update ([59ed473](https://github.com/ArkHQ-io/ark-ruby/commit/59ed473b3a2c74b6baecde451956fb1a24829489)) +* **internal:** codegen related update ([52ec8d2](https://github.com/ArkHQ-io/ark-ruby/commit/52ec8d221046d735dd605aab684f17e074478cf9)) +* **test:** do not count install time for mock server timeout ([8be7c3f](https://github.com/ArkHQ-io/ark-ruby/commit/8be7c3f8333306f7e3687ade2d770a928abbf270)) +* update mock server docs ([e0cbedc](https://github.com/ArkHQ-io/ark-ruby/commit/e0cbedce73ed0f6dbd683cb3dc04b8aa9937a434)) + ## 0.19.0 (2026-02-07) Full Changelog: [v0.18.0...v0.19.0](https://github.com/ArkHQ-io/ark-ruby/compare/v0.18.0...v0.19.0) diff --git a/Gemfile.lock b/Gemfile.lock index 346b817..c862a16 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - ark-email (0.19.0) + ark-email (0.20.0) cgi connection_pool diff --git a/README.md b/README.md index 641bcd0..2209923 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "ark-email", "~> 0.19.0" +gem "ark-email", "~> 0.20.0" ``` diff --git a/lib/ark_email/version.rb b/lib/ark_email/version.rb index bad5e57..c81ac2e 100644 --- a/lib/ark_email/version.rb +++ b/lib/ark_email/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module ArkEmail - VERSION = "0.19.0" + VERSION = "0.20.0" end