unione 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. checksums.yaml +7 -0
  2. data/AGENTS.md +99 -0
  3. data/LICENSE +21 -0
  4. data/README.md +270 -0
  5. data/docs/ConfirmedEmail.md +109 -0
  6. data/docs/Domain.md +257 -0
  7. data/docs/Email.md +126 -0
  8. data/docs/EmailValidation.md +54 -0
  9. data/docs/EventDump.md +157 -0
  10. data/docs/Obsolete.md +119 -0
  11. data/docs/Project.md +174 -0
  12. data/docs/Suppression.md +163 -0
  13. data/docs/System.md +73 -0
  14. data/docs/Tag.md +73 -0
  15. data/docs/Template.md +164 -0
  16. data/docs/Webhook.md +182 -0
  17. data/lib/unione/api/confirmed_email/confirmed_email_api.rb +47 -0
  18. data/lib/unione/api/confirmed_email/model/confirmed_email.rb +49 -0
  19. data/lib/unione/api/confirmed_email/model/confirmed_email_create_response.rb +50 -0
  20. data/lib/unione/api/confirmed_email/model/confirmed_email_delete_response.rb +50 -0
  21. data/lib/unione/api/confirmed_email/model/confirmed_email_list_response.rb +50 -0
  22. data/lib/unione/api/confirmed_email/model/confirmed_email_request.rb +42 -0
  23. data/lib/unione/api/domain/domain_api.rb +129 -0
  24. data/lib/unione/api/domain/model/dkim_status.rb +18 -0
  25. data/lib/unione/api/domain/model/domain_delete_request.rb +42 -0
  26. data/lib/unione/api/domain/model/domain_delete_response.rb +51 -0
  27. data/lib/unione/api/domain/model/domain_get_dns_records_request.rb +42 -0
  28. data/lib/unione/api/domain/model/domain_get_dns_records_response.rb +76 -0
  29. data/lib/unione/api/domain/model/domain_get_sandbox_domain_response.rb +51 -0
  30. data/lib/unione/api/domain/model/domain_list_request.rb +60 -0
  31. data/lib/unione/api/domain/model/domain_list_response.rb +51 -0
  32. data/lib/unione/api/domain/model/domain_list_response_domains_item.rb +58 -0
  33. data/lib/unione/api/domain/model/domain_list_response_domains_item_dkim.rb +52 -0
  34. data/lib/unione/api/domain/model/domain_list_response_domains_item_verification_record.rb +50 -0
  35. data/lib/unione/api/domain/model/domain_validate_dkim_request.rb +42 -0
  36. data/lib/unione/api/domain/model/domain_validate_dkim_response.rb +51 -0
  37. data/lib/unione/api/domain/model/domain_validate_verification_record_request.rb +42 -0
  38. data/lib/unione/api/domain/model/domain_validate_verification_record_response.rb +51 -0
  39. data/lib/unione/api/email/email_api.rb +56 -0
  40. data/lib/unione/api/email/model/email_send_request.rb +42 -0
  41. data/lib/unione/api/email/model/email_send_response.rb +83 -0
  42. data/lib/unione/api/email/model/email_subscribe_request.rb +58 -0
  43. data/lib/unione/api/email/model/message_object.rb +291 -0
  44. data/lib/unione/api/email/model/message_object_options.rb +70 -0
  45. data/lib/unione/api/email/model/message_object_recipients_item.rb +77 -0
  46. data/lib/unione/api/email_validation/email_validation_api.rb +34 -0
  47. data/lib/unione/api/email_validation/model/email_validation_single_request.rb +42 -0
  48. data/lib/unione/api/email_validation/model/email_validation_single_response.rb +140 -0
  49. data/lib/unione/api/event_dump/event_dump_api.rb +67 -0
  50. data/lib/unione/api/event_dump/model/event_dump_create_request.rb +119 -0
  51. data/lib/unione/api/event_dump/model/event_dump_create_response.rb +52 -0
  52. data/lib/unione/api/event_dump/model/event_dump_delete_request.rb +43 -0
  53. data/lib/unione/api/event_dump/model/event_dump_files_object.rb +51 -0
  54. data/lib/unione/api/event_dump/model/event_dump_get_request.rb +43 -0
  55. data/lib/unione/api/event_dump/model/event_dump_get_response.rb +51 -0
  56. data/lib/unione/api/event_dump/model/event_dump_list_response.rb +52 -0
  57. data/lib/unione/api/event_dump/model/event_dump_object.rb +66 -0
  58. data/lib/unione/api/event_dump/model/filter_object.rb +139 -0
  59. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_check_request.rb +42 -0
  60. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_check_response.rb +59 -0
  61. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_list_request.rb +43 -0
  62. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_list_response.rb +51 -0
  63. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_list_response_unsubscribed_item.rb +50 -0
  64. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_set_message.rb +25 -0
  65. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_set_request.rb +42 -0
  66. data/lib/unione/api/obsolete/model/obsolete_unsubscribed_set_response.rb +64 -0
  67. data/lib/unione/api/obsolete/obsolete_api.rb +57 -0
  68. data/lib/unione/api/project/model/project_create_request.rb +42 -0
  69. data/lib/unione/api/project/model/project_create_response.rb +60 -0
  70. data/lib/unione/api/project/model/project_delete_request.rb +52 -0
  71. data/lib/unione/api/project/model/project_list_object.rb +146 -0
  72. data/lib/unione/api/project/model/project_list_request.rb +50 -0
  73. data/lib/unione/api/project/model/project_list_response.rb +51 -0
  74. data/lib/unione/api/project/model/project_object.rb +94 -0
  75. data/lib/unione/api/project/model/project_update_object.rb +130 -0
  76. data/lib/unione/api/project/model/project_update_request.rb +60 -0
  77. data/lib/unione/api/project/model/project_update_response.rb +52 -0
  78. data/lib/unione/api/project/project_api.rb +71 -0
  79. data/lib/unione/api/suppression/model/suppression_delete_request.rb +42 -0
  80. data/lib/unione/api/suppression/model/suppression_get_object.rb +91 -0
  81. data/lib/unione/api/suppression/model/suppression_get_request.rb +52 -0
  82. data/lib/unione/api/suppression/model/suppression_get_response.rb +59 -0
  83. data/lib/unione/api/suppression/model/suppression_list_object.rb +91 -0
  84. data/lib/unione/api/suppression/model/suppression_list_request.rb +94 -0
  85. data/lib/unione/api/suppression/model/suppression_list_response.rb +61 -0
  86. data/lib/unione/api/suppression/model/suppression_set_request.rb +69 -0
  87. data/lib/unione/api/suppression/suppression_api.rb +63 -0
  88. data/lib/unione/api/system/model/project_accounting_object.rb +62 -0
  89. data/lib/unione/api/system/model/system_info_response.rb +95 -0
  90. data/lib/unione/api/system/model/system_info_response_accounting.rb +68 -0
  91. data/lib/unione/api/system/model/system_ping_response.rb +51 -0
  92. data/lib/unione/api/system/system_api.rb +35 -0
  93. data/lib/unione/api/tag/model/tag_delete_request.rb +42 -0
  94. data/lib/unione/api/tag/model/tag_list_response.rb +51 -0
  95. data/lib/unione/api/tag/model/tags_response_object.rb +50 -0
  96. data/lib/unione/api/tag/tag_api.rb +40 -0
  97. data/lib/unione/api/template/model/editor_type.rb +19 -0
  98. data/lib/unione/api/template/model/template_delete_request.rb +42 -0
  99. data/lib/unione/api/template/model/template_get_request.rb +42 -0
  100. data/lib/unione/api/template/model/template_get_response.rb +51 -0
  101. data/lib/unione/api/template/model/template_list_object.rb +232 -0
  102. data/lib/unione/api/template/model/template_list_request.rb +52 -0
  103. data/lib/unione/api/template/model/template_list_response.rb +51 -0
  104. data/lib/unione/api/template/model/template_object.rb +201 -0
  105. data/lib/unione/api/template/model/template_set_request.rb +42 -0
  106. data/lib/unione/api/template/model/template_set_response.rb +51 -0
  107. data/lib/unione/api/template/template_api.rb +66 -0
  108. data/lib/unione/api/webhook/model/block_type.rb +20 -0
  109. data/lib/unione/api/webhook/model/device_type.rb +22 -0
  110. data/lib/unione/api/webhook/model/domain_status.rb +19 -0
  111. data/lib/unione/api/webhook/model/event_name.rb +19 -0
  112. data/lib/unione/api/webhook/model/traffic_type.rb +24 -0
  113. data/lib/unione/api/webhook/model/webhook_callback.rb +52 -0
  114. data/lib/unione/api/webhook/model/webhook_callback_events_by_user_item.rb +66 -0
  115. data/lib/unione/api/webhook/model/webhook_callback_events_by_user_item_events_item.rb +52 -0
  116. data/lib/unione/api/webhook/model/webhook_callback_events_by_user_item_events_item_event_data.rb +167 -0
  117. data/lib/unione/api/webhook/model/webhook_callback_events_by_user_item_events_item_event_data_delivery_info.rb +192 -0
  118. data/lib/unione/api/webhook/model/webhook_delete_request.rb +42 -0
  119. data/lib/unione/api/webhook/model/webhook_event_format.rb +18 -0
  120. data/lib/unione/api/webhook/model/webhook_events_object.rb +52 -0
  121. data/lib/unione/api/webhook/model/webhook_get_request.rb +42 -0
  122. data/lib/unione/api/webhook/model/webhook_get_response.rb +51 -0
  123. data/lib/unione/api/webhook/model/webhook_list_request.rb +51 -0
  124. data/lib/unione/api/webhook/model/webhook_list_response.rb +51 -0
  125. data/lib/unione/api/webhook/model/webhook_object.rb +123 -0
  126. data/lib/unione/api/webhook/model/webhook_set_request.rb +109 -0
  127. data/lib/unione/api/webhook/model/webhook_set_response.rb +51 -0
  128. data/lib/unione/api/webhook/model/webhook_status.rb +21 -0
  129. data/lib/unione/api/webhook/webhook_api.rb +89 -0
  130. data/lib/unione/client/api_client.rb +93 -0
  131. data/lib/unione/client/api_error.rb +22 -0
  132. data/lib/unione/client/configuration.rb +49 -0
  133. data/lib/unione/client/decode.rb +33 -0
  134. data/lib/unione/common/model/attachments_array_item.rb +59 -0
  135. data/lib/unione/common/model/body_object.rb +57 -0
  136. data/lib/unione/common/model/email_counter_mode.rb +21 -0
  137. data/lib/unione/common/model/email_status.rb +23 -0
  138. data/lib/unione/common/model/headers_object.rb +72 -0
  139. data/lib/unione/common/model/inline_attachments_array_item.rb +59 -0
  140. data/lib/unione/common/model/success_response.rb +41 -0
  141. data/lib/unione/common/model/template_engine.rb +19 -0
  142. data/lib/unione/common/model/verification_record_status.rb +16 -0
  143. data/lib/unione/uni_one_client.rb +127 -0
  144. data/lib/unione/version.rb +5 -0
  145. data/lib/unione.rb +130 -0
  146. metadata +187 -0
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UniOne
4
+ module Common
5
+ module Model
6
+ # Contains email headers, maximum 50. Only headers with “X-” name prefix are accepted, all other are
7
+ # ignored, for example X-UNIONE-Global-Language, X-UNIONE-Template-Engine. Standard headers "To,"
8
+ # "CC," and "BCC" are passed without the "X-." Yet, they are processed in a particular way and, as a
9
+ # result, have a number of restrictions. You can find more details about it [here](/cc-and-bcc). If
10
+ # our support have approved omitting standard unsubscription block for you, you can also pass
11
+ # List-Unsubscribe, List-Subscribe, List-Help, List-Owner, List-Archive, In-Reply-To and References
12
+ # headers.
13
+ class HeadersObject
14
+ # Wire names of the named fields
15
+ FIELDS = ['X-UNIONE-Global-Language', 'X-UNIONE-Template-Engine'].freeze
16
+
17
+ # The language of the unsubscribe footer and unsubscribe page. Languages supported are: "be", "de",
18
+ # "en", "es", "fr", "it", "pl", "pt", "ru", "ua", "kz".
19
+ # @return [String, nil]
20
+ attr_accessor :x_unione_global_language
21
+
22
+ # The template engine for handling the substitutions(merge tags), “simple”, “velocity”, “liquid” or
23
+ # “none”. Default value is “simple”. Has a priority over the value allowed in the “template_engine”
24
+ # parameter.
25
+ # @return [String, nil]
26
+ attr_accessor :x_unione_template_engine
27
+
28
+ # Fields beyond the named ones, sent as is next to them (a named field wins), e.g. any X-* header,
29
+ # 'CC', 'List-Unsubscribe': extra: { 'X-MyHeader' => 'some data' }. Unknown keys of a response go here
30
+ # too.
31
+ # @return [Hash{String => String}]
32
+ attr_accessor :extra
33
+
34
+ def initialize(
35
+ x_unione_global_language: nil,
36
+ x_unione_template_engine: nil,
37
+ extra: {}
38
+ )
39
+ @x_unione_global_language = x_unione_global_language
40
+ @x_unione_template_engine = x_unione_template_engine
41
+ @extra = extra
42
+ end
43
+
44
+ # Builds the object from decoded JSON. Lenient: a missing field, nil or a value of another type
45
+ # gives nil (data that is not a Hash gives an empty object).
46
+ def self.from_h(data)
47
+ data = {} unless data.is_a?(Hash)
48
+ new(
49
+ x_unione_global_language: data['X-UNIONE-Global-Language'],
50
+ x_unione_template_engine: data['X-UNIONE-Template-Engine'],
51
+ extra: data.reject { |key, _| FIELDS.include?(key) }
52
+ )
53
+ end
54
+
55
+ # JSON-ready hash, nil fields are omitted; the keys of extra go next to the named fields
56
+ # (a named field wins).
57
+ def to_h
58
+ result = {
59
+ 'X-UNIONE-Global-Language' => @x_unione_global_language,
60
+ 'X-UNIONE-Template-Engine' => @x_unione_template_engine,
61
+ }
62
+ extra = (@extra || {}).transform_keys(&:to_s).reject { |key, value| result.key?(key) || value.nil? }
63
+ extra.merge(result.compact)
64
+ end
65
+
66
+ def to_json(*args)
67
+ to_h.to_json(*args)
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UniOne
4
+ module Common
5
+ module Model
6
+ # InlineAttachmentsArrayItem
7
+ class InlineAttachmentsArrayItem
8
+ # Attachment type, see [MIME](https://en.wikipedia.org/wiki/MIME). If unsure, use
9
+ # "application/octet-stream".
10
+ # @return [String, nil]
11
+ attr_accessor :type
12
+
13
+ # Attachment content id. For example, "name"="IMAGECID1" should be referenced in HTML like <img
14
+ # src="cid:IMAGECID1">.
15
+ # @return [String, nil]
16
+ attr_accessor :name
17
+
18
+ # File contents in [base64](https://en.wikipedia.org/wiki/Base64). Maximum file size 7MB (9786710
19
+ # bytes in base64).
20
+ # @return [String, nil]
21
+ attr_accessor :content
22
+
23
+ def initialize(
24
+ type:,
25
+ name:,
26
+ content:
27
+ )
28
+ @type = type
29
+ @name = name
30
+ @content = content
31
+ end
32
+
33
+ # Builds the object from decoded JSON. Lenient: a missing field, nil or a value of another type
34
+ # gives nil (data that is not a Hash gives an empty object).
35
+ def self.from_h(data)
36
+ data = {} unless data.is_a?(Hash)
37
+ new(
38
+ type: data['type'],
39
+ name: data['name'],
40
+ content: data['content']
41
+ )
42
+ end
43
+
44
+ # JSON-ready hash, nil fields are omitted.
45
+ def to_h
46
+ {
47
+ 'type' => @type,
48
+ 'name' => @name,
49
+ 'content' => @content,
50
+ }.compact
51
+ end
52
+
53
+ def to_json(*args)
54
+ to_h.to_json(*args)
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UniOne
4
+ module Common
5
+ module Model
6
+ # SuccessResponse
7
+ class SuccessResponse
8
+ # "success" string
9
+ # Allowed values: `success`.
10
+ # @return [String, nil]
11
+ attr_accessor :status
12
+
13
+ def initialize(
14
+ status: nil
15
+ )
16
+ @status = status
17
+ end
18
+
19
+ # Builds the object from decoded JSON. Lenient: a missing field, nil or a value of another type
20
+ # gives nil (data that is not a Hash gives an empty object).
21
+ def self.from_h(data)
22
+ data = {} unless data.is_a?(Hash)
23
+ new(
24
+ status: data['status']
25
+ )
26
+ end
27
+
28
+ # JSON-ready hash, nil fields are omitted.
29
+ def to_h
30
+ {
31
+ 'status' => @status,
32
+ }.compact
33
+ end
34
+
35
+ def to_json(*args)
36
+ to_h.to_json(*args)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UniOne
4
+ module Common
5
+ module Model
6
+ # The [template engine](https://docs.unione.io/en/template-engines) for handling the
7
+ # substitutions(merge tags), "simple", "velocity", "liquid" or "none". Default value is "simple".
8
+ module TemplateEngine
9
+ SIMPLE = 'simple'
10
+ VELOCITY = 'velocity'
11
+ LIQUID = 'liquid'
12
+ NONE = 'none'
13
+
14
+ # All values
15
+ ALL = [SIMPLE, VELOCITY, LIQUID, NONE].freeze
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UniOne
4
+ module Common
5
+ module Model
6
+ # Only domains with "confirmed" verification record are allowed as sender domains.
7
+ module VerificationRecordStatus
8
+ CONFIRMED = 'confirmed'
9
+ UNCONFIRMED = 'unconfirmed'
10
+
11
+ # All values
12
+ ALL = [CONFIRMED, UNCONFIRMED].freeze
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,127 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UniOne
4
+ # Entry point of the UniOne API: one method per section.
5
+ #
6
+ # client = UniOne.client('YOUR_API_KEY')
7
+ # client.email.send_email(...)
8
+ class UniOneClient
9
+ # @return [Client::ApiClient]
10
+ attr_reader :api_client
11
+
12
+ # @param api_key [String]
13
+ # @param host [String, nil] API host (Client::Configuration::HOST_US1, 'us1.unione.io') or a full base URL
14
+ # @param transport [#call, nil] HTTP layer: call(method, uri, headers, body, timeout) -> [status, body];
15
+ # nil: Client::NetHttpTransport
16
+ # @param options [Hash] of Client::Configuration: timeout:, platform:, headers: (extra HTTP headers)
17
+ def initialize(api_key, host = nil, transport: nil, **options)
18
+ options = options.merge(base_url: Client::Configuration.base_url_for(host)) if host
19
+ @api_client = Client::ApiClient.new(Client::Configuration.new(api_key, **options), transport: transport)
20
+ end
21
+
22
+ # This group of methods is related with email sending.
23
+ # @return [Api::Email::EmailApi]
24
+ def email
25
+ @email ||= Api::Email::EmailApi.new(@api_client)
26
+ end
27
+
28
+ # Email validation methods. As a result of the check, you’ll get detailed information on email
29
+ # validity. It will help eliminate nonexistent emails, decrease the number of complaints, clean up the
30
+ # subscribers list and eventually enhance your sender reputation score. For example, you may add
31
+ # validation to a subscription form on your site to let users know they’ve just entered an invalid
32
+ # address.
33
+ # @return [Api::EmailValidation::EmailValidationApi]
34
+ def email_validation
35
+ @email_validation ||= Api::EmailValidation::EmailValidationApi.new(@api_client)
36
+ end
37
+
38
+ # Manage email addresses confirmed for sandbox-domain sending. These methods are available only with a
39
+ # main account API key.
40
+ # @return [Api::ConfirmedEmail::ConfirmedEmailApi]
41
+ def confirmed_email
42
+ @confirmed_email ||= Api::ConfirmedEmail::ConfirmedEmailApi.new(@api_client)
43
+ end
44
+
45
+ # You have the option of storing a template on the UniOne side and then using it by id, which is
46
+ # highly recommended for sending repetitive messages or high volume traffic. UniOne supports two
47
+ # different [template engines](https://docs.unione.io/en/template-engines).
48
+ # @return [Api::Template::TemplateApi]
49
+ def template
50
+ @template ||= Api::Template::TemplateApi.new(@api_client)
51
+ end
52
+
53
+ # UniOne lets you recieve notifications about email status changes or spam blocks. You provide an URL
54
+ # and every time a watched event occurs we will notify you by submitting a request with JSON data to
55
+ # this URL.
56
+ # @return [Api::Webhook::WebhookApi]
57
+ def webhook
58
+ @webhook ||= Api::Webhook::WebhookApi.new(@api_client)
59
+ end
60
+
61
+ # Methods for managing suppression lists. An email can be added to suppression list because of
62
+ # unsubscription, bounce or complain.
63
+ # @return [Api::Suppression::SuppressionApi]
64
+ def suppression
65
+ @suppression ||= Api::Suppression::SuppressionApi.new(@api_client)
66
+ end
67
+
68
+ # You can use these methods to setup sender domains and check their statuses. They might be useful in
69
+ # case you want to automate adding domains for your own clients.
70
+ # @return [Api::Domain::DomainApi]
71
+ def domain
72
+ @domain ||= Api::Domain::DomainApi.new(@api_client)
73
+ end
74
+
75
+ # These methods are used to obtain a list of events for a given period of time. The data is stored for
76
+ # up to 45 days, depending on your tariff, i. e. you may fetch all event data starting from 00:00:00
77
+ # 31 days ago and up to current time. For custom tarifs with big sending volumes event dumps are
78
+ # available only for the last 7 days.
79
+ # @return [Api::EventDump::EventDumpApi]
80
+ def event_dump
81
+ @event_dump ||= Api::EventDump::EventDumpApi.new(@api_client)
82
+ end
83
+
84
+ # This family of methods is used to manage user-defined tags. Tags are used to categorize letters
85
+ # based on your own criteria, e. g. to create a distinction between marketing and transactional
86
+ # letters or group together all notifications for a particular order type. UniOne allows you to assign
87
+ # tags to all outgoing emails, and the tags you’ve set may then be used to filter and analyze delivery
88
+ # statistics.
89
+ # @return [Api::Tag::TagApi]
90
+ def tag
91
+ @tag ||= Api::Tag::TagApi.new(@api_client)
92
+ end
93
+
94
+ # Projects allow you to group several independent domains, webhooks, templates, and unsubscription
95
+ # lists together. It's very useful if you have your own clients and manage their data from a single
96
+ # UniOne account. Each project receives its own API key, and all API calls with that API key only deal
97
+ # with the data of that project. This way, you can assign a separate project for each client and be
98
+ # sure that they won't conflict; e.g. unsubscribing from one project won't affect another.
99
+ # @return [Api::Project::ProjectApi]
100
+ def project
101
+ @project ||= Api::Project::ProjectApi.new(@api_client)
102
+ end
103
+
104
+ # System operations.
105
+ # @return [Api::System::SystemApi]
106
+ def system
107
+ @system ||= Api::System::SystemApi.new(@api_client)
108
+ end
109
+
110
+ # Obsolete methods dealing with unsubscribes. We recommend using the more flexible
111
+ # [suppression](https://docs.unione.io/en/web-api-ref#suppression) methods instead. Note that you
112
+ # can't resubscribe an unsubscribed recipient using WebAPI, but you can send him an email with
113
+ # subscription link using email/subscribe method.
114
+ # @return [Api::Obsolete::ObsoleteApi]
115
+ def obsolete
116
+ @obsolete ||= Api::Obsolete::ObsoleteApi.new(@api_client)
117
+ end
118
+ end
119
+
120
+ # Shortcut: UniOne.client('YOUR_API_KEY')
121
+ # @param host [String, nil] API host, e.g. 'us1.unione.io', or a full base URL
122
+ # @param options [Hash] transport:, timeout:, platform:, headers: (see UniOneClient#initialize)
123
+ # @return [UniOneClient]
124
+ def self.client(api_key, host = nil, **options)
125
+ UniOneClient.new(api_key, host, **options)
126
+ end
127
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module UniOne
4
+ VERSION = '1.1.3'
5
+ end
data/lib/unione.rb ADDED
@@ -0,0 +1,130 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'unione/version'
4
+ require_relative 'unione/client/api_error'
5
+ require_relative 'unione/client/configuration'
6
+ require_relative 'unione/client/decode'
7
+ require_relative 'unione/client/api_client'
8
+ require_relative 'unione/common/model/template_engine'
9
+ require_relative 'unione/api/template/model/editor_type'
10
+ require_relative 'unione/api/webhook/model/webhook_status'
11
+ require_relative 'unione/api/webhook/model/webhook_event_format'
12
+ require_relative 'unione/common/model/email_status'
13
+ require_relative 'unione/api/webhook/model/event_name'
14
+ require_relative 'unione/api/webhook/model/device_type'
15
+ require_relative 'unione/api/webhook/model/traffic_type'
16
+ require_relative 'unione/api/webhook/model/block_type'
17
+ require_relative 'unione/api/webhook/model/domain_status'
18
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_set_message'
19
+ require_relative 'unione/common/model/verification_record_status'
20
+ require_relative 'unione/api/domain/model/dkim_status'
21
+ require_relative 'unione/common/model/email_counter_mode'
22
+ require_relative 'unione/api/email/model/email_send_request'
23
+ require_relative 'unione/api/email/model/message_object'
24
+ require_relative 'unione/api/email/model/message_object_recipients_item'
25
+ require_relative 'unione/common/model/body_object'
26
+ require_relative 'unione/common/model/headers_object'
27
+ require_relative 'unione/common/model/attachments_array_item'
28
+ require_relative 'unione/common/model/inline_attachments_array_item'
29
+ require_relative 'unione/api/email/model/message_object_options'
30
+ require_relative 'unione/api/email/model/email_send_response'
31
+ require_relative 'unione/api/email/model/email_subscribe_request'
32
+ require_relative 'unione/common/model/success_response'
33
+ require_relative 'unione/api/template/model/template_set_request'
34
+ require_relative 'unione/api/template/model/template_object'
35
+ require_relative 'unione/api/template/model/template_set_response'
36
+ require_relative 'unione/api/template/model/template_get_request'
37
+ require_relative 'unione/api/template/model/template_get_response'
38
+ require_relative 'unione/api/template/model/template_list_request'
39
+ require_relative 'unione/api/template/model/template_list_response'
40
+ require_relative 'unione/api/template/model/template_list_object'
41
+ require_relative 'unione/api/template/model/template_delete_request'
42
+ require_relative 'unione/api/webhook/model/webhook_set_request'
43
+ require_relative 'unione/api/webhook/model/webhook_events_object'
44
+ require_relative 'unione/api/webhook/model/webhook_set_response'
45
+ require_relative 'unione/api/webhook/model/webhook_object'
46
+ require_relative 'unione/api/webhook/model/webhook_callback'
47
+ require_relative 'unione/api/webhook/model/webhook_callback_events_by_user_item'
48
+ require_relative 'unione/api/webhook/model/webhook_callback_events_by_user_item_events_item'
49
+ require_relative 'unione/api/webhook/model/webhook_callback_events_by_user_item_events_item_event_data'
50
+ require_relative 'unione/api/webhook/model/webhook_callback_events_by_user_item_events_item_event_data_delivery_info'
51
+ require_relative 'unione/api/webhook/model/webhook_get_request'
52
+ require_relative 'unione/api/webhook/model/webhook_get_response'
53
+ require_relative 'unione/api/webhook/model/webhook_list_request'
54
+ require_relative 'unione/api/webhook/model/webhook_list_response'
55
+ require_relative 'unione/api/webhook/model/webhook_delete_request'
56
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_set_request'
57
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_set_response'
58
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_check_request'
59
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_check_response'
60
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_list_request'
61
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_list_response'
62
+ require_relative 'unione/api/obsolete/model/obsolete_unsubscribed_list_response_unsubscribed_item'
63
+ require_relative 'unione/api/suppression/model/suppression_set_request'
64
+ require_relative 'unione/api/suppression/model/suppression_get_request'
65
+ require_relative 'unione/api/suppression/model/suppression_get_response'
66
+ require_relative 'unione/api/suppression/model/suppression_get_object'
67
+ require_relative 'unione/api/suppression/model/suppression_list_request'
68
+ require_relative 'unione/api/suppression/model/suppression_list_response'
69
+ require_relative 'unione/api/suppression/model/suppression_list_object'
70
+ require_relative 'unione/api/suppression/model/suppression_delete_request'
71
+ require_relative 'unione/api/domain/model/domain_get_dns_records_request'
72
+ require_relative 'unione/api/domain/model/domain_get_dns_records_response'
73
+ require_relative 'unione/api/domain/model/domain_validate_verification_record_request'
74
+ require_relative 'unione/api/domain/model/domain_validate_verification_record_response'
75
+ require_relative 'unione/api/domain/model/domain_validate_dkim_request'
76
+ require_relative 'unione/api/domain/model/domain_validate_dkim_response'
77
+ require_relative 'unione/api/domain/model/domain_list_request'
78
+ require_relative 'unione/api/domain/model/domain_list_response'
79
+ require_relative 'unione/api/domain/model/domain_list_response_domains_item'
80
+ require_relative 'unione/api/domain/model/domain_list_response_domains_item_verification_record'
81
+ require_relative 'unione/api/domain/model/domain_list_response_domains_item_dkim'
82
+ require_relative 'unione/api/domain/model/domain_get_sandbox_domain_response'
83
+ require_relative 'unione/api/domain/model/domain_delete_request'
84
+ require_relative 'unione/api/domain/model/domain_delete_response'
85
+ require_relative 'unione/api/confirmed_email/model/confirmed_email_request'
86
+ require_relative 'unione/api/confirmed_email/model/confirmed_email_create_response'
87
+ require_relative 'unione/api/confirmed_email/model/confirmed_email'
88
+ require_relative 'unione/api/confirmed_email/model/confirmed_email_list_response'
89
+ require_relative 'unione/api/confirmed_email/model/confirmed_email_delete_response'
90
+ require_relative 'unione/api/event_dump/model/event_dump_create_request'
91
+ require_relative 'unione/api/event_dump/model/filter_object'
92
+ require_relative 'unione/api/event_dump/model/event_dump_create_response'
93
+ require_relative 'unione/api/event_dump/model/event_dump_get_request'
94
+ require_relative 'unione/api/event_dump/model/event_dump_get_response'
95
+ require_relative 'unione/api/event_dump/model/event_dump_object'
96
+ require_relative 'unione/api/event_dump/model/event_dump_files_object'
97
+ require_relative 'unione/api/event_dump/model/event_dump_list_response'
98
+ require_relative 'unione/api/event_dump/model/event_dump_delete_request'
99
+ require_relative 'unione/api/tag/model/tag_list_response'
100
+ require_relative 'unione/api/tag/model/tags_response_object'
101
+ require_relative 'unione/api/tag/model/tag_delete_request'
102
+ require_relative 'unione/api/project/model/project_create_request'
103
+ require_relative 'unione/api/project/model/project_object'
104
+ require_relative 'unione/api/project/model/project_create_response'
105
+ require_relative 'unione/api/project/model/project_update_request'
106
+ require_relative 'unione/api/project/model/project_update_object'
107
+ require_relative 'unione/api/project/model/project_update_response'
108
+ require_relative 'unione/api/project/model/project_list_request'
109
+ require_relative 'unione/api/project/model/project_list_response'
110
+ require_relative 'unione/api/project/model/project_list_object'
111
+ require_relative 'unione/api/project/model/project_delete_request'
112
+ require_relative 'unione/api/email_validation/model/email_validation_single_request'
113
+ require_relative 'unione/api/email_validation/model/email_validation_single_response'
114
+ require_relative 'unione/api/system/model/system_ping_response'
115
+ require_relative 'unione/api/system/model/system_info_response'
116
+ require_relative 'unione/api/system/model/project_accounting_object'
117
+ require_relative 'unione/api/system/model/system_info_response_accounting'
118
+ require_relative 'unione/api/email/email_api'
119
+ require_relative 'unione/api/email_validation/email_validation_api'
120
+ require_relative 'unione/api/confirmed_email/confirmed_email_api'
121
+ require_relative 'unione/api/template/template_api'
122
+ require_relative 'unione/api/webhook/webhook_api'
123
+ require_relative 'unione/api/suppression/suppression_api'
124
+ require_relative 'unione/api/domain/domain_api'
125
+ require_relative 'unione/api/event_dump/event_dump_api'
126
+ require_relative 'unione/api/tag/tag_api'
127
+ require_relative 'unione/api/project/project_api'
128
+ require_relative 'unione/api/system/system_api'
129
+ require_relative 'unione/api/obsolete/obsolete_api'
130
+ require_relative 'unione/uni_one_client'
metadata ADDED
@@ -0,0 +1,187 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: unione
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.1.3
5
+ platform: ruby
6
+ authors:
7
+ - UniOne
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2026-10-20 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description:
14
+ email:
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - AGENTS.md
20
+ - LICENSE
21
+ - README.md
22
+ - docs/ConfirmedEmail.md
23
+ - docs/Domain.md
24
+ - docs/Email.md
25
+ - docs/EmailValidation.md
26
+ - docs/EventDump.md
27
+ - docs/Obsolete.md
28
+ - docs/Project.md
29
+ - docs/Suppression.md
30
+ - docs/System.md
31
+ - docs/Tag.md
32
+ - docs/Template.md
33
+ - docs/Webhook.md
34
+ - lib/unione.rb
35
+ - lib/unione/api/confirmed_email/confirmed_email_api.rb
36
+ - lib/unione/api/confirmed_email/model/confirmed_email.rb
37
+ - lib/unione/api/confirmed_email/model/confirmed_email_create_response.rb
38
+ - lib/unione/api/confirmed_email/model/confirmed_email_delete_response.rb
39
+ - lib/unione/api/confirmed_email/model/confirmed_email_list_response.rb
40
+ - lib/unione/api/confirmed_email/model/confirmed_email_request.rb
41
+ - lib/unione/api/domain/domain_api.rb
42
+ - lib/unione/api/domain/model/dkim_status.rb
43
+ - lib/unione/api/domain/model/domain_delete_request.rb
44
+ - lib/unione/api/domain/model/domain_delete_response.rb
45
+ - lib/unione/api/domain/model/domain_get_dns_records_request.rb
46
+ - lib/unione/api/domain/model/domain_get_dns_records_response.rb
47
+ - lib/unione/api/domain/model/domain_get_sandbox_domain_response.rb
48
+ - lib/unione/api/domain/model/domain_list_request.rb
49
+ - lib/unione/api/domain/model/domain_list_response.rb
50
+ - lib/unione/api/domain/model/domain_list_response_domains_item.rb
51
+ - lib/unione/api/domain/model/domain_list_response_domains_item_dkim.rb
52
+ - lib/unione/api/domain/model/domain_list_response_domains_item_verification_record.rb
53
+ - lib/unione/api/domain/model/domain_validate_dkim_request.rb
54
+ - lib/unione/api/domain/model/domain_validate_dkim_response.rb
55
+ - lib/unione/api/domain/model/domain_validate_verification_record_request.rb
56
+ - lib/unione/api/domain/model/domain_validate_verification_record_response.rb
57
+ - lib/unione/api/email/email_api.rb
58
+ - lib/unione/api/email/model/email_send_request.rb
59
+ - lib/unione/api/email/model/email_send_response.rb
60
+ - lib/unione/api/email/model/email_subscribe_request.rb
61
+ - lib/unione/api/email/model/message_object.rb
62
+ - lib/unione/api/email/model/message_object_options.rb
63
+ - lib/unione/api/email/model/message_object_recipients_item.rb
64
+ - lib/unione/api/email_validation/email_validation_api.rb
65
+ - lib/unione/api/email_validation/model/email_validation_single_request.rb
66
+ - lib/unione/api/email_validation/model/email_validation_single_response.rb
67
+ - lib/unione/api/event_dump/event_dump_api.rb
68
+ - lib/unione/api/event_dump/model/event_dump_create_request.rb
69
+ - lib/unione/api/event_dump/model/event_dump_create_response.rb
70
+ - lib/unione/api/event_dump/model/event_dump_delete_request.rb
71
+ - lib/unione/api/event_dump/model/event_dump_files_object.rb
72
+ - lib/unione/api/event_dump/model/event_dump_get_request.rb
73
+ - lib/unione/api/event_dump/model/event_dump_get_response.rb
74
+ - lib/unione/api/event_dump/model/event_dump_list_response.rb
75
+ - lib/unione/api/event_dump/model/event_dump_object.rb
76
+ - lib/unione/api/event_dump/model/filter_object.rb
77
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_check_request.rb
78
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_check_response.rb
79
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_list_request.rb
80
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_list_response.rb
81
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_list_response_unsubscribed_item.rb
82
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_set_message.rb
83
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_set_request.rb
84
+ - lib/unione/api/obsolete/model/obsolete_unsubscribed_set_response.rb
85
+ - lib/unione/api/obsolete/obsolete_api.rb
86
+ - lib/unione/api/project/model/project_create_request.rb
87
+ - lib/unione/api/project/model/project_create_response.rb
88
+ - lib/unione/api/project/model/project_delete_request.rb
89
+ - lib/unione/api/project/model/project_list_object.rb
90
+ - lib/unione/api/project/model/project_list_request.rb
91
+ - lib/unione/api/project/model/project_list_response.rb
92
+ - lib/unione/api/project/model/project_object.rb
93
+ - lib/unione/api/project/model/project_update_object.rb
94
+ - lib/unione/api/project/model/project_update_request.rb
95
+ - lib/unione/api/project/model/project_update_response.rb
96
+ - lib/unione/api/project/project_api.rb
97
+ - lib/unione/api/suppression/model/suppression_delete_request.rb
98
+ - lib/unione/api/suppression/model/suppression_get_object.rb
99
+ - lib/unione/api/suppression/model/suppression_get_request.rb
100
+ - lib/unione/api/suppression/model/suppression_get_response.rb
101
+ - lib/unione/api/suppression/model/suppression_list_object.rb
102
+ - lib/unione/api/suppression/model/suppression_list_request.rb
103
+ - lib/unione/api/suppression/model/suppression_list_response.rb
104
+ - lib/unione/api/suppression/model/suppression_set_request.rb
105
+ - lib/unione/api/suppression/suppression_api.rb
106
+ - lib/unione/api/system/model/project_accounting_object.rb
107
+ - lib/unione/api/system/model/system_info_response.rb
108
+ - lib/unione/api/system/model/system_info_response_accounting.rb
109
+ - lib/unione/api/system/model/system_ping_response.rb
110
+ - lib/unione/api/system/system_api.rb
111
+ - lib/unione/api/tag/model/tag_delete_request.rb
112
+ - lib/unione/api/tag/model/tag_list_response.rb
113
+ - lib/unione/api/tag/model/tags_response_object.rb
114
+ - lib/unione/api/tag/tag_api.rb
115
+ - lib/unione/api/template/model/editor_type.rb
116
+ - lib/unione/api/template/model/template_delete_request.rb
117
+ - lib/unione/api/template/model/template_get_request.rb
118
+ - lib/unione/api/template/model/template_get_response.rb
119
+ - lib/unione/api/template/model/template_list_object.rb
120
+ - lib/unione/api/template/model/template_list_request.rb
121
+ - lib/unione/api/template/model/template_list_response.rb
122
+ - lib/unione/api/template/model/template_object.rb
123
+ - lib/unione/api/template/model/template_set_request.rb
124
+ - lib/unione/api/template/model/template_set_response.rb
125
+ - lib/unione/api/template/template_api.rb
126
+ - lib/unione/api/webhook/model/block_type.rb
127
+ - lib/unione/api/webhook/model/device_type.rb
128
+ - lib/unione/api/webhook/model/domain_status.rb
129
+ - lib/unione/api/webhook/model/event_name.rb
130
+ - lib/unione/api/webhook/model/traffic_type.rb
131
+ - lib/unione/api/webhook/model/webhook_callback.rb
132
+ - lib/unione/api/webhook/model/webhook_callback_events_by_user_item.rb
133
+ - lib/unione/api/webhook/model/webhook_callback_events_by_user_item_events_item.rb
134
+ - lib/unione/api/webhook/model/webhook_callback_events_by_user_item_events_item_event_data.rb
135
+ - lib/unione/api/webhook/model/webhook_callback_events_by_user_item_events_item_event_data_delivery_info.rb
136
+ - lib/unione/api/webhook/model/webhook_delete_request.rb
137
+ - lib/unione/api/webhook/model/webhook_event_format.rb
138
+ - lib/unione/api/webhook/model/webhook_events_object.rb
139
+ - lib/unione/api/webhook/model/webhook_get_request.rb
140
+ - lib/unione/api/webhook/model/webhook_get_response.rb
141
+ - lib/unione/api/webhook/model/webhook_list_request.rb
142
+ - lib/unione/api/webhook/model/webhook_list_response.rb
143
+ - lib/unione/api/webhook/model/webhook_object.rb
144
+ - lib/unione/api/webhook/model/webhook_set_request.rb
145
+ - lib/unione/api/webhook/model/webhook_set_response.rb
146
+ - lib/unione/api/webhook/model/webhook_status.rb
147
+ - lib/unione/api/webhook/webhook_api.rb
148
+ - lib/unione/client/api_client.rb
149
+ - lib/unione/client/api_error.rb
150
+ - lib/unione/client/configuration.rb
151
+ - lib/unione/client/decode.rb
152
+ - lib/unione/common/model/attachments_array_item.rb
153
+ - lib/unione/common/model/body_object.rb
154
+ - lib/unione/common/model/email_counter_mode.rb
155
+ - lib/unione/common/model/email_status.rb
156
+ - lib/unione/common/model/headers_object.rb
157
+ - lib/unione/common/model/inline_attachments_array_item.rb
158
+ - lib/unione/common/model/success_response.rb
159
+ - lib/unione/common/model/template_engine.rb
160
+ - lib/unione/common/model/verification_record_status.rb
161
+ - lib/unione/uni_one_client.rb
162
+ - lib/unione/version.rb
163
+ homepage: https://github.com/unione-repo/unione-ruby-sdk
164
+ licenses:
165
+ - MIT
166
+ metadata:
167
+ documentation_uri: https://docs.unione.io/en/web-api-ref
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ">="
175
+ - !ruby/object:Gem::Version
176
+ version: '2.7'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubygems_version: 3.5.22
184
+ signing_key:
185
+ specification_version: 4
186
+ summary: UniOne Web API client library for Ruby
187
+ test_files: []