knife-ionoscloud 6.0.0.alpha.1 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (434) hide show
  1. checksums.yaml +4 -4
  2. data/.github/IONOS.CLOUD.BLU.svg +1 -0
  3. data/.github/workflows/publish.yml +4 -1
  4. data/README.md +9 -0
  5. data/docs/README.md +37 -0
  6. data/docs/changelog.md +10 -0
  7. data/docs/docs_generator.rb +45 -10
  8. data/docs/subcommands/{backupunit_create.md → backup/backupunit_create.md} +7 -1
  9. data/docs/subcommands/{backupunit_delete.md → backup/backupunit_delete.md} +7 -1
  10. data/docs/subcommands/backup/backupunit_get.md +38 -0
  11. data/docs/subcommands/{backupunit_list.md → backup/backupunit_list.md} +7 -1
  12. data/docs/subcommands/{backupunit_ssourl.md → backup/backupunit_ssourl.md} +7 -1
  13. data/docs/subcommands/backup/backupunit_update.md +44 -0
  14. data/docs/subcommands/{composite_server_create.md → compute-engine/composite_server_create.md} +15 -3
  15. data/docs/subcommands/compute-engine/cube_server_create.md +94 -0
  16. data/docs/subcommands/{datacenter_create.md → compute-engine/datacenter_create.md} +7 -1
  17. data/docs/subcommands/{datacenter_delete.md → compute-engine/datacenter_delete.md} +7 -1
  18. data/docs/subcommands/compute-engine/datacenter_get.md +38 -0
  19. data/docs/subcommands/{datacenter_list.md → compute-engine/datacenter_list.md} +7 -1
  20. data/docs/subcommands/compute-engine/datacenter_update.md +47 -0
  21. data/docs/subcommands/{firewall_create.md → compute-engine/firewall_create.md} +11 -2
  22. data/docs/subcommands/{firewall_delete.md → compute-engine/firewall_delete.md} +6 -0
  23. data/docs/subcommands/compute-engine/firewall_get.md +50 -0
  24. data/docs/subcommands/{firewall_list.md → compute-engine/firewall_list.md} +7 -1
  25. data/docs/subcommands/compute-engine/firewall_update.md +74 -0
  26. data/docs/subcommands/compute-engine/flowlog_create.md +66 -0
  27. data/docs/subcommands/compute-engine/flowlog_delete.md +54 -0
  28. data/docs/subcommands/compute-engine/flowlog_get.md +58 -0
  29. data/docs/subcommands/compute-engine/flowlog_list.md +54 -0
  30. data/docs/subcommands/compute-engine/flowlog_update.md +70 -0
  31. data/docs/subcommands/{image_list.md → compute-engine/image_list.md} +7 -1
  32. data/docs/subcommands/{ipblock_create.md → compute-engine/ipblock_create.md} +7 -1
  33. data/docs/subcommands/{ipblock_delete.md → compute-engine/ipblock_delete.md} +7 -1
  34. data/docs/subcommands/compute-engine/ipblock_get.md +38 -0
  35. data/docs/subcommands/{ipblock_list.md → compute-engine/ipblock_list.md} +7 -1
  36. data/docs/subcommands/compute-engine/ipblock_update.md +41 -0
  37. data/docs/subcommands/{ipfailover_add.md → compute-engine/ipfailover_add.md} +7 -1
  38. data/docs/subcommands/{ipfailover_remove.md → compute-engine/ipfailover_remove.md} +7 -1
  39. data/docs/subcommands/{label_add.md → compute-engine/label_add.md} +7 -1
  40. data/docs/subcommands/{label_list.md → compute-engine/label_list.md} +7 -1
  41. data/docs/subcommands/{label_remove.md → compute-engine/label_remove.md} +6 -0
  42. data/docs/subcommands/{lan_create.md → compute-engine/lan_create.md} +7 -1
  43. data/docs/subcommands/{lan_delete.md → compute-engine/lan_delete.md} +6 -0
  44. data/docs/subcommands/compute-engine/lan_get.md +42 -0
  45. data/docs/subcommands/{lan_list.md → compute-engine/lan_list.md} +7 -1
  46. data/docs/subcommands/compute-engine/lan_update.md +51 -0
  47. data/docs/subcommands/{loadbalancer_create.md → compute-engine/loadbalancer_create.md} +7 -1
  48. data/docs/subcommands/{loadbalancer_delete.md → compute-engine/loadbalancer_delete.md} +6 -0
  49. data/docs/subcommands/{loadbalancer_get.md → compute-engine/loadbalancer_get.md} +7 -1
  50. data/docs/subcommands/{loadbalancer_list.md → compute-engine/loadbalancer_list.md} +7 -1
  51. data/docs/subcommands/{loadbalancer_nic_add.md → compute-engine/loadbalancer_nic_add.md} +6 -0
  52. data/docs/subcommands/{loadbalancer_nic_remove.md → compute-engine/loadbalancer_nic_remove.md} +6 -0
  53. data/docs/subcommands/compute-engine/loadbalancer_update.md +51 -0
  54. data/docs/subcommands/{location_list.md → compute-engine/location_list.md} +7 -1
  55. data/docs/subcommands/compute-engine/natgateway_create.md +44 -0
  56. data/docs/subcommands/compute-engine/natgateway_delete.md +38 -0
  57. data/docs/subcommands/compute-engine/natgateway_get.md +42 -0
  58. data/docs/subcommands/compute-engine/natgateway_lan_add.md +49 -0
  59. data/docs/subcommands/compute-engine/natgateway_lan_remove.md +42 -0
  60. data/docs/subcommands/compute-engine/natgateway_list.md +38 -0
  61. data/docs/subcommands/compute-engine/natgateway_rule_add.md +69 -0
  62. data/docs/subcommands/compute-engine/natgateway_rule_list.md +41 -0
  63. data/docs/subcommands/compute-engine/natgateway_rule_remove.md +42 -0
  64. data/docs/subcommands/compute-engine/natgateway_rule_update.md +69 -0
  65. data/docs/subcommands/compute-engine/natgateway_update.md +51 -0
  66. data/docs/subcommands/compute-engine/networkloadbalancer_create.md +57 -0
  67. data/docs/subcommands/compute-engine/networkloadbalancer_delete.md +38 -0
  68. data/docs/subcommands/compute-engine/networkloadbalancer_get.md +42 -0
  69. data/docs/subcommands/compute-engine/networkloadbalancer_list.md +38 -0
  70. data/docs/subcommands/compute-engine/networkloadbalancer_rule_add.md +75 -0
  71. data/docs/subcommands/compute-engine/networkloadbalancer_rule_list.md +42 -0
  72. data/docs/subcommands/compute-engine/networkloadbalancer_rule_remove.md +42 -0
  73. data/docs/subcommands/compute-engine/networkloadbalancer_rule_target_add.md +67 -0
  74. data/docs/subcommands/compute-engine/networkloadbalancer_rule_target_list.md +46 -0
  75. data/docs/subcommands/compute-engine/networkloadbalancer_rule_target_remove.md +54 -0
  76. data/docs/subcommands/compute-engine/networkloadbalancer_rule_update.md +75 -0
  77. data/docs/subcommands/compute-engine/networkloadbalancer_update.md +57 -0
  78. data/docs/subcommands/{nic_create.md → compute-engine/nic_create.md} +9 -3
  79. data/docs/subcommands/{nic_delete.md → compute-engine/nic_delete.md} +6 -0
  80. data/docs/subcommands/compute-engine/nic_get.md +46 -0
  81. data/docs/subcommands/{nic_list.md → compute-engine/nic_list.md} +7 -1
  82. data/docs/subcommands/compute-engine/nic_update.md +61 -0
  83. data/docs/subcommands/{pcc_create.md → compute-engine/pcc_create.md} +7 -1
  84. data/docs/subcommands/{pcc_delete.md → compute-engine/pcc_delete.md} +7 -1
  85. data/docs/subcommands/compute-engine/pcc_get.md +38 -0
  86. data/docs/subcommands/{pcc_list.md → compute-engine/pcc_list.md} +7 -1
  87. data/docs/subcommands/compute-engine/pcc_update.md +44 -0
  88. data/docs/subcommands/compute-engine/request_get.md +38 -0
  89. data/docs/subcommands/{request_list.md → compute-engine/request_list.md} +7 -1
  90. data/docs/subcommands/{request_status.md → compute-engine/request_status.md} +7 -1
  91. data/docs/subcommands/{request_wait.md → compute-engine/request_wait.md} +7 -1
  92. data/docs/subcommands/compute-engine/server_console.md +42 -0
  93. data/docs/subcommands/{server_create.md → compute-engine/server_create.md} +7 -1
  94. data/docs/subcommands/{server_delete.md → compute-engine/server_delete.md} +6 -0
  95. data/docs/subcommands/compute-engine/server_get.md +42 -0
  96. data/docs/subcommands/{server_list.md → compute-engine/server_list.md} +10 -1
  97. data/docs/subcommands/{server_reboot.md → compute-engine/server_reboot.md} +6 -0
  98. data/docs/subcommands/compute-engine/server_resume.md +38 -0
  99. data/docs/subcommands/{server_start.md → compute-engine/server_start.md} +6 -0
  100. data/docs/subcommands/{server_stop.md → compute-engine/server_stop.md} +6 -0
  101. data/docs/subcommands/compute-engine/server_suspend.md +38 -0
  102. data/docs/subcommands/compute-engine/server_token.md +42 -0
  103. data/docs/subcommands/compute-engine/server_update.md +63 -0
  104. data/docs/subcommands/compute-engine/server_upgrade.md +42 -0
  105. data/docs/subcommands/{snapshot_create.md → compute-engine/snapshot_create.md} +7 -1
  106. data/docs/subcommands/{snapshot_delete.md → compute-engine/snapshot_delete.md} +7 -1
  107. data/docs/subcommands/compute-engine/snapshot_get.md +38 -0
  108. data/docs/subcommands/{snapshot_list.md → compute-engine/snapshot_list.md} +7 -1
  109. data/docs/subcommands/{snapshot_restore.md → compute-engine/snapshot_restore.md} +7 -1
  110. data/docs/subcommands/compute-engine/snapshot_update.md +80 -0
  111. data/docs/subcommands/compute-engine/template_list.md +34 -0
  112. data/docs/subcommands/{volume_attach.md → compute-engine/volume_attach.md} +6 -0
  113. data/docs/subcommands/{volume_create.md → compute-engine/volume_create.md} +14 -5
  114. data/docs/subcommands/{volume_delete.md → compute-engine/volume_delete.md} +6 -0
  115. data/docs/subcommands/{volume_detach.md → compute-engine/volume_detach.md} +6 -0
  116. data/docs/subcommands/compute-engine/volume_get.md +42 -0
  117. data/docs/subcommands/{volume_list.md → compute-engine/volume_list.md} +7 -1
  118. data/docs/subcommands/compute-engine/volume_update.md +69 -0
  119. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_get.md +38 -0
  120. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_list.md +38 -0
  121. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_create.md +100 -0
  122. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_delete.md +34 -0
  123. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_get.md +38 -0
  124. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_list.md +34 -0
  125. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_restore.md +44 -0
  126. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_update.md +65 -0
  127. data/docs/subcommands/dbaas-postgres/dbaas_postgres_logs_get.md +47 -0
  128. data/docs/subcommands/dbaas-postgres/dbaas_postgres_version_list.md +38 -0
  129. data/docs/subcommands/kubernetes/k8s_create.md +53 -0
  130. data/docs/subcommands/{k8s_delete.md → kubernetes/k8s_delete.md} +7 -1
  131. data/docs/subcommands/kubernetes/k8s_get.md +38 -0
  132. data/docs/subcommands/{k8s_list.md → kubernetes/k8s_list.md} +7 -1
  133. data/docs/subcommands/kubernetes/k8s_update.md +56 -0
  134. data/docs/subcommands/{kubeconfig_get.md → kubernetes/kubeconfig_get.md} +7 -1
  135. data/docs/subcommands/{node_delete.md → kubernetes/node_delete.md} +6 -0
  136. data/docs/subcommands/kubernetes/node_get.md +46 -0
  137. data/docs/subcommands/{node_list.md → kubernetes/node_list.md} +7 -1
  138. data/docs/subcommands/{node_replace.md → kubernetes/node_replace.md} +6 -0
  139. data/docs/subcommands/{nodepool_create.md → kubernetes/nodepool_create.md} +16 -1
  140. data/docs/subcommands/{nodepool_delete.md → kubernetes/nodepool_delete.md} +6 -0
  141. data/docs/subcommands/kubernetes/nodepool_get.md +42 -0
  142. data/docs/subcommands/kubernetes/nodepool_lan_add.md +52 -0
  143. data/docs/subcommands/kubernetes/nodepool_lan_remove.md +42 -0
  144. data/docs/subcommands/{nodepool_list.md → kubernetes/nodepool_list.md} +7 -1
  145. data/docs/subcommands/kubernetes/nodepool_update.md +72 -0
  146. data/docs/subcommands/{contract_list.md → user/contract_list.md} +7 -1
  147. data/docs/subcommands/{group_create.md → user/group_create.md} +16 -1
  148. data/docs/subcommands/{group_delete.md → user/group_delete.md} +7 -1
  149. data/docs/subcommands/{group_get.md → user/group_get.md} +7 -1
  150. data/docs/subcommands/{group_list.md → user/group_list.md} +7 -1
  151. data/docs/subcommands/user/group_update.md +77 -0
  152. data/docs/subcommands/{group_user_add.md → user/group_user_add.md} +6 -0
  153. data/docs/subcommands/{group_user_remove.md → user/group_user_remove.md} +6 -0
  154. data/docs/subcommands/{resource_list.md → user/resource_list.md} +7 -1
  155. data/docs/subcommands/{s3key_create.md → user/s3key_create.md} +7 -1
  156. data/docs/subcommands/{s3key_delete.md → user/s3key_delete.md} +6 -0
  157. data/docs/subcommands/user/s3key_get.md +42 -0
  158. data/docs/subcommands/{s3key_list.md → user/s3key_list.md} +7 -1
  159. data/docs/subcommands/{share_create.md → user/share_create.md} +7 -1
  160. data/docs/subcommands/{share_delete.md → user/share_delete.md} +6 -0
  161. data/docs/subcommands/user/share_get.md +42 -0
  162. data/docs/subcommands/{share_list.md → user/share_list.md} +7 -1
  163. data/docs/subcommands/user/share_update.md +48 -0
  164. data/docs/subcommands/{user_create.md → user/user_create.md} +7 -1
  165. data/docs/subcommands/{user_delete.md → user/user_delete.md} +7 -1
  166. data/docs/subcommands/user/user_get.md +38 -0
  167. data/docs/subcommands/{user_list.md → user/user_list.md} +7 -1
  168. data/docs/subcommands/{user_ssourl.md → user/user_ssourl.md} +7 -1
  169. data/docs/subcommands/user/user_update.md +59 -0
  170. data/docs/summary.md +167 -82
  171. data/docs/templates/summary.mustache +6 -3
  172. data/knife-ionoscloud.gemspec +2 -1
  173. data/lib/chef/knife/ionoscloud_backupunit_create.rb +12 -16
  174. data/lib/chef/knife/ionoscloud_backupunit_delete.rb +3 -6
  175. data/lib/chef/knife/ionoscloud_backupunit_get.rb +32 -0
  176. data/lib/chef/knife/ionoscloud_backupunit_list.rb +2 -2
  177. data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +2 -2
  178. data/lib/chef/knife/ionoscloud_backupunit_update.rb +61 -0
  179. data/lib/chef/knife/ionoscloud_base.rb +417 -1
  180. data/lib/chef/knife/ionoscloud_composite_server_create.rb +7 -11
  181. data/lib/chef/knife/ionoscloud_contract_list.rb +2 -2
  182. data/lib/chef/knife/ionoscloud_cube_server_create.rb +7 -11
  183. data/lib/chef/knife/ionoscloud_datacenter_create.rb +12 -15
  184. data/lib/chef/knife/ionoscloud_datacenter_delete.rb +3 -8
  185. data/lib/chef/knife/ionoscloud_datacenter_get.rb +32 -0
  186. data/lib/chef/knife/ionoscloud_datacenter_list.rb +2 -2
  187. data/lib/chef/knife/ionoscloud_datacenter_update.rb +66 -0
  188. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_get.rb +33 -0
  189. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_list.rb +59 -0
  190. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_create.rb +158 -0
  191. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_delete.rb +49 -0
  192. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_get.rb +34 -0
  193. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_list.rb +53 -0
  194. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_restore.rb +48 -0
  195. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_update.rb +102 -0
  196. data/lib/chef/knife/ionoscloud_dbaas_postgres_logs_get.rb +59 -0
  197. data/lib/chef/knife/ionoscloud_dbaas_postgres_version_list.rb +49 -0
  198. data/lib/chef/knife/ionoscloud_firewall_create.rb +10 -24
  199. data/lib/chef/knife/ionoscloud_firewall_delete.rb +4 -13
  200. data/lib/chef/knife/ionoscloud_firewall_get.rb +51 -0
  201. data/lib/chef/knife/ionoscloud_firewall_list.rb +2 -2
  202. data/lib/chef/knife/ionoscloud_firewall_update.rb +131 -0
  203. data/lib/chef/knife/ionoscloud_flowlog_create.rb +6 -14
  204. data/lib/chef/knife/ionoscloud_flowlog_delete.rb +10 -14
  205. data/lib/chef/knife/ionoscloud_flowlog_get.rb +83 -0
  206. data/lib/chef/knife/ionoscloud_flowlog_list.rb +4 -4
  207. data/lib/chef/knife/ionoscloud_flowlog_update.rb +124 -0
  208. data/lib/chef/knife/ionoscloud_group_create.rb +3 -18
  209. data/lib/chef/knife/ionoscloud_group_delete.rb +3 -20
  210. data/lib/chef/knife/ionoscloud_group_get.rb +3 -21
  211. data/lib/chef/knife/ionoscloud_group_list.rb +2 -2
  212. data/lib/chef/knife/ionoscloud_group_update.rb +130 -0
  213. data/lib/chef/knife/ionoscloud_group_user_add.rb +3 -20
  214. data/lib/chef/knife/ionoscloud_group_user_remove.rb +3 -20
  215. data/lib/chef/knife/ionoscloud_image_list.rb +2 -2
  216. data/lib/chef/knife/ionoscloud_ipblock_create.rb +12 -15
  217. data/lib/chef/knife/ionoscloud_ipblock_delete.rb +3 -6
  218. data/lib/chef/knife/ionoscloud_ipblock_get.rb +32 -0
  219. data/lib/chef/knife/ionoscloud_ipblock_list.rb +2 -2
  220. data/lib/chef/knife/ionoscloud_ipblock_update.rb +56 -0
  221. data/lib/chef/knife/ionoscloud_ipfailover_add.rb +3 -3
  222. data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +3 -3
  223. data/lib/chef/knife/ionoscloud_k8s_create.rb +28 -36
  224. data/lib/chef/knife/ionoscloud_k8s_delete.rb +3 -11
  225. data/lib/chef/knife/ionoscloud_k8s_get.rb +32 -0
  226. data/lib/chef/knife/ionoscloud_k8s_list.rb +2 -2
  227. data/lib/chef/knife/ionoscloud_k8s_update.rb +98 -0
  228. data/lib/chef/knife/ionoscloud_kubeconfig_get.rb +2 -2
  229. data/lib/chef/knife/ionoscloud_label_add.rb +2 -2
  230. data/lib/chef/knife/ionoscloud_label_list.rb +2 -2
  231. data/lib/chef/knife/ionoscloud_label_remove.rb +2 -2
  232. data/lib/chef/knife/ionoscloud_lan_create.rb +8 -17
  233. data/lib/chef/knife/ionoscloud_lan_delete.rb +5 -6
  234. data/lib/chef/knife/ionoscloud_lan_get.rb +37 -0
  235. data/lib/chef/knife/ionoscloud_lan_list.rb +4 -3
  236. data/lib/chef/knife/ionoscloud_lan_update.rb +75 -0
  237. data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +7 -16
  238. data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +3 -10
  239. data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +4 -14
  240. data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +2 -2
  241. data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +4 -16
  242. data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +4 -17
  243. data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +72 -0
  244. data/lib/chef/knife/ionoscloud_location_list.rb +2 -2
  245. data/lib/chef/knife/ionoscloud_natgateway_create.rb +7 -19
  246. data/lib/chef/knife/ionoscloud_natgateway_delete.rb +4 -20
  247. data/lib/chef/knife/ionoscloud_natgateway_get.rb +41 -0
  248. data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +4 -13
  249. data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +3 -10
  250. data/lib/chef/knife/ionoscloud_natgateway_list.rb +3 -2
  251. data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +8 -28
  252. data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +3 -2
  253. data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +5 -23
  254. data/lib/chef/knife/ionoscloud_natgateway_rule_update.rb +115 -0
  255. data/lib/chef/knife/ionoscloud_natgateway_update.rb +83 -0
  256. data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +8 -15
  257. data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +4 -24
  258. data/lib/chef/knife/ionoscloud_networkloadbalancer_get.rb +41 -0
  259. data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +2 -2
  260. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +32 -48
  261. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +3 -2
  262. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +21 -32
  263. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +7 -26
  264. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +3 -2
  265. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +6 -24
  266. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_update.rb +147 -0
  267. data/lib/chef/knife/ionoscloud_networkloadbalancer_update.rb +97 -0
  268. data/lib/chef/knife/ionoscloud_nic_create.rb +10 -24
  269. data/lib/chef/knife/ionoscloud_nic_delete.rb +4 -10
  270. data/lib/chef/knife/ionoscloud_nic_get.rb +48 -0
  271. data/lib/chef/knife/ionoscloud_nic_list.rb +2 -2
  272. data/lib/chef/knife/ionoscloud_nic_update.rb +95 -0
  273. data/lib/chef/knife/ionoscloud_node_delete.rb +2 -2
  274. data/lib/chef/knife/ionoscloud_node_get.rb +48 -0
  275. data/lib/chef/knife/ionoscloud_node_list.rb +2 -2
  276. data/lib/chef/knife/ionoscloud_node_replace.rb +2 -2
  277. data/lib/chef/knife/ionoscloud_nodepool_create.rb +27 -59
  278. data/lib/chef/knife/ionoscloud_nodepool_delete.rb +3 -34
  279. data/lib/chef/knife/ionoscloud_nodepool_get.rb +42 -0
  280. data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +4 -32
  281. data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +3 -28
  282. data/lib/chef/knife/ionoscloud_nodepool_list.rb +2 -2
  283. data/lib/chef/knife/ionoscloud_nodepool_update.rb +123 -0
  284. data/lib/chef/knife/ionoscloud_pcc_create.rb +13 -19
  285. data/lib/chef/knife/ionoscloud_pcc_delete.rb +3 -11
  286. data/lib/chef/knife/ionoscloud_pcc_get.rb +32 -0
  287. data/lib/chef/knife/ionoscloud_pcc_list.rb +2 -2
  288. data/lib/chef/knife/ionoscloud_pcc_update.rb +62 -0
  289. data/lib/chef/knife/ionoscloud_request_get.rb +39 -0
  290. data/lib/chef/knife/ionoscloud_request_list.rb +2 -2
  291. data/lib/chef/knife/ionoscloud_request_status.rb +2 -2
  292. data/lib/chef/knife/ionoscloud_request_wait.rb +2 -2
  293. data/lib/chef/knife/ionoscloud_resource_list.rb +2 -2
  294. data/lib/chef/knife/ionoscloud_s3key_create.rb +3 -7
  295. data/lib/chef/knife/ionoscloud_s3key_delete.rb +3 -6
  296. data/lib/chef/knife/ionoscloud_s3key_get.rb +37 -0
  297. data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -2
  298. data/lib/chef/knife/ionoscloud_server_console.rb +2 -2
  299. data/lib/chef/knife/ionoscloud_server_create.rb +16 -30
  300. data/lib/chef/knife/ionoscloud_server_delete.rb +4 -10
  301. data/lib/chef/knife/ionoscloud_server_get.rb +42 -0
  302. data/lib/chef/knife/ionoscloud_server_list.rb +2 -2
  303. data/lib/chef/knife/ionoscloud_server_reboot.rb +2 -2
  304. data/lib/chef/knife/ionoscloud_server_resume.rb +2 -2
  305. data/lib/chef/knife/ionoscloud_server_start.rb +2 -2
  306. data/lib/chef/knife/ionoscloud_server_stop.rb +2 -2
  307. data/lib/chef/knife/ionoscloud_server_suspend.rb +2 -2
  308. data/lib/chef/knife/ionoscloud_server_token.rb +2 -2
  309. data/lib/chef/knife/ionoscloud_server_update.rb +96 -0
  310. data/lib/chef/knife/ionoscloud_server_upgrade.rb +2 -2
  311. data/lib/chef/knife/ionoscloud_share_create.rb +9 -13
  312. data/lib/chef/knife/ionoscloud_share_delete.rb +4 -5
  313. data/lib/chef/knife/ionoscloud_share_get.rb +37 -0
  314. data/lib/chef/knife/ionoscloud_share_list.rb +2 -2
  315. data/lib/chef/knife/ionoscloud_share_update.rb +69 -0
  316. data/lib/chef/knife/ionoscloud_snapshot_create.rb +3 -11
  317. data/lib/chef/knife/ionoscloud_snapshot_delete.rb +3 -8
  318. data/lib/chef/knife/ionoscloud_snapshot_get.rb +31 -0
  319. data/lib/chef/knife/ionoscloud_snapshot_list.rb +2 -2
  320. data/lib/chef/knife/ionoscloud_snapshot_restore.rb +3 -14
  321. data/lib/chef/knife/ionoscloud_snapshot_update.rb +125 -0
  322. data/lib/chef/knife/ionoscloud_template_list.rb +2 -2
  323. data/lib/chef/knife/ionoscloud_user_create.rb +3 -10
  324. data/lib/chef/knife/ionoscloud_user_delete.rb +3 -8
  325. data/lib/chef/knife/ionoscloud_user_get.rb +31 -0
  326. data/lib/chef/knife/ionoscloud_user_list.rb +2 -2
  327. data/lib/chef/knife/ionoscloud_user_ssourl.rb +2 -2
  328. data/lib/chef/knife/ionoscloud_user_update.rb +91 -0
  329. data/lib/chef/knife/ionoscloud_volume_attach.rb +2 -2
  330. data/lib/chef/knife/ionoscloud_volume_create.rb +4 -15
  331. data/lib/chef/knife/ionoscloud_volume_delete.rb +4 -10
  332. data/lib/chef/knife/ionoscloud_volume_detach.rb +2 -2
  333. data/lib/chef/knife/ionoscloud_volume_get.rb +35 -0
  334. data/lib/chef/knife/ionoscloud_volume_list.rb +2 -2
  335. data/lib/chef/knife/ionoscloud_volume_update.rb +105 -0
  336. data/lib/knife-ionoscloud/version.rb +1 -1
  337. data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +65 -0
  338. data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +78 -0
  339. data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +3 -0
  340. data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +3 -0
  341. data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +69 -0
  342. data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +82 -0
  343. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_get_spec.rb +67 -0
  344. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_list_spec.rb +111 -0
  345. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_create_spec.rb +99 -0
  346. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_delete_spec.rb +109 -0
  347. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_get_spec.rb +73 -0
  348. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_list_spec.rb +84 -0
  349. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_restore_spec.rb +59 -0
  350. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_update_spec.rb +89 -0
  351. data/spec/chef/knife/ionoscloud_dbaas_postgres_logs_get_spec.rb +67 -0
  352. data/spec/chef/knife/ionoscloud_dbaas_postgres_version_list_spec.rb +94 -0
  353. data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +1 -1
  354. data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +1 -1
  355. data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +77 -0
  356. data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +117 -0
  357. data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +3 -3
  358. data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +10 -10
  359. data/spec/chef/knife/ionoscloud_flowlog_get_spec.rb +171 -0
  360. data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +3 -3
  361. data/spec/chef/knife/ionoscloud_flowlog_update_spec.rb +244 -0
  362. data/spec/chef/knife/ionoscloud_group_create_spec.rb +3 -0
  363. data/spec/chef/knife/ionoscloud_group_update_spec.rb +121 -0
  364. data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +6 -0
  365. data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +6 -0
  366. data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +66 -0
  367. data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +79 -0
  368. data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +4 -4
  369. data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +7 -7
  370. data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +7 -0
  371. data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +16 -11
  372. data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +72 -0
  373. data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +114 -0
  374. data/spec/chef/knife/ionoscloud_lan_create_spec.rb +4 -3
  375. data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +7 -5
  376. data/spec/chef/knife/ionoscloud_lan_get_spec.rb +68 -0
  377. data/spec/chef/knife/ionoscloud_lan_list_spec.rb +2 -2
  378. data/spec/chef/knife/ionoscloud_lan_update_spec.rb +87 -0
  379. data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +89 -0
  380. data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +15 -0
  381. data/spec/chef/knife/ionoscloud_natgateway_get_spec.rb +81 -0
  382. data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +15 -0
  383. data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +15 -0
  384. data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +1 -0
  385. data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +1 -0
  386. data/spec/chef/knife/ionoscloud_natgateway_rule_update_spec.rb +121 -0
  387. data/spec/chef/knife/ionoscloud_natgateway_update_spec.rb +121 -0
  388. data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +13 -0
  389. data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +3 -2
  390. data/spec/chef/knife/ionoscloud_networkloadbalancer_get_spec.rb +82 -0
  391. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +4 -3
  392. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +70 -44
  393. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +26 -22
  394. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +79 -61
  395. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_update_spec.rb +163 -0
  396. data/spec/chef/knife/ionoscloud_networkloadbalancer_update_spec.rb +107 -0
  397. data/spec/chef/knife/ionoscloud_nic_get_spec.rb +72 -0
  398. data/spec/chef/knife/ionoscloud_nic_update_spec.rb +97 -0
  399. data/spec/chef/knife/ionoscloud_node_get_spec.rb +70 -0
  400. data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +8 -17
  401. data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +14 -0
  402. data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +83 -0
  403. data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +29 -33
  404. data/spec/chef/knife/ionoscloud_nodepool_lan_remove.rb +14 -17
  405. data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +134 -0
  406. data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +7 -4
  407. data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +2 -2
  408. data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +71 -0
  409. data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +83 -0
  410. data/spec/chef/knife/ionoscloud_request_get_spec.rb +69 -0
  411. data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +66 -0
  412. data/spec/chef/knife/ionoscloud_server_create_spec.rb +3 -0
  413. data/spec/chef/knife/ionoscloud_server_delete_spec.rb +3 -0
  414. data/spec/chef/knife/ionoscloud_server_get_spec.rb +74 -0
  415. data/spec/chef/knife/ionoscloud_server_update_spec.rb +105 -0
  416. data/spec/chef/knife/ionoscloud_share_get_spec.rb +66 -0
  417. data/spec/chef/knife/ionoscloud_share_update_spec.rb +91 -0
  418. data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +12 -0
  419. data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +12 -0
  420. data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +79 -0
  421. data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +9 -0
  422. data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +113 -0
  423. data/spec/chef/knife/ionoscloud_user_create_spec.rb +3 -1
  424. data/spec/chef/knife/ionoscloud_user_delete_spec.rb +4 -2
  425. data/spec/chef/knife/ionoscloud_user_get_spec.rb +70 -0
  426. data/spec/chef/knife/ionoscloud_user_update_spec.rb +110 -0
  427. data/spec/chef/knife/ionoscloud_volume_create_spec.rb +15 -5
  428. data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +10 -0
  429. data/spec/chef/knife/ionoscloud_volume_get_spec.rb +81 -0
  430. data/spec/chef/knife/ionoscloud_volume_update_spec.rb +116 -0
  431. data/spec/spec_helper.rb +148 -23
  432. metadata +336 -90
  433. data/docs/subcommands/k8s_create.md +0 -47
  434. data/spec/test.sh +0 -3
