knife-ionoscloud 5.1.2 → 6.0.0.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (402) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/publish.yml +1 -4
  3. data/docs/README.md +0 -19
  4. data/docs/docs_generator.rb +1 -1
  5. data/docs/subcommands/backupunit_create.md +2 -5
  6. data/docs/subcommands/backupunit_delete.md +1 -4
  7. data/docs/subcommands/backupunit_list.md +1 -4
  8. data/docs/subcommands/backupunit_ssourl.md +1 -4
  9. data/docs/subcommands/composite_server_create.md +1 -4
  10. data/docs/subcommands/contract_list.md +1 -4
  11. data/docs/subcommands/datacenter_create.md +1 -4
  12. data/docs/subcommands/datacenter_delete.md +1 -4
  13. data/docs/subcommands/datacenter_list.md +1 -4
  14. data/docs/subcommands/firewall_create.md +2 -5
  15. data/docs/subcommands/firewall_delete.md +0 -3
  16. data/docs/subcommands/firewall_list.md +1 -4
  17. data/docs/subcommands/group_create.md +1 -4
  18. data/docs/subcommands/group_delete.md +1 -4
  19. data/docs/subcommands/group_get.md +1 -4
  20. data/docs/subcommands/group_list.md +1 -4
  21. data/docs/subcommands/group_user_add.md +0 -3
  22. data/docs/subcommands/group_user_remove.md +0 -3
  23. data/docs/subcommands/image_list.md +1 -4
  24. data/docs/subcommands/ipblock_create.md +1 -4
  25. data/docs/subcommands/ipblock_delete.md +1 -4
  26. data/docs/subcommands/ipblock_list.md +1 -4
  27. data/docs/subcommands/ipfailover_add.md +1 -4
  28. data/docs/subcommands/ipfailover_remove.md +1 -4
  29. data/docs/subcommands/k8s_create.md +5 -11
  30. data/docs/subcommands/k8s_delete.md +1 -4
  31. data/docs/subcommands/k8s_list.md +1 -4
  32. data/docs/subcommands/kubeconfig_get.md +1 -4
  33. data/docs/subcommands/label_add.md +1 -4
  34. data/docs/subcommands/label_list.md +1 -4
  35. data/docs/subcommands/label_remove.md +0 -3
  36. data/docs/subcommands/lan_create.md +1 -4
  37. data/docs/subcommands/lan_delete.md +0 -3
  38. data/docs/subcommands/lan_list.md +1 -4
  39. data/docs/subcommands/loadbalancer_create.md +2 -5
  40. data/docs/subcommands/loadbalancer_delete.md +0 -3
  41. data/docs/subcommands/loadbalancer_get.md +1 -4
  42. data/docs/subcommands/loadbalancer_list.md +1 -4
  43. data/docs/subcommands/loadbalancer_nic_add.md +0 -3
  44. data/docs/subcommands/loadbalancer_nic_remove.md +0 -3
  45. data/docs/subcommands/location_list.md +1 -4
  46. data/docs/subcommands/nic_create.md +3 -6
  47. data/docs/subcommands/nic_delete.md +1 -4
  48. data/docs/subcommands/nic_list.md +1 -4
  49. data/docs/subcommands/node_delete.md +0 -3
  50. data/docs/subcommands/node_list.md +1 -4
  51. data/docs/subcommands/node_replace.md +0 -3
  52. data/docs/subcommands/nodepool_create.md +5 -17
  53. data/docs/subcommands/nodepool_delete.md +0 -3
  54. data/docs/subcommands/nodepool_list.md +1 -4
  55. data/docs/subcommands/pcc_create.md +1 -4
  56. data/docs/subcommands/pcc_delete.md +1 -4
  57. data/docs/subcommands/pcc_list.md +1 -4
  58. data/docs/subcommands/request_list.md +1 -4
  59. data/docs/subcommands/request_status.md +1 -4
  60. data/docs/subcommands/request_wait.md +1 -4
  61. data/docs/subcommands/resource_list.md +1 -4
  62. data/docs/subcommands/s3key_create.md +1 -4
  63. data/docs/subcommands/s3key_delete.md +0 -3
  64. data/docs/subcommands/s3key_list.md +1 -4
  65. data/docs/subcommands/server_create.md +1 -4
  66. data/docs/subcommands/server_delete.md +0 -3
  67. data/docs/subcommands/server_list.md +1 -4
  68. data/docs/subcommands/server_reboot.md +0 -3
  69. data/docs/subcommands/server_start.md +0 -3
  70. data/docs/subcommands/server_stop.md +0 -3
  71. data/docs/subcommands/share_create.md +2 -5
  72. data/docs/subcommands/share_delete.md +2 -5
  73. data/docs/subcommands/share_list.md +1 -4
  74. data/docs/subcommands/snapshot_create.md +1 -4
  75. data/docs/subcommands/snapshot_delete.md +1 -4
  76. data/docs/subcommands/snapshot_list.md +1 -4
  77. data/docs/subcommands/snapshot_restore.md +1 -4
  78. data/docs/subcommands/user_create.md +3 -12
  79. data/docs/subcommands/user_delete.md +1 -4
  80. data/docs/subcommands/user_list.md +1 -4
  81. data/docs/subcommands/user_ssourl.md +1 -4
  82. data/docs/subcommands/volume_attach.md +0 -3
  83. data/docs/subcommands/volume_create.md +1 -28
  84. data/docs/subcommands/volume_delete.md +0 -3
  85. data/docs/subcommands/volume_detach.md +0 -3
  86. data/docs/subcommands/volume_list.md +1 -4
  87. data/docs/summary.md +0 -33
  88. data/knife-ionoscloud.gemspec +1 -1
  89. data/lib/chef/knife/ionoscloud_backupunit_create.rb +16 -12
  90. data/lib/chef/knife/ionoscloud_backupunit_delete.rb +5 -3
  91. data/lib/chef/knife/ionoscloud_backupunit_list.rb +1 -2
  92. data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +1 -2
  93. data/lib/chef/knife/ionoscloud_base.rb +6 -259
  94. data/lib/chef/knife/ionoscloud_composite_server_create.rb +38 -9
  95. data/lib/chef/knife/ionoscloud_contract_list.rb +32 -24
  96. data/lib/chef/knife/ionoscloud_cube_server_create.rb +215 -0
  97. data/lib/chef/knife/ionoscloud_datacenter_create.rb +14 -12
  98. data/lib/chef/knife/ionoscloud_datacenter_delete.rb +8 -3
  99. data/lib/chef/knife/ionoscloud_datacenter_list.rb +3 -4
  100. data/lib/chef/knife/ionoscloud_firewall_create.rb +24 -7
  101. data/lib/chef/knife/ionoscloud_firewall_delete.rb +14 -6
  102. data/lib/chef/knife/ionoscloud_firewall_list.rb +5 -4
  103. data/lib/chef/knife/ionoscloud_flowlog_create.rb +121 -0
  104. data/lib/chef/knife/ionoscloud_flowlog_delete.rb +106 -0
  105. data/lib/chef/knife/ionoscloud_flowlog_list.rb +100 -0
  106. data/lib/chef/knife/ionoscloud_group_create.rb +46 -16
  107. data/lib/chef/knife/ionoscloud_group_delete.rb +18 -2
  108. data/lib/chef/knife/ionoscloud_group_get.rb +17 -2
  109. data/lib/chef/knife/ionoscloud_group_list.rb +7 -2
  110. data/lib/chef/knife/ionoscloud_group_user_add.rb +13 -2
  111. data/lib/chef/knife/ionoscloud_group_user_remove.rb +13 -2
  112. data/lib/chef/knife/ionoscloud_image_list.rb +1 -2
  113. data/lib/chef/knife/ionoscloud_ipblock_create.rb +13 -11
  114. data/lib/chef/knife/ionoscloud_ipblock_delete.rb +4 -3
  115. data/lib/chef/knife/ionoscloud_ipblock_list.rb +1 -2
  116. data/lib/chef/knife/ionoscloud_ipfailover_add.rb +15 -9
  117. data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +9 -3
  118. data/lib/chef/knife/ionoscloud_k8s_create.rb +30 -28
  119. data/lib/chef/knife/ionoscloud_k8s_delete.rb +9 -2
  120. data/lib/chef/knife/ionoscloud_k8s_list.rb +0 -1
  121. data/lib/chef/knife/ionoscloud_kubeconfig_get.rb +0 -1
  122. data/lib/chef/knife/ionoscloud_label_add.rb +1 -2
  123. data/lib/chef/knife/ionoscloud_label_list.rb +1 -2
  124. data/lib/chef/knife/ionoscloud_label_remove.rb +1 -2
  125. data/lib/chef/knife/ionoscloud_lan_create.rb +14 -7
  126. data/lib/chef/knife/ionoscloud_lan_delete.rb +4 -4
  127. data/lib/chef/knife/ionoscloud_lan_list.rb +2 -5
  128. data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +16 -7
  129. data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +10 -3
  130. data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +13 -4
  131. data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +1 -2
  132. data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +14 -5
  133. data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +14 -5
  134. data/lib/chef/knife/ionoscloud_location_list.rb +5 -4
  135. data/lib/chef/knife/ionoscloud_natgateway_create.rb +71 -0
  136. data/lib/chef/knife/ionoscloud_natgateway_delete.rb +69 -0
  137. data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +82 -0
  138. data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +58 -0
  139. data/lib/chef/knife/ionoscloud_natgateway_list.rb +49 -0
  140. data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +124 -0
  141. data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +63 -0
  142. data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +72 -0
  143. data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +95 -0
  144. data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +81 -0
  145. data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +56 -0
  146. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +150 -0
  147. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +63 -0
  148. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +78 -0
  149. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +141 -0
  150. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +68 -0
  151. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +105 -0
  152. data/lib/chef/knife/ionoscloud_nic_create.rb +38 -19
  153. data/lib/chef/knife/ionoscloud_nic_delete.rb +11 -5
  154. data/lib/chef/knife/ionoscloud_nic_list.rb +9 -6
  155. data/lib/chef/knife/ionoscloud_node_delete.rb +6 -2
  156. data/lib/chef/knife/ionoscloud_node_list.rb +0 -2
  157. data/lib/chef/knife/ionoscloud_node_replace.rb +0 -1
  158. data/lib/chef/knife/ionoscloud_nodepool_create.rb +60 -38
  159. data/lib/chef/knife/ionoscloud_nodepool_delete.rb +32 -2
  160. data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +130 -0
  161. data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +96 -0
  162. data/lib/chef/knife/ionoscloud_nodepool_list.rb +3 -2
  163. data/lib/chef/knife/ionoscloud_pcc_create.rb +18 -13
  164. data/lib/chef/knife/ionoscloud_pcc_delete.rb +10 -3
  165. data/lib/chef/knife/ionoscloud_pcc_list.rb +1 -2
  166. data/lib/chef/knife/ionoscloud_request_list.rb +1 -2
  167. data/lib/chef/knife/ionoscloud_request_status.rb +1 -2
  168. data/lib/chef/knife/ionoscloud_request_wait.rb +0 -1
  169. data/lib/chef/knife/ionoscloud_resource_list.rb +0 -1
  170. data/lib/chef/knife/ionoscloud_s3key_create.rb +7 -4
  171. data/lib/chef/knife/ionoscloud_s3key_delete.rb +7 -5
  172. data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -3
  173. data/lib/chef/knife/{ionoscloud_server_get.rb → ionoscloud_server_console.rb} +11 -10
  174. data/lib/chef/knife/ionoscloud_server_create.rb +26 -15
  175. data/lib/chef/knife/ionoscloud_server_delete.rb +10 -3
  176. data/lib/chef/knife/ionoscloud_server_list.rb +16 -6
  177. data/lib/chef/knife/ionoscloud_server_reboot.rb +1 -2
  178. data/lib/chef/knife/ionoscloud_server_resume.rb +43 -0
  179. data/lib/chef/knife/ionoscloud_server_start.rb +1 -2
  180. data/lib/chef/knife/ionoscloud_server_stop.rb +1 -2
  181. data/lib/chef/knife/ionoscloud_server_suspend.rb +44 -0
  182. data/lib/chef/knife/ionoscloud_server_token.rb +42 -0
  183. data/lib/chef/knife/ionoscloud_server_upgrade.rb +44 -0
  184. data/lib/chef/knife/ionoscloud_share_create.rb +12 -8
  185. data/lib/chef/knife/ionoscloud_share_delete.rb +4 -3
  186. data/lib/chef/knife/ionoscloud_share_list.rb +0 -1
  187. data/lib/chef/knife/ionoscloud_snapshot_create.rb +10 -3
  188. data/lib/chef/knife/ionoscloud_snapshot_delete.rb +7 -3
  189. data/lib/chef/knife/ionoscloud_snapshot_list.rb +1 -2
  190. data/lib/chef/knife/ionoscloud_snapshot_restore.rb +2 -3
  191. data/lib/chef/knife/ionoscloud_template_list.rb +46 -0
  192. data/lib/chef/knife/ionoscloud_user_create.rb +20 -25
  193. data/lib/chef/knife/ionoscloud_user_delete.rb +7 -2
  194. data/lib/chef/knife/ionoscloud_user_list.rb +0 -1
  195. data/lib/chef/knife/ionoscloud_user_ssourl.rb +1 -2
  196. data/lib/chef/knife/ionoscloud_volume_attach.rb +1 -2
  197. data/lib/chef/knife/ionoscloud_volume_create.rb +31 -57
  198. data/lib/chef/knife/ionoscloud_volume_delete.rb +9 -3
  199. data/lib/chef/knife/ionoscloud_volume_detach.rb +9 -3
  200. data/lib/chef/knife/ionoscloud_volume_list.rb +2 -3
  201. data/lib/knife-ionoscloud/version.rb +1 -1
  202. data/spec/chef/knife/ionoscloud_backupunit_create_spec.rb +2 -2
  203. data/spec/chef/knife/ionoscloud_backupunit_delete_spec.rb +5 -5
  204. data/spec/chef/knife/ionoscloud_backupunit_list_spec.rb +1 -1
  205. data/spec/chef/knife/ionoscloud_backupunit_ssourl_spec.rb +3 -3
  206. data/spec/chef/knife/ionoscloud_base_spec.rb +4 -4
  207. data/spec/chef/knife/ionoscloud_composite_server_create_spec.rb +11 -8
  208. data/spec/chef/knife/ionoscloud_contract_list_spec.rb +32 -27
  209. data/spec/chef/knife/ionoscloud_cube_server_create_spec.rb +249 -0
  210. data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +3 -12
  211. data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +5 -8
  212. data/spec/chef/knife/ionoscloud_datacenter_list_spec.rb +4 -4
  213. data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +5 -3
  214. data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +6 -5
  215. data/spec/chef/knife/ionoscloud_firewall_list_spec.rb +5 -3
  216. data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +254 -0
  217. data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +360 -0
  218. data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +264 -0
  219. data/spec/chef/knife/ionoscloud_group_create_spec.rb +6 -7
  220. data/spec/chef/knife/ionoscloud_group_delete_spec.rb +3 -0
  221. data/spec/chef/knife/ionoscloud_group_get_spec.rb +3 -0
  222. data/spec/chef/knife/ionoscloud_group_list_spec.rb +11 -2
  223. data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +0 -3
  224. data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +0 -3
  225. data/spec/chef/knife/ionoscloud_image_list_spec.rb +2 -2
  226. data/spec/chef/knife/ionoscloud_ipblock_delete_spec.rb +0 -2
  227. data/spec/chef/knife/ionoscloud_ipblock_list_spec.rb +1 -1
  228. data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +4 -5
  229. data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +7 -8
  230. data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +0 -8
  231. data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +1 -7
  232. data/spec/chef/knife/ionoscloud_kubeconfig_get_spec.rb +2 -2
  233. data/spec/chef/knife/ionoscloud_label_add_spec.rb +10 -10
  234. data/spec/chef/knife/ionoscloud_label_list_spec.rb +14 -14
  235. data/spec/chef/knife/ionoscloud_label_remove_spec.rb +20 -20
  236. data/spec/chef/knife/ionoscloud_lan_create_spec.rb +3 -4
  237. data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +5 -7
  238. data/spec/chef/knife/ionoscloud_lan_list_spec.rb +3 -5
  239. data/spec/chef/knife/ionoscloud_loadbalancer_create_spec.rb +3 -3
  240. data/spec/chef/knife/ionoscloud_loadbalancer_delete_spec.rb +5 -5
  241. data/spec/chef/knife/ionoscloud_loadbalancer_get_spec.rb +2 -2
  242. data/spec/chef/knife/ionoscloud_loadbalancer_list_spec.rb +2 -2
  243. data/spec/chef/knife/ionoscloud_loadbalancer_nic_add_spec.rb +6 -6
  244. data/spec/chef/knife/ionoscloud_loadbalancer_nic_remove_spec.rb +6 -6
  245. data/spec/chef/knife/ionoscloud_location_list_spec.rb +5 -3
  246. data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +77 -0
  247. data/spec/chef/knife/ionoscloud_natgateway_delete_spec.rb +118 -0
  248. data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +143 -0
  249. data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +194 -0
  250. data/spec/chef/knife/ionoscloud_natgateway_list_spec.rb +79 -0
  251. data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +98 -0
  252. data/spec/chef/knife/ionoscloud_natgateway_rule_list_spec.rb +92 -0
  253. data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +77 -0
  254. data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +80 -0
  255. data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +119 -0
  256. data/spec/chef/knife/ionoscloud_networkloadbalancer_list_spec.rb +88 -0
  257. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +104 -0
  258. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_list_spec.rb +89 -0
  259. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +124 -0
  260. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +109 -0
  261. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_list_spec.rb +85 -0
  262. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +263 -0
  263. data/spec/chef/knife/ionoscloud_nic_create_spec.rb +9 -5
  264. data/spec/chef/knife/ionoscloud_nic_delete_spec.rb +8 -6
  265. data/spec/chef/knife/ionoscloud_nic_list_spec.rb +12 -6
  266. data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +20 -13
  267. data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +13 -27
  268. data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +226 -0
  269. data/spec/chef/knife/ionoscloud_nodepool_lan_remove.rb +199 -0
  270. data/spec/chef/knife/ionoscloud_nodepool_list_spec.rb +3 -1
  271. data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +8 -11
  272. data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +6 -6
  273. data/spec/chef/knife/ionoscloud_pcc_list_spec.rb +2 -2
  274. data/spec/chef/knife/ionoscloud_request_list_spec.rb +24 -25
  275. data/spec/chef/knife/ionoscloud_request_status_spec.rb +3 -3
  276. data/spec/chef/knife/ionoscloud_s3key_create_spec.rb +2 -2
  277. data/spec/chef/knife/ionoscloud_s3key_delete_spec.rb +5 -5
  278. data/spec/chef/knife/ionoscloud_s3key_list_spec.rb +2 -2
  279. data/spec/chef/knife/ionoscloud_server_console_spec.rb +97 -0
  280. data/spec/chef/knife/ionoscloud_server_create_spec.rb +3 -3
  281. data/spec/chef/knife/ionoscloud_server_delete_spec.rb +5 -5
  282. data/spec/chef/knife/ionoscloud_server_list_spec.rb +63 -5
  283. data/spec/chef/knife/ionoscloud_server_reboot_spec.rb +3 -5
  284. data/spec/chef/knife/ionoscloud_server_resume_spec.rb +93 -0
  285. data/spec/chef/knife/ionoscloud_server_start_spec.rb +3 -5
  286. data/spec/chef/knife/ionoscloud_server_stop_spec.rb +3 -5
  287. data/spec/chef/knife/ionoscloud_server_suspend_spec.rb +93 -0
  288. data/spec/chef/knife/ionoscloud_server_token_spec.rb +97 -0
  289. data/spec/chef/knife/ionoscloud_server_upgrade_spec.rb +96 -0
  290. data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +3 -16
  291. data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +5 -17
  292. data/spec/chef/knife/ionoscloud_snapshot_list_spec.rb +2 -2
  293. data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +3 -3
  294. data/spec/chef/knife/ionoscloud_template_list_spec.rb +78 -0
  295. data/spec/chef/knife/ionoscloud_user_create_spec.rb +1 -3
  296. data/spec/chef/knife/ionoscloud_user_delete_spec.rb +2 -4
  297. data/spec/chef/knife/ionoscloud_user_ssourl_spec.rb +3 -3
  298. data/spec/chef/knife/ionoscloud_volume_attach_spec.rb +4 -4
  299. data/spec/chef/knife/ionoscloud_volume_create_spec.rb +6 -15
  300. data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +5 -14
  301. data/spec/chef/knife/ionoscloud_volume_detach_spec.rb +5 -14
  302. data/spec/chef/knife/ionoscloud_volume_list_spec.rb +4 -4
  303. data/spec/spec_helper.rb +270 -116
  304. metadata +93 -138
  305. data/docs/subcommands/backupunit_get.md +0 -35
  306. data/docs/subcommands/backupunit_update.md +0 -41
  307. data/docs/subcommands/datacenter_get.md +0 -35
  308. data/docs/subcommands/datacenter_update.md +0 -44
  309. data/docs/subcommands/firewall_get.md +0 -47
  310. data/docs/subcommands/firewall_update.md +0 -71
  311. data/docs/subcommands/group_update.md +0 -65
  312. data/docs/subcommands/ipblock_get.md +0 -35
  313. data/docs/subcommands/ipblock_update.md +0 -38
  314. data/docs/subcommands/k8s_get.md +0 -35
  315. data/docs/subcommands/k8s_update.md +0 -53
  316. data/docs/subcommands/lan_get.md +0 -39
  317. data/docs/subcommands/lan_update.md +0 -51
  318. data/docs/subcommands/loadbalancer_update.md +0 -48
  319. data/docs/subcommands/nic_get.md +0 -43
  320. data/docs/subcommands/nic_update.md +0 -58
  321. data/docs/subcommands/node_get.md +0 -43
  322. data/docs/subcommands/nodepool_get.md +0 -39
  323. data/docs/subcommands/nodepool_update.md +0 -69
  324. data/docs/subcommands/pcc_get.md +0 -35
  325. data/docs/subcommands/pcc_update.md +0 -41
  326. data/docs/subcommands/request_get.md +0 -35
  327. data/docs/subcommands/s3key_get.md +0 -39
  328. data/docs/subcommands/server_get.md +0 -39
  329. data/docs/subcommands/server_update.md +0 -60
  330. data/docs/subcommands/share_get.md +0 -39
  331. data/docs/subcommands/share_update.md +0 -45
  332. data/docs/subcommands/snapshot_get.md +0 -35
  333. data/docs/subcommands/snapshot_update.md +0 -77
  334. data/docs/subcommands/user_get.md +0 -35
  335. data/docs/subcommands/user_update.md +0 -56
  336. data/docs/subcommands/volume_get.md +0 -39
  337. data/docs/subcommands/volume_update.md +0 -66
  338. data/lib/chef/knife/ionoscloud_backupunit_get.rb +0 -33
  339. data/lib/chef/knife/ionoscloud_backupunit_update.rb +0 -62
  340. data/lib/chef/knife/ionoscloud_datacenter_get.rb +0 -33
  341. data/lib/chef/knife/ionoscloud_datacenter_update.rb +0 -67
  342. data/lib/chef/knife/ionoscloud_firewall_get.rb +0 -50
  343. data/lib/chef/knife/ionoscloud_firewall_update.rb +0 -131
  344. data/lib/chef/knife/ionoscloud_group_update.rb +0 -114
  345. data/lib/chef/knife/ionoscloud_ipblock_get.rb +0 -33
  346. data/lib/chef/knife/ionoscloud_ipblock_update.rb +0 -57
  347. data/lib/chef/knife/ionoscloud_k8s_get.rb +0 -33
  348. data/lib/chef/knife/ionoscloud_k8s_update.rb +0 -99
  349. data/lib/chef/knife/ionoscloud_lan_get.rb +0 -38
  350. data/lib/chef/knife/ionoscloud_lan_update.rb +0 -87
  351. data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +0 -73
  352. data/lib/chef/knife/ionoscloud_nic_get.rb +0 -47
  353. data/lib/chef/knife/ionoscloud_nic_update.rb +0 -93
  354. data/lib/chef/knife/ionoscloud_node_get.rb +0 -47
  355. data/lib/chef/knife/ionoscloud_nodepool_get.rb +0 -41
  356. data/lib/chef/knife/ionoscloud_nodepool_update.rb +0 -124
  357. data/lib/chef/knife/ionoscloud_pcc_get.rb +0 -33
  358. data/lib/chef/knife/ionoscloud_pcc_update.rb +0 -63
  359. data/lib/chef/knife/ionoscloud_request_get.rb +0 -40
  360. data/lib/chef/knife/ionoscloud_s3key_get.rb +0 -38
  361. data/lib/chef/knife/ionoscloud_server_update.rb +0 -97
  362. data/lib/chef/knife/ionoscloud_share_get.rb +0 -38
  363. data/lib/chef/knife/ionoscloud_share_update.rb +0 -70
  364. data/lib/chef/knife/ionoscloud_snapshot_get.rb +0 -32
  365. data/lib/chef/knife/ionoscloud_snapshot_update.rb +0 -126
  366. data/lib/chef/knife/ionoscloud_user_get.rb +0 -32
  367. data/lib/chef/knife/ionoscloud_user_update.rb +0 -92
  368. data/lib/chef/knife/ionoscloud_volume_get.rb +0 -36
  369. data/lib/chef/knife/ionoscloud_volume_update.rb +0 -106
  370. data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +0 -65
  371. data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +0 -78
  372. data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +0 -69
  373. data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +0 -82
  374. data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +0 -76
  375. data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +0 -116
  376. data/spec/chef/knife/ionoscloud_group_update_spec.rb +0 -109
  377. data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +0 -66
  378. data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +0 -79
  379. data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +0 -73
  380. data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +0 -115
  381. data/spec/chef/knife/ionoscloud_lan_get_spec.rb +0 -68
  382. data/spec/chef/knife/ionoscloud_lan_update_spec.rb +0 -91
  383. data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +0 -89
  384. data/spec/chef/knife/ionoscloud_nic_get_spec.rb +0 -70
  385. data/spec/chef/knife/ionoscloud_nic_update_spec.rb +0 -92
  386. data/spec/chef/knife/ionoscloud_node_get_spec.rb +0 -70
  387. data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +0 -83
  388. data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +0 -130
  389. data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +0 -71
  390. data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +0 -83
  391. data/spec/chef/knife/ionoscloud_request_get_spec.rb +0 -69
  392. data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +0 -66
  393. data/spec/chef/knife/ionoscloud_server_get_spec.rb +0 -71
  394. data/spec/chef/knife/ionoscloud_server_update_spec.rb +0 -102
  395. data/spec/chef/knife/ionoscloud_share_get_spec.rb +0 -66
  396. data/spec/chef/knife/ionoscloud_share_update_spec.rb +0 -91
  397. data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +0 -79
  398. data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +0 -113
  399. data/spec/chef/knife/ionoscloud_user_get_spec.rb +0 -70
  400. data/spec/chef/knife/ionoscloud_user_update_spec.rb +0 -110
  401. data/spec/chef/knife/ionoscloud_volume_get_spec.rb +0 -80
  402. data/spec/chef/knife/ionoscloud_volume_update_spec.rb +0 -115
