lumberg 1.0.1 → 2.0.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.
Files changed (306) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +1 -1
  3. data/README.md +184 -70
  4. data/Rakefile +3 -1
  5. data/lib/lumberg/config.rb +19 -0
  6. data/lib/lumberg/cpanel/addon_domain.rb +50 -0
  7. data/lib/lumberg/cpanel/backups.rb +16 -0
  8. data/lib/lumberg/cpanel/base.rb +56 -0
  9. data/lib/lumberg/cpanel/box_trapper.rb +18 -0
  10. data/lib/lumberg/cpanel/branding.rb +89 -0
  11. data/lib/lumberg/cpanel/contact.rb +38 -0
  12. data/lib/lumberg/cpanel/cron.rb +89 -0
  13. data/lib/lumberg/cpanel/dns_lookup.rb +23 -0
  14. data/lib/lumberg/cpanel/domain_keys.rb +37 -0
  15. data/lib/lumberg/cpanel/domain_lookup.rb +71 -0
  16. data/lib/lumberg/cpanel/email.rb +522 -0
  17. data/lib/lumberg/cpanel/file_manager.rb +146 -0
  18. data/lib/lumberg/cpanel/ftp.rb +101 -0
  19. data/lib/lumberg/cpanel/gpg.rb +36 -0
  20. data/lib/lumberg/cpanel/locale.rb +15 -0
  21. data/lib/lumberg/cpanel/mime.rb +34 -0
  22. data/lib/lumberg/cpanel/mysql.rb +66 -0
  23. data/lib/lumberg/cpanel/mysql_db.rb +190 -0
  24. data/lib/lumberg/cpanel/net.rb +28 -0
  25. data/lib/lumberg/cpanel/park.rb +58 -0
  26. data/lib/lumberg/cpanel/password.rb +52 -0
  27. data/lib/lumberg/cpanel/password_strength.rb +63 -0
  28. data/lib/lumberg/cpanel/random_data.rb +25 -0
  29. data/lib/lumberg/cpanel/redirect.rb +44 -0
  30. data/lib/lumberg/cpanel/ssl.rb +220 -0
  31. data/lib/lumberg/cpanel/sub_domain.rb +61 -0
  32. data/lib/lumberg/cpanel/support.rb +29 -0
  33. data/lib/lumberg/cpanel/zone_edit.rb +134 -0
  34. data/lib/lumberg/cpanel.rb +32 -0
  35. data/lib/lumberg/format_whm.rb +162 -0
  36. data/lib/lumberg/version.rb +1 -1
  37. data/lib/lumberg/whm/account.rb +29 -106
  38. data/lib/lumberg/whm/base.rb +3 -7
  39. data/lib/lumberg/whm/cert.rb +88 -0
  40. data/lib/lumberg/whm/dns.rb +49 -77
  41. data/lib/lumberg/whm/reseller.rb +25 -118
  42. data/lib/lumberg/whm/server.rb +163 -222
  43. data/lib/lumberg/whm/transfer_tool.rb +165 -0
  44. data/lib/lumberg/whm.rb +11 -9
  45. data/lib/lumberg/whostmgr/base.rb +13 -0
  46. data/lib/lumberg/whostmgr/ssl.rb +57 -0
  47. data/lib/lumberg/whostmgr.rb +6 -0
  48. data/lib/lumberg.rb +35 -8
  49. data/spec/config_spec.rb +28 -0
  50. data/spec/cpanel/addon_domain_spec.rb +84 -0
  51. data/spec/cpanel/backups_spec.rb +22 -0
  52. data/spec/cpanel/base_spec.rb +128 -0
  53. data/spec/cpanel/box_trapper_spec.rb +22 -0
  54. data/spec/cpanel/branding_spec.rb +46 -0
  55. data/spec/cpanel/contact_spec.rb +50 -0
  56. data/spec/cpanel/cron_spec.rb +161 -0
  57. data/spec/cpanel/dns_lookup_spec.rb +22 -0
  58. data/spec/cpanel/domain_keys_spec.rb +46 -0
  59. data/spec/cpanel/domain_lookup_spec.rb +77 -0
  60. data/spec/cpanel/email_spec.rb +639 -0
  61. data/spec/cpanel/file_manager_spec.rb +73 -0
  62. data/spec/cpanel/ftp_spec.rb +71 -0
  63. data/spec/cpanel/gpg_spec.rb +48 -0
  64. data/spec/cpanel/locale_spec.rb +23 -0
  65. data/spec/cpanel/mime_spec.rb +0 -0
  66. data/spec/cpanel/mysql_db_spec.rb +119 -0
  67. data/spec/cpanel/mysql_spec.rb +0 -0
  68. data/spec/cpanel/net_spec.rb +30 -0
  69. data/spec/cpanel/park_spec.rb +94 -0
  70. data/spec/cpanel/password_spec.rb +35 -0
  71. data/spec/cpanel/password_strength_spec.rb +50 -0
  72. data/spec/cpanel/random_data_spec.rb +24 -0
  73. data/spec/cpanel/redirect_spec.rb +0 -0
  74. data/spec/cpanel/ssl_spec.rb +158 -0
  75. data/spec/cpanel/sub_domain_spec.rb +72 -0
  76. data/spec/cpanel/support_spec.rb +38 -0
  77. data/spec/cpanel/zone_edit_spec.rb +0 -0
  78. data/spec/format_whm_spec.rb +53 -0
  79. data/spec/sample_certs/cpanel.crt +28 -0
  80. data/spec/sample_certs/cpanel.key +28 -0
  81. data/spec/sample_certs/main.crt +27 -0
  82. data/spec/sample_certs/sample.crt +26 -0
  83. data/spec/sample_certs/sample.key +27 -0
  84. data/spec/spec_helper.rb +10 -3
  85. data/spec/support/cpanel_matchers.rb +17 -0
  86. data/spec/vcr_cassettes/cpanel/addon_domain/add.yml +77 -0
  87. data/spec/vcr_cassettes/cpanel/addon_domain/list.yml +77 -0
  88. data/spec/vcr_cassettes/cpanel/addon_domain/remove.yml +77 -0
  89. data/spec/vcr_cassettes/cpanel/backups/list.yml +40 -0
  90. data/spec/vcr_cassettes/cpanel/box_trapper/list.yml +40 -0
  91. data/spec/vcr_cassettes/cpanel/branding/list_icons.yml +40 -0
  92. data/spec/vcr_cassettes/cpanel/branding/list_image_types.yml +40 -0
  93. data/spec/vcr_cassettes/cpanel/branding/list_object_types.yml +40 -0
  94. data/spec/vcr_cassettes/cpanel/branding/list_pkgs.yml +40 -0
  95. data/spec/vcr_cassettes/cpanel/branding/list_sprites.yml +40 -0
  96. data/spec/vcr_cassettes/cpanel/contact/show.yml +40 -0
  97. data/spec/vcr_cassettes/cpanel/contact/update.yml +40 -0
  98. data/spec/vcr_cassettes/cpanel/cron/add.yml +77 -0
  99. data/spec/vcr_cassettes/cpanel/cron/edit.yml +114 -0
  100. data/spec/vcr_cassettes/cpanel/cron/email.yml +77 -0
  101. data/spec/vcr_cassettes/cpanel/cron/list.yml +77 -0
  102. data/spec/vcr_cassettes/cpanel/cron/remove.yml +151 -0
  103. data/spec/vcr_cassettes/cpanel/cron/set_email.yml +77 -0
  104. data/spec/vcr_cassettes/cpanel/dns_lookup/name_to_ip.yml +40 -0
  105. data/spec/vcr_cassettes/cpanel/domain_keys/add.yml +40 -0
  106. data/spec/vcr_cassettes/cpanel/domain_keys/available.yml +40 -0
  107. data/spec/vcr_cassettes/cpanel/domain_keys/installed.yml +40 -0
  108. data/spec/vcr_cassettes/cpanel/domain_keys/remove.yml +40 -0
  109. data/spec/vcr_cassettes/cpanel/domain_lookup/count.yml +40 -0
  110. data/spec/vcr_cassettes/cpanel/domain_lookup/docroot.yml +40 -0
  111. data/spec/vcr_cassettes/cpanel/domain_lookup/docroots.yml +40 -0
  112. data/spec/vcr_cassettes/cpanel/domain_lookup/document_root.yml +40 -0
  113. data/spec/vcr_cassettes/cpanel/domain_lookup/document_roots.yml +40 -0
  114. data/spec/vcr_cassettes/cpanel/domain_lookup/list.yml +40 -0
  115. data/spec/vcr_cassettes/cpanel/email/acceptable_encodings.yml +40 -0
  116. data/spec/vcr_cassettes/cpanel/email/accounts.yml +188 -0
  117. data/spec/vcr_cassettes/cpanel/email/add_account.yml +77 -0
  118. data/spec/vcr_cassettes/cpanel/email/add_filter.yml +77 -0
  119. data/spec/vcr_cassettes/cpanel/email/add_forwarder.yml +77 -0
  120. data/spec/vcr_cassettes/cpanel/email/add_mailing_list.yml +73 -0
  121. data/spec/vcr_cassettes/cpanel/email/add_mx.yml +40 -0
  122. data/spec/vcr_cassettes/cpanel/email/change_mx.yml +40 -0
  123. data/spec/vcr_cassettes/cpanel/email/change_password.yml +43 -0
  124. data/spec/vcr_cassettes/cpanel/email/check_local_delivery_local.yml +77 -0
  125. data/spec/vcr_cassettes/cpanel/email/check_local_delivery_remote.yml +77 -0
  126. data/spec/vcr_cassettes/cpanel/email/default_address.yml +40 -0
  127. data/spec/vcr_cassettes/cpanel/email/delete_mx.yml +40 -0
  128. data/spec/vcr_cassettes/cpanel/email/disk_usage.yml +77 -0
  129. data/spec/vcr_cassettes/cpanel/email/domains.yml +40 -0
  130. data/spec/vcr_cassettes/cpanel/email/domains_with_aliases.yml +77 -0
  131. data/spec/vcr_cassettes/cpanel/email/edit_quota.yml +112 -0
  132. data/spec/vcr_cassettes/cpanel/email/filters.yml +114 -0
  133. data/spec/vcr_cassettes/cpanel/email/forwarders.yml +77 -0
  134. data/spec/vcr_cassettes/cpanel/email/mail_dir.yml +77 -0
  135. data/spec/vcr_cassettes/cpanel/email/mail_dirs.yml +77 -0
  136. data/spec/vcr_cassettes/cpanel/email/mailing_lists.yml +73 -0
  137. data/spec/vcr_cassettes/cpanel/email/main_discard.yml +40 -0
  138. data/spec/vcr_cassettes/cpanel/email/mx.yml +40 -0
  139. data/spec/vcr_cassettes/cpanel/email/remove.yml +77 -0
  140. data/spec/vcr_cassettes/cpanel/email/set_default_address.yml +43 -0
  141. data/spec/vcr_cassettes/cpanel/email/set_mail_delivery_local.yml +77 -0
  142. data/spec/vcr_cassettes/cpanel/email/set_mail_delivery_remote.yml +77 -0
  143. data/spec/vcr_cassettes/cpanel/email/set_mx_type.yml +40 -0
  144. data/spec/vcr_cassettes/cpanel/file_manager/disk_usage.yml +38 -0
  145. data/spec/vcr_cassettes/cpanel/file_manager/list.yml +38 -0
  146. data/spec/vcr_cassettes/cpanel/file_manager/operate.yml +77 -0
  147. data/spec/vcr_cassettes/cpanel/file_manager/show.yml +40 -0
  148. data/spec/vcr_cassettes/cpanel/file_manager/stat.yml +38 -0
  149. data/spec/vcr_cassettes/cpanel/ftp/addftp.yml +43 -0
  150. data/spec/vcr_cassettes/cpanel/ftp/delftp.yml +43 -0
  151. data/spec/vcr_cassettes/cpanel/ftp/listftp.yml +43 -0
  152. data/spec/vcr_cassettes/cpanel/ftp/listftpsessions.yml +43 -0
  153. data/spec/vcr_cassettes/cpanel/ftp/listftpwithdisk.yml +95 -0
  154. data/spec/vcr_cassettes/cpanel/ftp/passwd.yml +43 -0
  155. data/spec/vcr_cassettes/cpanel/ftp/setquota.yml +43 -0
  156. data/spec/vcr_cassettes/cpanel/gpg/count.yml +40 -0
  157. data/spec/vcr_cassettes/cpanel/gpg/count_private.yml +40 -0
  158. data/spec/vcr_cassettes/cpanel/gpg/list.yml +40 -0
  159. data/spec/vcr_cassettes/cpanel/gpg/list_private.yml +40 -0
  160. data/spec/vcr_cassettes/cpanel/locale/show.yml +40 -0
  161. data/spec/vcr_cassettes/cpanel/mysql_db/add_db.yml +42 -0
  162. data/spec/vcr_cassettes/cpanel/mysql_db/add_host.yml +42 -0
  163. data/spec/vcr_cassettes/cpanel/mysql_db/add_user.yml +42 -0
  164. data/spec/vcr_cassettes/cpanel/mysql_db/add_user_db.yml +42 -0
  165. data/spec/vcr_cassettes/cpanel/mysql_db/check_db.yml +42 -0
  166. data/spec/vcr_cassettes/cpanel/mysql_db/del_db.yml +42 -0
  167. data/spec/vcr_cassettes/cpanel/mysql_db/del_host.yml +42 -0
  168. data/spec/vcr_cassettes/cpanel/mysql_db/del_user.yml +42 -0
  169. data/spec/vcr_cassettes/cpanel/mysql_db/del_user_db.yml +42 -0
  170. data/spec/vcr_cassettes/cpanel/mysql_db/init_cache.yml +42 -0
  171. data/spec/vcr_cassettes/cpanel/mysql_db/number_of_dbs.yml +42 -0
  172. data/spec/vcr_cassettes/cpanel/mysql_db/repair_db.yml +42 -0
  173. data/spec/vcr_cassettes/cpanel/mysql_db/update_privs.yml +42 -0
  174. data/spec/vcr_cassettes/cpanel/net/query_hostname.yml +40 -0
  175. data/spec/vcr_cassettes/cpanel/net/traceroute.yml +40 -0
  176. data/spec/vcr_cassettes/cpanel/park/add.yml +77 -0
  177. data/spec/vcr_cassettes/cpanel/park/list.yml +77 -0
  178. data/spec/vcr_cassettes/cpanel/park/list_addon_domains.yml +77 -0
  179. data/spec/vcr_cassettes/cpanel/park/remove.yml +77 -0
  180. data/spec/vcr_cassettes/cpanel/password/digest_authentication.yml +77 -0
  181. data/spec/vcr_cassettes/cpanel/password/modify.yml +77 -0
  182. data/spec/vcr_cassettes/cpanel/password_strength/all_required_strengths.yml +43 -0
  183. data/spec/vcr_cassettes/cpanel/password_strength/required_strength.yml +43 -0
  184. data/spec/vcr_cassettes/cpanel/password_strength/strength.yml +83 -0
  185. data/spec/vcr_cassettes/cpanel/random_data/show.yml +40 -0
  186. data/spec/vcr_cassettes/cpanel/ssl/fetchcabundle.yml +40 -0
  187. data/spec/vcr_cassettes/cpanel/ssl/gencrt.yml +43 -0
  188. data/spec/vcr_cassettes/cpanel/ssl/gencsr.yml +43 -0
  189. data/spec/vcr_cassettes/cpanel/ssl/genkey.yml +40 -0
  190. data/spec/vcr_cassettes/cpanel/ssl/installssl.yml +40 -0
  191. data/spec/vcr_cassettes/cpanel/ssl/listcrts.yml +40 -0
  192. data/spec/vcr_cassettes/cpanel/ssl/listcsrs.yml +40 -0
  193. data/spec/vcr_cassettes/cpanel/ssl/listkeys.yml +40 -0
  194. data/spec/vcr_cassettes/cpanel/ssl/listsslitems.yml +40 -0
  195. data/spec/vcr_cassettes/cpanel/ssl/remove.yml +43 -0
  196. data/spec/vcr_cassettes/cpanel/ssl/showcrt.yml +38 -0
  197. data/spec/vcr_cassettes/cpanel/ssl/showcsr.yml +38 -0
  198. data/spec/vcr_cassettes/cpanel/ssl/showkey.yml +38 -0
  199. data/spec/vcr_cassettes/cpanel/ssl/uploadcrt.yml +40 -0
  200. data/spec/vcr_cassettes/cpanel/sub_domain/add.yml +77 -0
  201. data/spec/vcr_cassettes/cpanel/sub_domain/list.yml +77 -0
  202. data/spec/vcr_cassettes/cpanel/sub_domain/remove.yml +77 -0
  203. data/spec/vcr_cassettes/cpanel/support/contactable.yml +40 -0
  204. data/spec/vcr_cassettes/whm/account/accountsummary.yml +41 -29
  205. data/spec/vcr_cassettes/whm/account/changepackage.yml +73 -43
  206. data/spec/vcr_cassettes/whm/account/createacct.yml +101 -31
  207. data/spec/vcr_cassettes/whm/account/domainuserdata.yml +43 -29
  208. data/spec/vcr_cassettes/whm/account/editquota.yml +78 -57
  209. data/spec/vcr_cassettes/whm/account/limitbw.yml +79 -57
  210. data/spec/vcr_cassettes/whm/account/listaccts.yml +195 -100
  211. data/spec/vcr_cassettes/whm/account/listsuspended.yml +41 -29
  212. data/spec/vcr_cassettes/whm/account/modifyacct.yml +61 -42
  213. data/spec/vcr_cassettes/whm/account/myprivs.yml +41 -29
  214. data/spec/vcr_cassettes/whm/account/passwd.yml +44 -29
  215. data/spec/vcr_cassettes/whm/account/removeacct.yml +134 -57
  216. data/spec/vcr_cassettes/whm/account/restoreaccount.yml +310 -135
  217. data/spec/vcr_cassettes/whm/account/setsiteip.yml +166 -127
  218. data/spec/vcr_cassettes/whm/account/suspend.yml +75 -43
  219. data/spec/vcr_cassettes/whm/account/unsuspend.yml +46 -29
  220. data/spec/vcr_cassettes/whm/cert/fetch_ssl_vhosts.yml +44 -0
  221. data/spec/vcr_cassettes/whm/cert/fetchsslinfo.yml +38 -0
  222. data/spec/vcr_cassettes/whm/cert/generatessl.yml +94 -0
  223. data/spec/vcr_cassettes/whm/cert/installssl.yml +38 -0
  224. data/spec/vcr_cassettes/whm/cert/listcrts.yml +38 -0
  225. data/spec/vcr_cassettes/whm/dns/adddns.yml +61 -43
  226. data/spec/vcr_cassettes/whm/dns/addzonerecord.yml +42 -29
  227. data/spec/vcr_cassettes/whm/dns/dumpzone.yml +44 -29
  228. data/spec/vcr_cassettes/whm/dns/editzonerecord.yml +61 -43
  229. data/spec/vcr_cassettes/whm/dns/getzonerecord.yml +60 -43
  230. data/spec/vcr_cassettes/whm/dns/killdns.yml +42 -29
  231. data/spec/vcr_cassettes/whm/dns/listmxs.yml +23 -15
  232. data/spec/vcr_cassettes/whm/dns/listzones.yml +22 -15
  233. data/spec/vcr_cassettes/whm/dns/lookupnsip.yml +40 -29
  234. data/spec/vcr_cassettes/whm/dns/removezonerecord.yml +61 -43
  235. data/spec/vcr_cassettes/whm/dns/resetzone.yml +42 -29
  236. data/spec/vcr_cassettes/whm/dns/resolvedomainname.yml +40 -29
  237. data/spec/vcr_cassettes/whm/dns/savemxs.yml +23 -15
  238. data/spec/vcr_cassettes/whm/reseller/acctcounts.yml +41 -29
  239. data/spec/vcr_cassettes/whm/reseller/listacls.yml +22 -15
  240. data/spec/vcr_cassettes/whm/reseller/listresellers.yml +22 -15
  241. data/spec/vcr_cassettes/whm/reseller/resellerstats.yml +42 -29
  242. data/spec/vcr_cassettes/whm/reseller/saveacllist.yml +76 -57
  243. data/spec/vcr_cassettes/whm/reseller/setacls.yml +40 -29
  244. data/spec/vcr_cassettes/whm/reseller/setresellerips.yml +42 -28
  245. data/spec/vcr_cassettes/whm/reseller/setresellerlimits.yml +41 -29
  246. data/spec/vcr_cassettes/whm/reseller/setresellermainip.yml +59 -43
  247. data/spec/vcr_cassettes/whm/reseller/setresellernameservers.yml +58 -43
  248. data/spec/vcr_cassettes/whm/reseller/setresellerpackagelimit.yml +61 -43
  249. data/spec/vcr_cassettes/whm/reseller/setupreseller.yml +41 -29
  250. data/spec/vcr_cassettes/whm/reseller/suspendreseller.yml +75 -44
  251. data/spec/vcr_cassettes/whm/reseller/terminatereseller.yml +83 -46
  252. data/spec/vcr_cassettes/whm/reseller/unsetupreseller.yml +41 -29
  253. data/spec/vcr_cassettes/whm/reseller/unsuspendreseller.yml +46 -29
  254. data/spec/vcr_cassettes/whm/server/addip.yml +24 -15
  255. data/spec/vcr_cassettes/whm/server/applist.yml +22 -15
  256. data/spec/vcr_cassettes/whm/server/delip.yml +23 -15
  257. data/spec/vcr_cassettes/whm/server/disk_usage.yml +45 -0
  258. data/spec/vcr_cassettes/whm/server/edit_hook.yml +44 -0
  259. data/spec/vcr_cassettes/whm/server/gethostname.yml +22 -15
  260. data/spec/vcr_cassettes/whm/server/getlanglist.yml +22 -15
  261. data/spec/vcr_cassettes/whm/server/gettweaksetting.yml +44 -0
  262. data/spec/vcr_cassettes/whm/server/list_hooks.yml +44 -0
  263. data/spec/vcr_cassettes/whm/server/listips.yml +22 -15
  264. data/spec/vcr_cassettes/whm/server/loadavg.yml +26 -19
  265. data/spec/vcr_cassettes/whm/server/lookup_nameserver_ip.yml +44 -0
  266. data/spec/vcr_cassettes/whm/server/my_function.yml +59 -43
  267. data/spec/vcr_cassettes/whm/server/nvget.yml +22 -15
  268. data/spec/vcr_cassettes/whm/server/nvset.yml +22 -15
  269. data/spec/vcr_cassettes/whm/server/reboot.yml +22 -15
  270. data/spec/vcr_cassettes/whm/server/sethostname.yml +24 -15
  271. data/spec/vcr_cassettes/whm/server/setresolvers.yml +23 -15
  272. data/spec/vcr_cassettes/whm/server/settweaksetting.yml +44 -0
  273. data/spec/vcr_cassettes/whm/server/showbw.yml +22 -15
  274. data/spec/vcr_cassettes/whm/server/systemloadavg.yml +40 -29
  275. data/spec/vcr_cassettes/whm/server/themes.yml +38 -0
  276. data/spec/vcr_cassettes/whm/server/version.yml +22 -15
  277. data/spec/vcr_cassettes/whm/transfer_tool/check.yml +44 -0
  278. data/spec/vcr_cassettes/whm/transfer_tool/create.yml +72 -0
  279. data/spec/vcr_cassettes/whm/transfer_tool/enqueue.yml +44 -0
  280. data/spec/vcr_cassettes/whm/transfer_tool/pause.yml +44 -0
  281. data/spec/vcr_cassettes/whm/transfer_tool/show_log.yml +44 -0
  282. data/spec/vcr_cassettes/whm/transfer_tool/start.yml +44 -0
  283. data/spec/vcr_cassettes/whm/transfer_tool/status.yml +44 -0
  284. data/spec/vcr_cassettes/whm/transfer_tool/validate_user.yml +44 -0
  285. data/spec/vcr_cassettes/whostmgr/ssl/create.yml +219 -0
  286. data/spec/vcr_cassettes/whostmgr/ssl/remove.yml +172 -0
  287. data/spec/vcr_cassettes/whostmgr/ssl/remove_data.yml +179 -0
  288. data/spec/whm/account_spec.rb +90 -249
  289. data/spec/whm/base_spec.rb +3 -7
  290. data/spec/whm/cert_spec.rb +110 -0
  291. data/spec/whm/dns_spec.rb +37 -155
  292. data/spec/whm/reseller_spec.rb +46 -114
  293. data/spec/whm/server_spec.rb +142 -156
  294. data/spec/whm/transfer_tool_spec.rb +172 -0
  295. data/spec/whm/whm_spec.rb +8 -8
  296. data/spec/whostmgr/ssl_spec.rb +55 -0
  297. metadata +528 -108
  298. data/.gitignore +0 -10
  299. data/.rspec +0 -2
  300. data/.rvmrc +0 -49
  301. data/.travis.yml +0 -11
  302. data/lib/lumberg/whm/args.rb +0 -113
  303. data/lib/net_http_hacked.rb +0 -42
  304. data/lumberg.gemspec +0 -28
  305. data/spec/vcr_cassettes/whm/server/response_type.yml +0 -85
  306. data/spec/whm/args_spec.rb +0 -179
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a5ccd3bf942f150d835527fa7bfdbf89f8c0e214
4
+ data.tar.gz: 8f8723d73089a5c80c5fb5c0f6c88b7a92e8d69e
5
+ SHA512:
6
+ metadata.gz: 7dc50efeb877e113a34c0a92e412503b31b324dddba4ae9d5a4e1517830fd059424b84d8049acab06e9938ae5c465d516ebf17697adf72f6813eb03b615a57f8
7
+ data.tar.gz: f3daae45a95e11563237514ae66e122b95a474ce7a416ee97dfad144f7fb327c12e232cefc111c854a60c1de3243c58a6a31271e55d733710072379d1452f263
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011 Site5 LLC
1
+ Copyright (c) 2015 WWWH, LLC.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,5 +1,4 @@
1
- Lumberg [![Lumberg Build Status][Build Icon]][Build Status]
2
- ===========================================================
1
+ # Lumberg [![Lumberg Build Status][Build Icon]][Build Status]
3
2
 