@@ -45,12 +45,10 @@ class Chef
45
45
  option :action,
46
46
  short: '-a ACTION',
47
47
  long: '--action ACTION',
48
- default: 'ALL',
49
48
  description: 'Specifies the traffic action pattern. Must be one of ["ALL", "ACCEPTED", "REJECTED"].'
50
49
 
51
50
  option :direction,
52
51
  long: '--direction DIRECTION',
53
- default: 'BIDIRECTIONAL',
54
52
  description: 'Specifies the traffic direction pattern. Must be one of ["INGRESS", "EGRESS", "BIDIRECTIONAL"].'
55
53
 
56
54
  option :bucket,
@@ -58,20 +56,20 @@ class Chef
58
56
  long: '--bucket BUCKET',
59
57
  description: 'S3 bucket name of an existing IONOS Cloud S3 bucket. Ex. bucketName/key'
60
58
 
61
- attr_reader :description, :required_options
62
-
63
59
  def initialize(args = [])
64
60
  super(args)
65
61
  @description =
66
62
  'This will add a Flow Log to the network interface, NAT Gateway or Network Load Balancer.'
63
+ @directory = 'compute-engine'
67
64
  @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
68
65
  end
69
66
 
70
67
  def run
71
68
  $stdout.sync = true
69
+ handle_extra_config
72
70
  validate_required_params(@required_options, config)