@@ -0,0 +1,121 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudFlowlogCreate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud flowlog create (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_ID',
12
+ long: '--datacenter-id DATACENTER_ID',
13
+ description: 'ID of the data center'
14
+
15
+ option :type,
16
+ short: '-t FLOWLOG_TYPE',
17
+ long: '--type FLOWLOG_TYPE',
18
+ description: 'The object to which the flow log will be attached'
19
+
20
+ option :server_id,
21
+ short: '-S SERVER_ID',
22
+ long: '--server-id SERVER_ID',
23
+ description: 'ID of the server'
24
+
25
+ option :nic_id,
26
+ short: '-N NIC_ID',
27
+ long: '--nic-id NIC_ID',
28
+ description: 'ID of the NIC'
29
+
30
+ option :natgateway_id,
31
+ short: '-G NAT_GATEWAY_ID',
32
+ long: '--natgateway NAT_GATEWAY_ID',
33
+ description: 'ID of the NAT Gateway'
34
+
35
+ option :network_loadbalancer_id,
36
+ short: '-L NETWORK_LOADBALANCER',
37
+ long: '--network-loadbalancer NETWORK_LOADBALANCER',
38
+ description: 'ID of the Network Load Balancer'
39
+
40
+ option :name,
41
+ short: '-n NAME',
42
+ long: '--name NAME',
43
+ description: 'Name of the Flow Log'
44
+
45
+ option :action,
46
+ short: '-a ACTION',
47
+ long: '--action ACTION',
48
+ default: 'ALL',
49
+ description: 'Specifies the traffic action pattern. Must be one of ["ALL", "ACCEPTED", "REJECTED"].'
50
+
51
+ option :direction,
52
+ long: '--direction DIRECTION',
53
+ default: 'BIDIRECTIONAL',
54
+ description: 'Specifies the traffic direction pattern. Must be one of ["INGRESS", "EGRESS", "BIDIRECTIONAL"].'
55
+
56
+ option :bucket,
57
+ short: '-b BUCKET',
58
+ long: '--bucket BUCKET',
59
+ description: 'S3 bucket name of an existing IONOS Cloud S3 bucket. Ex. bucketName/key'
60
+
61
+ attr_reader :description, :required_options
62
+
63
+ def initialize(args = [])
64
+ super(args)
65
+ @description =
66
+ 'This will add a Flow Log to the network interface, NAT Gateway or Network Load Balancer.'
67
+ @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
68
+ end
69
+
70
+ def run
71
+ $stdout.sync = true
72
+ validate_required_params(@required_options, config)
73
+
74
+ print "#{ui.color('Creating flow log...', :magenta)}"
75
+
76
+ case config[:type]
77
+ when 'nic'
78
+ validate_required_params([:server_id, :nic_id], config)
79
+ flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
80
+ method = flowlogs_api.method(:datacenters_servers_nics_flowlogs_post_with_http_info)
81
+ args = [config[:datacenter_id], config[:server_id], config[:nic_id]]
82
+ when 'natgateway'
83
+ validate_required_params([:natgateway_id], config)
84
+ flowlogs_api = Ionoscloud::NATGatewaysApi.new(api_client)
85
+ method = flowlogs_api.method(:datacenters_natgateways_flowlogs_post_with_http_info)
86
+ args = [config[:datacenter_id], config[:natgateway_id]]
87
+ when 'loadbalancer'
88
+ validate_required_params([:network_loadbalancer_id], config)
89
+ flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
90
+ method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_post_with_http_info)
91
+ args = [config[:datacenter_id], config[:network_loadbalancer_id]]
92
+ else
93
+ ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'loadbalancer']"
94
+ exit(1)
95
+ end
96
+
97
+ flowlog = Ionoscloud::FlowLog.new(
98
+ properties: Ionoscloud::FlowLogProperties.new({
99
+ name: config[:name],
100
+ action: config[:action],
101
+ direction: config[:direction],
102
+ bucket: config[:bucket],
103
+ }.compact),
104
+ )
105
+
106
+ flowlog, _, headers = method.call(*args, flowlog)
107
+
108
+ dot = ui.color('.', :magenta)
109
+ api_client.wait_for { print dot; is_done? get_request_id headers }
110
+
111
+ puts "\n"
112
+ puts "#{ui.color('ID', :cyan)}: #{flowlog.id}"
113
+ puts "#{ui.color('Name', :cyan)}: #{flowlog.properties.name}"
114
+ puts "#{ui.color('Action', :cyan)}: #{flowlog.properties.action}"
115
+ puts "#{ui.color('Direction', :cyan)}: #{flowlog.properties.direction}"
116
+ puts "#{ui.color('Bucket', :cyan)}: #{flowlog.properties.bucket}"
117
+ puts 'done'
118
+ end
119
+ end
120
+ end
121
+ end
@@ -0,0 +1,106 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudFlowlogDelete < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud flowlog delete FLOWLOG_ID [FLOWLOG_ID] (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_ID',
12
+ long: '--datacenter-id DATACENTER_ID',
13
+ description: 'The ID of the data center'
14
+
15
+ option :type,
16
+ short: '-t FLOWLOG_TYPE',
17
+ long: '--type FLOWLOG_TYPE',
18
+ description: 'The object to which the flow log will be attached'
19
+
20
+ option :server_id,
21
+ short: '-S SERVER_ID',
22
+ long: '--server-id SERVER_ID',
23
+ description: 'The ID of the server'
24
+
25
+ option :nic_id,
26
+ short: '-N NIC_ID',
27
+ long: '--nic-id NIC_ID',
28
+ description: 'ID of the NIC'
29
+
30
+ option :natgateway_id,
31
+ short: '-G NAT_GATEWAY_ID',
32
+ long: '--nat-gateway NAT_GATEWAY_ID',
33
+ description: 'ID of the NAT Gateway'
34
+
35
+ option :network_loadbalancer_id,
36
+ short: '-L NETWORK_LOADBALANCER',
37
+ long: '--network-loadbalancer NETWORK_LOADBALANCER',
38
+ description: 'ID of the Network Load Balancer'
39
+
40
+ attr_reader :description, :required_options
41
+
42
+ def initialize(args = [])
43
+ super(args)
44
+ @description =
45
+ 'Removes the specified Flow Logs.'
46
+ @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
47
+ end
48
+
49
+ def run
50
+ $stdout.sync = true
51
+ validate_required_params(@required_options, config)
52
+
53
+ flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
54
+
55
+ case config[:type]
56
+ when 'nic'
57
+ validate_required_params([:server_id, :nic_id], config)
58
+ flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
59
+ delete_method = flowlogs_api.method(:datacenters_servers_nics_flowlogs_delete_with_http_info)
60
+ get_method = flowlogs_api.method(:datacenters_servers_nics_flowlogs_find_by_id)
61
+ args = [config[:datacenter_id], config[:server_id], config[:nic_id]]
62
+ when 'natgateway'
63
+ validate_required_params([:natgateway_id], config)
64
+ flowlogs_api = Ionoscloud::NATGatewaysApi.new(api_client)
65
+ delete_method = flowlogs_api.method(:datacenters_natgateways_flowlogs_delete_with_http_info)
66
+ get_method = flowlogs_api.method(:datacenters_natgateways_flowlogs_find_by_flow_log_id)
67
+ args = [config[:datacenter_id], config[:natgateway_id]]
68
+ when 'loadbalancer'
69
+ validate_required_params([:network_loadbalancer_id], config)
70
+ flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
71
+ delete_method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_delete_with_http_info)
72
+ get_method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_find_by_flow_log_id)
73
+ args = [config[:datacenter_id], config[:network_loadbalancer_id]]
74
+ else
75
+ ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'loadbalancer']"
76
+ exit(1)
77
+ end
78
+
79
+ @name_args.each do |flowlog_id|
80
+ begin
81
+ firewall = get_method.call(*args, flowlog_id)
82
+ rescue Ionoscloud::ApiError => err
83
+ raise err unless err.code == 404
84
+ ui.error("Flow log ID #{flowlog_id} not found. Skipping.")
85
+ next
86
+ end
87
+
88
+ msg_pair('ID', firewall.id)
89
+ msg_pair('Name', firewall.properties.name)
90
+ msg_pair('Action', firewall.properties.action)
91
+ msg_pair('Direction', firewall.properties.direction)
92
+ msg_pair('Bucket', firewall.properties.bucket)
93
+
94
+ begin
95
+ confirm('Do you really want to delete this flow log')
96
+ rescue SystemExit => exc
97
+ next
98
+ end
99
+
100
+ _, _, headers = delete_method.call(*args, flowlog_id)
101
+ ui.warn("Deleted flow log #{firewall.id}. Request ID: #{get_request_id headers}")
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,100 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudFlowlogList < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud flowlog list (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_ID',
12
+ long: '--datacenter-id DATACENTER_ID',
13
+ description: 'ID of the data center'
14
+
15
+ option :type,
16
+ short: '-t FLOWLOG_TYPE',
17
+ long: '--type FLOWLOG_TYPE',
18
+ description: 'The object to which the flow log will be attached'
19
+
20
+ option :server_id,
21
+ short: '-S SERVER_ID',
22
+ long: '--server-id SERVER_ID',
23
+ description: 'The ID of the server'
24
+
25
+ option :nic_id,
26
+ short: '-N NIC_ID',
27
+ long: '--nic-id NIC_ID',
28
+ description: 'ID of the NIC'
29
+
30
+ option :natgateway_id,
31
+ short: '-G NAT_GATEWAY_ID',
32
+ long: '--nat-gateway NAT_GATEWAY_ID',
33
+ description: 'ID of the NAT Gateway'
34
+
35
+ option :network_loadbalancer_id,
36
+ short: '-L NETWORK_LOADBALANCER',
37
+ long: '--network-loadbalancer NETWORK_LOADBALANCER',
38
+ description: 'ID of the Network Load Balancer'
39
+
40
+ attr_reader :description, :required_options
41
+
42
+ def initialize(args = [])
43
+ super(args)
44
+ @description =
45
+ 'Lists all available flow logs assigned to a NIC, NAT Gateway or Network Load Balancer.'
46
+ @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
47
+ end
48
+
49
+ def run
50
+ $stdout.sync = true
51
+ validate_required_params(@required_options, config)
52
+
53
+ flowlog_list = [
54
+ ui.color('ID', :bold),
55
+ ui.color('Name', :bold),
56
+ ui.color('Action', :bold),
57
+ ui.color('Direction', :bold),
58
+ ui.color('Bucket', :bold),
59
+ ]
60
+ flowlogs = []
61
+
62
+ case config[:type]
63
+ when 'nic'
64
+ validate_required_params([:server_id, :nic_id], config)
65
+ flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
66
+ flowlogs = flowlogs_api.datacenters_servers_nics_flowlogs_get(
67
+ config[:datacenter_id], config[:server_id], config[:nic_id], { depth: 1 }
68
+ )
69
+ when 'natgateway'
70
+ validate_required_params([:natgateway_id], config)
71
+ flowlogs_api = Ionoscloud::NATGatewaysApi.new(api_client)
72
+ flowlogs = flowlogs_api.datacenters_natgateways_flowlogs_get(
73
+ config[:datacenter_id], config[:natgateway_id], { depth: 1 }
74
+ )
75
+ when 'loadbalancer'
76
+ validate_required_params([:network_loadbalancer_id], config)
77
+ flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
78
+ flowlogs = flowlogs_api.datacenters_networkloadbalancers_flowlogs_get(
79
+ config[:datacenter_id], config[:network_loadbalancer_id], { depth: 1 }
80
+ )
81
+ else
82
+ ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'loadbalancer']"
83
+ exit(1)
84
+ end
85
+
86
+ flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
87
+
88
+ flowlogs.items.each do |flowlog|
89
+ flowlog_list << flowlog.id
90
+ flowlog_list << flowlog.properties.name
91
+ flowlog_list << flowlog.properties.action.to_s
92
+ flowlog_list << flowlog.properties.direction.to_s
93
+ flowlog_list << flowlog.properties.bucket.to_s
94
+ end
95
+
96
+ puts ui.list(flowlog_list, :uneven_columns_across, 5)
97
+ end
98
+ end
99
+ end
100
+ end
@@ -53,6 +53,19 @@ class Chef
53
53
  long: '--create-internet-access',
