signwell_sdk 0.0.1.pre.alpha.1
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 +7 -0
- data/.ignore +2 -0
- data/CHANGELOG.md +24 -0
- data/README.md +398 -0
- data/SECURITY.md +23 -0
- data/lib/signwell_sdk/client.rb +72 -0
- data/lib/signwell_sdk/errors.rb +228 -0
- data/lib/signwell_sdk/file_part.rb +58 -0
- data/lib/signwell_sdk/internal/transport/base_client.rb +573 -0
- data/lib/signwell_sdk/internal/transport/pooled_net_requester.rb +210 -0
- data/lib/signwell_sdk/internal/type/array_of.rb +168 -0
- data/lib/signwell_sdk/internal/type/base_model.rb +531 -0
- data/lib/signwell_sdk/internal/type/base_page.rb +55 -0
- data/lib/signwell_sdk/internal/type/boolean.rb +77 -0
- data/lib/signwell_sdk/internal/type/converter.rb +327 -0
- data/lib/signwell_sdk/internal/type/enum.rb +156 -0
- data/lib/signwell_sdk/internal/type/file_input.rb +111 -0
- data/lib/signwell_sdk/internal/type/hash_of.rb +188 -0
- data/lib/signwell_sdk/internal/type/request_parameters.rb +42 -0
- data/lib/signwell_sdk/internal/type/union.rb +243 -0
- data/lib/signwell_sdk/internal/type/unknown.rb +81 -0
- data/lib/signwell_sdk/internal/util.rb +920 -0
- data/lib/signwell_sdk/internal.rb +20 -0
- data/lib/signwell_sdk/models/attachment_request_info.rb +34 -0
- data/lib/signwell_sdk/models/checkbox_group_info.rb +66 -0
- data/lib/signwell_sdk/models/checkbox_validation.rb +18 -0
- data/lib/signwell_sdk/models/copied_contact_info.rb +34 -0
- data/lib/signwell_sdk/models/date_format.rb +20 -0
- data/lib/signwell_sdk/models/field_type.rb +29 -0
- data/lib/signwell_sdk/models/file_info.rb +26 -0
- data/lib/signwell_sdk/models/label_info.rb +26 -0
- data/lib/signwell_sdk/models/text_validation.rb +25 -0
- data/lib/signwell_sdk/models/v1/api_application_delete_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/api_application_retrieve_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/attachment_request.rb +38 -0
- data/lib/signwell_sdk/models/v1/bulk_send_create_params.rb +107 -0
- data/lib/signwell_sdk/models/v1/bulk_send_list_params.rb +55 -0
- data/lib/signwell_sdk/models/v1/bulk_send_retrieve_csv_template_params.rb +39 -0
- data/lib/signwell_sdk/models/v1/bulk_send_retrieve_documents_params.rb +32 -0
- data/lib/signwell_sdk/models/v1/bulk_send_retrieve_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/bulk_send_validate_csv_params.rb +39 -0
- data/lib/signwell_sdk/models/v1/checkbox_group.rb +80 -0
- data/lib/signwell_sdk/models/v1/copied_contact.rb +26 -0
- data/lib/signwell_sdk/models/v1/document.rb +543 -0
- data/lib/signwell_sdk/models/v1/document_create_from_template_params.rb +740 -0
- data/lib/signwell_sdk/models/v1/document_create_from_template_response.rb +500 -0
- data/lib/signwell_sdk/models/v1/document_create_params.rb +620 -0
- data/lib/signwell_sdk/models/v1/document_delete_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/document_file.rb +34 -0
- data/lib/signwell_sdk/models/v1/document_list_params.rb +32 -0
- data/lib/signwell_sdk/models/v1/document_list_response.rb +50 -0
- data/lib/signwell_sdk/models/v1/document_remind_params.rb +49 -0
- data/lib/signwell_sdk/models/v1/document_retrieve_completed_pdf_params.rb +55 -0
- data/lib/signwell_sdk/models/v1/document_retrieve_completed_pdf_response.rb +22 -0
- data/lib/signwell_sdk/models/v1/document_retrieve_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/document_send_params.rb +198 -0
- data/lib/signwell_sdk/models/v1/document_template.rb +503 -0
- data/lib/signwell_sdk/models/v1/document_template_create_params.rb +599 -0
- data/lib/signwell_sdk/models/v1/document_template_delete_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/document_template_list_params.rb +32 -0
- data/lib/signwell_sdk/models/v1/document_template_list_response.rb +50 -0
- data/lib/signwell_sdk/models/v1/document_template_retrieve_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/document_template_update_params.rb +162 -0
- data/lib/signwell_sdk/models/v1/hook_create_params.rb +32 -0
- data/lib/signwell_sdk/models/v1/hook_delete_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/hook_list_params.rb +16 -0
- data/lib/signwell_sdk/models/v1/label.rb +22 -0
- data/lib/signwell_sdk/models/v1/template_checkbox_group.rb +80 -0
- data/lib/signwell_sdk/models/v1_me_params.rb +14 -0
- data/lib/signwell_sdk/models.rb +63 -0
- data/lib/signwell_sdk/request_options.rb +77 -0
- data/lib/signwell_sdk/resources/v1/api_applications.rb +59 -0
- data/lib/signwell_sdk/resources/v1/bulk_sends.rb +198 -0
- data/lib/signwell_sdk/resources/v1/document_templates.rb +204 -0
- data/lib/signwell_sdk/resources/v1/documents.rb +372 -0
- data/lib/signwell_sdk/resources/v1/hooks.rb +78 -0
- data/lib/signwell_sdk/resources/v1.rb +47 -0
- data/lib/signwell_sdk/version.rb +5 -0
- data/lib/signwell_sdk.rb +107 -0
- data/manifest.yaml +17 -0
- data/rbi/signwell_sdk/client.rbi +49 -0
- data/rbi/signwell_sdk/errors.rbi +205 -0
- data/rbi/signwell_sdk/file_part.rbi +37 -0
- data/rbi/signwell_sdk/internal/transport/base_client.rbi +302 -0
- data/rbi/signwell_sdk/internal/transport/pooled_net_requester.rbi +84 -0
- data/rbi/signwell_sdk/internal/type/array_of.rbi +104 -0
- data/rbi/signwell_sdk/internal/type/base_model.rbi +308 -0
- data/rbi/signwell_sdk/internal/type/base_page.rbi +43 -0
- data/rbi/signwell_sdk/internal/type/boolean.rbi +58 -0
- data/rbi/signwell_sdk/internal/type/converter.rbi +216 -0
- data/rbi/signwell_sdk/internal/type/enum.rbi +82 -0
- data/rbi/signwell_sdk/internal/type/file_input.rbi +59 -0
- data/rbi/signwell_sdk/internal/type/hash_of.rbi +104 -0
- data/rbi/signwell_sdk/internal/type/request_parameters.rbi +31 -0
- data/rbi/signwell_sdk/internal/type/union.rbi +128 -0
- data/rbi/signwell_sdk/internal/type/unknown.rbi +58 -0
- data/rbi/signwell_sdk/internal/util.rbi +487 -0
- data/rbi/signwell_sdk/internal.rbi +18 -0
- data/rbi/signwell_sdk/models/attachment_request_info.rbi +52 -0
- data/rbi/signwell_sdk/models/checkbox_group_info.rbi +89 -0
- data/rbi/signwell_sdk/models/checkbox_validation.rbi +27 -0
- data/rbi/signwell_sdk/models/copied_contact_info.rbi +50 -0
- data/rbi/signwell_sdk/models/date_format.rbi +26 -0
- data/rbi/signwell_sdk/models/field_type.rbi +41 -0
- data/rbi/signwell_sdk/models/file_info.rbi +36 -0
- data/rbi/signwell_sdk/models/label_info.rbi +40 -0
- data/rbi/signwell_sdk/models/text_validation.rbi +44 -0
- data/rbi/signwell_sdk/models/v1/api_application_delete_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/api_application_retrieve_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/attachment_request.rbi +59 -0
- data/rbi/signwell_sdk/models/v1/bulk_send_create_params.rbi +160 -0
- data/rbi/signwell_sdk/models/v1/bulk_send_list_params.rbi +92 -0
- data/rbi/signwell_sdk/models/v1/bulk_send_retrieve_csv_template_params.rbi +67 -0
- data/rbi/signwell_sdk/models/v1/bulk_send_retrieve_documents_params.rbi +62 -0
- data/rbi/signwell_sdk/models/v1/bulk_send_retrieve_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/bulk_send_validate_csv_params.rbi +64 -0
- data/rbi/signwell_sdk/models/v1/checkbox_group.rbi +121 -0
- data/rbi/signwell_sdk/models/v1/copied_contact.rbi +41 -0
- data/rbi/signwell_sdk/models/v1/document.rbi +833 -0
- data/rbi/signwell_sdk/models/v1/document_create_from_template_params.rbi +1270 -0
- data/rbi/signwell_sdk/models/v1/document_create_from_template_response.rbi +856 -0
- data/rbi/signwell_sdk/models/v1/document_create_params.rbi +1019 -0
- data/rbi/signwell_sdk/models/v1/document_delete_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/document_file.rbi +55 -0
- data/rbi/signwell_sdk/models/v1/document_list_params.rbi +62 -0
- data/rbi/signwell_sdk/models/v1/document_list_response.rbi +71 -0
- data/rbi/signwell_sdk/models/v1/document_remind_params.rbi +107 -0
- data/rbi/signwell_sdk/models/v1/document_retrieve_completed_pdf_params.rbi +123 -0
- data/rbi/signwell_sdk/models/v1/document_retrieve_completed_pdf_response.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/document_retrieve_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/document_send_params.rbi +307 -0
- data/rbi/signwell_sdk/models/v1/document_template.rbi +830 -0
- data/rbi/signwell_sdk/models/v1/document_template_create_params.rbi +1050 -0
- data/rbi/signwell_sdk/models/v1/document_template_delete_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/document_template_list_params.rbi +62 -0
- data/rbi/signwell_sdk/models/v1/document_template_list_response.rbi +71 -0
- data/rbi/signwell_sdk/models/v1/document_template_retrieve_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/document_template_update_params.rbi +257 -0
- data/rbi/signwell_sdk/models/v1/hook_create_params.rbi +59 -0
- data/rbi/signwell_sdk/models/v1/hook_delete_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/hook_list_params.rbi +34 -0
- data/rbi/signwell_sdk/models/v1/label.rbi +29 -0
- data/rbi/signwell_sdk/models/v1/template_checkbox_group.rbi +121 -0
- data/rbi/signwell_sdk/models/v1_me_params.rbi +27 -0
- data/rbi/signwell_sdk/models.rbi +25 -0
- data/rbi/signwell_sdk/request_options.rbi +59 -0
- data/rbi/signwell_sdk/resources/v1/api_applications.rbi +45 -0
- data/rbi/signwell_sdk/resources/v1/bulk_sends.rbi +173 -0
- data/rbi/signwell_sdk/resources/v1/document_templates.rbi +276 -0
- data/rbi/signwell_sdk/resources/v1/documents.rbi +527 -0
- data/rbi/signwell_sdk/resources/v1/hooks.rbi +52 -0
- data/rbi/signwell_sdk/resources/v1.rbi +32 -0
- data/rbi/signwell_sdk/version.rbi +5 -0
- data/sig/signwell_sdk/client.rbs +26 -0
- data/sig/signwell_sdk/errors.rbs +117 -0
- data/sig/signwell_sdk/file_part.rbs +21 -0
- data/sig/signwell_sdk/internal/transport/base_client.rbs +133 -0
- data/sig/signwell_sdk/internal/transport/pooled_net_requester.rbs +48 -0
- data/sig/signwell_sdk/internal/type/array_of.rbs +48 -0
- data/sig/signwell_sdk/internal/type/base_model.rbs +102 -0
- data/sig/signwell_sdk/internal/type/base_page.rbs +24 -0
- data/sig/signwell_sdk/internal/type/boolean.rbs +26 -0
- data/sig/signwell_sdk/internal/type/converter.rbs +79 -0
- data/sig/signwell_sdk/internal/type/enum.rbs +32 -0
- data/sig/signwell_sdk/internal/type/file_input.rbs +25 -0
- data/sig/signwell_sdk/internal/type/hash_of.rbs +48 -0
- data/sig/signwell_sdk/internal/type/request_parameters.rbs +19 -0
- data/sig/signwell_sdk/internal/type/union.rbs +52 -0
- data/sig/signwell_sdk/internal/type/unknown.rbs +26 -0
- data/sig/signwell_sdk/internal/util.rbs +185 -0
- data/sig/signwell_sdk/internal.rbs +9 -0
- data/sig/signwell_sdk/models/attachment_request_info.rbs +19 -0
- data/sig/signwell_sdk/models/checkbox_group_info.rbs +52 -0
- data/sig/signwell_sdk/models/checkbox_validation.rbs +16 -0
- data/sig/signwell_sdk/models/copied_contact_info.rbs +21 -0
- data/sig/signwell_sdk/models/date_format.rbs +22 -0
- data/sig/signwell_sdk/models/field_type.rbs +42 -0
- data/sig/signwell_sdk/models/file_info.rbs +15 -0
- data/sig/signwell_sdk/models/label_info.rbs +19 -0
- data/sig/signwell_sdk/models/text_validation.rbs +34 -0
- data/sig/signwell_sdk/models/v1/api_application_delete_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/api_application_retrieve_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/attachment_request.rbs +26 -0
- data/sig/signwell_sdk/models/v1/bulk_send_create_params.rbs +89 -0
- data/sig/signwell_sdk/models/v1/bulk_send_list_params.rbs +51 -0
- data/sig/signwell_sdk/models/v1/bulk_send_retrieve_csv_template_params.rbs +32 -0
- data/sig/signwell_sdk/models/v1/bulk_send_retrieve_documents_params.rbs +34 -0
- data/sig/signwell_sdk/models/v1/bulk_send_retrieve_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/bulk_send_validate_csv_params.rbs +30 -0
- data/sig/signwell_sdk/models/v1/checkbox_group.rbs +69 -0
- data/sig/signwell_sdk/models/v1/copied_contact.rbs +19 -0
- data/sig/signwell_sdk/models/v1/document.rbs +563 -0
- data/sig/signwell_sdk/models/v1/document_create_from_template_params.rbs +570 -0
- data/sig/signwell_sdk/models/v1/document_create_from_template_response.rbs +518 -0
- data/sig/signwell_sdk/models/v1/document_create_params.rbs +473 -0
- data/sig/signwell_sdk/models/v1/document_delete_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/document_file.rbs +32 -0
- data/sig/signwell_sdk/models/v1/document_list_params.rbs +34 -0
- data/sig/signwell_sdk/models/v1/document_list_response.rbs +47 -0
- data/sig/signwell_sdk/models/v1/document_remind_params.rbs +48 -0
- data/sig/signwell_sdk/models/v1/document_retrieve_completed_pdf_params.rbs +57 -0
- data/sig/signwell_sdk/models/v1/document_retrieve_completed_pdf_response.rbs +15 -0
- data/sig/signwell_sdk/models/v1/document_retrieve_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/document_send_params.rbs +160 -0
- data/sig/signwell_sdk/models/v1/document_template.rbs +530 -0
- data/sig/signwell_sdk/models/v1/document_template_create_params.rbs +459 -0
- data/sig/signwell_sdk/models/v1/document_template_delete_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/document_template_list_params.rbs +34 -0
- data/sig/signwell_sdk/models/v1/document_template_list_response.rbs +47 -0
- data/sig/signwell_sdk/models/v1/document_template_retrieve_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/document_template_update_params.rbs +132 -0
- data/sig/signwell_sdk/models/v1/hook_create_params.rbs +32 -0
- data/sig/signwell_sdk/models/v1/hook_delete_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/hook_list_params.rbs +17 -0
- data/sig/signwell_sdk/models/v1/label.rbs +15 -0
- data/sig/signwell_sdk/models/v1/template_checkbox_group.rbs +69 -0
- data/sig/signwell_sdk/models/v1_me_params.rbs +14 -0
- data/sig/signwell_sdk/models.rbs +23 -0
- data/sig/signwell_sdk/request_options.rbs +36 -0
- data/sig/signwell_sdk/resources/v1/api_applications.rbs +19 -0
- data/sig/signwell_sdk/resources/v1/bulk_sends.rbs +55 -0
- data/sig/signwell_sdk/resources/v1/document_templates.rbs +71 -0
- data/sig/signwell_sdk/resources/v1/documents.rbs +130 -0
- data/sig/signwell_sdk/resources/v1/hooks.rbs +22 -0
- data/sig/signwell_sdk/resources/v1.rbs +19 -0
- data/sig/signwell_sdk/version.rbs +3 -0
- metadata +298 -0
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module SignwellSDK
|
|
4
|
+
module Internal
|
|
5
|
+
# @api private
|
|
6
|
+
module Util
|
|
7
|
+
extend SignwellSDK::Internal::Util::SorbetRuntimeSupport
|
|
8
|
+
|
|
9
|
+
# @api private
|
|
10
|
+
sig { returns(Float) }
|
|
11
|
+
def self.monotonic_secs
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# @api private
|
|
15
|
+
sig do
|
|
16
|
+
params(ns: T.any(Module, T::Class[T.anything])).returns(
|
|
17
|
+
T::Enumerable[T.any(Module, T::Class[T.anything])]
|
|
18
|
+
)
|
|
19
|
+
end
|
|
20
|
+
def self.walk_namespaces(ns)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
class << self
|
|
24
|
+
# @api private
|
|
25
|
+
sig { returns(String) }
|
|
26
|
+
def arch
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @api private
|
|
30
|
+
sig { returns(String) }
|
|
31
|
+
def os
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class << self
|
|
36
|
+
# @api private
|
|
37
|
+
sig { params(input: T.anything).returns(T::Boolean) }
|
|
38
|
+
def primitive?(input)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# @api private
|
|
42
|
+
sig do
|
|
43
|
+
params(input: T.any(String, T::Boolean)).returns(
|
|
44
|
+
T.any(T::Boolean, T.anything)
|
|
45
|
+
)
|
|
46
|
+
end
|
|
47
|
+
def coerce_boolean(input)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @api private
|
|
51
|
+
sig do
|
|
52
|
+
params(input: T.any(String, T::Boolean)).returns(
|
|
53
|
+
T.nilable(T::Boolean)
|
|
54
|
+
)
|
|
55
|
+
end
|
|
56
|
+
def coerce_boolean!(input)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @api private
|
|
60
|
+
sig do
|
|
61
|
+
params(input: T.any(String, Integer)).returns(
|
|
62
|
+
T.any(Integer, T.anything)
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
def coerce_integer(input)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
# @api private
|
|
69
|
+
sig do
|
|
70
|
+
params(input: T.any(String, Integer, Float)).returns(
|
|
71
|
+
T.any(Float, T.anything)
|
|
72
|
+
)
|
|
73
|
+
end
|
|
74
|
+
def coerce_float(input)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# @api private
|
|
78
|
+
sig do
|
|
79
|
+
params(input: T.anything).returns(
|
|
80
|
+
T.any(T::Hash[T.anything, T.anything], T.anything)
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
def coerce_hash(input)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# @api private
|
|
87
|
+
sig do
|
|
88
|
+
params(input: T.anything).returns(
|
|
89
|
+
T.nilable(T::Hash[T.anything, T.anything])
|
|
90
|
+
)
|
|
91
|
+
end
|
|
92
|
+
def coerce_hash!(input)
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
class << self
|
|
97
|
+
# @api private
|
|
98
|
+
sig do
|
|
99
|
+
params(lhs: T.anything, rhs: T.anything, concat: T::Boolean).returns(
|
|
100
|
+
T.anything
|
|
101
|
+
)
|
|
102
|
+
end
|
|
103
|
+
private def deep_merge_lr(lhs, rhs, concat: false)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
# @api private
|
|
107
|
+
#
|
|
108
|
+
# Recursively merge one hash with another. If the values at a given key are not
|
|
109
|
+
# both hashes, just take the new value.
|
|
110
|
+
sig do
|
|
111
|
+
params(
|
|
112
|
+
values: T::Array[T.anything],
|
|
113
|
+
sentinel: T.nilable(T.anything),
|
|
114
|
+
concat: T::Boolean
|
|
115
|
+
).returns(T.anything)
|
|
116
|
+
end
|
|
117
|
+
def deep_merge(
|
|
118
|
+
*values,
|
|
119
|
+
# the value to return if no values are provided.
|
|
120
|
+
sentinel: nil,
|
|
121
|
+
# whether to merge sequences by concatenation.
|
|
122
|
+
concat: false
|
|
123
|
+
)
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# @api private
|
|
127
|
+
sig do
|
|
128
|
+
params(
|
|
129
|
+
data:
|
|
130
|
+
T.any(
|
|
131
|
+
SignwellSDK::Internal::AnyHash,
|
|
132
|
+
T::Array[T.anything],
|
|
133
|
+
T.anything
|
|
134
|
+
),
|
|
135
|
+
pick:
|
|
136
|
+
T.nilable(
|
|
137
|
+
T.any(
|
|
138
|
+
Symbol,
|
|
139
|
+
Integer,
|
|
140
|
+
T::Array[T.any(Symbol, Integer)],
|
|
141
|
+
T.proc.params(arg0: T.anything).returns(T.anything)
|
|
142
|
+
)
|
|
143
|
+
),
|
|
144
|
+
blk: T.nilable(T.proc.returns(T.anything))
|
|
145
|
+
).returns(T.nilable(T.anything))
|
|
146
|
+
end
|
|
147
|
+
def dig(data, pick, &blk)
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
class << self
|
|
152
|
+
# @api private
|
|
153
|
+
sig { params(uri: URI::Generic).returns(String) }
|
|
154
|
+
def uri_origin(uri)
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# @api private
|
|
158
|
+
sig { params(path: T.any(String, T::Array[String])).returns(String) }
|
|
159
|
+
def interpolate_path(path)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
class << self
|
|
164
|
+
# @api private
|
|
165
|
+
sig do
|
|
166
|
+
params(query: T.nilable(String)).returns(
|
|
167
|
+
T::Hash[String, T::Array[String]]
|
|
168
|
+
)
|
|
169
|
+
end
|
|
170
|
+
def decode_query(query)
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
# @api private
|
|
174
|
+
sig do
|
|
175
|
+
params(
|
|
176
|
+
query:
|
|
177
|
+
T.nilable(
|
|
178
|
+
T::Hash[String, T.nilable(T.any(T::Array[String], String))]
|
|
179
|
+
)
|
|
180
|
+
).returns(T.nilable(String))
|
|
181
|
+
end
|
|
182
|
+
def encode_query(query)
|
|
183
|
+
end
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
ParsedUri =
|
|
187
|
+
T.type_alias do
|
|
188
|
+
{
|
|
189
|
+
scheme: T.nilable(String),
|
|
190
|
+
host: T.nilable(String),
|
|
191
|
+
port: T.nilable(Integer),
|
|
192
|
+
path: T.nilable(String),
|
|
193
|
+
query: T::Hash[String, T::Array[String]]
|
|
194
|
+
}
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
class << self
|
|
198
|
+
# @api private
|
|
199
|
+
sig do
|
|
200
|
+
params(url: T.any(URI::Generic, String)).returns(
|
|
201
|
+
SignwellSDK::Internal::Util::ParsedUri
|
|
202
|
+
)
|
|
203
|
+
end
|
|
204
|
+
def parse_uri(url)
|
|
205
|
+
end
|
|
206
|
+
|
|
207
|
+
# @api private
|
|
208
|
+
sig do
|
|
209
|
+
params(parsed: SignwellSDK::Internal::Util::ParsedUri).returns(
|
|
210
|
+
URI::Generic
|
|
211
|
+
)
|
|
212
|
+
end
|
|
213
|
+
def unparse_uri(parsed)
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
# @api private
|
|
217
|
+
sig do
|
|
218
|
+
params(
|
|
219
|
+
lhs: SignwellSDK::Internal::Util::ParsedUri,
|
|
220
|
+
rhs: SignwellSDK::Internal::Util::ParsedUri
|
|
221
|
+
).returns(URI::Generic)
|
|
222
|
+
end
|
|
223
|
+
def join_parsed_uri(lhs, rhs)
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
class << self
|
|
228
|
+
# @api private
|
|
229
|
+
sig do
|
|
230
|
+
params(
|
|
231
|
+
headers:
|
|
232
|
+
T::Hash[
|
|
233
|
+
String,
|
|
234
|
+
T.nilable(
|
|
235
|
+
T.any(
|
|
236
|
+
String,
|
|
237
|
+
Integer,
|
|
238
|
+
T::Array[T.nilable(T.any(String, Integer))]
|
|
239
|
+
)
|
|
240
|
+
)
|
|
241
|
+
]
|
|
242
|
+
).returns(T::Hash[String, String])
|
|
243
|
+
end
|
|
244
|
+
def normalized_headers(*headers)
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
# @api private
|
|
249
|
+
#
|
|
250
|
+
# An adapter that satisfies the IO interface required by `::IO.copy_stream`
|
|
251
|
+
class ReadIOAdapter
|
|
252
|
+
# @api private
|
|
253
|
+
sig { returns(T.nilable(T::Boolean)) }
|
|
254
|
+
def close?
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
# @api private
|
|
258
|
+
sig { void }
|
|
259
|
+
def close
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
# @api private
|
|
263
|
+
sig { params(max_len: T.nilable(Integer)).returns(String) }
|
|
264
|
+
private def read_enum(max_len)
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
# @api private
|
|
268
|
+
sig do
|
|
269
|
+
params(
|
|
270
|
+
max_len: T.nilable(Integer),
|
|
271
|
+
out_string: T.nilable(String)
|
|
272
|
+
).returns(T.nilable(String))
|
|
273
|
+
end
|
|
274
|
+
def read(max_len = nil, out_string = nil)
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
# @api private
|
|
278
|
+
sig do
|
|
279
|
+
params(
|
|
280
|
+
src: T.any(String, Pathname, StringIO, T::Enumerable[String]),
|
|
281
|
+
blk: T.proc.params(arg0: String).void
|
|
282
|
+
).returns(T.attached_class)
|
|
283
|
+
end
|
|
284
|
+
def self.new(src, &blk)
|
|
285
|
+
end
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
class << self
|
|
289
|
+
sig do
|
|
290
|
+
params(blk: T.proc.params(y: Enumerator::Yielder).void).returns(
|
|
291
|
+
T::Enumerable[String]
|
|
292
|
+
)
|
|
293
|
+
end
|
|
294
|
+
def writable_enum(&blk)
|
|
295
|
+
end
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
JSON_CONTENT =
|
|
299
|
+
T.let(%r{^application/(?:vnd(?:\.[^.]+)*\+)?json(?!l)}, Regexp)
|
|
300
|
+
JSONL_CONTENT =
|
|
301
|
+
T.let(%r{^application/(:?x-(?:n|l)djson)|(:?(?:x-)?jsonl)}, Regexp)
|
|
302
|
+
|
|
303
|
+
class << self
|
|
304
|
+
# @api private
|
|
305
|
+
sig do
|
|
306
|
+
params(
|
|
307
|
+
y: Enumerator::Yielder,
|
|
308
|
+
val: T.anything,
|
|
309
|
+
closing: T::Array[T.proc.void],
|
|
310
|
+
content_type: T.nilable(String)
|
|
311
|
+
).void
|
|
312
|
+
end
|
|
313
|
+
private def write_multipart_content(
|
|
314
|
+
y,
|
|
315
|
+
val:,
|
|
316
|
+
closing:,
|
|
317
|
+
content_type: nil
|
|
318
|
+
)
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
# @api private
|
|
322
|
+
sig do
|
|
323
|
+
params(
|
|
324
|
+
y: Enumerator::Yielder,
|
|
325
|
+
boundary: String,
|
|
326
|
+
key: T.any(Symbol, String),
|
|
327
|
+
val: T.anything,
|
|
328
|
+
closing: T::Array[T.proc.void]
|
|
329
|
+
).void
|
|
330
|
+
end
|
|
331
|
+
private def write_multipart_chunk(y, boundary:, key:, val:, closing:)
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
# @api private
|
|
335
|
+
#
|
|
336
|
+
# https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.1.md#special-considerations-for-multipart-content
|
|
337
|
+
sig do
|
|
338
|
+
params(body: T.anything).returns([String, T::Enumerable[String]])
|
|
339
|
+
end
|
|
340
|
+
private def encode_multipart_streaming(body)
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
# @api private
|
|
344
|
+
sig do
|
|
345
|
+
params(headers: T::Hash[String, String], body: T.anything).returns(
|
|
346
|
+
T.anything
|
|
347
|
+
)
|
|
348
|
+
end
|
|
349
|
+
def encode_content(headers, body)
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
# @api private
|
|
353
|
+
#
|
|
354
|
+
# https://www.iana.org/assignments/character-sets/character-sets.xhtml
|
|
355
|
+
sig { params(content_type: String, text: String).void }
|
|
356
|
+
def force_charset!(content_type, text:)
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
# @api private
|
|
360
|
+
#
|
|
361
|
+
# Assumes each chunk in stream has `Encoding::BINARY`.
|
|
362
|
+
sig do
|
|
363
|
+
params(
|
|
364
|
+
headers: T::Hash[String, String],
|
|
365
|
+
stream: T::Enumerable[String],
|
|
366
|
+
suppress_error: T::Boolean
|
|
367
|
+
).returns(T.anything)
|
|
368
|
+
end
|
|
369
|
+
def decode_content(headers, stream:, suppress_error: false)
|
|
370
|
+
end
|
|
371
|
+
end
|
|
372
|
+
|
|
373
|
+
class << self
|
|
374
|
+
# @api private
|
|
375
|
+
#
|
|
376
|
+
# https://doc.rust-lang.org/std/iter/trait.FusedIterator.html
|
|
377
|
+
sig do
|
|
378
|
+
params(
|
|
379
|
+
enum: T::Enumerable[T.anything],
|
|
380
|
+
external: T::Boolean,
|
|
381
|
+
close: T.proc.void
|
|
382
|
+
).returns(T::Enumerable[T.anything])
|
|
383
|
+
end
|
|
384
|
+
def fused_enum(enum, external: false, &close)
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
# @api private
|
|
388
|
+
sig { params(enum: T.nilable(T::Enumerable[T.anything])).void }
|
|
389
|
+
def close_fused!(enum)
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
# @api private
|
|
393
|
+
sig do
|
|
394
|
+
params(
|
|
395
|
+
enum: T.nilable(T::Enumerable[T.anything]),
|
|
396
|
+
blk: T.proc.params(arg0: Enumerator::Yielder).void
|
|
397
|
+
).returns(T::Enumerable[T.anything])
|
|
398
|
+
end
|
|
399
|
+
def chain_fused(enum, &blk)
|
|
400
|
+
end
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
ServerSentEvent =
|
|
404
|
+
T.type_alias do
|
|
405
|
+
{
|
|
406
|
+
event: T.nilable(String),
|
|
407
|
+
data: T.nilable(String),
|
|
408
|
+
id: T.nilable(String),
|
|
409
|
+
retry: T.nilable(Integer)
|
|
410
|
+
}
|
|
411
|
+
end
|
|
412
|
+
|
|
413
|
+
class << self
|
|
414
|
+
# @api private
|
|
415
|
+
#
|
|
416
|
+
# Assumes Strings have been forced into having `Encoding::BINARY`.
|
|
417
|
+
#
|
|
418
|
+
# This decoder is responsible for reassembling lines split across multiple
|
|
419
|
+
# fragments.
|
|
420
|
+
sig do
|
|
421
|
+
params(enum: T::Enumerable[String]).returns(T::Enumerable[String])
|
|
422
|
+
end
|
|
423
|
+
def decode_lines(enum)
|
|
424
|
+
end
|
|
425
|
+
|
|
426
|
+
# @api private
|
|
427
|
+
#
|
|
428
|
+
# https://html.spec.whatwg.org/multipage/server-sent-events.html#parsing-an-event-stream
|
|
429
|
+
#
|
|
430
|
+
# Assumes that `lines` has been decoded with `#decode_lines`.
|
|
431
|
+
sig do
|
|
432
|
+
params(lines: T::Enumerable[String]).returns(
|
|
433
|
+
T::Enumerable[SignwellSDK::Internal::Util::ServerSentEvent]
|
|
434
|
+
)
|
|
435
|
+
end
|
|
436
|
+
def decode_sse(lines)
|
|
437
|
+
end
|
|
438
|
+
end
|
|
439
|
+
|
|
440
|
+
# @api private
|
|
441
|
+
module SorbetRuntimeSupport
|
|
442
|
+
class MissingSorbetRuntimeError < ::RuntimeError
|
|
443
|
+
end
|
|
444
|
+
|
|
445
|
+
# @api private
|
|
446
|
+
sig { returns(T::Hash[Symbol, T.anything]) }
|
|
447
|
+
private def sorbet_runtime_constants
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
# @api private
|
|
451
|
+
sig { params(name: Symbol).void }
|
|
452
|
+
def const_missing(name)
|
|
453
|
+
end
|
|
454
|
+
|
|
455
|
+
# @api private
|
|
456
|
+
sig { params(name: Symbol).returns(T::Boolean) }
|
|
457
|
+
def sorbet_constant_defined?(name)
|
|
458
|
+
end
|
|
459
|
+
|
|
460
|
+
# @api private
|
|
461
|
+
sig { params(name: Symbol, blk: T.proc.returns(T.anything)).void }
|
|
462
|
+
def define_sorbet_constant!(name, &blk)
|
|
463
|
+
end
|
|
464
|
+
|
|
465
|
+
# @api private
|
|
466
|
+
sig { returns(T.anything) }
|
|
467
|
+
def to_sorbet_type
|
|
468
|
+
end
|
|
469
|
+
|
|
470
|
+
class << self
|
|
471
|
+
# @api private
|
|
472
|
+
sig do
|
|
473
|
+
params(
|
|
474
|
+
type:
|
|
475
|
+
T.any(
|
|
476
|
+
SignwellSDK::Internal::Util::SorbetRuntimeSupport,
|
|
477
|
+
T.anything
|
|
478
|
+
)
|
|
479
|
+
).returns(T.anything)
|
|
480
|
+
end
|
|
481
|
+
def to_sorbet_type(type)
|
|
482
|
+
end
|
|
483
|
+
end
|
|
484
|
+
end
|
|
485
|
+
end
|
|
486
|
+
end
|
|
487
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module SignwellSDK
|
|
4
|
+
module Internal
|
|
5
|
+
extend SignwellSDK::Internal::Util::SorbetRuntimeSupport
|
|
6
|
+
|
|
7
|
+
# Due to the current WIP status of Shapes support in Sorbet, types referencing
|
|
8
|
+
# this alias might be refined in the future.
|
|
9
|
+
AnyHash = T.type_alias { T::Hash[Symbol, T.anything] }
|
|
10
|
+
|
|
11
|
+
FileInput =
|
|
12
|
+
T.type_alias do
|
|
13
|
+
T.any(Pathname, StringIO, IO, String, SignwellSDK::FilePart)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
OMIT = T.let(Object.new.freeze, T.anything)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module SignwellSDK
|
|
4
|
+
module Models
|
|
5
|
+
class AttachmentRequestInfo < SignwellSDK::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(
|
|
9
|
+
SignwellSDK::AttachmentRequestInfo,
|
|
10
|
+
SignwellSDK::Internal::AnyHash
|
|
11
|
+
)
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Name of the attachment request
|
|
15
|
+
sig { returns(String) }
|
|
16
|
+
attr_accessor :name
|
|
17
|
+
|
|
18
|
+
# Whether the attachment is required
|
|
19
|
+
sig { returns(T::Boolean) }
|
|
20
|
+
attr_accessor :required
|
|
21
|
+
|
|
22
|
+
# URL of the uploaded attachment (when available)
|
|
23
|
+
sig { returns(T.nilable(String)) }
|
|
24
|
+
attr_reader :url
|
|
25
|
+
|
|
26
|
+
sig { params(url: String).void }
|
|
27
|
+
attr_writer :url
|
|
28
|
+
|
|
29
|
+
# Attachment request information
|
|
30
|
+
sig do
|
|
31
|
+
params(name: String, required: T::Boolean, url: String).returns(
|
|
32
|
+
T.attached_class
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
def self.new(
|
|
36
|
+
# Name of the attachment request
|
|
37
|
+
name:,
|
|
38
|
+
# Whether the attachment is required
|
|
39
|
+
required:,
|
|
40
|
+
# URL of the uploaded attachment (when available)
|
|
41
|
+
url: nil
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
sig do
|
|
46
|
+
override.returns({ name: String, required: T::Boolean, url: String })
|
|
47
|
+
end
|
|
48
|
+
def to_hash
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module SignwellSDK
|
|
4
|
+
module Models
|
|
5
|
+
class CheckboxGroupInfo < SignwellSDK::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(SignwellSDK::CheckboxGroupInfo, SignwellSDK::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Checkbox group ID
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
attr_accessor :id
|
|
14
|
+
|
|
15
|
+
# IDs of checkboxes in this group
|
|
16
|
+
sig { returns(T::Array[String]) }
|
|
17
|
+
attr_accessor :checkbox_ids
|
|
18
|
+
|
|
19
|
+
# Whether at least one checkbox must be checked
|
|
20
|
+
sig { returns(T::Boolean) }
|
|
21
|
+
attr_accessor :required
|
|
22
|
+
|
|
23
|
+
# Name of the checkbox group
|
|
24
|
+
sig { returns(T.nilable(String)) }
|
|
25
|
+
attr_accessor :group_name
|
|
26
|
+
|
|
27
|
+
# Minimum number of checkboxes to check
|
|
28
|
+
sig { returns(T.nilable(Integer)) }
|
|
29
|
+
attr_reader :min_value
|
|
30
|
+
|
|
31
|
+
sig { params(min_value: Integer).void }
|
|
32
|
+
attr_writer :min_value
|
|
33
|
+
|
|
34
|
+
# Recipient ID associated with the group
|
|
35
|
+
sig { returns(T.nilable(String)) }
|
|
36
|
+
attr_accessor :recipient_id
|
|
37
|
+
|
|
38
|
+
# Validation rule for checkbox groups
|
|
39
|
+
sig { returns(T.nilable(SignwellSDK::CheckboxValidation::TaggedSymbol)) }
|
|
40
|
+
attr_accessor :validation
|
|
41
|
+
|
|
42
|
+
# Checkbox group configuration
|
|
43
|
+
sig do
|
|
44
|
+
params(
|
|
45
|
+
id: String,
|
|
46
|
+
checkbox_ids: T::Array[String],
|
|
47
|
+
required: T::Boolean,
|
|
48
|
+
group_name: T.nilable(String),
|
|
49
|
+
min_value: Integer,
|
|
50
|
+
recipient_id: T.nilable(String),
|
|
51
|
+
validation: T.nilable(SignwellSDK::CheckboxValidation::OrSymbol)
|
|
52
|
+
).returns(T.attached_class)
|
|
53
|
+
end
|
|
54
|
+
def self.new(
|
|
55
|
+
# Checkbox group ID
|
|
56
|
+
id:,
|
|
57
|
+
# IDs of checkboxes in this group
|
|
58
|
+
checkbox_ids:,
|
|
59
|
+
# Whether at least one checkbox must be checked
|
|
60
|
+
required:,
|
|
61
|
+
# Name of the checkbox group
|
|
62
|
+
group_name: nil,
|
|
63
|
+
# Minimum number of checkboxes to check
|
|
64
|
+
min_value: nil,
|
|
65
|
+
# Recipient ID associated with the group
|
|
66
|
+
recipient_id: nil,
|
|
67
|
+
# Validation rule for checkbox groups
|
|
68
|
+
validation: nil
|
|
69
|
+
)
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
sig do
|
|
73
|
+
override.returns(
|
|
74
|
+
{
|
|
75
|
+
id: String,
|
|
76
|
+
checkbox_ids: T::Array[String],
|
|
77
|
+
required: T::Boolean,
|
|
78
|
+
group_name: T.nilable(String),
|
|
79
|
+
min_value: Integer,
|
|
80
|
+
recipient_id: T.nilable(String),
|
|
81
|
+
validation: T.nilable(SignwellSDK::CheckboxValidation::TaggedSymbol)
|
|
82
|
+
}
|
|
83
|
+
)
|
|
84
|
+
end
|
|
85
|
+
def to_hash
|
|
86
|
+
end
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module SignwellSDK
|
|
4
|
+
module Models
|
|
5
|
+
# Validation rule for checkbox groups
|
|
6
|
+
module CheckboxValidation
|
|
7
|
+
extend SignwellSDK::Internal::Type::Enum
|
|
8
|
+
|
|
9
|
+
TaggedSymbol =
|
|
10
|
+
T.type_alias { T.all(Symbol, SignwellSDK::CheckboxValidation) }
|
|
11
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
|
12
|
+
|
|
13
|
+
MINIMUM = T.let(:minimum, SignwellSDK::CheckboxValidation::TaggedSymbol)
|
|
14
|
+
MAXIMUM = T.let(:maximum, SignwellSDK::CheckboxValidation::TaggedSymbol)
|
|
15
|
+
RANGE = T.let(:range, SignwellSDK::CheckboxValidation::TaggedSymbol)
|
|
16
|
+
EXACT = T.let(:exact, SignwellSDK::CheckboxValidation::TaggedSymbol)
|
|
17
|
+
|
|
18
|
+
sig do
|
|
19
|
+
override.returns(
|
|
20
|
+
T::Array[SignwellSDK::CheckboxValidation::TaggedSymbol]
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
def self.values
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# typed: strong
|
|
2
|
+
|
|
3
|
+
module SignwellSDK
|
|
4
|
+
module Models
|
|
5
|
+
class CopiedContactInfo < SignwellSDK::Internal::Type::BaseModel
|
|
6
|
+
OrHash =
|
|
7
|
+
T.type_alias do
|
|
8
|
+
T.any(SignwellSDK::CopiedContactInfo, SignwellSDK::Internal::AnyHash)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Contact email
|
|
12
|
+
sig { returns(String) }
|
|
13
|
+
attr_accessor :email
|
|
14
|
+
|
|
15
|
+
# Contact ID
|
|
16
|
+
sig { returns(T.nilable(String)) }
|
|
17
|
+
attr_reader :id
|
|
18
|
+
|
|
19
|
+
sig { params(id: String).void }
|
|
20
|
+
attr_writer :id
|
|
21
|
+
|
|
22
|
+
# Contact name
|
|
23
|
+
sig { returns(T.nilable(String)) }
|
|
24
|
+
attr_reader :name
|
|
25
|
+
|
|
26
|
+
sig { params(name: String).void }
|
|
27
|
+
attr_writer :name
|
|
28
|
+
|
|
29
|
+
# Copied contact information
|
|
30
|
+
sig do
|
|
31
|
+
params(email: String, id: String, name: String).returns(
|
|
32
|
+
T.attached_class
|
|
33
|
+
)
|
|
34
|
+
end
|
|
35
|
+
def self.new(
|
|
36
|
+
# Contact email
|
|
37
|
+
email:,
|
|
38
|
+
# Contact ID
|
|
39
|
+
id: nil,
|
|
40
|
+
# Contact name
|
|
41
|
+
name: nil
|
|
42
|
+
)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
sig { override.returns({ email: String, id: String, name: String }) }
|
|
46
|
+
def to_hash
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|