4
3
  ![Lumberg logo](http://i.imgur.com/xC4Sw.jpg)
5
4
 
@@ -8,29 +7,33 @@ beta-ish. Please report any issues you find. :)
8
7
 
9
8
  [RDoc](http://rdoc.info/github/site5/lumberg/master/frames)
10
9
 
11
- Confirmed to work with ruby 1.8.7, 1.9.2, Rubinius, REE and JRuby 1.6.0 on
12
- cPanel 11.28+
10
+ Confirmed to work with ruby 1.9.3, 2.0.0, 2.1.3, 2.2.0 and JRuby 1.9 mode.
13
11
 
14
12
  [Build Status]: http://travis-ci.org/site5/lumberg
15
13
  [Build Icon]: https://secure.travis-ci.org/site5/lumberg.png?branch=master
16
14
 
17
15
 
18
- Install
19
- -------
16
+ ## cPanel Version Targets
17
+
18
+ * cPanel 11.4x: _v2.0.0_
19
+ * cPanel 11.3x: _v2.0.0.pre10_
20
+ * cPanel 11.2x: _v1.1.1_
21
+
22
+
23
+ ## Install
20
24
 
21
25
  gem install lumberg
22
26
 
23
27
 
24
- Usage
25
- -----
28
+ ## Usage
26
29
 
27
30
  Create a server object and connect to WHM using your host and hash:
28
31
 
29
32
  ```ruby
30
33
  require 'lumberg'
31
34
  server = Lumberg::Whm::Server.new(
32
- :host => WHM_HOST,
33
- :hash => WHM_HASH
35
+ host: WHM_HOST,
36
+ hash: WHM_HASH
34
37
  )
35
38
  ```
36
39
 
@@ -38,9 +41,10 @@ If you are using HTTP Basic Authentication with a username/password:
38
41
 
39
42
  ```ruby
40
43
  server = Lumberg::Whm::Server.new(
41
- :host => WHM_HOST,
42
- :user => USERNAME,
43
- :hash => 'my_password'
44
+ host: WHM_HOST,
45
+ user: USERNAME,
46
+ hash: 'my_password',
47
+ basic_auth: true
44
48
  )
45
49
  ```
46
50
 
@@ -81,43 +85,42 @@ Here's an example of what the returned data looks like for a single account
81
85
  pp result[:params][:acct].first
82
86
 
83
87
  {
84
- :startdate=>false,
85
- :plan => "default",
86
- :suspended => false,
87
- :theme => "x3",
88
- :shell => "/usr/local/cpanel/bin/jailshell",
89
- :maxpop => "unlimited",
90
- :maxlst => "unlimited",
91
- :maxaddons => "*unknown*",
92
- :suspendtime => nil,
93
- :ip => false,
94
- :maxsub => "unlimited",
95
- :domain => "bob.com",
96
- :maxsql => "unlimited",
97
- :partition => "home",
98
- :maxftp => "unlimited",
99
- :user => "bob",
100
- :suspendreason => "not suspended",
101
- :unix_startdate => false,
102
- :diskused => false,
103
- :maxparked => "*unknown*",
104
- :email => "*unknown*",
105
- :disklimit => "unlimited",
106
- :owner => "root"
88
+ startdate: false,
89
+ plan: "default",
90
+ suspended: false,
91
+ theme: "x3",
92
+ shell: "/usr/local/cpanel/bin/jailshell",
93
+ maxpop: "unlimited",
94
+ maxlst: "unlimited",
95
+ maxaddons: "*unknown*",
96
+ suspendtime: nil,
97
+ ip: false,
98
+ maxsub: "unlimited",
99
+ domain: "bob.com",
100
+ maxsql: "unlimited",
101
+ partition: "home",
102
+ maxftp: "unlimited",
103
+ user: "bob",
104
+ suspendreason: "not suspended",
105
+ unix_startdate: false,
106
+ diskused: false,
107
+ maxparked: "*unknown*",
108
+ email: "*unknown*",
109
+ disklimit: "unlimited",
110
+ owner: "root"
107
111
  }
108
112
  ```
109
113
 
110
114
 
111
- Account Example
112
- ---------------
115
+ ### Account Example
113
116
 
114
117
  Creating a new account requires only a username, domain, and password.
115
118
 
116
119
  ```ruby
117
120
  result = server.account.create(
118
- :username => 'newuser',
119
- :domain => 'newuser.com',
120
- :password => 'password'
121
+ username: 'newuser',
122
+ domain: 'newuser.com',
123
+ password: 'password'
121
124
  )
122
125
 
123
126
  if result[:success]
@@ -130,18 +133,17 @@ Account Creation Ok
130
133
  You can list all accounts or search for a specific account.
131
134
 
132
135
  ```ruby
133
- result = server.account.list(:search => 'new', :searchtype => 'user')
136
+ result = server.account.list(search: 'new', searchtype: 'user')
134
137
  acct = result[:params][:acct].first
135
138
  p "Found user '#{acct[:user]}' with domain '#{acct[:domain]}'"
136
139
 
137
140
  Found user 'newuser' with domain 'newuser.com'
138
141
  ```
139
142
 
140
-
141
143
  Suspending an account is simple and the reason for suspension is optional.
142
144
 
143
145
  ```ruby
144
- result = server.account.suspend(:username => 'newuser', :reason => 'bad user')
146
+ result = server.account.suspend(username: 'newuser', reason: 'bad user')
145
147
  p "user was suspended successfully" if result[:success]
146
148
 
147
149
  user was suspended successfully
@@ -151,7 +153,7 @@ We can look at the account list again to see the reason for the user's
151
153
  suspension.
152
154
 
153
155
  ```ruby
154
- result = server.account.list(:search => 'new', :searchtype => 'user')
156
+ result = server.account.list(search: 'new', searchtype: 'user')
155
157
  acct = result[:params][:acct].first
156
158
  p "user '#{acct[:user]}' was suspended with reason '#{acct[:suspendreason]}'"
157
159
 
@@ -161,28 +163,27 @@ user 'newuser' was suspended with reason 'bad user'
161
163
  Finally, we remove the user and delete their account.
162
164
 
163
165
  ```ruby
164
- result = server.account.remove(:username => 'newuser')
166
+ result = server.account.remove(username: 'newuser')
165
167
  p result[:message]
166
168
 
167
169
  newuser account removed
168
170
  ```
169
171
 
170
172
 
171
- Reseller Example
172
- ----------------
173
+ ### Reseller Example
173
174
 
174
175
  Creating a reseller works by changing the status of an existing user account,
175
176
  so first we create a user account and then we can create that user as a reseller.
176
177
 
177
178
  ```ruby
178
179
  result = server.account.create(
179
- :username => 'rtest',
180
- :domain => 'resellerexample.com',
181
- :password => 'password'
180
+ username: 'rtest',
181
+ domain: 'resellerexample.com',
182
+ password: 'password'
182
183
  )
183
184
 
184
185
  if result[:success]
185
- result = server.reseller.create(:username => 'rtest', :makeowner => true)
186
+ result = server.reseller.create(username: 'rtest', makeowner: true)
186
187
  p "created reseller rtest" if result[:success]
187
188
  end
188
189
 
@@ -202,7 +203,7 @@ Suspending a reseller is pretty straightforward. It's optional to provide a
202
203
  reason for the suspension.
203
204
 
204
205
  ```ruby
205
- result = server.reseller.suspend(:username => 'rtest', :reason => 'bad user')
206
+ result = server.reseller.suspend(username: 'rtest', reason: 'bad user')
206
207
  p "reseller was suspended successfully" if result[:success]
207
208
 
208
209
  user was suspended successfully
@@ -212,35 +213,148 @@ Deleting the reseller removes the reseller status from the user account. To
212
213
  also delete the user account, set the `:terminatereseller` argument.
213
214
 
214
215
  ```ruby
215
- result = server.reseller.terminate(:reseller => 'rtest', :terminatereseller => true)
216
+ result = server.reseller.terminate(reseller: 'rtest', terminatereseller: true)
216
217
  p result[:message]
217
218
 
218
219
  Account Terminations Complete
219
220
  ```
220
221
 
221
- Contributors
222
- ============
222
+ ### Accessing cPanel API
223
223
 
224
- * [Justin Mazzi](http://github.com/jmazzi)
225
- * [Tim Parkin](http://github.com/tparkin)
224
+ [cPanel API](http://docs.cpanel.net/twiki/bin/view/SoftwareDevelopmentKit/ApiIntroduction)
225
+ interface is provided by the `Lumberg::Cpanel` module. Classes within the module
226
+ correspond to cPanel API modules. cPanel API module coverage is currently
227
+ incomplete and we're seeking contributions. Check out [Extending
228
+ Lumberg::Cpanel](#extending-lumbergcpanel) for details on how you can help.
229
+
230
+ #### Email example
231
+
232
+ ```ruby
233
+ # Create an interface object for cPanel API Email module
234
+ email = Lumberg::Cpanel::Email.new(
235
+ server: server, # An instance of Lumberg::Server
236
+ api_username: "jerry" # User whose cPanel we'll be interacting with
237
+ )
226
238
 
227
- Note on Patches/Pull Requests
228
- =============================
239
+ # Get a list of email accounts
240
+ email.accounts[:params][:data] #=> Array of info hashes for each email account
241
+
242
+ # Add an email forwarder to forward mail for my-forwarder@domain.com to
243
+ # dest@other-domain.com
244
+ email.add_forwarder(
245
+ domain: "domain.com",
246
+ email: "my-forwarder",
247
+ fwdopt: "fwd",
248
+ fwdemail: "dest@other-domain.com"
249
+ )
250
+ ```
251
+
252
+
253
+ ## Contributing
254
+
255
+ ### Extending Lumberg::Cpanel
256
+
257
+ 1. Find a cPanel API module that isn't already covered. See
258
+ [cPanel API documentation](http://docs.cpanel.net/twiki/bin/view/SoftwareDevelopmentKit/ApiIntroduction)
259
+ for a full list of available API modules.
260
+
261
+ 2. Create a file (underscore style) in `lib/lumberg/cpanel/` named after the
262
+ cPanel API module you're working on. If the cPanel API module is "LangMods"
263
+ name the file "lang_mods.rb". You'll define your class here. `require` this
264
+ file from `lib/lumberg/cpanel.rb`.
265
+
266
+ 3. Define a class that inherits from `Lumberg::Cpanel::Base`:
267
+ ```ruby
268
+ # Create a class for (fictional) "SomeModule" API module
269
+ module Lumberg
270
+ module Cpanel
271
+ class SomeModule < Base
272
+ end
273
+ end
274
+ end
275
+ ```
276
+ The cPanel API module name is normally inferred from the class name, e.g., if
277
+ the class name is `Email` the cPanel "Email" API module will be used. If the
278
+ cPanel API module you're working with doesn't match up with Ruby class naming
279
+ convention, override the `::api_module` class method:
280
+ ```ruby
281
+ module Lumberg
282
+ module Cpanel
283
+ class SslInfo
284
+ def self.api_module; "SSLInfo"; end
285
+ end
286
+ end
287
+ end
288
+ ```
289
+ 4. Fill in the methods.
290
+ ```ruby
291
+ module Lumberg
292
+ module Cpanel
293
+ class Branding
294
+ # Public: Get URL locations for specific sprites.
295
+ #
296
+ # options - Hash options for API call params (default: {}):
297
+ # :img - String branding object label for the image you want to
298
+ # retrieve.
299
+ # :imgtype - String branding image type you want to retrieve, e.g.,
300
+ # "icon" or "heading".
301
+ # :method - String specification for returned value options.
302
+ # Acceptable values are: "only_filetype_gif",
303
+ # "skip_filetype_gif", "snap_to_smallest_width", and
304
+ # "scale_60percent".
305
+ # :subtype - String branding image subtype, e.g., "img", "bg",
306
+ # "compleximg".
307
+ # :image - String parameter allows you to force appropriate
308
+ # output by setting it to "heading" (optional).
309
+ # :skipgroups - String parameter allows you to specify whether or not
310
+ # to include "img" values that begin with "group_" in
311
+ # the output. "1" indicates that you wish to skip "img"
312
+ # values that begin with "group_" (optional).
313
+ #
314
+ # Returns Hash API response.
315
+ def list_sprites(options = {})
316
+ perform_request({
317
+ api_function: "spritelist"
318
+ }.merge(options))
319
+ end
320
+ end
321
+ end
322
+ end
323
+ ```
324
+
325
+ - In many cases, you'll name your methods to match up
326
+ with the documented cPanel API methods. However, the documented method
327
+ names are sometimes a bit lengthy, confusing, or otherwise unwieldy; feel
328
+ free to give your corresponding method an improved name.
329
+ - Use [TomDoc](http://tomdoc.org/) documentation for your methods.
330
+ Be sure to document all required and optional parameters from the
331
+ cPanel API documentation.
332
+ - All methods should take an options arg that defaults to {}.
333
+ These options should be merged onto the options passed to
334
+ #perform_request to allow overriding of :api_username or
335
+ other parameters.
336
+
337
+ ### Sanitizing VCR cassettes
338
+
339
+ All HTTP interactions are recorded using VCR and FakeWeb. Please be sure to remove
340
+ sensitive data from your cassettes. A Rake task is provided for this purpose:
341
+ ```
342
+ WHM_HOST=my-cpanel-server.com WHM_HASH=$(cat my-access-hash) bundle exec rake sanitize_cassettes
343
+ ```
344
+ Once you've sanitized your cassettes, manually verify that there's no sensitive
345
+ information still present (check URLs, authorization params, etc.).
229
346
 
230
- All HTTP interactions are recorded using VCR and FakeWeb. Please be sure to
231
- remove any sensitive information from your cassettes.
347
+ ### Note on Patches/Pull Requests
232
348
 
233
349
  * Fork the project.
234
- * Add yourself to the Contributors list
235
350
  * Make your feature addition or bug fix.
236
- * Add tests for it. This is important so I don't break it in a
351
+ * Add tests for it. This is important so we don't break it in a
237
352
  future version unintentionally.
238
- * Commit, do not mess with rakefile, version, or history.
353
+ * Commit, do not mess with Rakefile, version, or history.
239
354
  (if you want to have your own version, that is fine but bump version in a
240
- commit by itself I can ignore when I pull)
241
- * Send me a pull request. Bonus points for topic branches.
355
+ commit by itself we can ignore when we pull)
356
+ * Send us a pull request. Bonus points for topic branches.
242
357
 
243
- Copyright
244
- =========
358
+ ## Copyright
245
359
 
246
- Copyright (c) 2011 Site5. See LICENSE for details.
360
+ Copyright (c) 2015 WWWH, LLC. See LICENSE for details.
data/Rakefile CHANGED
@@ -14,6 +14,8 @@ begin
14
14
  rescue LoadError
15
15
  end
16
16
 
17
+ load 'vcr/tasks/vcr.rake'
18
+
17
19
  RSpec::Core::RakeTask.new :spec
18
20
  Bundler::GemHelper.install_tasks
19
21
 
@@ -26,7 +28,7 @@ task :sanitize_cassettes do
26
28
  files.each do |file|
27
29
  old = File.read(file)
28
30
  if old.match(/#{ENV['WHM_HASH']}|#{ENV['WHM_HOST']}/)
29
- puts "Sanitizing #{file}"
31
+ puts "Sanitizing #{file}"
30
32
  old.gsub!(ENV['WHM_HASH'], 'iscool')
31
33
  old.gsub!(ENV['WHM_HOST'], 'myhost.com')
32
34
  File.open(file, 'w') do |f|
@@ -0,0 +1,19 @@
1
+ module Lumberg
2
+ # Holds the configuration for Lumberg
3
+ class Config
4
+ attr_accessor :options
5
+
6
+ def initialize
7
+ @options = {}
8
+ end
9
+
10
+ def [](v)
11
+ @options[v]
12
+ end
13
+
14
+ # Debug output. value can be either true to output to $stderr or a path to a file
15
+ def debug(output)
16
+ @options[:debug] = output
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,50 @@
1
+ module Lumberg
2
+ module Cpanel
3
+ class AddonDomain < Base
4
+ # Public: Delete an addon domain. This will also remove the corresponding
5
+ # subdomain and FTP account.
6
+ #
7
+ # options - Hash options for API call params (default: {}):
8
+ # :domain - String addon domain to be deleted.
9
+ # :subdomain - String adddon domain's username followed by "_", then
10
+ # the addon domain's main domain, e.g.,
11
+ # "user_addon.com"
12
+ #
13
+ # Returns Hash API response.
14
+ def remove(options = {})
15
+ perform_request({
16
+ api_function: "deladdondomain"
17
+ }.merge(options))
18
+ end
19
+
20
+ # Public: Add an addon domain with a coresponding subdomain.
21
+ #
22
+ # options - Hash options for API call params (default: {}):
23
+ # :dir - String path for addon domain docroot.
24
+ # :newdomain - String domain to use for addon domain.
25
+ # :subdomain - String subdomain / FTP username corresponding to new
26
+ # addon domain, e.g., "user".
27
+ #
28
+ # Returns Hash API response.
29
+ def add(options = {})
30
+ perform_request({
31
+ api_function: "addaddondomain"
32
+ }.merge(options))
33
+ end
34
+
35
+ # Public: Get a list of addon domains.
36
+ #
37
+ # options - Hash options for API call params (default: {}):
38
+ # :regex - String regular expression to filter search results
39
+ # (optional).
40
+ #
41
+ # Returns Hash API response.
42
+ def list(options={})
43
+ perform_request({
44
+ api_function: "listaddondomains"
45
+ }.merge(options))
46
+ end
47
+ end
48
+ end
49
+ end
50
+
@@ -0,0 +1,16 @@
1
+ module Lumberg
2
+ module Cpanel
3
+ class Backups < Base
4
+ # Public: Get a list backups.
5
+ #
6
+ # options - Hash options for API call params (default: {})
7
+ #
8
+ # Returns Hash API response.
9
+ def list(options = {})
10
+ perform_request({
11
+ api_function: "listfullbackups"
12
+ }.merge(options))
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,56 @@
1
+ module Lumberg
2
+ module Cpanel
3
+ class Base < Whm::Base
4
+ attr_accessor :api_username
5
+
6
+ # Public: Gets cPanel API module name based on class name. This method
7
+ # should be overriden in subclasses where the cPanel API module name
8
+ # and the class name don't match up.
9
+ #
10
+ # Returns String cPanel API module name.
11
+ def self.api_module
12
+ self.name.split("::").last
13
+ end
14
+
15
+ # Public: Initialize a new cPanel API interface.
16
+ #
17
+ # options - Hash options (default: {}):
18
+ # :api_username - String username to set as the default account
19
+ # username for cPanel API calls (optional).
20
+ def initialize(options = {})
21
+ @api_username = options.delete(:api_username)
22
+
23
+ super options
24
+ end
25
+
26
+ # Public: Perform a cPanel API method call.
27
+ #
28
+ # options - Hash options for API call params (default: {}):
29
+ # :api_function - String API function name to call.
30
+ # :api_module - String API module on which API function will be
31
+ # called (optional, default: self.class.api_module).
32
+ # :response_key - String key used to select desired part of API
33
+ # response (optional, default: "cpanelresult").
34
+ # :api_username - String account username for API call (optional,
35
+ # default: @api_username)
36
+ # :api_version - Integer cPanel API version to use (optional,
37
+ # default: 2)
38
+ #
39
+ # Returns Hash API response.
40
+ def perform_request(options = {})
41
+ options[:api_username] ||= api_username
42
+
43
+ api_module = options.delete(:api_module) || self.class.api_module
44
+ params = {
45
+ response_key: options.delete(:response_key) || "cpanelresult",
46
+ cpanel_jsonapi_user: options.delete(:api_username),
47
+ cpanel_jsonapi_module: api_module,
48
+ cpanel_jsonapi_func: options.delete(:api_function),
49
+ cpanel_jsonapi_apiversion: options.delete(:api_version) || 2,
50
+ }.merge(options)
51
+
52
+ server.perform_request("cpanel", params)
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,18 @@
1
+ module Lumberg
2
+ module Cpanel
3
+ class BoxTrapper < Base
4
+ # Public: Get list of email accounts and their BoxTrapper statuses.
5
+ #
6
+ # options - Hash options for API call params (default: {}):
7
+ # :regex - String regular expression to filter search results
8
+ # (optional).
9
+ #
10
+ # Returns Hash API response.
11
+ def list(options = {})
12
+ perform_request({
13
+ api_function: "accountmanagelist"
14
+ }.merge(options))
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,89 @@
1
+ module Lumberg
2
+ module Cpanel
3
+ class Branding < Base
4
+ # Public: Get list of branding packages.
5
+ #
6
+ # options - Hash options for API call params (default: {}):
7
+ # :onlyshowyours - Return only packages that the user owns?
8
+ # String "1" or "0" (optional).
9
+ # :showroot - Only return system branding packages?
10
+ # String "1" or "0" (optional).
11
+ # :skipglobal - Only return customized branding packages?
12
+ # String "1" or "0" (optional).
13
+ # :skiphidden - Skip branding packages owned by the user?
14
+ # String "1" or "0" (optional).
15
+ #
16
+ # Returns Hash API response.
17
+ def list_pkgs(options = {})
18
+ perform_request({
19
+ api_function: "showpkgs"
20
+ }.merge(options))
21
+ end
22
+
23
+ # Public: Get URL locations for specific sprites.
24
+ #
25
+ # options - Hash options for API call params (default: {}):
26
+ # :img - String branding object label for the image you want to
27
+ # retrieve.
28
+ # :imgtype - String branding image type you want to retrieve, e.g.,
29
+ # "icon" or "heading".
30
+ # :method - String specification for returned value options.
31
+ # Acceptable values are: "only_filetype_gif",
32
+ # "skip_filetype_gif", "snap_to_smallest_width", and
33
+ # "scale_60percent".
34
+ # :subtype - String branding image subtype, e.g., "img", "bg",
35
+ # "compleximg".
36
+ # :image - String parameter allows you to force appropriate
37
+ # output by setting it to "heading" (optional).
38
+ # :skipgroups - String parameter allows you to specify whether or not
39
+ # to include "img" values that begin with "group_" in
40
+ # the output. "1" indicates that you wish to skip "img"
41
+ # values that begin with "group_" (optional).
42
+ #
43
+ # Returns Hash API response.
44
+ def list_sprites(options = {})
45
+ perform_request({
46
+ api_function: "spritelist"
47
+ }.merge(options))
48
+ end
49
+
50
+ # Public: Retrieve a list of icons within the x3 interface.
51
+ #
52
+ # options - Hash options for API call params (default: {}):
53
+ # :nvarglist - String parameter allows you to specify the order in
54
+ # which you wish to have groups returned, separated by
55
+ # pipes, e.g., "mail|files|domains|logs". This is the
56
+ # last filter on the data and is stored in your
57
+ # xmaingroupsorder NVDATA variable (optional).
58
+ #
59
+ # Returns Hash API response.
60
+ def list_icons(options = {})
61
+ perform_request({
62
+ api_function: "applist"
63
+ }.merge(options))
64
+ end
65
+
66
+ # Public: Get list of branding object types.
67
+ #
68
+ # options - Hash options for API call params (default: {}):
69
+ #
70
+ # Returns Hash API response.
71
+ def list_object_types(options = {})
72
+ perform_request({
73
+ api_function: "listobjecttypes"
74
+ }.merge(options))
75
+ end
76
+
77
+ # Public: Get list of branding image types.
78
+ #
79
+ # options - Hash options for API call params (default: {}):
80
+ #
81
+ # Returns Hash API response.
82
+ def list_image_types(options = {})
83
+ perform_request({
84
+ api_function: "listimgtypes"
85
+ }.merge(options))
86
+ end
87
+ end
88
+ end
89
+ end