54
54
  description: 'The group will be have internet access privilege.'
55
55
 
56
+ option :create_flow_log,
57
+ long: '--create-flow-log',
58
+ description: 'The group will be granted create Flow Logs privilege.'
59
+
60
+ option :access_and_manage_monitoring,
61
+ long: '--manage-monitoring',
62
+ description: 'Privilege for a group to access and manage monitoring '\
63
+ 'related functionality (access metrics, CRUD on alarms, alarm-actions etc) using Monotoring-as-a-Service (MaaS).'
64
+
65
+ option :access_and_manage_certificates,
66
+ long: '--manage-certificates',
67
+ description: 'Privilege for a group to access and manage certificates.'
68
+
56
69
  attr_reader :description, :required_options
57
70
 
58
71
  def initialize(args = [])
@@ -64,34 +77,51 @@ class Chef
64
77
 
65
78
  def run
66
79
  $stdout.sync = true
67
- handle_extra_config
68
80
  validate_required_params(@required_options, config)
69
81
 
70
82
  print "#{ui.color('Creating Group...', :magenta)}"
71
83
 
72
84
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
73
85
 
86
+ group_properties = {
87
+ name: config[:name],
88
+ create_data_center: config[:create_data_center],
89
+ create_snapshot: config[:create_snapshot],
90
+ reserve_ip: config[:reserve_ip],
91
+ access_activity_log: config[:access_activity_log],
92
+ s3_privilege: config[:s3_privilege],
93
+ create_backup_unit: config[:create_backup_unit],
94
+ create_k8s_cluster: config[:create_k8s_cluster],
95
+ create_pcc: config[:create_pcc],
96
+ create_internet_access: config[:create_internet_access],
97
+ create_flow_log: config[:create_flow_log],
98
+ access_and_manage_monitoring: config[:access_and_manage_monitoring],
99
+ access_and_manage_certificates: config[:access_and_manage_certificates],
100
+ }.compact
101
+
74
102
  group, _, headers = user_management_api.um_groups_post_with_http_info(
75
- Ionoscloud::Group.new(
76
- properties: Ionoscloud::GroupProperties.new(
77
- name: config[:name],
78
- create_data_center: config[:create_data_center],
79
- create_snapshot: config[:create_snapshot],
80
- reserve_ip: config[:reserve_ip],
81
- access_activity_log: config[:access_activity_log],
82
- s3_privilege: config[:s3_privilege],
83
- create_backup_unit: config[:create_backup_unit],
84
- create_k8s_cluster: config[:create_k8s_cluster],
85
- create_pcc: config[:create_pcc],
86
- create_internet_access: config[:create_internet_access],
87
- ),
88
- ),
103
+ Ionoscloud::Group.new(properties: Ionoscloud::GroupProperties.new(**group_properties)),
89
104
  )