73
71
 
74
- print "#{ui.color('Creating flow log...', :magenta)}"
72
+ print "#{ui.color('Creating Flow Log...', :magenta)}"
75
73
 
76
74
  case config[:type]
77
75
  when 'nic'
@@ -84,13 +82,13 @@ class Chef
84
82
  flowlogs_api = Ionoscloud::NATGatewaysApi.new(api_client)
85
83
  method = flowlogs_api.method(:datacenters_natgateways_flowlogs_post_with_http_info)
86
84
  args = [config[:datacenter_id], config[:natgateway_id]]
87
- when 'loadbalancer'
85
+ when 'networkloadbalancer'
88
86
  validate_required_params([:network_loadbalancer_id], config)
89
87
  flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
90
88
  method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_post_with_http_info)
91
89
  args = [config[:datacenter_id], config[:network_loadbalancer_id]]
92
90
  else
93
- ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'loadbalancer']"
91
+ ui.error "Flow Log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'networkloadbalancer']"
94
92
  exit(1)
95
93
  end
96
94
 
@@ -108,13 +106,7 @@ class Chef
108
106
  dot = ui.color('.', :magenta)
109
107
  api_client.wait_for { print dot; is_done? get_request_id headers }
110
108
 
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'
109
+ print_flowlog(flowlog)
118
110
  end
