zm-ruby-client 3.0.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -0
  3. data/README.md +128 -27
  4. data/VERSION +1 -1
  5. data/lib/zm/client/account/account.rb +12 -19
  6. data/lib/zm/client/account/account_aliases_collection.rb +6 -4
  7. data/lib/zm/client/account/account_dls_membership_collection.rb +4 -3
  8. data/lib/zm/client/account/account_dls_owner_collection.rb +3 -2
  9. data/lib/zm/client/account/account_jsns_builder.rb +10 -10
  10. data/lib/zm/client/account/accounts_collection.rb +27 -16
  11. data/lib/zm/client/ace/ace.rb +3 -6
  12. data/lib/zm/client/ace/ace_jsns_builder.rb +6 -6
  13. data/lib/zm/client/appointment/appointment.rb +32 -14
  14. data/lib/zm/client/appointment/appointment_jsns_builder.rb +5 -5
  15. data/lib/zm/client/appointment/appointment_jsns_initializer.rb +6 -1
  16. data/lib/zm/client/appointment/appointments_collection.rb +12 -9
  17. data/lib/zm/client/backup/backup.rb +5 -2
  18. data/lib/zm/client/backup/backups_collection.rb +3 -2
  19. data/lib/zm/client/base/account_objects_collection.rb +1 -0
  20. data/lib/zm/client/base/account_search_objects_collection.rb +6 -6
  21. data/lib/zm/client/base/admin_objects_collection.rb +60 -7
  22. data/lib/zm/client/base/base_account_jsns_builder.rb +89 -87
  23. data/lib/zm/client/base/base_jsns_builder.rb +3 -3
  24. data/lib/zm/client/base/base_jsns_initializer.rb +20 -15
  25. data/lib/zm/client/base/mailbox_infos_collection.rb +92 -90
  26. data/lib/zm/client/base/mailbox_object.rb +49 -160
  27. data/lib/zm/client/base/mailbox_prefs_collection.rb +54 -52
  28. data/lib/zm/client/base/object.rb +19 -2
  29. data/lib/zm/client/base/objects_collection.rb +10 -10
  30. data/lib/zm/client/base/zimbra_attribute.rb +28 -42
  31. data/lib/zm/client/base/zimbra_attributes_collection.rb +38 -24
  32. data/lib/zm/client/{cluster/batch_request.rb → batch_request.rb} +1 -1
  33. data/lib/zm/client/cluster/cluster.rb +24 -61
  34. data/lib/zm/client/cluster/cluster_config.rb +35 -15
  35. data/lib/zm/client/contact/contact.rb +15 -13
  36. data/lib/zm/client/contact/contact_jsns_builder.rb +9 -6
  37. data/lib/zm/client/contact/contact_jsns_initializer.rb +2 -2
  38. data/lib/zm/client/contact/contact_member.rb +3 -3
  39. data/lib/zm/client/contact/contact_members_collection.rb +3 -3
  40. data/lib/zm/client/contact/contacts_builder.rb +1 -1
  41. data/lib/zm/client/contact/contacts_collection.rb +2 -2
  42. data/lib/zm/client/contact/group_contact_jsns_builder.rb +18 -14
  43. data/lib/zm/client/contact/mod_group_contact.rb +12 -8
  44. data/lib/zm/client/cos/cos.rb +15 -31
  45. data/lib/zm/client/cos/cos_jsns_builder.rb +21 -21
  46. data/lib/zm/client/cos/coses_collection.rb +11 -6
  47. data/lib/zm/client/datasource/datasource.rb +3 -9
  48. data/lib/zm/client/datasource/datasource_jsns_builder.rb +4 -4
  49. data/lib/zm/client/datasource/datasources_builder.rb +1 -1
  50. data/lib/zm/client/datasource/datasources_collection.rb +2 -2
  51. data/lib/zm/client/deprecated_constants.rb +36 -0
  52. data/lib/zm/client/distributionlist/distributionlist.rb +15 -47
  53. data/lib/zm/client/distributionlist/distributionlist_aces_collection.rb +4 -4
  54. data/lib/zm/client/distributionlist/distributionlist_aliases_collection.rb +7 -5
  55. data/lib/zm/client/distributionlist/distributionlist_jsns_builder.rb +29 -41
  56. data/lib/zm/client/distributionlist/distributionlist_jsns_initializer.rb +14 -3
  57. data/lib/zm/client/distributionlist/distributionlist_members_collection.rb +14 -10
  58. data/lib/zm/client/distributionlist/distributionlist_owners_collection.rb +13 -13
  59. data/lib/zm/client/distributionlist/distributionlists_collection.rb +15 -7
  60. data/lib/zm/client/distributionlist/dls_membership_collection.rb +8 -6
  61. data/lib/zm/client/document/document.rb +5 -11
  62. data/lib/zm/client/document/document_jsns_builder.rb +2 -2
  63. data/lib/zm/client/document/documents_collection.rb +4 -4
  64. data/lib/zm/client/domain/domain.rb +8 -25
  65. data/lib/zm/client/domain/domain_jsns_builder.rb +13 -13
  66. data/lib/zm/client/domain/domains_collection.rb +13 -6
  67. data/lib/zm/client/filter_rules/filter_rules_collection.rb +1 -1
  68. data/lib/zm/client/filter_rules/outgoing_filter_rules_collection.rb +1 -1
  69. data/lib/zm/client/folder/folder.rb +34 -21
  70. data/lib/zm/client/folder/folder_default.rb +39 -0
  71. data/lib/zm/client/folder/folder_grant_jsns_builder.rb +3 -3
  72. data/lib/zm/client/folder/folder_grants_collection.rb +1 -1
  73. data/lib/zm/client/folder/folder_jsns_builder.rb +12 -12
  74. data/lib/zm/client/folder/folder_jsns_initializer.rb +1 -1
  75. data/lib/zm/client/folder/folder_retention_policies_collection.rb +6 -2
  76. data/lib/zm/client/folder/folder_view.rb +15 -0
  77. data/lib/zm/client/folder/folders_jsns_builder.rb +1 -1
  78. data/lib/zm/client/folder/mod_document_folder.rb +16 -12
  79. data/lib/zm/client/identity/identities_collection.rb +1 -1
  80. data/lib/zm/client/identity/identity.rb +3 -9
  81. data/lib/zm/client/identity/identity_jsns_builder.rb +8 -8
  82. data/lib/zm/client/{base/ldap_filter.rb → ldap_filter.rb} +1 -1
  83. data/lib/zm/client/license/licenses_collection.rb +1 -1
  84. data/lib/zm/client/mailbox/mailbox_item_concern.rb +0 -2
  85. data/lib/zm/client/message/message.rb +14 -19
  86. data/lib/zm/client/message/message_attachments_collection.rb +39 -0
  87. data/lib/zm/client/message/message_flags_collection.rb +130 -0
  88. data/lib/zm/client/message/message_jsns_builder.rb +4 -8
  89. data/lib/zm/client/message/message_jsns_initializer.rb +4 -4
  90. data/lib/zm/client/message/message_recipients.rb +19 -43
  91. data/lib/zm/client/message/messages_collection.rb +20 -4
  92. data/lib/zm/client/mountpoint/{mountpoint.rb → mount_point.rb} +4 -10
  93. data/lib/zm/client/mountpoint/{mountpoint_jsns_builder.rb → mount_point_jsns_builder.rb} +3 -3
  94. data/lib/zm/client/mountpoint/{mountpoint_jsns_initializer.rb → mount_point_jsns_initializer.rb} +1 -1
  95. data/lib/zm/client/mountpoint/{mountpoints_builder.rb → mount_points_builder.rb} +1 -1
  96. data/lib/zm/client/mta_queue/mta_queue.rb +4 -16
  97. data/lib/zm/client/mta_queue/mta_queue_action.rb +12 -0
  98. data/lib/zm/client/mta_queue/mta_queue_jsns_builder.rb +7 -7
  99. data/lib/zm/client/mta_queue/mta_queue_name.rb +14 -0
  100. data/lib/zm/client/mta_queue/mta_queues_collection.rb +4 -3
  101. data/lib/zm/client/mta_queue_item/mta_queue_items_collection.rb +1 -0
  102. data/lib/zm/client/recipient.rb +21 -0
  103. data/lib/zm/client/{common/recipients.rb → recipients.rb} +0 -16
  104. data/lib/zm/client/resource/resource.rb +3 -7
  105. data/lib/zm/client/resource/resource_jsns_builder.rb +13 -13
  106. data/lib/zm/client/resource/resources_collection.rb +20 -7
  107. data/lib/zm/client/search_folder/search_folder.rb +4 -11
  108. data/lib/zm/client/search_folder/search_folder_jsns_builder.rb +6 -6
  109. data/lib/zm/client/search_folder/search_folders_collection.rb +1 -1
  110. data/lib/zm/client/server/server.rb +16 -22
  111. data/lib/zm/client/server/server_services.rb +26 -0
  112. data/lib/zm/client/server/servers_collection.rb +6 -6
  113. data/lib/zm/client/share/share.rb +2 -5
  114. data/lib/zm/client/share/shares_builder.rb +1 -1
  115. data/lib/zm/client/share/shares_collection.rb +5 -4
  116. data/lib/zm/client/signature/signature.rb +7 -13
  117. data/lib/zm/client/signature/signature_jsns_builder.rb +13 -13
  118. data/lib/zm/client/signature/signature_jsns_initializer.rb +2 -2
  119. data/lib/zm/client/signature/signatures_collection.rb +1 -1
  120. data/lib/zm/client/tag/account_object_tags_collection.rb +45 -47
  121. data/lib/zm/client/tag/tag.rb +3 -9
  122. data/lib/zm/client/tag/tag_jsns_builder.rb +3 -3
  123. data/lib/zm/client/tag/tags_builder.rb +1 -1
  124. data/lib/zm/client/tag/tags_collection.rb +2 -2
  125. data/lib/zm/client/task/task.rb +2 -2
  126. data/lib/zm/client/task/tasks_collection.rb +2 -2
  127. data/lib/zm/client/token.rb +4 -1
  128. data/lib/zm/client/upload.rb +179 -1
  129. data/lib/zm/client/{common/utils.rb → utils.rb} +6 -3
  130. data/lib/zm/client/zm_logger.rb +1 -1
  131. data/lib/zm/client.rb +227 -10
  132. data/lib/zm/connector/network_error_handler.rb +18 -0
  133. data/lib/zm/{client/connector → connector}/rest_connector.rb +46 -40
  134. data/lib/zm/{client/connector/soap_account.rb → connector/soap_account_connector.rb} +15 -17
  135. data/lib/zm/{client/connector/soap_admin.rb → connector/soap_admin_connector.rb} +3 -5
  136. data/lib/zm/connector/soap_base_connector.rb +115 -0
  137. data/lib/zm/connector.rb +13 -0
  138. data/lib/zm/error/auth_error.rb +8 -0
  139. data/lib/zm/error/connection_error.rb +8 -0
  140. data/lib/zm/error/rest_error.rb +8 -0
  141. data/lib/zm/{client/connector → error}/soap_error.rb +1 -10
  142. data/lib/zm/error/zm_error.rb +8 -0
  143. data/lib/zm/error.rb +11 -0
  144. data/lib/zm/relationship/has_many.rb +22 -0
  145. data/lib/zm/relationship/jsns_builder.rb +21 -0
  146. data/lib/zm/relationship/relationship.rb +113 -0
  147. data/lib/zm/relationship/schema.rb +32 -0
  148. data/lib/zm/relationship.rb +5 -0
  149. data/lib/zm/{client/soap_request → soap_request}/request_methods_admin.rb +11 -5
  150. data/lib/zm/{client/soap_request → soap_request}/request_methods_mailbox.rb +1 -1
  151. data/lib/zm/{client/soap_request/account_soap_constants.rb → soap_request/soap_account_constants.rb} +1 -1
  152. data/lib/zm/{client/soap_request/admin_soap_constants.rb → soap_request/soap_admin_constants.rb} +1 -1
  153. data/lib/zm/{client/soap_request → soap_request}/soap_constants.rb +1 -1
  154. data/lib/zm/{client/soap_request → soap_request}/soap_context.rb +13 -5
  155. data/lib/zm/{client/soap_request → soap_request}/soap_element.rb +1 -1
  156. data/lib/zm/{client/soap_request/mail_soap_constants.rb → soap_request/soap_mail_constants.rb} +1 -1
  157. data/lib/zm/soap_request.rb +14 -0
  158. data/lib/zm/support/cache/entry.rb +3 -3
  159. data/lib/zm/support/cache/file_store.rb +4 -6
  160. data/lib/zm/support/cache/null_store.rb +2 -4
  161. data/lib/zm/support/cache/store.rb +17 -9
  162. data/lib/zm/support/cache.rb +13 -8
  163. data/lib/zm/support.rb +7 -0
  164. data/lib/zm/{modules → utils}/belongs_to_folder.rb +1 -1
  165. data/lib/zm/{modules → utils}/belongs_to_tag.rb +2 -2
  166. data/lib/zm/utils/content_part.rb +9 -0
  167. data/lib/zm/utils/content_type.rb +11 -0
  168. data/lib/zm/{modules → utils}/has_soap_admin_connector.rb +1 -1
  169. data/lib/zm/utils/inspector.rb +26 -0
  170. data/lib/zm/utils/log_filter.rb +30 -0
  171. data/lib/zm/utils/missing_method_static_collection.rb +17 -0
  172. data/lib/zm/utils/regex.rb +11 -0
  173. data/lib/zm/utils/search_utils.rb +13 -0
  174. data/lib/zm/utils.rb +16 -0
  175. data/lib/zm-ruby-client.rb +12 -0
  176. data/sig/zm/client/admin_objects.rbs +261 -0
  177. data/sig/zm/client/base.rbs +191 -0
  178. data/sig/zm/client/cluster.rbs +152 -0
  179. data/sig/zm/client/mailbox.rbs +766 -0
  180. data/sig/zm/error.rbs +23 -0
  181. metadata +99 -91
  182. data/.gitignore +0 -59
  183. data/.rubocop.yml +0 -6
  184. data/.ruby-version +0 -1
  185. data/Gemfile +0 -11
  186. data/SECURITY.md +0 -21
  187. data/bin/console +0 -11
  188. data/lib/zm/client/account.rb +0 -9
  189. data/lib/zm/client/ace.rb +0 -7
  190. data/lib/zm/client/appointment.rb +0 -7
  191. data/lib/zm/client/backup.rb +0 -6
  192. data/lib/zm/client/base.rb +0 -21
  193. data/lib/zm/client/cluster.rb +0 -4
  194. data/lib/zm/client/common/message.rb +0 -10
  195. data/lib/zm/client/common.rb +0 -5
  196. data/lib/zm/client/connector/soap_base.rb +0 -104
  197. data/lib/zm/client/constant.rb +0 -229
  198. data/lib/zm/client/contact.rb +0 -11
  199. data/lib/zm/client/cos.rb +0 -10
  200. data/lib/zm/client/datasource.rb +0 -7
  201. data/lib/zm/client/distributionlist.rb +0 -8
  202. data/lib/zm/client/document.rb +0 -7
  203. data/lib/zm/client/domain.rb +0 -10
  204. data/lib/zm/client/filter_rule.rb +0 -7
  205. data/lib/zm/client/folder.rb +0 -14
  206. data/lib/zm/client/identity.rb +0 -7
  207. data/lib/zm/client/license.rb +0 -5
  208. data/lib/zm/client/message/attachments_collection.rb +0 -55
  209. data/lib/zm/client/message/message_flags.rb +0 -115
  210. data/lib/zm/client/message.rb +0 -10
  211. data/lib/zm/client/mountpoint.rb +0 -7
  212. data/lib/zm/client/mta_queue.rb +0 -7
  213. data/lib/zm/client/mta_queue_item.rb +0 -6
  214. data/lib/zm/client/resource.rb +0 -7
  215. data/lib/zm/client/search_folder.rb +0 -7
  216. data/lib/zm/client/server.rb +0 -7
  217. data/lib/zm/client/share.rb +0 -7
  218. data/lib/zm/client/signature.rb +0 -7
  219. data/lib/zm/client/soap_request.rb +0 -11
  220. data/lib/zm/client/tag.rb +0 -8
  221. data/lib/zm/client/task.rb +0 -6
  222. data/lib/zm/client/upload/upload.rb +0 -160
  223. data/lib/zm/modules/base.rb +0 -9
  224. data/lib/zm/modules/common/zimbra-attrs.json +0 -58
  225. data/lib/zm/modules/inspector.rb +0 -24
  226. data/lib/zm/modules/missing_method_static_collection.rb +0 -13
  227. data/lib/zm/modules/zm_model.rb +0 -43
  228. data/zm-ruby-client.gemspec +0 -27
  229. /data/lib/zm/client/mountpoint/{mountpoints_collection.rb → mount_points_collection.rb} +0 -0