90
105
 
91
106
  dot = ui.color('.', :magenta)
92
107
  api_client.wait_for { print dot; is_done? get_request_id headers }
93
108
 
94
- print_group(user_management_api.um_groups_find_by_id(group.id, depth: 1))
109
+ puts "\n"
110
+ puts "#{ui.color('ID', :cyan)}: #{group.id}"
111
+ puts "#{ui.color('Name', :cyan)}: #{group.properties.name}"
112
+ puts "#{ui.color('Create Datacenter', :cyan)}: #{group.properties.create_data_center.to_s}"
113
+ puts "#{ui.color('Create Snapshot', :cyan)}: #{group.properties.create_snapshot.to_s}"
114
+ puts "#{ui.color('Reserve IP', :cyan)}: #{group.properties.reserve_ip.to_s}"
115
+ puts "#{ui.color('Access Activity Log', :cyan)}: #{group.properties.access_activity_log.to_s}"
116
+ puts "#{ui.color('S3 Privilege', :cyan)}: #{group.properties.s3_privilege.to_s}"
117
+ puts "#{ui.color('Create Backup Unit', :cyan)}: #{group.properties.create_backup_unit.to_s}"
118
+ puts "#{ui.color('Create K8s Clusters', :cyan)}: #{group.properties.create_k8s_cluster.to_s}"
119
+ puts "#{ui.color('Create PCC', :cyan)}: #{group.properties.create_pcc.to_s}"
120
+ puts "#{ui.color('Create Internet Acess', :cyan)}: #{group.properties.create_internet_access.to_s}"
121
+ puts "#{ui.color('Create Flow Logs', :cyan)}: #{group.properties.create_flow_log.to_s}"
122
+ puts "#{ui.color('Access and Manage Monitoring', :cyan)}: #{group.properties.access_and_manage_monitoring.to_s}"
123
+ puts "#{ui.color('Access and Manage Certificates', :cyan)}: #{group.properties.access_and_manage_certificates.to_s}"
124
+ puts 'done'
95
125
  end