119
111
  end
120
112
  end
@@ -15,7 +15,7 @@ class Chef
15
15
  option :type,
16
16
  short: '-t FLOWLOG_TYPE',
17
17
  long: '--type FLOWLOG_TYPE',
18
- description: 'The object to which the flow log will be attached'
18
+ description: 'The object to which the Flow Log will be attached'
19
19
 
20
20
  option :server_id,
21
21
  short: '-S SERVER_ID',
@@ -37,17 +37,17 @@ class Chef
37
37
  long: '--network-loadbalancer NETWORK_LOADBALANCER',
38
38
  description: 'ID of the Network Load Balancer'
39
39
 
40
- attr_reader :description, :required_options
41
-
42
40
  def initialize(args = [])
43
41
  super(args)
44
42
  @description =
45
43
  'Removes the specified Flow Logs.'
44
+ @directory = 'compute-engine'
46
45
  @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
47
46
  end
48
47
 
49
48
  def run
50
49
  $stdout.sync = true
50
+ handle_extra_config
51
51
  validate_required_params(@required_options, config)
52
52
 
53
53
  flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
@@ -65,40 +65,36 @@ class Chef
65
65
  delete_method = flowlogs_api.method(:datacenters_natgateways_flowlogs_delete_with_http_info)
66
66
  get_method = flowlogs_api.method(:datacenters_natgateways_flowlogs_find_by_flow_log_id)