@@ -1,104 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
- require 'openssl'
5
-
6
- require_relative 'soap_error'
7
-
8
- module Zm
9
- module Client
10
- class SoapBaseConnector
11
- BASESPACE = 'urn:zimbra'
12
- HTTP_HEADERS = {
13
- 'Content-Type' => 'application/json; charset=utf-8',
14
- 'User-Agent' => 'ZmRubyClient'
15
- }.freeze
16
-
17
- attr_reader :context
18
- attr_writer :logger, :cache, :timeout
19
-
20
- def initialize(url, soap_path)
21
- @verbose = false
22
- @timeout = 300
23
-
24
- @ssl_options = {
25
- verify: false,
26
- verify_hostname: false,
27
- verify_mode: OpenSSL::SSL::VERIFY_NONE
28
- }
29
-
30
- @url = url
31
- @soap_path = soap_path
32
-
33
- @context = SoapContext.new
34
- end
35
-
36
- def verbose!
37
- @verbose = true
38
- end
39
-
40
- def invoke(soap_element, error_handler = SoapError)
41
- do_request(envelope(soap_element), error_handler)[:Body]
42
- end
43
-
44
- def target_invoke(soap_element, target_id, error_handler = SoapError)
45
- @context.target_server(target_id)
46
- resp = invoke(soap_element, error_handler)
47
- @context.target_server(nil)
48
- resp
49
- end
50
-
51
- def http_client!
52
- @http_client = Faraday.new(
53
- url: @url,
54
- headers: HTTP_HEADERS,
55
- request: {
56
- timeout: @timeout
57
- },
58
- ssl: @ssl_options
59
- ) do |faraday|
60
- faraday.request :json
61
- faraday.response :logger, nil, { headers: true, bodies: true, errors: true } if @verbose
62
- end
63
- end
64
-
65
- private
66
-
67
- def http_client
68
- @http_client || http_client!
69
- end
70
-
71
- def do_request(body, error_handler = SoapError)
72
- json_body = body.to_json
73
- @logger.debug json_body
74
-
75
- # cache json response
76
- # no cache if response raise
77
- json_response = @cache.fetch(json_body) do
78
- @logger.debug 'Load from remote'
79
- response = http_client.post(@soap_path, json_body)
80
- @logger.debug response.body
81
-
82
- raise(error_handler, JSON.parse(response.body, symbolize_names: true)) if response.status >= 400
83
-
84
- response.body
85
- end
86
-
87
- JSON.parse(json_response, symbolize_names: true)
88
-
89
- # rescue Faraday::ConnectionFailed, SocketError => error
90
- # @logger.error "SoapConnectorError (#{error.class}): #{error.message}"
91
- # # raise error
92
- # {}
93
- # nil
94
- end
95
-
96
- def envelope(soap_element)
97
- {
98
- Body: soap_element.to_hash,
99
- Header: { context: context.to_hash, _jsns: BASESPACE }
100
- }
101
- end
102
- end
103
- end
104
- end
@@ -1,229 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Zm
4
- module Client
5
- COMMA = ','
6
- DOUBLEPOINT = ' :: '
7
-
8
- module Regex
9
- UUID_REGEX = /[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}/
10
- BASEDN_REGEX = /^uid=/
11
- SHARED_CONTACT = /[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}:[0-9]+/
12
- end
13
-
14
- module FolderDefault
15
- FolderData = Data.define(:id, :name, :path, :type)
16
-
17
- ROOT = FolderData.new(1, '', '/', 'unknown')
18
- INBOX = FolderData.new(2, 'Inbox', '/Inbox', 'message')
19
- TRASH = FolderData.new(3, 'Trash', '/Trash', 'unknown')
20
- JUNK = FolderData.new(4, 'Junk', '/Junk', 'message')
21
- SENT = FolderData.new(5, 'Sent', '/Sent', 'message')
22
- DRAFTS = FolderData.new(6, 'Drafts', '/Drafts', 'message')
23
- CONTACTS = FolderData.new(7, 'Contacts', '/Contacts', 'contact')
24
- CALENDAR = FolderData.new(10, 'Calendar', '/Calendar', 'appointment')
25
- EMAILED = FolderData.new(13, 'Emailed Contacts', '/Emailed Contacts', 'contact')
26
- CHATS = FolderData.new(14, 'Chats', '/Chats', 'message')
27
- TASKS = FolderData.new(15, 'Tasks', '/Tasks', 'task')
28
- BRIEFCASE = FolderData.new(16, 'Briefcase', '/Briefcase', 'document')
29
-
30
- ALL = [
31
- ROOT,
32
- BRIEFCASE,
33
- CALENDAR,
34
- CHATS,
35
- CONTACTS,
36
- DRAFTS,
37
- EMAILED,
38
- INBOX,
39
- JUNK,
40
- SENT,
41
- TASKS,
42
- TRASH
43
- ].freeze
44
-
45
- IDS = ALL.map(&:id).freeze
46
- end
47
-
48
- module ShareType
49
- VIEWER = :r
50
- MANAGER = :rwidx
51
- ADMIN = :rwidxa
52
- end
53
-
54
- module FolderView
55
- UNKNOWN = 'unknown'
56
- MESSAGE = 'message'
57
- APPOINTMENT = 'appointment'
58
- TASK = 'task'
59
- DOCUMENT = 'document'
60
- CONTACT = 'contact'
61
- ALL = [MESSAGE, APPOINTMENT, TASK, DOCUMENT, CONTACT].freeze
62
- end
63
-
64
- module FolderType
65
- FOLDER = :folder
66
- LINK = :link
67
- SEARCH = :search
68
- ALL = [FOLDER, LINK, SEARCH].freeze
69
- end
70
-
71
- module SoapUtils
72
- MAX_RESULT = 1_000_000
73
- ON = 1
74
- OFF = 0
75
- OFFSET = 0
76
- LIMIT_RESULT = 10_000
77
- end
78
-
79
- module SearchType
80
- ACCOUNT = :accounts
81
- DL = :distributionlists
82
- ALIAS = :aliases
83
- RESOURCE = :resources
84
- DOMAIN = :domains
85
- COS = :coses
86
-
87
- module Attributes
88
- ACCOUNT = %w[
89
- displayName
90
- zimbraId
91
- cn
92
- sn
93
- zimbraMailHost
94
- uid
95
- zimbraCOSId
96
- zimbraAccountStatus
97
- zimbraLastLogonTimestamp
98
- description
99
- zimbraIsSystemAccount
100
- zimbraIsDelegatedAdminAccount
101
- zimbraAuthTokenValidityValue
102
- zimbraMailStatus
103
- zimbraIsAdminAccount
104
- zimbraIsExternalVirtualAccount
105
- ].freeze
106
-
107
- DL = %w[
108
- displayName
109
- zimbraId
110
- zimbraMailHost
111
- uid
112
- description
113
- zimbraMailStatus
114
- zimbraMailAlias
115
- ].freeze
116
-
117
- ALIAS = %w[
118
- zimbraAliasTargetId
119
- zimbraId
120
- targetName
121
- uid
122
- type
123
- description
124
- zimbraIsDelegatedAdminAccount
125
- zimbraIsAdminAccount
126
- zimbraIsSystemResource
127
- zimbraIsSystemAccount
128
- zimbraIsExternalVirtualAccount
129
- ].freeze
130
-
131
- RESOURCE = %w[
132
- displayName
133
- zimbraId
134
- zimbraMailHost
135
- uid
136
- zimbraAccountStatus
137
- description
138
- zimbraCalResType
139
- zimbraIsDelegatedAdminAccount
140
- zimbraIsAdminAccount
141
- zimbraIsSystemResource
142
- zimbraIsSystemAccount
143
- zimbraIsExternalVirtualAccount
144
- ].freeze
145
-
146
- DOMAIN = %w[
147
- description
148
- zimbraDomainName
149
- zimbraDomainStatus
150
- zimbraId
151
- zimbraDomainType
152
- zimbraDomainDefaultCOSId
153
- ].freeze
154
-
155
- COS = %w[
156
- cn
157
- description
158
- zimbraMailHostPool
159
- zimbraMailQuota
160
- ].freeze
161
- end
162
- end
163
-
164
- module ServerServices
165
- AMAVIS = 'amavis'
166
- ANTIVIRUS = 'antivirus'
167
- ANTISPAM = 'antispam'
168
- OPENDKIM = 'opendkim'
169
- DNSCACHE = 'dnscache'
170
- LOGGER = 'logger'
171
- LDAP = 'ldap'
172
- SERVICE = 'service'
173
- ZIMBRA = 'zimbra'
174
- ZIMBRA_ADMIN = 'zimbraAdmin'
175
- ZIMLET = 'zimlet'
176
- MAILBOX = 'mailbox'
177
- MEMCACHED = 'memcached'
178
- SPELL = 'spell'
179
- MTA = 'mta'
180
- PROXY = 'proxy'
181
- STATS = 'stats'
182
- SNMP = 'snmp'
183
- end
184
-
185
- module MtaQueueName
186
- INCOMING = 'incoming'
187
- DEFERRED = 'deferred'
188
- CORRUPT = 'corrupt'
189
- ACTIVE = 'active'
190
- HOLD = 'hold'
191
- ALL = [INCOMING, DEFERRED, CORRUPT, ACTIVE, HOLD].freeze
192
- end
193
-
194
- module MtaQueueAction
195
- HOLD = 'hold'
196
- RELEASE = 'release'
197
- DELETE = 'delete'
198
- REQUEUE = 'requeue'
199
- end
200
-
201
- module BackupTypes
202
- FULL = 'full'
203
- INCREMENTAL = 'incremental'
204
- end
205
-
206
- module CountTypes
207
- USER_ACCOUNT = 'userAccount'
208
- ACCOUNT = 'account'
209
- ALIAS = 'alias'
210
- DL = 'dl'
211
- DOMAIN = 'domain'
212
- COS = 'cos'
213
- SERVER = 'server'
214
- RESOURCE = 'calresource'
215
- INTERNAL_USER_ACCOUNT = 'internalUserAccount'
216
- ALL = [USER_ACCOUNT, ACCOUNT, ALIAS, DL, DOMAIN, COS, SERVER, RESOURCE, INTERNAL_USER_ACCOUNT].freeze
217
- end
218
-
219
- module ContentType
220
- TEXT = 'text/plain'
221
- HTML = 'text/html'
222
- ALL = [TEXT, HTML].freeze
223
- end
224
-
225
- module ContentPart
226
- ALTERNATIVE = 'multipart/alternative'
227
- end
228
- end
229
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/contact/contact'
4
- require 'zm/client/contact/contact_members_collection'
5
- require 'zm/client/contact/mod_group_contact'
6
- require 'zm/client/contact/contact_jsns_initializer'
7
- require 'zm/client/contact/contact_jsns_builder'
8
- require 'zm/client/contact/group_contact_jsns_builder'
9
- require 'zm/client/contact/contact_member'
10
- require 'zm/client/contact/contacts_builder'
11
- require 'zm/client/contact/contacts_collection'
data/lib/zm/client/cos.rb DELETED
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/cos/cos'
4
- require 'zm/client/cos/cos_jsns_initializer'
5
- require 'zm/client/cos/cos_jsns_builder'
6
- require 'zm/client/cos/coses_builder'
7
- require 'zm/client/cos/coses_collection'
8
- require 'zm/client/cos/cos_servers_collection'
9
- require 'zm/client/cos/cos_domains_collection'
10
- require 'zm/client/cos/cos_accounts_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/datasource/datasource'
4
- require 'zm/client/datasource/datasource_jsns_initializer'
5
- require 'zm/client/datasource/datasource_jsns_builder'
6
- require 'zm/client/datasource/datasources_builder'
7
- require 'zm/client/datasource/datasources_collection'
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/distributionlist/distributionlist'
4
- require 'zm/client/distributionlist/distributionlist_jsns_builder'
5
- require 'zm/client/distributionlist/distributionlist_jsns_initializer'
6
- require 'zm/client/distributionlist/distributionlists_builder'
7
- require 'zm/client/distributionlist/distributionlists_collection'
8
- require 'zm/client/distributionlist/dls_membership_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/document/document'
4
- require 'zm/client/document/document_jsns_initializer'
5
- require 'zm/client/document/document_jsns_builder'
6
- require 'zm/client/document/documents_builder'
7
- require 'zm/client/document/documents_collection'
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/domain/domain'
4
- require 'zm/client/domain/domains_builder'
5
- require 'zm/client/domain/domain_jsns_builder'
6
- require 'zm/client/domain/domain_jsns_initializer'
7
- require 'zm/client/domain/domains_collection'
8
- require 'zm/client/domain/domain_accounts_collection'
9
- require 'zm/client/domain/domain_distributionlists_collection'
10
- require 'zm/client/domain/domain_resources_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/filter_rules/filter_rule'
4
- require 'zm/client/filter_rules/filter_rule_jsns_initializer'
5
- require 'zm/client/filter_rules/filter_rules_builder'
6
- require 'zm/client/filter_rules/filter_rules_collection'
7
- require 'zm/client/filter_rules/outgoing_filter_rules_collection'
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/folder/folder'
4
- require 'zm/client/folder/folder_jsns_builder'
5
- require 'zm/client/folder/folder_jsns_initializer'
6
- require 'zm/client/folder/folders_jsns_builder'
7
- require 'zm/client/folder/folder_grant'
8
- require 'zm/client/folder/folder_grants_collection'
9
- require 'zm/client/folder/folder_grant_jsns_builder'
10
- require 'zm/client/folder/folder_retention_policy'
11
- require 'zm/client/folder/folder_retention_policies_collection'
12
- require 'zm/client/folder/folders_builder'
13
- require 'zm/client/folder/folders_collection'
14
- require 'zm/client/folder/mod_document_folder'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/identity/identity'
4
- require 'zm/client/identity/identity_jsns_builder'
5
- require 'zm/client/identity/identity_jsns_initializer'
6
- require 'zm/client/identity/identities_builder'
7
- require 'zm/client/identity/identities_collection'
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/license/license'
4
- require 'zm/client/license/license_jsns_initializer'
5
- require 'zm/client/license/licenses_collection'
@@ -1,55 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Zm
4
- module Client
5
- class Message
6
- # collection attachments
7
- class AttachmentsCollection
8
- include MissingMethodStaticCollection
9
-
10
- attr_reader :all
11
-
12
- def initialize
13
- @all = []
14
- end
15
-
16
- def add(attachment)
17
- return unless attachment.is_a?(Attachment)
18
-
19
- @all.push(attachment)
20
- end
21
- end
22
-
23
- # class attachment for email
24
- class Attachment
25
- attr_accessor :aid, :part, :mid, :ct, :s, :filename, :ci, :cd
26
-
27
- def initialize(parent)
28
- @parent = parent
29
- yield(self) if block_given?
30
- end
31
-
32
- def download(dest_file_path)
33
- h = {
34
- id: @parent.id,
35
- part: part,
36
- auth: 'qp',
37
- zauthtoken: account.token,
38
- disp: 'a'
39
- }
40
-
41
- url = account.home_url
42
-
43
- url << '?' << h.map { |k, v| "#{k}=#{v}" }.join('&')
44
-
45
- uploader = @parent.build_uploader
46
- uploader.download_file_with_url(url, dest_file_path)
47
- end
48
-
49
- def account
50
- @parent.parent
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,115 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Zm
4
- module Client
5
- # class message for account
6
- class Message
7
- class FlagsCollection
8
- def initialize(parent)
9
- @parent = parent
10
- end
11
-
12
- def all
13
- @all ||= @parent.f.to_s.chars
14
- end
15
-
16
- # properties
17
-
18
- def unread?
19
- all.include?('u')
20
- end
21
-
22
- def flagged?
23
- all.include?('f')
24
- end
25
-
26
- def attachment?
27
- all.include?('a')
28
- end
29
-
30
- def replied
31
- all.include?('r')
32
- end
33
-
34
- def sent_by_me?
35
- all.include?('s')
36
- end
37
-
38
- def forwarded?
39
- all.include?('w')
40
- end
41
-
42
- def calendar_invite?
43
- all.include?('v')
44
- end
45
-
46
- def draft?
47
- all.include?('d')
48
- end
49
-
50
- def imap_deleted?
51
- all.include?('x')
52
- end
53
-
54
- def notification?
55
- all.include?('n')
56
- end
57
-
58
- def urgent?
59
- all.include?('!')
60
- end
61
-
62
- def low_priority?
63
- all.include?('?')
64
- end
65
-
66
- def priority?
67
- all.include?('+')
68
- end
69
-
70
- # actions
71
-
72
- def unread!
73
- @parent.soap_connector.invoke(build_unread)
74
- end
75
-
76
- def build_unread
77
- build({ op: '!read', id: @parent.id })
78
- end
79
-
80
- def read!
81
- @parent.soap_connector.invoke(build_read)
82
- end
83
-
84
- def build_read
85
- build({ op: 'read', id: @parent.id })
86
- end
87
-
88
- def unflag!
89
- @parent.soap_connector.invoke(build_unflag)
90
- end
91
-
92
- def build_unflag
93
- build({ op: '!flag', id: @parent.id })
94
- end
95
-
96
- def flag!
97
- @parent.soap_connector.invoke(build_flag)
98
- end
99
-
100
- def build_flag
101
- build({ op: 'flag', id: @parent.id })
102
- end
103
-
104
- private
105
-
106
- def build(attrs)
107
- soap_request = SoapElement.mail(SoapMailConstants::ITEM_ACTION_REQUEST)
108
- node_action = SoapElement.create(SoapConstants::ACTION).add_attributes(attrs)
109
- soap_request.add_node(node_action)
110
- soap_request
111
- end
112
- end
113
- end
114
- end
115
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/message/message'
4
- require 'zm/client/message/message_flags'
5
- require 'zm/client/message/message_recipients'
6
- require 'zm/client/message/attachments_collection'
7
- require 'zm/client/message/message_jsns_builder'
8
- require 'zm/client/message/message_jsns_initializer'
9
- require 'zm/client/message/messages_builder'
10
- require 'zm/client/message/messages_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/mountpoint/mountpoint'
4
- require 'zm/client/mountpoint/mountpoint_jsns_builder'
5
- require 'zm/client/mountpoint/mountpoint_jsns_initializer'
6
- require 'zm/client/mountpoint/mountpoints_builder'
7
- require 'zm/client/mountpoint/mountpoints_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/mta_queue/mta_queue'
4
- require 'zm/client/mta_queue/mta_queue_jsns_initializer'
5
- require 'zm/client/mta_queue/mta_queue_jsns_builder'
6
- require 'zm/client/mta_queue/mta_queues_builder'
7
- require 'zm/client/mta_queue/mta_queues_collection'
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/mta_queue_item/mta_queue_item'
4
- require 'zm/client/mta_queue_item/mta_queue_item_jsns_initializer'
5
- require 'zm/client/mta_queue_item/mta_queue_items_builder'
6
- require 'zm/client/mta_queue_item/mta_queue_items_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/resource/resource'
4
- require 'zm/client/resource/resource_jsns_builder'
5
- require 'zm/client/resource/resource_jsns_initializer'
6
- require 'zm/client/resource/resources_builder'
7
- require 'zm/client/resource/resources_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/search_folder/search_folder'
4
- require 'zm/client/search_folder/search_folder_jsns_builder'
5
- require 'zm/client/search_folder/search_folder_jsns_initializer'
6
- require 'zm/client/search_folder/search_folders_builder'
7
- require 'zm/client/search_folder/search_folders_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/server/server'
4
- require 'zm/client/server/server_jsns_initializer'
5
- require 'zm/client/server/servers_builder'
6
- require 'zm/client/server/servers_collection'
7
- require 'zm/client/server/server_accounts_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/share/share'
4
- require 'zm/client/share/share_jsns_initializer'
5
- require 'zm/client/share/shares_builder'
6
- require 'zm/client/share/shares_collection'
7
- require 'zm/client/share/share_mountpoints_collection'
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'zm/client/signature/signature'
4
- require 'zm/client/signature/signature_jsns_builder'
5
- require 'zm/client/signature/signature_jsns_initializer'
6
- require 'zm/client/signature/signatures_builder'
7
- require 'zm/client/signature/signatures_collection'