96
126
  end
97
127
  end
@@ -20,7 +20,6 @@ class Chef
20
20
 
21
21
  def run
22
22
  $stdout.sync = true
23
- handle_extra_config
24
23
  validate_required_params(@required_options, config)
25
24
 
26
25
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -34,7 +33,24 @@ class Chef
34
33
  next
35
34
  end
36
35
 
37
- print_group(group)
36
+ users = group.entities.users.items.map! { |el| el.id }
37
+
38
+ msg_pair('ID', group.id)
39
+ msg_pair('Name', group.properties.name)
40
+ msg_pair('Create Datacenter', group.properties.create_data_center.to_s)
41
+ msg_pair('Create Snapshot', group.properties.create_snapshot.to_s)
42
+ msg_pair('Reserve IP', group.properties.reserve_ip.to_s)
43
+ msg_pair('Access Activity Log', group.properties.access_activity_log.to_s)
44
+ msg_pair('S3 Privilege', group.properties.s3_privilege.to_s)
45
+ msg_pair('Create Backup Unit', group.properties.create_backup_unit.to_s)
46
+ msg_pair('Create K8s Clusters', group.properties.create_k8s_cluster.to_s)
47
+ msg_pair('Create PCC', group.properties.create_pcc.to_s)
48
+ msg_pair('Create Internet Acess', group.properties.create_internet_access.to_s)
49
+ msg_pair('Create Flow Logs', group.properties.create_flow_log.to_s)
50
+ msg_pair('Access and Manage Monitoring', group.properties.access_and_manage_monitoring.to_s)
51
+ msg_pair('Access and Manage Certificates', group.properties.access_and_manage_certificates.to_s)
52
+
53
+ msg_pair('Users', users.to_s)
38
54
  puts "\n"