67
67
  args = [config[:datacenter_id], config[:natgateway_id]]
68
- when 'loadbalancer'
68
+ when 'networkloadbalancer'
69
69
  validate_required_params([:network_loadbalancer_id], config)
70
70
  flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
71
71
  delete_method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_delete_with_http_info)
72
72
  get_method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_find_by_flow_log_id)
73
73
  args = [config[:datacenter_id], config[:network_loadbalancer_id]]
74
74
  else
75
- ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'loadbalancer']"
75
+ ui.error "Flow Log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'networkloadbalancer']"
76
76
  exit(1)
77
77
  end
78
78
 
79
79
  @name_args.each do |flowlog_id|
80
80
  begin
81
- firewall = get_method.call(*args, flowlog_id)
81
+ flowlog = get_method.call(*args, flowlog_id)
82
82
  rescue Ionoscloud::ApiError => err
83
83
  raise err unless err.code == 404
84
- ui.error("Flow log ID #{flowlog_id} not found. Skipping.")
84
+ ui.error("Flow Log ID #{flowlog_id} not found. Skipping.")
85
85
  next
86
86
  end
87
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)
88
+ print_flowlog(flowlog)
93
89
 
94
90
  begin
95
- confirm('Do you really want to delete this flow log')
91
+ confirm('Do you really want to delete this Flow Log')
96
92
  rescue SystemExit => exc
