ark-email 0.16.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/README.md +1 -1
- data/lib/ark_email/client.rb +4 -0
- data/lib/ark_email/internal/transport/pooled_net_requester.rb +1 -1
- data/lib/ark_email/models/email_retrieve_deliveries_response.rb +80 -5
- data/lib/ark_email/models/email_retrieve_response.rb +79 -5
- data/lib/ark_email/models/tenant.rb +95 -0
- data/lib/ark_email/models/tenant_create_params.rb +57 -0
- data/lib/ark_email/models/tenant_create_response.rb +28 -0
- data/lib/ark_email/models/tenant_delete_params.rb +14 -0
- data/lib/ark_email/models/tenant_delete_response.rb +39 -0
- data/lib/ark_email/models/tenant_list_params.rb +50 -0
- data/lib/ark_email/models/tenant_retrieve_params.rb +14 -0
- data/lib/ark_email/models/tenant_retrieve_response.rb +28 -0
- data/lib/ark_email/models/tenant_update_params.rb +77 -0
- data/lib/ark_email/models/tenant_update_response.rb +28 -0
- data/lib/ark_email/models.rb +12 -0
- data/lib/ark_email/resources/tenants.rb +144 -0
- data/lib/ark_email/version.rb +1 -1
- data/lib/ark_email.rb +11 -0
- data/rbi/ark_email/client.rbi +3 -0
- data/rbi/ark_email/models/email_retrieve_deliveries_response.rbi +166 -7
- data/rbi/ark_email/models/email_retrieve_response.rbi +166 -7
- data/rbi/ark_email/models/tenant.rbi +121 -0
- data/rbi/ark_email/models/tenant_create_params.rbi +100 -0
- data/rbi/ark_email/models/tenant_create_response.rbi +52 -0
- data/rbi/ark_email/models/tenant_delete_params.rbi +27 -0
- data/rbi/ark_email/models/tenant_delete_response.rbi +75 -0
- data/rbi/ark_email/models/tenant_list_params.rbi +92 -0
- data/rbi/ark_email/models/tenant_retrieve_params.rbi +27 -0
- data/rbi/ark_email/models/tenant_retrieve_response.rbi +52 -0
- data/rbi/ark_email/models/tenant_update_params.rbi +140 -0
- data/rbi/ark_email/models/tenant_update_response.rbi +52 -0
- data/rbi/ark_email/models.rbi +12 -0
- data/rbi/ark_email/resources/tenants.rbi +131 -0
- data/sig/ark_email/client.rbs +2 -0
- data/sig/ark_email/models/email_retrieve_deliveries_response.rbs +58 -3
- data/sig/ark_email/models/email_retrieve_response.rbs +58 -3
- data/sig/ark_email/models/tenant.rbs +65 -0
- data/sig/ark_email/models/tenant_create_params.rbs +39 -0
- data/sig/ark_email/models/tenant_create_response.rbs +26 -0
- data/sig/ark_email/models/tenant_delete_params.rbs +15 -0
- data/sig/ark_email/models/tenant_delete_response.rbs +40 -0
- data/sig/ark_email/models/tenant_list_params.rbs +56 -0
- data/sig/ark_email/models/tenant_retrieve_params.rbs +15 -0
- data/sig/ark_email/models/tenant_retrieve_response.rbs +26 -0
- data/sig/ark_email/models/tenant_update_params.rbs +62 -0
- data/sig/ark_email/models/tenant_update_response.rbs +26 -0
- data/sig/ark_email/models.rbs +12 -0
- data/sig/ark_email/resources/tenants.rbs +38 -0
- metadata +35 -2
|
@@ -774,6 +774,25 @@ module ArkEmail
|
|
|
774
774
|
sig { returns(Time) }
|
|
775
775
|
attr_accessor :timestamp_iso
|
|
776
776
|
|
|
777
|
+
# Bounce classification category (present for failed deliveries). Helps understand
|
|
778
|
+
# why delivery failed for analytics and automated handling.
|
|
779
|
+
sig do
|
|
780
|
+
returns(
|
|
781
|
+
T.nilable(
|
|
782
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
783
|
+
)
|
|
784
|
+
)
|
|
785
|
+
end
|
|
786
|
+
attr_accessor :classification
|
|
787
|
+
|
|
788
|
+
# Numeric bounce classification code for programmatic handling. Codes:
|
|
789
|
+
# 10=invalid_recipient, 11=no_mailbox, 12=not_accepting_mail, 20=mailbox_full,
|
|
790
|
+
# 21=message_too_large, 30=spam_block, 31=policy_violation, 32=tls_required,
|
|
791
|
+
# 40=connection_error, 41=dns_error, 42=temporarily_unavailable,
|
|
792
|
+
# 50=protocol_error, 99=unclassified
|
|
793
|
+
sig { returns(T.nilable(Integer)) }
|
|
794
|
+
attr_accessor :classification_code
|
|
795
|
+
|
|
777
796
|
# SMTP response code
|
|
778
797
|
sig { returns(T.nilable(Integer)) }
|
|
779
798
|
attr_reader :code
|
|
@@ -781,20 +800,29 @@ module ArkEmail
|
|
|
781
800
|
sig { params(code: Integer).void }
|
|
782
801
|
attr_writer :code
|
|
783
802
|
|
|
784
|
-
#
|
|
803
|
+
# Human-readable delivery summary. Format varies by status:
|
|
804
|
+
#
|
|
805
|
+
# - **sent**: `Message for {recipient} accepted by {ip}:{port} ({hostname})`
|
|
806
|
+
# - **softfail/hardfail**:
|
|
807
|
+
# `{code} {classification}: Delivery to {recipient} failed at {ip}:{port} ({hostname})`
|
|
785
808
|
sig { returns(T.nilable(String)) }
|
|
786
809
|
attr_reader :details
|
|
787
810
|
|
|
788
811
|
sig { params(details: String).void }
|
|
789
812
|
attr_writer :details
|
|
790
813
|
|
|
791
|
-
# SMTP
|
|
814
|
+
# Raw SMTP response from the receiving mail server
|
|
792
815
|
sig { returns(T.nilable(String)) }
|
|
793
816
|
attr_reader :output
|
|
794
817
|
|
|
795
818
|
sig { params(output: String).void }
|
|
796
819
|
attr_writer :output
|
|
797
820
|
|
|
821
|
+
# Hostname of the remote mail server that processed the delivery. Present for all
|
|
822
|
+
# delivery attempts (successful and failed).
|
|
823
|
+
sig { returns(T.nilable(String)) }
|
|
824
|
+
attr_accessor :remote_host
|
|
825
|
+
|
|
798
826
|
# Whether TLS was used
|
|
799
827
|
sig { returns(T.nilable(T::Boolean)) }
|
|
800
828
|
attr_reader :sent_with_ssl
|
|
@@ -802,16 +830,29 @@ module ArkEmail
|
|
|
802
830
|
sig { params(sent_with_ssl: T::Boolean).void }
|
|
803
831
|
attr_writer :sent_with_ssl
|
|
804
832
|
|
|
833
|
+
# RFC 3463 enhanced status code from SMTP response (e.g., "5.1.1", "4.2.2"). First
|
|
834
|
+
# digit: 2=success, 4=temporary, 5=permanent. Second digit: category (1=address,
|
|
835
|
+
# 2=mailbox, 7=security, etc.).
|
|
836
|
+
sig { returns(T.nilable(String)) }
|
|
837
|
+
attr_accessor :smtp_enhanced_code
|
|
838
|
+
|
|
805
839
|
sig do
|
|
806
840
|
params(
|
|
807
841
|
id: String,
|
|
808
842
|
status: String,
|
|
809
843
|
timestamp: Float,
|
|
810
844
|
timestamp_iso: Time,
|
|
845
|
+
classification:
|
|
846
|
+
T.nilable(
|
|
847
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::OrSymbol
|
|
848
|
+
),
|
|
849
|
+
classification_code: T.nilable(Integer),
|
|
811
850
|
code: Integer,
|
|
812
851
|
details: String,
|
|
813
852
|
output: String,
|
|
814
|
-
|
|
853
|
+
remote_host: T.nilable(String),
|
|
854
|
+
sent_with_ssl: T::Boolean,
|
|
855
|
+
smtp_enhanced_code: T.nilable(String)
|
|
815
856
|
).returns(T.attached_class)
|
|
816
857
|
end
|
|
817
858
|
def self.new(
|
|
@@ -823,14 +864,34 @@ module ArkEmail
|
|
|
823
864
|
timestamp:,
|
|
824
865
|
# ISO 8601 timestamp
|
|
825
866
|
timestamp_iso:,
|
|
867
|
+
# Bounce classification category (present for failed deliveries). Helps understand
|
|
868
|
+
# why delivery failed for analytics and automated handling.
|
|
869
|
+
classification: nil,
|
|
870
|
+
# Numeric bounce classification code for programmatic handling. Codes:
|
|
871
|
+
# 10=invalid_recipient, 11=no_mailbox, 12=not_accepting_mail, 20=mailbox_full,
|
|
872
|
+
# 21=message_too_large, 30=spam_block, 31=policy_violation, 32=tls_required,
|
|
873
|
+
# 40=connection_error, 41=dns_error, 42=temporarily_unavailable,
|
|
874
|
+
# 50=protocol_error, 99=unclassified
|
|
875
|
+
classification_code: nil,
|
|
826
876
|
# SMTP response code
|
|
827
877
|
code: nil,
|
|
828
|
-
#
|
|
878
|
+
# Human-readable delivery summary. Format varies by status:
|
|
879
|
+
#
|
|
880
|
+
# - **sent**: `Message for {recipient} accepted by {ip}:{port} ({hostname})`
|
|
881
|
+
# - **softfail/hardfail**:
|
|
882
|
+
# `{code} {classification}: Delivery to {recipient} failed at {ip}:{port} ({hostname})`
|
|
829
883
|
details: nil,
|
|
830
|
-
# SMTP
|
|
884
|
+
# Raw SMTP response from the receiving mail server
|
|
831
885
|
output: nil,
|
|
886
|
+
# Hostname of the remote mail server that processed the delivery. Present for all
|
|
887
|
+
# delivery attempts (successful and failed).
|
|
888
|
+
remote_host: nil,
|
|
832
889
|
# Whether TLS was used
|
|
833
|
-
sent_with_ssl: nil
|
|
890
|
+
sent_with_ssl: nil,
|
|
891
|
+
# RFC 3463 enhanced status code from SMTP response (e.g., "5.1.1", "4.2.2"). First
|
|
892
|
+
# digit: 2=success, 4=temporary, 5=permanent. Second digit: category (1=address,
|
|
893
|
+
# 2=mailbox, 7=security, etc.).
|
|
894
|
+
smtp_enhanced_code: nil
|
|
834
895
|
)
|
|
835
896
|
end
|
|
836
897
|
|
|
@@ -841,15 +902,113 @@ module ArkEmail
|
|
|
841
902
|
status: String,
|
|
842
903
|
timestamp: Float,
|
|
843
904
|
timestamp_iso: Time,
|
|
905
|
+
classification:
|
|
906
|
+
T.nilable(
|
|
907
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
908
|
+
),
|
|
909
|
+
classification_code: T.nilable(Integer),
|
|
844
910
|
code: Integer,
|
|
845
911
|
details: String,
|
|
846
912
|
output: String,
|
|
847
|
-
|
|
913
|
+
remote_host: T.nilable(String),
|
|
914
|
+
sent_with_ssl: T::Boolean,
|
|
915
|
+
smtp_enhanced_code: T.nilable(String)
|
|
848
916
|
}
|
|
849
917
|
)
|
|
850
918
|
end
|
|
851
919
|
def to_hash
|
|
852
920
|
end
|
|
921
|
+
|
|
922
|
+
# Bounce classification category (present for failed deliveries). Helps understand
|
|
923
|
+
# why delivery failed for analytics and automated handling.
|
|
924
|
+
module Classification
|
|
925
|
+
extend ArkEmail::Internal::Type::Enum
|
|
926
|
+
|
|
927
|
+
TaggedSymbol =
|
|
928
|
+
T.type_alias do
|
|
929
|
+
T.all(
|
|
930
|
+
Symbol,
|
|
931
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification
|
|
932
|
+
)
|
|
933
|
+
end
|
|
934
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
935
|
+
|
|
936
|
+
INVALID_RECIPIENT =
|
|
937
|
+
T.let(
|
|
938
|
+
:invalid_recipient,
|
|
939
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
940
|
+
)
|
|
941
|
+
MAILBOX_FULL =
|
|
942
|
+
T.let(
|
|
943
|
+
:mailbox_full,
|
|
944
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
945
|
+
)
|
|
946
|
+
MESSAGE_TOO_LARGE =
|
|
947
|
+
T.let(
|
|
948
|
+
:message_too_large,
|
|
949
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
950
|
+
)
|
|
951
|
+
SPAM_BLOCK =
|
|
952
|
+
T.let(
|
|
953
|
+
:spam_block,
|
|
954
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
955
|
+
)
|
|
956
|
+
POLICY_VIOLATION =
|
|
957
|
+
T.let(
|
|
958
|
+
:policy_violation,
|
|
959
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
960
|
+
)
|
|
961
|
+
NO_MAILBOX =
|
|
962
|
+
T.let(
|
|
963
|
+
:no_mailbox,
|
|
964
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
965
|
+
)
|
|
966
|
+
NOT_ACCEPTING_MAIL =
|
|
967
|
+
T.let(
|
|
968
|
+
:not_accepting_mail,
|
|
969
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
970
|
+
)
|
|
971
|
+
TEMPORARILY_UNAVAILABLE =
|
|
972
|
+
T.let(
|
|
973
|
+
:temporarily_unavailable,
|
|
974
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
975
|
+
)
|
|
976
|
+
PROTOCOL_ERROR =
|
|
977
|
+
T.let(
|
|
978
|
+
:protocol_error,
|
|
979
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
980
|
+
)
|
|
981
|
+
TLS_REQUIRED =
|
|
982
|
+
T.let(
|
|
983
|
+
:tls_required,
|
|
984
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
985
|
+
)
|
|
986
|
+
CONNECTION_ERROR =
|
|
987
|
+
T.let(
|
|
988
|
+
:connection_error,
|
|
989
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
990
|
+
)
|
|
991
|
+
DNS_ERROR =
|
|
992
|
+
T.let(
|
|
993
|
+
:dns_error,
|
|
994
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
995
|
+
)
|
|
996
|
+
UNCLASSIFIED =
|
|
997
|
+
T.let(
|
|
998
|
+
:unclassified,
|
|
999
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
1000
|
+
)
|
|
1001
|
+
|
|
1002
|
+
sig do
|
|
1003
|
+
override.returns(
|
|
1004
|
+
T::Array[
|
|
1005
|
+
ArkEmail::Models::EmailRetrieveResponse::Data::Delivery::Classification::TaggedSymbol
|
|
1006
|
+
]
|
|
1007
|
+
)
|
|
1008
|
+
end
|
|
1009
|
+
def self.values
|
|
1010
|
+
end
|
|
1011
|
+
end
|
|
853
1012
|
end
|
|
854
1013
|
end
|
|
855
1014
|
end
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class Tenant < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias { T.any(ArkEmail::Tenant, ArkEmail::Internal::AnyHash) }
|
|
8
|
+
|
|
9
|
+
# Unique identifier for the tenant
|
|
10
|
+
sig { returns(String) }
|
|
11
|
+
attr_accessor :id
|
|
12
|
+
|
|
13
|
+
# When the tenant was created
|
|
14
|
+
sig { returns(Time) }
|
|
15
|
+
attr_accessor :created_at
|
|
16
|
+
|
|
17
|
+
# Custom key-value pairs for storing additional data
|
|
18
|
+
sig do
|
|
19
|
+
returns(
|
|
20
|
+
T::Hash[Symbol, T.nilable(ArkEmail::Tenant::Metadata::Variants)]
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
attr_accessor :metadata
|
|
24
|
+
|
|
25
|
+
# Display name for the tenant
|
|
26
|
+
sig { returns(String) }
|
|
27
|
+
attr_accessor :name
|
|
28
|
+
|
|
29
|
+
# Current status of the tenant:
|
|
30
|
+
#
|
|
31
|
+
# - `active` - Normal operation
|
|
32
|
+
# - `suspended` - Temporarily disabled
|
|
33
|
+
# - `archived` - Soft-deleted
|
|
34
|
+
sig { returns(ArkEmail::Tenant::Status::TaggedSymbol) }
|
|
35
|
+
attr_accessor :status
|
|
36
|
+
|
|
37
|
+
# When the tenant was last updated
|
|
38
|
+
sig { returns(Time) }
|
|
39
|
+
attr_accessor :updated_at
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
params(
|
|
43
|
+
id: String,
|
|
44
|
+
created_at: Time,
|
|
45
|
+
metadata:
|
|
46
|
+
T::Hash[Symbol, T.nilable(ArkEmail::Tenant::Metadata::Variants)],
|
|
47
|
+
name: String,
|
|
48
|
+
status: ArkEmail::Tenant::Status::OrSymbol,
|
|
49
|
+
updated_at: Time
|
|
50
|
+
).returns(T.attached_class)
|
|
51
|
+
end
|
|
52
|
+
def self.new(
|
|
53
|
+
# Unique identifier for the tenant
|
|
54
|
+
id:,
|
|
55
|
+
# When the tenant was created
|
|
56
|
+
created_at:,
|
|
57
|
+
# Custom key-value pairs for storing additional data
|
|
58
|
+
metadata:,
|
|
59
|
+
# Display name for the tenant
|
|
60
|
+
name:,
|
|
61
|
+
# Current status of the tenant:
|
|
62
|
+
#
|
|
63
|
+
# - `active` - Normal operation
|
|
64
|
+
# - `suspended` - Temporarily disabled
|
|
65
|
+
# - `archived` - Soft-deleted
|
|
66
|
+
status:,
|
|
67
|
+
# When the tenant was last updated
|
|
68
|
+
updated_at:
|
|
69
|
+
)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
sig do
|
|
73
|
+
override.returns(
|
|
74
|
+
{
|
|
75
|
+
id: String,
|
|
76
|
+
created_at: Time,
|
|
77
|
+
metadata:
|
|
78
|
+
T::Hash[Symbol, T.nilable(ArkEmail::Tenant::Metadata::Variants)],
|
|
79
|
+
name: String,
|
|
80
|
+
status: ArkEmail::Tenant::Status::TaggedSymbol,
|
|
81
|
+
updated_at: Time
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
def to_hash
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
module Metadata
|
|
89
|
+
extend ArkEmail::Internal::Type::Union
|
|
90
|
+
|
|
91
|
+
Variants = T.type_alias { T.any(String, Float, T::Boolean) }
|
|
92
|
+
|
|
93
|
+
sig { override.returns(T::Array[ArkEmail::Tenant::Metadata::Variants]) }
|
|
94
|
+
def self.variants
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Current status of the tenant:
|
|
99
|
+
#
|
|
100
|
+
# - `active` - Normal operation
|
|
101
|
+
# - `suspended` - Temporarily disabled
|
|
102
|
+
# - `archived` - Soft-deleted
|
|
103
|
+
module Status
|
|
104
|
+
extend ArkEmail::Internal::Type::Enum
|
|
105
|
+
|
|
106
|
+
TaggedSymbol = T.type_alias { T.all(Symbol, ArkEmail::Tenant::Status) }
|
|
107
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
108
|
+
|
|
109
|
+
ACTIVE = T.let(:active, ArkEmail::Tenant::Status::TaggedSymbol)
|
|
110
|
+
SUSPENDED = T.let(:suspended, ArkEmail::Tenant::Status::TaggedSymbol)
|
|
111
|
+
ARCHIVED = T.let(:archived, ArkEmail::Tenant::Status::TaggedSymbol)
|
|
112
|
+
|
|
113
|
+
sig do
|
|
114
|
+
override.returns(T::Array[ArkEmail::Tenant::Status::TaggedSymbol])
|
|
115
|
+
end
|
|
116
|
+
def self.values
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class TenantCreateParams < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
extend ArkEmail::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include ArkEmail::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(ArkEmail::TenantCreateParams, ArkEmail::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Display name for the tenant (e.g., your customer's company name)
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :name
|
|
17
|
+
|
|
18
|
+
# Custom key-value pairs. Useful for storing references to your internal systems.
|
|
19
|
+
#
|
|
20
|
+
# **Limits:**
|
|
21
|
+
#
|
|
22
|
+
# - Max 50 keys
|
|
23
|
+
# - Key names max 40 characters
|
|
24
|
+
# - String values max 500 characters
|
|
25
|
+
# - Total size max 8KB
|
|
26
|
+
sig do
|
|
27
|
+
returns(
|
|
28
|
+
T.nilable(
|
|
29
|
+
T::Hash[
|
|
30
|
+
Symbol,
|
|
31
|
+
T.nilable(ArkEmail::TenantCreateParams::Metadata::Variants)
|
|
32
|
+
]
|
|
33
|
+
)
|
|
34
|
+
)
|
|
35
|
+
end
|
|
36
|
+
attr_accessor :metadata
|
|
37
|
+
|
|
38
|
+
sig do
|
|
39
|
+
params(
|
|
40
|
+
name: String,
|
|
41
|
+
metadata:
|
|
42
|
+
T.nilable(
|
|
43
|
+
T::Hash[
|
|
44
|
+
Symbol,
|
|
45
|
+
T.nilable(ArkEmail::TenantCreateParams::Metadata::Variants)
|
|
46
|
+
]
|
|
47
|
+
),
|
|
48
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
49
|
+
).returns(T.attached_class)
|
|
50
|
+
end
|
|
51
|
+
def self.new(
|
|
52
|
+
# Display name for the tenant (e.g., your customer's company name)
|
|
53
|
+
name:,
|
|
54
|
+
# Custom key-value pairs. Useful for storing references to your internal systems.
|
|
55
|
+
#
|
|
56
|
+
# **Limits:**
|
|
57
|
+
#
|
|
58
|
+
# - Max 50 keys
|
|
59
|
+
# - Key names max 40 characters
|
|
60
|
+
# - String values max 500 characters
|
|
61
|
+
# - Total size max 8KB
|
|
62
|
+
metadata: nil,
|
|
63
|
+
request_options: {}
|
|
64
|
+
)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
sig do
|
|
68
|
+
override.returns(
|
|
69
|
+
{
|
|
70
|
+
name: String,
|
|
71
|
+
metadata:
|
|
72
|
+
T.nilable(
|
|
73
|
+
T::Hash[
|
|
74
|
+
Symbol,
|
|
75
|
+
T.nilable(ArkEmail::TenantCreateParams::Metadata::Variants)
|
|
76
|
+
]
|
|
77
|
+
),
|
|
78
|
+
request_options: ArkEmail::RequestOptions
|
|
79
|
+
}
|
|
80
|
+
)
|
|
81
|
+
end
|
|
82
|
+
def to_hash
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
module Metadata
|
|
86
|
+
extend ArkEmail::Internal::Type::Union
|
|
87
|
+
|
|
88
|
+
Variants = T.type_alias { T.any(String, Float, T::Boolean) }
|
|
89
|
+
|
|
90
|
+
sig do
|
|
91
|
+
override.returns(
|
|
92
|
+
T::Array[ArkEmail::TenantCreateParams::Metadata::Variants]
|
|
93
|
+
)
|
|
94
|
+
end
|
|
95
|
+
def self.variants
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class TenantCreateResponse < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
ArkEmail::Models::TenantCreateResponse,
|
|
10
|
+
ArkEmail::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(ArkEmail::Tenant) }
|
|
15
|
+
attr_reader :data
|
|
16
|
+
|
|
17
|
+
sig { params(data: ArkEmail::Tenant::OrHash).void }
|
|
18
|
+
attr_writer :data
|
|
19
|
+
|
|
20
|
+
sig { returns(ArkEmail::APIMeta) }
|
|
21
|
+
attr_reader :meta
|
|
22
|
+
|
|
23
|
+
sig { params(meta: ArkEmail::APIMeta::OrHash).void }
|
|
24
|
+
attr_writer :meta
|
|
25
|
+
|
|
26
|
+
sig { returns(T::Boolean) }
|
|
27
|
+
attr_accessor :success
|
|
28
|
+
|
|
29
|
+
sig do
|
|
30
|
+
params(
|
|
31
|
+
data: ArkEmail::Tenant::OrHash,
|
|
32
|
+
meta: ArkEmail::APIMeta::OrHash,
|
|
33
|
+
success: T::Boolean
|
|
34
|
+
).returns(T.attached_class)
|
|
35
|
+
end
|
|
36
|
+
def self.new(data:, meta:, success: true)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
sig do
|
|
40
|
+
override.returns(
|
|
41
|
+
{
|
|
42
|
+
data: ArkEmail::Tenant,
|
|
43
|
+
meta: ArkEmail::APIMeta,
|
|
44
|
+
success: T::Boolean
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
end
|
|
48
|
+
def to_hash
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class TenantDeleteParams < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
extend ArkEmail::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include ArkEmail::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(ArkEmail::TenantDeleteParams, ArkEmail::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig do
|
|
15
|
+
params(request_options: ArkEmail::RequestOptions::OrHash).returns(
|
|
16
|
+
T.attached_class
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
def self.new(request_options: {})
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
sig { override.returns({ request_options: ArkEmail::RequestOptions }) }
|
|
23
|
+
def to_hash
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class TenantDeleteResponse < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
ArkEmail::Models::TenantDeleteResponse,
|
|
10
|
+
ArkEmail::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
sig { returns(ArkEmail::Models::TenantDeleteResponse::Data) }
|
|
15
|
+
attr_reader :data
|
|
16
|
+
|
|
17
|
+
sig do
|
|
18
|
+
params(data: ArkEmail::Models::TenantDeleteResponse::Data::OrHash).void
|
|
19
|
+
end
|
|
20
|
+
attr_writer :data
|
|
21
|
+
|
|
22
|
+
sig { returns(ArkEmail::APIMeta) }
|
|
23
|
+
attr_reader :meta
|
|
24
|
+
|
|
25
|
+
sig { params(meta: ArkEmail::APIMeta::OrHash).void }
|
|
26
|
+
attr_writer :meta
|
|
27
|
+
|
|
28
|
+
sig { returns(T::Boolean) }
|
|
29
|
+
attr_accessor :success
|
|
30
|
+
|
|
31
|
+
sig do
|
|
32
|
+
params(
|
|
33
|
+
data: ArkEmail::Models::TenantDeleteResponse::Data::OrHash,
|
|
34
|
+
meta: ArkEmail::APIMeta::OrHash,
|
|
35
|
+
success: T::Boolean
|
|
36
|
+
).returns(T.attached_class)
|
|
37
|
+
end
|
|
38
|
+
def self.new(data:, meta:, success: true)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
sig do
|
|
42
|
+
override.returns(
|
|
43
|
+
{
|
|
44
|
+
data: ArkEmail::Models::TenantDeleteResponse::Data,
|
|
45
|
+
meta: ArkEmail::APIMeta,
|
|
46
|
+
success: T::Boolean
|
|
47
|
+
}
|
|
48
|
+
)
|
|
49
|
+
end
|
|
50
|
+
def to_hash
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
class Data < ArkEmail::Internal::Type::BaseModel
|
|
54
|
+
OrHash =
|
|
55
|
+
T.type_alias do
|
|
56
|
+
T.any(
|
|
57
|
+
ArkEmail::Models::TenantDeleteResponse::Data,
|
|
58
|
+
ArkEmail::Internal::AnyHash
|
|
59
|
+
)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
sig { returns(T::Boolean) }
|
|
63
|
+
attr_accessor :deleted
|
|
64
|
+
|
|
65
|
+
sig { params(deleted: T::Boolean).returns(T.attached_class) }
|
|
66
|
+
def self.new(deleted: true)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
sig { override.returns({ deleted: T::Boolean }) }
|
|
70
|
+
def to_hash
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module ArkEmail
|
|
4
|
+
module Models
|
|
5
|
+
class TenantListParams < ArkEmail::Internal::Type::BaseModel
|
|
6
|
+
extend ArkEmail::Internal::Type::RequestParameters::Converter
|
|
7
|
+
include ArkEmail::Internal::Type::RequestParameters
|
|
8
|
+
|
|
9
|
+
OrHash =
|
|
10
|
+
T.type_alias do
|
|
11
|
+
T.any(ArkEmail::TenantListParams, ArkEmail::Internal::AnyHash)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Page number (1-indexed)
|
|
15
|
+
sig { returns(T.nilable(Integer)) }
|
|
16
|
+
attr_reader :page
|
|
17
|
+
|
|
18
|
+
sig { params(page: Integer).void }
|
|
19
|
+
attr_writer :page
|
|
20
|
+
|
|
21
|
+
# Number of items per page (max 100)
|
|
22
|
+
sig { returns(T.nilable(Integer)) }
|
|
23
|
+
attr_reader :per_page
|
|
24
|
+
|
|
25
|
+
sig { params(per_page: Integer).void }
|
|
26
|
+
attr_writer :per_page
|
|
27
|
+
|
|
28
|
+
# Filter by tenant status
|
|
29
|
+
sig { returns(T.nilable(ArkEmail::TenantListParams::Status::OrSymbol)) }
|
|
30
|
+
attr_reader :status
|
|
31
|
+
|
|
32
|
+
sig { params(status: ArkEmail::TenantListParams::Status::OrSymbol).void }
|
|
33
|
+
attr_writer :status
|
|
34
|
+
|
|
35
|
+
sig do
|
|
36
|
+
params(
|
|
37
|
+
page: Integer,
|
|
38
|
+
per_page: Integer,
|
|
39
|
+
status: ArkEmail::TenantListParams::Status::OrSymbol,
|
|
40
|
+
request_options: ArkEmail::RequestOptions::OrHash
|
|
41
|
+
).returns(T.attached_class)
|
|
42
|
+
end
|
|
43
|
+
def self.new(
|
|
44
|
+
# Page number (1-indexed)
|
|
45
|
+
page: nil,
|
|
46
|
+
# Number of items per page (max 100)
|
|
47
|
+
per_page: nil,
|
|
48
|
+
# Filter by tenant status
|
|
49
|
+
status: nil,
|
|
50
|
+
request_options: {}
|
|
51
|
+
)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
sig do
|
|
55
|
+
override.returns(
|
|
56
|
+
{
|
|
57
|
+
page: Integer,
|
|
58
|
+
per_page: Integer,
|
|
59
|
+
status: ArkEmail::TenantListParams::Status::OrSymbol,
|
|
60
|
+
request_options: ArkEmail::RequestOptions
|
|
61
|
+
}
|
|
62
|
+
)
|
|
63
|
+
end
|
|
64
|
+
def to_hash
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Filter by tenant status
|
|
68
|
+
module Status
|
|
69
|
+
extend ArkEmail::Internal::Type::Enum
|
|
70
|
+
|
|
71
|
+
TaggedSymbol =
|
|
72
|
+
T.type_alias { T.all(Symbol, ArkEmail::TenantListParams::Status) }
|
|
73
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
74
|
+
|
|
75
|
+
ACTIVE =
|
|
76
|
+
T.let(:active, ArkEmail::TenantListParams::Status::TaggedSymbol)
|
|
77
|
+
SUSPENDED =
|
|
78
|
+
T.let(:suspended, ArkEmail::TenantListParams::Status::TaggedSymbol)
|
|
79
|
+
ARCHIVED =
|
|
80
|
+
T.let(:archived, ArkEmail::TenantListParams::Status::TaggedSymbol)
|
|
81
|
+
|
|
82
|
+
sig do
|
|
83
|
+
override.returns(
|
|
84
|
+
T::Array[ArkEmail::TenantListParams::Status::TaggedSymbol]
|
|
85
|
+
)
|
|
86
|
+
end
|
|
87
|
+
def self.values
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|