39
55
 
40
56
  begin
@@ -24,13 +24,28 @@ class Chef
24
24
 
25
25
  def run
26
26
  $stdout.sync = true
27
- handle_extra_config
28
27
  validate_required_params(@required_options, config)
29
28
 
30
29
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
31
30
  group = user_management_api.um_groups_find_by_id(config[:group_id], { depth: 1 })
32
31
 
33
- print_group(group)
32
+ users = group.entities.users.items.map! { |el| el.id }
33
+
34
+ puts "#{ui.color('ID', :cyan)}: #{group.id}"
35
+ puts "#{ui.color('Name', :cyan)}: #{group.properties.name}"
36
+ puts "#{ui.color('Create Datacenter', :cyan)}: #{group.properties.create_data_center.to_s}"
37
+ puts "#{ui.color('Create Snapshot', :cyan)}: #{group.properties.create_snapshot.to_s}"
38
+ puts "#{ui.color('Reserve IP', :cyan)}: #{group.properties.reserve_ip.to_s}"
39
+ puts "#{ui.color('Access Activity Log', :cyan)}: #{group.properties.access_activity_log.to_s}"
40
+ puts "#{ui.color('S3 Privilege', :cyan)}: #{group.properties.s3_privilege.to_s}"
41
+ puts "#{ui.color('Create Backup Unit', :cyan)}: #{group.properties.create_backup_unit.to_s}"
42
+ puts "#{ui.color('Create K8s Clusters', :cyan)}: #{group.properties.create_k8s_cluster.to_s}"
43
+ puts "#{ui.color('Create PCC', :cyan)}: #{group.properties.create_pcc.to_s}"
44
+ puts "#{ui.color('Create Internet Acess', :cyan)}: #{group.properties.create_internet_access.to_s}"
45
+ puts "#{ui.color('Create Flow Logs', :cyan)}: #{group.properties.create_flow_log.to_s}"
46
+ puts "#{ui.color('Access and Manage Monitoring', :cyan)}: #{group.properties.access_and_manage_monitoring.to_s}"
47
+ puts "#{ui.color('Access and Manage Certificates', :cyan)}: #{group.properties.access_and_manage_certificates.to_s}"
48
+ puts "#{ui.color('Users', :cyan)}: #{users.to_s}"
34
49
  end