97
93
  next
98
94
  end
99
95
 
100
96
  _, _, headers = delete_method.call(*args, flowlog_id)
101
- ui.warn("Deleted flow log #{firewall.id}. Request ID: #{get_request_id headers}")
97
+ ui.warn("Deleted Flow Log #{flowlog.id}. Request ID: #{get_request_id headers}")
102
98
  end
103
99
  end
104
100
  end
@@ -0,0 +1,83 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudFlowlogGet < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud flowlog get (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
+ option :flowlog_id,
41
+ short: '-F FLOWLOG_ID',
42
+ long: '--flowlog-id FLOWLOG_ID',
43
+ description: 'The ID of the Flow Log'
44
+
45
+ def initialize(args = [])
46
+ super(args)
47
+ @description =
48
+ 'Retrieves information about a Ionoscloud Flow Log.'
49
+ @directory = 'compute-engine'
50
+ @required_options = [:flowlog_id, :datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
51
+ end
52
+
53
+ def run
54
+ $stdout.sync = true
55
+ handle_extra_config
56
+ validate_required_params(@required_options, config)
57
+
58
+ case config[:type]
59
+ when 'nic'
60
+ validate_required_params([:server_id, :nic_id], config)
61
+ flowlog = Ionoscloud::FlowLogsApi.new(api_client).datacenters_servers_nics_flowlogs_find_by_id(
62
+ config[:datacenter_id], config[:server_id], config[:nic_id], config[:flowlog_id],
63
+ )
64
+ when 'natgateway'
65
+ validate_required_params([:natgateway_id], config)
66
+ flowlog = Ionoscloud::NATGatewaysApi.new(api_client).datacenters_natgateways_flowlogs_find_by_flow_log_id(
67
+ config[:datacenter_id], config[:natgateway_id], config[:flowlog_id],
68
+ )
69
+ when 'networkloadbalancer'
70
+ validate_required_params([:network_loadbalancer_id], config)
71
+ flowlog = Ionoscloud::NetworkLoadBalancersApi.new(api_client).datacenters_networkloadbalancers_flowlogs_find_by_flow_log_id(
72
+ config[:datacenter_id], config[:network_loadbalancer_id], config[:flowlog_id],
73
+ )
74
+ else
75
+ ui.error "Flow Log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'networkloadbalancer']"
76
+ exit(1)
77
+ end
78
+
79
+ print_flowlog(flowlog)
80
+ end
81
+ end
82
+ end
83
+ end
@@ -37,17 +37,17 @@ class Chef
37
37
  long: '--network-loadbalancer NETWORK_LOADBALANCER',
38
38
  description: 'ID of the Network Load Balancer'
39
39
 
40
- attr_reader :description, :required_options
41
-
42
40
  def initialize(args = [])
43
41
  super(args)
44
42
  @description =
45
43
  'Lists all available flow logs assigned to a NIC, NAT Gateway or Network Load Balancer.'
44
+ @directory = 'compute-engine'
46
45
  @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
47
46
  end
48
47
 
49
48
  def run
50
49
  $stdout.sync = true
50
+ handle_extra_config
51
51
  validate_required_params(@required_options, config)
52
52
 
53
53
  flowlog_list = [
@@ -72,14 +72,14 @@ class Chef
72
72
  flowlogs = flowlogs_api.datacenters_natgateways_flowlogs_get(
73
73
  config[:datacenter_id], config[:natgateway_id], { depth: 1 }
74
74
  )
75
- when 'loadbalancer'
75
+ when 'networkloadbalancer'
76
76
  validate_required_params([:network_loadbalancer_id], config)
77
77
  flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
78
78
  flowlogs = flowlogs_api.datacenters_networkloadbalancers_flowlogs_get(
79
79
  config[:datacenter_id], config[:network_loadbalancer_id], { depth: 1 }
80
80
  )
81
81
  else
82
- ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'loadbalancer']"
82
+ ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'networkloadbalancer']"
83
83
  exit(1)
84
84
  end
85
85
 
@@ -0,0 +1,124 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudFlowlogUpdate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud flowlog update (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
+ option :flowlog_id,
41
+ short: '-F FLOWLOG_ID',
42
+ long: '--flowlog-id FLOWLOG_ID',
43
+ description: 'The ID of the Flow Log'
44
+
45
+ option :name,
46
+ short: '-n NAME',
47
+ long: '--name NAME',
48
+ description: 'Name of the Flow Log'
49
+
50
+ option :action,
51
+ short: '-a ACTION',
52
+ long: '--action ACTION',
53
+ description: 'Specifies the traffic action pattern. Must be one of ["ALL", "ACCEPTED", "REJECTED"].'
54
+
55
+ option :direction,
56
+ long: '--direction DIRECTION',
57
+ description: 'Specifies the traffic direction pattern. Must be one of ["INGRESS", "EGRESS", "BIDIRECTIONAL"].'
58
+
59
+ option :bucket,
60
+ short: '-b BUCKET',
61
+ long: '--bucket BUCKET',
62
+ description: 'S3 bucket name of an existing IONOS Cloud S3 bucket. Ex. bucketName/key'
63
+
64
+ def initialize(args = [])
65
+ super(args)
66
+ @description =
67
+ 'Updates information about a Ionoscloud Flow Log.'
68
+ @directory = 'compute-engine'
69
+ @required_options = [:flowlog_id, :datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
70
+ @updatable_fields = [:name, :action, :direction, :bucket]
71
+ end
72
+
73
+ def run
74
+ $stdout.sync = true
75
+ handle_extra_config
76
+ validate_required_params(@required_options, config)
77
+
78
+ case config[:type]
79
+ when 'nic'
80
+ validate_required_params([:server_id, :nic_id], config)
81
+ flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
82
+ patch_method = flowlogs_api.method(:datacenters_servers_nics_flowlogs_patch_with_http_info)
83
+ get_method = flowlogs_api.method(:datacenters_servers_nics_flowlogs_find_by_id)
84
+ args = [config[:datacenter_id], config[:server_id], config[:nic_id], config[:flowlog_id]]
85
+ when 'natgateway'
86
+ validate_required_params([:natgateway_id], config)
87
+ flowlogs_api = Ionoscloud::NATGatewaysApi.new(api_client)
88
+ patch_method = flowlogs_api.method(:datacenters_natgateways_flowlogs_patch_with_http_info)
89
+ get_method = flowlogs_api.method(:datacenters_natgateways_flowlogs_find_by_flow_log_id)
90
+ args = [config[:datacenter_id], config[:natgateway_id], config[:flowlog_id]]
91
+ when 'networkloadbalancer'
92
+ validate_required_params([:network_loadbalancer_id], config)
93
+ flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
94
+ patch_method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_patch_with_http_info)
95
+ get_method = flowlogs_api.method(:datacenters_networkloadbalancers_flowlogs_find_by_flow_log_id)
96
+ args = [config[:datacenter_id], config[:network_loadbalancer_id], config[:flowlog_id]]
97
+ else
98
+ ui.error "Flow Log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'networkloadbalancer']"
99
+ exit(1)
100
+ end
101
+
102
+ if @updatable_fields.map { |el| config[el] }.any?
103
+ print "#{ui.color('Updating Flow Log...', :magenta)}"
104
+
105
+ flowlog_properties = Ionoscloud::FlowLogProperties.new({
106
+ name: config[:name],
107
+ action: config[:action],
108
+ direction: config[:direction],
109
+ bucket: config[:bucket],
110
+ }.compact)
111
+
112
+ _, _, headers = patch_method.call(*args, flowlog_properties)
113
+
114
+ dot = ui.color('.', :magenta)
115
+ api_client.wait_for { print dot; is_done? get_request_id headers }
116
+ else
117
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
118
+ end
119
+
120
+ print_flowlog(get_method.call(*args))
121
+ end
122
+ end
123
+ end
124
+ end
@@ -66,17 +66,17 @@ class Chef
66
66
  long: '--manage-certificates',
67
67
  description: 'Privilege for a group to access and manage certificates.'
68
68
 
69
- attr_reader :description, :required_options
70
-
71
69
  def initialize(args = [])
72
70
  super(args)
73
71
  @description =
74
72
  'Use this operation to create a new group and set group privileges.'
73
+ @directory = 'user'
75
74
  @required_options = [:name, :ionoscloud_username, :ionoscloud_password]
76
75
  end
77
76
 
78
77
  def run
79
78
  $stdout.sync = true
79
+ handle_extra_config
80
80
  validate_required_params(@required_options, config)
81
81
 
82
82
  print "#{ui.color('Creating Group...', :magenta)}"
@@ -106,22 +106,7 @@ class Chef
106
106
  dot = ui.color('.', :magenta)
107
107
  api_client.wait_for { print dot; is_done? get_request_id headers }
108
108
 
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'
109
+ print_group(group)
125
110
  end
126
111
  end
127
112
  end
@@ -7,19 +7,19 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud group delete GROUP_ID [GROUP_ID]'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'Use this operation to delete a single group. Resources that are '\
16
14
  'assigned to the group are NOT deleted, but are no longer accessible '\
17
15
  'to the group members unless the member is a Contract Owner, Admin, or Resource Owner.'
16
+ @directory = 'user'
18
17
  @required_options = [:ionoscloud_username, :ionoscloud_password]
19
18
  end
20
19
 
21
20
  def run
22
21
  $stdout.sync = true
22
+ handle_extra_config
23
23
  validate_required_params(@required_options, config)
24
24
 
25
25
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
@@ -33,24 +33,7 @@ class Chef
33
33
  next
34
34
  end
35
35
 
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)
36
+ print_group(group)
54
37
  puts "\n"
55
38
 
56
39
  begin
@@ -12,40 +12,22 @@ class Chef
12
12
  long: '--group-id GROUP_ID',
13
13
  description: 'ID of the group.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Retrieves detailed information about a specific group. This will also '\
21
19
  'retrieve a list of users who are members of the group.'
20
+ @directory = 'user'
22
21
  @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
23
22
  end
24
23
 
25
24
  def run
26
25
  $stdout.sync = true
26
+ handle_extra_config
27
27
  validate_required_params(@required_options, config)
28
28
 
29
29
  user_management_api = Ionoscloud::UserManagementApi.new(api_client)
30
- group = user_management_api.um_groups_find_by_id(config[:group_id], { depth: 1 })
31
-
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}"
30
+ print_group(user_management_api.um_groups_find_by_id(config[:group_id], depth: 1))
49
31
  end
50
32
  end
51
33
  end
@@ -12,17 +12,17 @@ class Chef
12
12
  long: '--user-id USER_ID',
13
13
  description: 'ID of the user.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'This retrieves a full list of all groups.'
19
+ @directory = 'user'
21
20
  @required_options = [:ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
24
23
  def run
25
24
  $stdout.sync = true
25
+ handle_extra_config
26
26
  validate_required_params(@required_options, config)
27
27
 
28
28
  group_list = [