35
50
  end
36
51
  end
@@ -23,7 +23,6 @@ class Chef
23
23
 
24
24
  def run
25
25
  $stdout.sync = true
26
- handle_extra_config
27
26
  validate_required_params(@required_options, config)
28
27
 
29
28
  group_list = [
@@ -38,6 +37,9 @@ class Chef
38
37
  ui.color('K8s', :bold),
39
38
  ui.color('PCC', :bold),
40
39
  ui.color('Internet', :bold),
40
+ ui.color('FlowLogs', :bold),
41
+ ui.color('Monitoring', :bold),
42
+ ui.color('Certificates', :bold),
41
43
  ]
42
44
 
43
45
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -60,9 +62,12 @@ class Chef
60
62
  group_list << group.properties.create_k8s_cluster.to_s
61
63
  group_list << group.properties.create_pcc.to_s
62
64
  group_list << group.properties.create_internet_access.to_s
65
+ group_list << group.properties.create_flow_log.to_s
66
+ group_list << group.properties.access_and_manage_monitoring.to_s
67
+ group_list << group.properties.access_and_manage_certificates.to_s
63
68
  end
64
69
 
65
- puts ui.list(group_list, :uneven_columns_across, 11)
70
+ puts ui.list(group_list, :uneven_columns_across, 14)
66
71
  end
67
72
  end
68
73
  end
@@ -23,7 +23,6 @@ class Chef
23
23
 
24
24
  def run
25
25
  $stdout.sync = true
26
- handle_extra_config
27
26
  validate_required_params(@required_options, config)
28
27
 
29
28
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -54,7 +53,19 @@ class Chef
54
53
  { depth: 1 },
55
54
  )
56
55
 
57
- print_group(group)
56
+ users = group.entities.users.items.map! { |el| el.id }
57
+
58
+ puts "\n"
59
+ puts "#{ui.color('ID', :cyan)}: #{group.id}"
60
+ puts "#{ui.color('Name', :cyan)}: #{group.properties.name}"
61
+ puts "#{ui.color('Create Datacenter', :cyan)}: #{group.properties.create_data_center.to_s}"
62
+ puts "#{ui.color('Create Snapshot', :cyan)}: #{group.properties.create_snapshot.to_s}"
63
+ puts "#{ui.color('Reserve IP', :cyan)}: #{group.properties.reserve_ip.to_s}"
64
+ puts "#{ui.color('Access Activity Log', :cyan)}: #{group.properties.access_activity_log.to_s}"
65
+ puts "#{ui.color('S3 Privilege', :cyan)}: #{group.properties.s3_privilege.to_s}"
66
+ puts "#{ui.color('Create Backup Unit', :cyan)}: #{group.properties.create_backup_unit.to_s}"
67
+ puts "#{ui.color('Users', :cyan)}: #{users.to_s}"
68
+ puts 'done'
58
69
  end
59
70
  end
60
71
  end
@@ -23,7 +23,6 @@ class Chef
23
23
 
24
24
  def run
25
25
  $stdout.sync = true
26
- handle_extra_config
27
26
  validate_required_params(@required_options, config)
28
27
 
29
28
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -54,7 +53,19 @@ class Chef
54
53
  { depth: 1 },
55
54
  )
56
55
 
57
- print_group(group)
56
+ users = group.entities.users.items.map! { |el| el.id }
57
+
58
+ puts "\n"
59
+ puts "#{ui.color('ID', :cyan)}: #{group.id}"
60
+ puts "#{ui.color('Name', :cyan)}: #{group.properties.name}"
61
+ puts "#{ui.color('Create Datacenter', :cyan)}: #{group.properties.create_data_center.to_s}"
62
+ puts "#{ui.color('Create Snapshot', :cyan)}: #{group.properties.create_snapshot.to_s}"
63
+ puts "#{ui.color('Reserve IP', :cyan)}: #{group.properties.reserve_ip.to_s}"
64
+ puts "#{ui.color('Access Activity Log', :cyan)}: #{group.properties.access_activity_log.to_s}"
65
+ puts "#{ui.color('S3 Privilege', :cyan)}: #{group.properties.s3_privilege.to_s}"
66
+ puts "#{ui.color('Create Backup Unit', :cyan)}: #{group.properties.create_backup_unit.to_s}"
67
+ puts "#{ui.color('Users', :cyan)}: #{users.to_s}"
68
+ puts 'done'
58
69
  end
59
70
  end
60
71
  end
@@ -19,7 +19,6 @@ class Chef
19
19
 
20
20
  def run
21
21
  $stdout.sync = true
22
- handle_extra_config
23
22
  validate_required_params(@required_options, config)
24
23
 
25
24
  image_list = [
@@ -30,7 +29,7 @@ class Chef
30
29
  ui.color('Public', :bold),
31
30
  ui.color('Aliases', :bold),
32
31
  ]
33
- image_api = Ionoscloud::ImageApi.new(api_client)
32
+ image_api = Ionoscloud::ImagesApi.new(api_client)
34
33
 
35
34
  image_api.images_get({ depth: 1 }).items.each do |image|
36
35
  image_list << image.id
@@ -36,25 +36,27 @@ class Chef
36
36
 
37
37
  def run
38
38
  $stdout.sync = true
39
- handle_extra_config
40
39
  validate_required_params(@required_options, config)
41
40
 
42
41
  print "#{ui.color('Allocating IP block...', :magenta)}"
43
42
 
44
- ipblock, _, headers = Ionoscloud::IPBlocksApi.new(api_client).ipblocks_post_with_http_info(
45
- Ionoscloud::IpBlock.new(
46
- properties: Ionoscloud::IpBlockProperties.new(
47
- location: config[:location],
48
- size: config[:size],
49
- name: config[:name],
50
- ),
51
- ),
52
- )
43
+ params = {
44
+ location: config[:location],
45
+ size: config[:size],
46
+ name: config[:name],
47
+ }.compact
48
+
49
+ ipblock, _, headers = Ionoscloud::IPBlocksApi.new(api_client).ipblocks_post_with_http_info({ properties: params.compact })
53
50
 
54
51
  dot = ui.color('.', :magenta)
55
52
  api_client.wait_for { print dot; is_done? get_request_id headers }
56
53
 
57
- print_ipblock(ipblock)
54
+ puts "\n"
55
+ puts "#{ui.color('ID', :cyan)}: #{ipblock.id}"
56
+ puts "#{ui.color('Name', :cyan)}: #{ipblock.properties.name}"
57
+ puts "#{ui.color('Location', :cyan)}: #{ipblock.properties.location}"
58
+ puts "#{ui.color('IP Addresses', :cyan)}: #{ipblock.properties.ips.to_s}"
59
+ puts 'done'
58
60
  end
59
61
  end
60
62
  end
@@ -18,7 +18,6 @@ class Chef
18
18
 
19
19
  def run
20
20
  $stdout.sync = true
21
- handle_extra_config
22
21
  validate_required_params(@required_options, config)
23
22
 
24
23
  ipblock_api = Ionoscloud::IPBlocksApi.new(api_client)
@@ -31,8 +30,10 @@ class Chef
31
30
  next
32
31
  end
33
32
 
34
- print_ipblock(ipblock)
35
- puts "\n"
33
+ msg_pair('ID', ipblock.id)
34
+ msg_pair('Name', ipblock.properties.name)
35
+ msg_pair('Location', ipblock.properties.location)
36
+ msg_pair('IP Addresses', ipblock.properties.ips)
36
37
 
37
38
  begin
38
39
  confirm('Do you really want to delete this IP block')
@@ -18,7 +18,6 @@ class Chef
18
18
 
19
19
  def run
20
20
  $stdout.sync = true
21
- handle_extra_config
22
21
  validate_required_params(@required_options, config)
23
22
 
24
23
  ipblock_list = [
@@ -35,7 +34,7 @@ class Chef
35
34
  ipblock_list << ipblock.properties.name
36
35
  ipblock_list << ipblock.properties.location
37
36
  ipblock_list << ipblock.properties.ips.join(', ')
38
- ipblock_list << (ipblock.properties.ip_consumers.nil? ? 0 : ipblock.properties.ip_consumers.length)
37
+ ipblock_list << ipblock.properties.ip_consumers.nil? ? 0 : ipblock.properties.ip_consumers.length
39
38
  end
40
39
 
41
40
  puts ui.list(ipblock_list, :uneven_columns_across, 5)