knife-ionoscloud 6.0.0 → 6.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (504) hide show
  1. checksums.yaml +4 -4
  2. data/.github/IONOS.CLOUD.BLU.svg +1 -0
  3. data/.github/workflows/build.yml +17 -0
  4. data/.rubocop.yml +72 -0
  5. data/README.md +19 -8
  6. data/docs/README.md +16 -8
  7. data/docs/changelog.md +19 -0
  8. data/docs/docs_generator.rb +61 -29
  9. data/docs/subcommands/{backupunit_create.md → backup/backupunit_create.md} +9 -8
  10. data/docs/subcommands/{backupunit_delete.md → backup/backupunit_delete.md} +8 -7
  11. data/docs/subcommands/{backupunit_get.md → backup/backupunit_get.md} +8 -7
  12. data/docs/subcommands/{backupunit_list.md → backup/backupunit_list.md} +8 -7
  13. data/docs/subcommands/{backupunit_ssourl.md → backup/backupunit_ssourl.md} +8 -7
  14. data/docs/subcommands/{backupunit_update.md → backup/backupunit_update.md} +8 -7
  15. data/docs/subcommands/{composite_server_create.md → compute-engine/composite_server_create.md} +16 -9
  16. data/docs/subcommands/{cube_server_create.md → compute-engine/cube_server_create.md} +8 -7
  17. data/docs/subcommands/{datacenter_create.md → compute-engine/datacenter_create.md} +8 -7
  18. data/docs/subcommands/{datacenter_delete.md → compute-engine/datacenter_delete.md} +8 -7
  19. data/docs/subcommands/{datacenter_get.md → compute-engine/datacenter_get.md} +8 -7
  20. data/docs/subcommands/{datacenter_list.md → compute-engine/datacenter_list.md} +8 -7
  21. data/docs/subcommands/{datacenter_update.md → compute-engine/datacenter_update.md} +8 -7
  22. data/docs/subcommands/{firewall_create.md → compute-engine/firewall_create.md} +13 -9
  23. data/docs/subcommands/{firewall_delete.md → compute-engine/firewall_delete.md} +7 -6
  24. data/docs/subcommands/{firewall_get.md → compute-engine/firewall_get.md} +8 -7
  25. data/docs/subcommands/{firewall_list.md → compute-engine/firewall_list.md} +8 -7
  26. data/docs/subcommands/{firewall_update.md → compute-engine/firewall_update.md} +8 -7
  27. data/docs/subcommands/{flowlog_create.md → compute-engine/flowlog_create.md} +8 -7
  28. data/docs/subcommands/{flowlog_delete.md → compute-engine/flowlog_delete.md} +7 -6
  29. data/docs/subcommands/{flowlog_get.md → compute-engine/flowlog_get.md} +8 -7
  30. data/docs/subcommands/{flowlog_list.md → compute-engine/flowlog_list.md} +8 -7
  31. data/docs/subcommands/{flowlog_update.md → compute-engine/flowlog_update.md} +8 -7
  32. data/docs/subcommands/{image_list.md → compute-engine/image_list.md} +8 -7
  33. data/docs/subcommands/{ipblock_create.md → compute-engine/ipblock_create.md} +8 -7
  34. data/docs/subcommands/{ipblock_delete.md → compute-engine/ipblock_delete.md} +8 -7
  35. data/docs/subcommands/{ipblock_get.md → compute-engine/ipblock_get.md} +8 -7
  36. data/docs/subcommands/{ipblock_list.md → compute-engine/ipblock_list.md} +8 -7
  37. data/docs/subcommands/{ipblock_update.md → compute-engine/ipblock_update.md} +8 -7
  38. data/docs/subcommands/{ipfailover_add.md → compute-engine/ipfailover_add.md} +8 -7
  39. data/docs/subcommands/{ipfailover_remove.md → compute-engine/ipfailover_remove.md} +8 -7
  40. data/docs/subcommands/{label_add.md → compute-engine/label_add.md} +8 -7
  41. data/docs/subcommands/{label_list.md → compute-engine/label_list.md} +8 -7
  42. data/docs/subcommands/{label_remove.md → compute-engine/label_remove.md} +7 -6
  43. data/docs/subcommands/{lan_create.md → compute-engine/lan_create.md} +8 -7
  44. data/docs/subcommands/{lan_delete.md → compute-engine/lan_delete.md} +7 -6
  45. data/docs/subcommands/{lan_get.md → compute-engine/lan_get.md} +8 -7
  46. data/docs/subcommands/{lan_list.md → compute-engine/lan_list.md} +8 -7
  47. data/docs/subcommands/{lan_update.md → compute-engine/lan_update.md} +8 -10
  48. data/docs/subcommands/{loadbalancer_create.md → compute-engine/loadbalancer_create.md} +9 -8
  49. data/docs/subcommands/{loadbalancer_delete.md → compute-engine/loadbalancer_delete.md} +7 -6
  50. data/docs/subcommands/{loadbalancer_get.md → compute-engine/loadbalancer_get.md} +8 -7
  51. data/docs/subcommands/{loadbalancer_list.md → compute-engine/loadbalancer_list.md} +8 -7
  52. data/docs/subcommands/{loadbalancer_nic_add.md → compute-engine/loadbalancer_nic_add.md} +7 -6
  53. data/docs/subcommands/{loadbalancer_nic_remove.md → compute-engine/loadbalancer_nic_remove.md} +7 -6
  54. data/docs/subcommands/{loadbalancer_update.md → compute-engine/loadbalancer_update.md} +8 -7
  55. data/docs/subcommands/{location_list.md → compute-engine/location_list.md} +8 -7
  56. data/docs/subcommands/{natgateway_create.md → compute-engine/natgateway_create.md} +8 -7
  57. data/docs/subcommands/{natgateway_delete.md → compute-engine/natgateway_delete.md} +7 -6
  58. data/docs/subcommands/{natgateway_get.md → compute-engine/natgateway_get.md} +8 -7
  59. data/docs/subcommands/{natgateway_lan_add.md → compute-engine/natgateway_lan_add.md} +8 -7
  60. data/docs/subcommands/{natgateway_lan_remove.md → compute-engine/natgateway_lan_remove.md} +7 -6
  61. data/docs/subcommands/{natgateway_list.md → compute-engine/natgateway_list.md} +8 -7
  62. data/docs/subcommands/{natgateway_rule_add.md → compute-engine/natgateway_rule_add.md} +8 -7
  63. data/docs/subcommands/{natgateway_rule_list.md → compute-engine/natgateway_rule_list.md} +8 -7
  64. data/docs/subcommands/{natgateway_rule_remove.md → compute-engine/natgateway_rule_remove.md} +7 -6
  65. data/docs/subcommands/{natgateway_rule_update.md → compute-engine/natgateway_rule_update.md} +8 -7
  66. data/docs/subcommands/{natgateway_update.md → compute-engine/natgateway_update.md} +8 -7
  67. data/docs/subcommands/{networkloadbalancer_create.md → compute-engine/networkloadbalancer_create.md} +8 -7
  68. data/docs/subcommands/{networkloadbalancer_delete.md → compute-engine/networkloadbalancer_delete.md} +7 -6
  69. data/docs/subcommands/{networkloadbalancer_get.md → compute-engine/networkloadbalancer_get.md} +8 -7
  70. data/docs/subcommands/{networkloadbalancer_list.md → compute-engine/networkloadbalancer_list.md} +8 -7
  71. data/docs/subcommands/{networkloadbalancer_rule_add.md → compute-engine/networkloadbalancer_rule_add.md} +8 -7
  72. data/docs/subcommands/{networkloadbalancer_rule_list.md → compute-engine/networkloadbalancer_rule_list.md} +8 -7
  73. data/docs/subcommands/{networkloadbalancer_rule_remove.md → compute-engine/networkloadbalancer_rule_remove.md} +7 -6
  74. data/docs/subcommands/{networkloadbalancer_rule_target_add.md → compute-engine/networkloadbalancer_rule_target_add.md} +8 -7
  75. data/docs/subcommands/{networkloadbalancer_rule_target_list.md → compute-engine/networkloadbalancer_rule_target_list.md} +8 -7
  76. data/docs/subcommands/{networkloadbalancer_rule_target_remove.md → compute-engine/networkloadbalancer_rule_target_remove.md} +8 -7
  77. data/docs/subcommands/{networkloadbalancer_rule_update.md → compute-engine/networkloadbalancer_rule_update.md} +8 -7
  78. data/docs/subcommands/{networkloadbalancer_update.md → compute-engine/networkloadbalancer_update.md} +8 -7
  79. data/docs/subcommands/{nic_create.md → compute-engine/nic_create.md} +11 -10
  80. data/docs/subcommands/{nic_delete.md → compute-engine/nic_delete.md} +8 -7
  81. data/docs/subcommands/{nic_get.md → compute-engine/nic_get.md} +8 -7
  82. data/docs/subcommands/{nic_list.md → compute-engine/nic_list.md} +8 -7
  83. data/docs/subcommands/{nic_update.md → compute-engine/nic_update.md} +10 -9
  84. data/docs/subcommands/{pcc_create.md → compute-engine/pcc_create.md} +8 -7
  85. data/docs/subcommands/{pcc_delete.md → compute-engine/pcc_delete.md} +8 -7
  86. data/docs/subcommands/{pcc_get.md → compute-engine/pcc_get.md} +8 -7
  87. data/docs/subcommands/{pcc_list.md → compute-engine/pcc_list.md} +8 -7
  88. data/docs/subcommands/{pcc_update.md → compute-engine/pcc_update.md} +8 -7
  89. data/docs/subcommands/{request_get.md → compute-engine/request_get.md} +8 -7
  90. data/docs/subcommands/{request_list.md → compute-engine/request_list.md} +8 -7
  91. data/docs/subcommands/{request_status.md → compute-engine/request_status.md} +8 -7
  92. data/docs/subcommands/{request_wait.md → compute-engine/request_wait.md} +8 -7
  93. data/docs/subcommands/{server_console.md → compute-engine/server_console.md} +8 -7
  94. data/docs/subcommands/{server_create.md → compute-engine/server_create.md} +8 -7
  95. data/docs/subcommands/{server_delete.md → compute-engine/server_delete.md} +7 -6
  96. data/docs/subcommands/{server_get.md → compute-engine/server_get.md} +8 -7
  97. data/docs/subcommands/{server_list.md → compute-engine/server_list.md} +11 -7
  98. data/docs/subcommands/{server_reboot.md → compute-engine/server_reboot.md} +7 -6
  99. data/docs/subcommands/{server_resume.md → compute-engine/server_resume.md} +7 -6
  100. data/docs/subcommands/{server_start.md → compute-engine/server_start.md} +7 -6
  101. data/docs/subcommands/{server_stop.md → compute-engine/server_stop.md} +7 -6
  102. data/docs/subcommands/{server_suspend.md → compute-engine/server_suspend.md} +7 -6
  103. data/docs/subcommands/{server_token.md → compute-engine/server_token.md} +8 -7
  104. data/docs/subcommands/{server_update.md → compute-engine/server_update.md} +8 -7
  105. data/docs/subcommands/{server_upgrade.md → compute-engine/server_upgrade.md} +8 -7
  106. data/docs/subcommands/{snapshot_create.md → compute-engine/snapshot_create.md} +8 -7
  107. data/docs/subcommands/{snapshot_delete.md → compute-engine/snapshot_delete.md} +8 -7
  108. data/docs/subcommands/{snapshot_get.md → compute-engine/snapshot_get.md} +8 -7
  109. data/docs/subcommands/{snapshot_list.md → compute-engine/snapshot_list.md} +8 -7
  110. data/docs/subcommands/{snapshot_restore.md → compute-engine/snapshot_restore.md} +8 -7
  111. data/docs/subcommands/{snapshot_update.md → compute-engine/snapshot_update.md} +18 -17
  112. data/docs/subcommands/{template_list.md → compute-engine/template_list.md} +8 -7
  113. data/docs/subcommands/{volume_attach.md → compute-engine/volume_attach.md} +7 -6
  114. data/docs/subcommands/{volume_create.md → compute-engine/volume_create.md} +9 -29
  115. data/docs/subcommands/{volume_delete.md → compute-engine/volume_delete.md} +7 -6
  116. data/docs/subcommands/{volume_detach.md → compute-engine/volume_detach.md} +7 -6
  117. data/docs/subcommands/{volume_get.md → compute-engine/volume_get.md} +8 -7
  118. data/docs/subcommands/{volume_list.md → compute-engine/volume_list.md} +8 -7
  119. data/docs/subcommands/{volume_update.md → compute-engine/volume_update.md} +8 -7
  120. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_get.md +39 -0
  121. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_list.md +38 -0
  122. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_create.md +104 -0
  123. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_delete.md +35 -0
  124. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_get.md +39 -0
  125. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_list.md +35 -0
  126. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_restore.md +45 -0
  127. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_update.md +66 -0
  128. data/docs/subcommands/dbaas-postgres/dbaas_postgres_logs_get.md +57 -0
  129. data/docs/subcommands/dbaas-postgres/dbaas_postgres_version_list.md +38 -0
  130. data/docs/subcommands/{k8s_create.md → kubernetes/k8s_create.md} +12 -11
  131. data/docs/subcommands/{k8s_delete.md → kubernetes/k8s_delete.md} +8 -7
  132. data/docs/subcommands/{k8s_get.md → kubernetes/k8s_get.md} +8 -7
  133. data/docs/subcommands/{k8s_list.md → kubernetes/k8s_list.md} +8 -7
  134. data/docs/subcommands/{k8s_update.md → kubernetes/k8s_update.md} +8 -7
  135. data/docs/subcommands/{kubeconfig_get.md → kubernetes/kubeconfig_get.md} +8 -7
  136. data/docs/subcommands/{node_delete.md → kubernetes/node_delete.md} +7 -6
  137. data/docs/subcommands/{node_get.md → kubernetes/node_get.md} +8 -7
  138. data/docs/subcommands/{node_list.md → kubernetes/node_list.md} +8 -7
  139. data/docs/subcommands/{node_replace.md → kubernetes/node_replace.md} +7 -6
  140. data/docs/subcommands/{nodepool_create.md → kubernetes/nodepool_create.md} +12 -11
  141. data/docs/subcommands/{nodepool_delete.md → kubernetes/nodepool_delete.md} +7 -6
  142. data/docs/subcommands/{nodepool_get.md → kubernetes/nodepool_get.md} +8 -7
  143. data/docs/subcommands/{nodepool_lan_add.md → kubernetes/nodepool_lan_add.md} +8 -7
  144. data/docs/subcommands/{nodepool_lan_remove.md → kubernetes/nodepool_lan_remove.md} +7 -6
  145. data/docs/subcommands/{nodepool_list.md → kubernetes/nodepool_list.md} +8 -7
  146. data/docs/subcommands/{nodepool_update.md → kubernetes/nodepool_update.md} +8 -7
  147. data/docs/subcommands/{contract_list.md → user/contract_list.md} +8 -7
  148. data/docs/subcommands/{group_create.md → user/group_create.md} +17 -7
  149. data/docs/subcommands/{group_delete.md → user/group_delete.md} +8 -7
  150. data/docs/subcommands/{group_get.md → user/group_get.md} +8 -7
  151. data/docs/subcommands/{group_list.md → user/group_list.md} +8 -7
  152. data/docs/subcommands/{group_update.md → user/group_update.md} +17 -7
  153. data/docs/subcommands/{group_user_add.md → user/group_user_add.md} +7 -6
  154. data/docs/subcommands/{group_user_remove.md → user/group_user_remove.md} +7 -6
  155. data/docs/subcommands/{resource_list.md → user/resource_list.md} +8 -7
  156. data/docs/subcommands/{s3key_create.md → user/s3key_create.md} +8 -7
  157. data/docs/subcommands/{s3key_delete.md → user/s3key_delete.md} +7 -6
  158. data/docs/subcommands/{s3key_get.md → user/s3key_get.md} +8 -7
  159. data/docs/subcommands/{s3key_list.md → user/s3key_list.md} +8 -7
  160. data/docs/subcommands/{share_create.md → user/share_create.md} +9 -8
  161. data/docs/subcommands/{share_delete.md → user/share_delete.md} +9 -8
  162. data/docs/subcommands/{share_get.md → user/share_get.md} +8 -7
  163. data/docs/subcommands/{share_list.md → user/share_list.md} +8 -7
  164. data/docs/subcommands/{share_update.md → user/share_update.md} +8 -7
  165. data/docs/subcommands/{user_create.md → user/user_create.md} +10 -15
  166. data/docs/subcommands/{user_delete.md → user/user_delete.md} +8 -7
  167. data/docs/subcommands/{user_get.md → user/user_get.md} +8 -7
  168. data/docs/subcommands/{user_list.md → user/user_list.md} +8 -7
  169. data/docs/subcommands/{user_ssourl.md → user/user_ssourl.md} +8 -7
  170. data/docs/subcommands/{user_update.md → user/user_update.md} +8 -7
  171. data/docs/summary.md +167 -152
  172. data/docs/templates/summary.mustache +6 -3
  173. data/knife-ionoscloud.gemspec +2 -1
  174. data/lib/chef/knife/ionoscloud_backupunit_create.rb +2 -3
  175. data/lib/chef/knife/ionoscloud_backupunit_delete.rb +2 -4
  176. data/lib/chef/knife/ionoscloud_backupunit_get.rb +2 -3
  177. data/lib/chef/knife/ionoscloud_backupunit_list.rb +1 -3
  178. data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +2 -3
  179. data/lib/chef/knife/ionoscloud_backupunit_update.rb +3 -4
  180. data/lib/chef/knife/ionoscloud_base.rb +77 -2
  181. data/lib/chef/knife/ionoscloud_composite_server_create.rb +4 -5
  182. data/lib/chef/knife/ionoscloud_contract_list.rb +2 -5
  183. data/lib/chef/knife/ionoscloud_cube_server_create.rb +5 -6
  184. data/lib/chef/knife/ionoscloud_datacenter_create.rb +4 -5
  185. data/lib/chef/knife/ionoscloud_datacenter_delete.rb +2 -4
  186. data/lib/chef/knife/ionoscloud_datacenter_get.rb +2 -3
  187. data/lib/chef/knife/ionoscloud_datacenter_list.rb +1 -3
  188. data/lib/chef/knife/ionoscloud_datacenter_update.rb +4 -5
  189. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_get.rb +33 -0
  190. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_list.rb +58 -0
  191. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_create.rb +162 -0
  192. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_delete.rb +48 -0
  193. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_get.rb +34 -0
  194. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_list.rb +54 -0
  195. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_restore.rb +48 -0
  196. data/lib/chef/knife/ionoscloud_dbaas_postgres_cluster_update.rb +100 -0
  197. data/lib/chef/knife/ionoscloud_dbaas_postgres_logs_get.rb +90 -0
  198. data/lib/chef/knife/ionoscloud_dbaas_postgres_version_list.rb +49 -0
  199. data/lib/chef/knife/ionoscloud_firewall_create.rb +3 -4
  200. data/lib/chef/knife/ionoscloud_firewall_delete.rb +3 -4
  201. data/lib/chef/knife/ionoscloud_firewall_get.rb +2 -3
  202. data/lib/chef/knife/ionoscloud_firewall_list.rb +3 -4
  203. data/lib/chef/knife/ionoscloud_firewall_update.rb +2 -3
  204. data/lib/chef/knife/ionoscloud_flowlog_create.rb +2 -3
  205. data/lib/chef/knife/ionoscloud_flowlog_delete.rb +3 -6
  206. data/lib/chef/knife/ionoscloud_flowlog_get.rb +2 -3
  207. data/lib/chef/knife/ionoscloud_flowlog_list.rb +5 -8
  208. data/lib/chef/knife/ionoscloud_flowlog_update.rb +2 -3
  209. data/lib/chef/knife/ionoscloud_group_create.rb +2 -3
  210. data/lib/chef/knife/ionoscloud_group_delete.rb +2 -4
  211. data/lib/chef/knife/ionoscloud_group_get.rb +2 -3
  212. data/lib/chef/knife/ionoscloud_group_list.rb +1 -3
  213. data/lib/chef/knife/ionoscloud_group_update.rb +3 -4
  214. data/lib/chef/knife/ionoscloud_group_user_add.rb +2 -3
  215. data/lib/chef/knife/ionoscloud_group_user_remove.rb +2 -3
  216. data/lib/chef/knife/ionoscloud_image_list.rb +1 -3
  217. data/lib/chef/knife/ionoscloud_ipblock_create.rb +2 -3
  218. data/lib/chef/knife/ionoscloud_ipblock_delete.rb +2 -4
  219. data/lib/chef/knife/ionoscloud_ipblock_get.rb +2 -3
  220. data/lib/chef/knife/ionoscloud_ipblock_list.rb +1 -3
  221. data/lib/chef/knife/ionoscloud_ipblock_update.rb +2 -3
  222. data/lib/chef/knife/ionoscloud_ipfailover_add.rb +2 -3
  223. data/lib/chef/knife/ionoscloud_ipfailover_remove.rb +2 -3
  224. data/lib/chef/knife/ionoscloud_k8s_create.rb +2 -3
  225. data/lib/chef/knife/ionoscloud_k8s_delete.rb +3 -5
  226. data/lib/chef/knife/ionoscloud_k8s_get.rb +2 -3
  227. data/lib/chef/knife/ionoscloud_k8s_list.rb +1 -3
  228. data/lib/chef/knife/ionoscloud_k8s_update.rb +4 -9
  229. data/lib/chef/knife/ionoscloud_kubeconfig_get.rb +2 -3
  230. data/lib/chef/knife/ionoscloud_label_add.rb +2 -3
  231. data/lib/chef/knife/ionoscloud_label_list.rb +2 -6
  232. data/lib/chef/knife/ionoscloud_label_remove.rb +2 -3
  233. data/lib/chef/knife/ionoscloud_lan_create.rb +2 -3
  234. data/lib/chef/knife/ionoscloud_lan_delete.rb +3 -4
  235. data/lib/chef/knife/ionoscloud_lan_get.rb +2 -3
  236. data/lib/chef/knife/ionoscloud_lan_list.rb +2 -3
  237. data/lib/chef/knife/ionoscloud_lan_update.rb +2 -3
  238. data/lib/chef/knife/ionoscloud_loadbalancer_create.rb +2 -3
  239. data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +3 -4
  240. data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +2 -3
  241. data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +2 -3
  242. data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +2 -3
  243. data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +2 -3
  244. data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +2 -3
  245. data/lib/chef/knife/ionoscloud_location_list.rb +1 -3
  246. data/lib/chef/knife/ionoscloud_natgateway_create.rb +3 -4
  247. data/lib/chef/knife/ionoscloud_natgateway_delete.rb +3 -4
  248. data/lib/chef/knife/ionoscloud_natgateway_get.rb +2 -3
  249. data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +2 -3
  250. data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +2 -3
  251. data/lib/chef/knife/ionoscloud_natgateway_list.rb +2 -3
  252. data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +3 -4
  253. data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +2 -3
  254. data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +2 -3
  255. data/lib/chef/knife/ionoscloud_natgateway_rule_update.rb +3 -4
  256. data/lib/chef/knife/ionoscloud_natgateway_update.rb +3 -5
  257. data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +2 -3
  258. data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +3 -4
  259. data/lib/chef/knife/ionoscloud_networkloadbalancer_get.rb +2 -3
  260. data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +2 -3
  261. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +3 -5
  262. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +2 -3
  263. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +2 -3
  264. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +2 -3
  265. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +2 -3
  266. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +3 -5
  267. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_update.rb +3 -5
  268. data/lib/chef/knife/ionoscloud_networkloadbalancer_update.rb +2 -3
  269. data/lib/chef/knife/ionoscloud_nic_create.rb +5 -6
  270. data/lib/chef/knife/ionoscloud_nic_delete.rb +3 -4
  271. data/lib/chef/knife/ionoscloud_nic_get.rb +2 -3
  272. data/lib/chef/knife/ionoscloud_nic_list.rb +2 -3
  273. data/lib/chef/knife/ionoscloud_nic_update.rb +2 -3
  274. data/lib/chef/knife/ionoscloud_node_delete.rb +3 -4
  275. data/lib/chef/knife/ionoscloud_node_get.rb +2 -3
  276. data/lib/chef/knife/ionoscloud_node_list.rb +2 -3
  277. data/lib/chef/knife/ionoscloud_node_replace.rb +5 -6
  278. data/lib/chef/knife/ionoscloud_nodepool_create.rb +4 -5
  279. data/lib/chef/knife/ionoscloud_nodepool_delete.rb +3 -4
  280. data/lib/chef/knife/ionoscloud_nodepool_get.rb +2 -3
  281. data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +2 -3
  282. data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +2 -3
  283. data/lib/chef/knife/ionoscloud_nodepool_list.rb +2 -3
  284. data/lib/chef/knife/ionoscloud_nodepool_update.rb +2 -3
  285. data/lib/chef/knife/ionoscloud_pcc_create.rb +1 -3
  286. data/lib/chef/knife/ionoscloud_pcc_delete.rb +2 -4
  287. data/lib/chef/knife/ionoscloud_pcc_get.rb +2 -3
  288. data/lib/chef/knife/ionoscloud_pcc_list.rb +1 -3
  289. data/lib/chef/knife/ionoscloud_pcc_update.rb +3 -4
  290. data/lib/chef/knife/ionoscloud_request_get.rb +2 -3
  291. data/lib/chef/knife/ionoscloud_request_list.rb +7 -21
  292. data/lib/chef/knife/ionoscloud_request_status.rb +2 -3
  293. data/lib/chef/knife/ionoscloud_request_wait.rb +2 -3
  294. data/lib/chef/knife/ionoscloud_resource_list.rb +11 -15
  295. data/lib/chef/knife/ionoscloud_s3key_create.rb +2 -3
  296. data/lib/chef/knife/ionoscloud_s3key_delete.rb +3 -4
  297. data/lib/chef/knife/ionoscloud_s3key_get.rb +2 -3
  298. data/lib/chef/knife/ionoscloud_s3key_list.rb +2 -3
  299. data/lib/chef/knife/ionoscloud_server_console.rb +2 -3
  300. data/lib/chef/knife/ionoscloud_server_create.rb +5 -6
  301. data/lib/chef/knife/ionoscloud_server_delete.rb +5 -6
  302. data/lib/chef/knife/ionoscloud_server_get.rb +2 -3
  303. data/lib/chef/knife/ionoscloud_server_list.rb +2 -3
  304. data/lib/chef/knife/ionoscloud_server_reboot.rb +2 -3
  305. data/lib/chef/knife/ionoscloud_server_resume.rb +2 -3
  306. data/lib/chef/knife/ionoscloud_server_start.rb +2 -3
  307. data/lib/chef/knife/ionoscloud_server_stop.rb +2 -3
  308. data/lib/chef/knife/ionoscloud_server_suspend.rb +2 -3
  309. data/lib/chef/knife/ionoscloud_server_token.rb +2 -3
  310. data/lib/chef/knife/ionoscloud_server_update.rb +2 -3
  311. data/lib/chef/knife/ionoscloud_server_upgrade.rb +3 -4
  312. data/lib/chef/knife/ionoscloud_share_create.rb +2 -3
  313. data/lib/chef/knife/ionoscloud_share_delete.rb +3 -4
  314. data/lib/chef/knife/ionoscloud_share_get.rb +2 -3
  315. data/lib/chef/knife/ionoscloud_share_list.rb +2 -3
  316. data/lib/chef/knife/ionoscloud_share_update.rb +2 -3
  317. data/lib/chef/knife/ionoscloud_snapshot_create.rb +2 -3
  318. data/lib/chef/knife/ionoscloud_snapshot_delete.rb +2 -4
  319. data/lib/chef/knife/ionoscloud_snapshot_get.rb +2 -3
  320. data/lib/chef/knife/ionoscloud_snapshot_list.rb +2 -4
  321. data/lib/chef/knife/ionoscloud_snapshot_restore.rb +2 -3
  322. data/lib/chef/knife/ionoscloud_snapshot_update.rb +2 -3
  323. data/lib/chef/knife/ionoscloud_template_list.rb +1 -3
  324. data/lib/chef/knife/ionoscloud_user_create.rb +2 -3
  325. data/lib/chef/knife/ionoscloud_user_delete.rb +2 -4
  326. data/lib/chef/knife/ionoscloud_user_get.rb +2 -3
  327. data/lib/chef/knife/ionoscloud_user_list.rb +1 -3
  328. data/lib/chef/knife/ionoscloud_user_ssourl.rb +2 -3
  329. data/lib/chef/knife/ionoscloud_user_update.rb +2 -3
  330. data/lib/chef/knife/ionoscloud_volume_attach.rb +2 -3
  331. data/lib/chef/knife/ionoscloud_volume_create.rb +2 -3
  332. data/lib/chef/knife/ionoscloud_volume_delete.rb +3 -4
  333. data/lib/chef/knife/ionoscloud_volume_detach.rb +6 -7
  334. data/lib/chef/knife/ionoscloud_volume_get.rb +2 -3
  335. data/lib/chef/knife/ionoscloud_volume_list.rb +2 -3
  336. data/lib/chef/knife/ionoscloud_volume_update.rb +2 -3
  337. data/lib/knife-ionoscloud/version.rb +1 -1
  338. data/sonar-project.properties +3 -0
  339. data/spec/chef/knife/ionoscloud_backupunit_create_spec.rb +11 -9
  340. data/spec/chef/knife/ionoscloud_backupunit_delete_spec.rb +10 -8
  341. data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +10 -8
  342. data/spec/chef/knife/ionoscloud_backupunit_list_spec.rb +10 -8
  343. data/spec/chef/knife/ionoscloud_backupunit_ssourl_spec.rb +11 -12
  344. data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +10 -8
  345. data/spec/chef/knife/ionoscloud_base_spec.rb +52 -4
  346. data/spec/chef/knife/ionoscloud_composite_server_create_spec.rb +10 -8
  347. data/spec/chef/knife/ionoscloud_contract_list_spec.rb +10 -8
  348. data/spec/chef/knife/ionoscloud_cube_server_create_spec.rb +12 -10
  349. data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +10 -8
  350. data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +10 -8
  351. data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +10 -8
  352. data/spec/chef/knife/ionoscloud_datacenter_list_spec.rb +10 -8
  353. data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +10 -8
  354. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_get_spec.rb +69 -0
  355. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_list_spec.rb +113 -0
  356. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_create_spec.rb +103 -0
  357. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_delete_spec.rb +112 -0
  358. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_get_spec.rb +76 -0
  359. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_list_spec.rb +88 -0
  360. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_restore_spec.rb +61 -0
  361. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_update_spec.rb +92 -0
  362. data/spec/chef/knife/ionoscloud_dbaas_postgres_logs_get_spec.rb +141 -0
  363. data/spec/chef/knife/ionoscloud_dbaas_postgres_version_list_spec.rb +96 -0
  364. data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +10 -8
  365. data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +10 -8
  366. data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +10 -8
  367. data/spec/chef/knife/ionoscloud_firewall_list_spec.rb +10 -8
  368. data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +12 -10
  369. data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +10 -8
  370. data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +10 -8
  371. data/spec/chef/knife/ionoscloud_flowlog_get_spec.rb +10 -9
  372. data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +10 -8
  373. data/spec/chef/knife/ionoscloud_flowlog_update_spec.rb +10 -9
  374. data/spec/chef/knife/ionoscloud_group_create_spec.rb +10 -8
  375. data/spec/chef/knife/ionoscloud_group_delete_spec.rb +10 -8
  376. data/spec/chef/knife/ionoscloud_group_get_spec.rb +10 -8
  377. data/spec/chef/knife/ionoscloud_group_list_spec.rb +12 -10
  378. data/spec/chef/knife/ionoscloud_group_update_spec.rb +10 -8
  379. data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +10 -8
  380. data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +10 -8
  381. data/spec/chef/knife/ionoscloud_image_list_spec.rb +10 -8
  382. data/spec/chef/knife/ionoscloud_ipblock_create_spec.rb +10 -8
  383. data/spec/chef/knife/ionoscloud_ipblock_delete_spec.rb +10 -8
  384. data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +10 -8
  385. data/spec/chef/knife/ionoscloud_ipblock_list_spec.rb +10 -8
  386. data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +10 -8
  387. data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +10 -8
  388. data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +10 -8
  389. data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +10 -8
  390. data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +13 -11
  391. data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +10 -8
  392. data/spec/chef/knife/ionoscloud_k8s_list_spec.rb +10 -8
  393. data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +12 -10
  394. data/spec/chef/knife/ionoscloud_kubeconfig_get_spec.rb +11 -12
  395. data/spec/chef/knife/ionoscloud_label_add_spec.rb +11 -9
  396. data/spec/chef/knife/ionoscloud_label_list_spec.rb +14 -12
  397. data/spec/chef/knife/ionoscloud_label_remove_spec.rb +11 -9
  398. data/spec/chef/knife/ionoscloud_lan_create_spec.rb +10 -8
  399. data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +10 -8
  400. data/spec/chef/knife/ionoscloud_lan_get_spec.rb +10 -8
  401. data/spec/chef/knife/ionoscloud_lan_list_spec.rb +10 -8
  402. data/spec/chef/knife/ionoscloud_lan_update_spec.rb +10 -8
  403. data/spec/chef/knife/ionoscloud_loadbalancer_create_spec.rb +10 -8
  404. data/spec/chef/knife/ionoscloud_loadbalancer_delete_spec.rb +10 -8
  405. data/spec/chef/knife/ionoscloud_loadbalancer_get_spec.rb +10 -8
  406. data/spec/chef/knife/ionoscloud_loadbalancer_list_spec.rb +10 -8
  407. data/spec/chef/knife/ionoscloud_loadbalancer_nic_add_spec.rb +10 -8
  408. data/spec/chef/knife/ionoscloud_loadbalancer_nic_remove_spec.rb +10 -8
  409. data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +11 -9
  410. data/spec/chef/knife/ionoscloud_location_list_spec.rb +11 -9
  411. data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +10 -8
  412. data/spec/chef/knife/ionoscloud_natgateway_delete_spec.rb +10 -8
  413. data/spec/chef/knife/ionoscloud_natgateway_get_spec.rb +10 -8
  414. data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +12 -10
  415. data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +10 -8
  416. data/spec/chef/knife/ionoscloud_natgateway_list_spec.rb +10 -8
  417. data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +10 -8
  418. data/spec/chef/knife/ionoscloud_natgateway_rule_list_spec.rb +10 -8
  419. data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +10 -8
  420. data/spec/chef/knife/ionoscloud_natgateway_rule_update_spec.rb +14 -12
  421. data/spec/chef/knife/ionoscloud_natgateway_update_spec.rb +14 -13
  422. data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +10 -8
  423. data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +10 -8
  424. data/spec/chef/knife/ionoscloud_networkloadbalancer_get_spec.rb +10 -8
  425. data/spec/chef/knife/ionoscloud_networkloadbalancer_list_spec.rb +10 -8
  426. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +10 -8
  427. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_list_spec.rb +10 -8
  428. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +10 -8
  429. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +11 -9
  430. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_list_spec.rb +10 -8
  431. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +22 -22
  432. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_update_spec.rb +14 -13
  433. data/spec/chef/knife/ionoscloud_networkloadbalancer_update_spec.rb +12 -10
  434. data/spec/chef/knife/ionoscloud_nic_create_spec.rb +10 -8
  435. data/spec/chef/knife/ionoscloud_nic_delete_spec.rb +10 -8
  436. data/spec/chef/knife/ionoscloud_nic_get_spec.rb +10 -8
  437. data/spec/chef/knife/ionoscloud_nic_list_spec.rb +10 -8
  438. data/spec/chef/knife/ionoscloud_nic_update_spec.rb +11 -9
  439. data/spec/chef/knife/ionoscloud_node_delete_spec.rb +10 -8
  440. data/spec/chef/knife/ionoscloud_node_get_spec.rb +10 -8
  441. data/spec/chef/knife/ionoscloud_node_list_spec.rb +10 -8
  442. data/spec/chef/knife/ionoscloud_node_replace_spec.rb +10 -8
  443. data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +11 -8
  444. data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +11 -8
  445. data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +10 -8
  446. data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +11 -10
  447. data/spec/chef/knife/{ionoscloud_nodepool_lan_remove.rb → ionoscloud_nodepool_lan_remove_spec.rb} +22 -24
  448. data/spec/chef/knife/ionoscloud_nodepool_list_spec.rb +10 -8
  449. data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +12 -10
  450. data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +10 -8
  451. data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +10 -8
  452. data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +10 -8
  453. data/spec/chef/knife/ionoscloud_pcc_list_spec.rb +10 -8
  454. data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +10 -8
  455. data/spec/chef/knife/ionoscloud_request_get_spec.rb +10 -8
  456. data/spec/chef/knife/ionoscloud_request_list_spec.rb +11 -10
  457. data/spec/chef/knife/ionoscloud_request_status_spec.rb +11 -12
  458. data/spec/chef/knife/ionoscloud_request_wait_spec.rb +11 -13
  459. data/spec/chef/knife/ionoscloud_resource_list_spec.rb +11 -10
  460. data/spec/chef/knife/ionoscloud_s3key_create_spec.rb +10 -8
  461. data/spec/chef/knife/ionoscloud_s3key_delete_spec.rb +10 -8
  462. data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +10 -8
  463. data/spec/chef/knife/ionoscloud_s3key_list_spec.rb +10 -8
  464. data/spec/chef/knife/ionoscloud_server_console_spec.rb +11 -12
  465. data/spec/chef/knife/ionoscloud_server_create_spec.rb +10 -8
  466. data/spec/chef/knife/ionoscloud_server_delete_spec.rb +10 -8
  467. data/spec/chef/knife/ionoscloud_server_get_spec.rb +10 -8
  468. data/spec/chef/knife/ionoscloud_server_list_spec.rb +10 -8
  469. data/spec/chef/knife/ionoscloud_server_reboot_spec.rb +10 -8
  470. data/spec/chef/knife/ionoscloud_server_resume_spec.rb +10 -8
  471. data/spec/chef/knife/ionoscloud_server_start_spec.rb +10 -8
  472. data/spec/chef/knife/ionoscloud_server_stop_spec.rb +10 -8
  473. data/spec/chef/knife/ionoscloud_server_suspend_spec.rb +10 -8
  474. data/spec/chef/knife/ionoscloud_server_token_spec.rb +11 -12
  475. data/spec/chef/knife/ionoscloud_server_update_spec.rb +10 -8
  476. data/spec/chef/knife/ionoscloud_server_upgrade_spec.rb +10 -8
  477. data/spec/chef/knife/ionoscloud_share_create_spec.rb +10 -8
  478. data/spec/chef/knife/ionoscloud_share_delete_spec.rb +10 -8
  479. data/spec/chef/knife/ionoscloud_share_get_spec.rb +10 -8
  480. data/spec/chef/knife/ionoscloud_share_list_spec.rb +10 -8
  481. data/spec/chef/knife/ionoscloud_share_update_spec.rb +10 -8
  482. data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +10 -8
  483. data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +10 -8
  484. data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +10 -8
  485. data/spec/chef/knife/ionoscloud_snapshot_list_spec.rb +10 -8
  486. data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +10 -8
  487. data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +10 -8
  488. data/spec/chef/knife/ionoscloud_template_list_spec.rb +10 -8
  489. data/spec/chef/knife/ionoscloud_user_create_spec.rb +10 -8
  490. data/spec/chef/knife/ionoscloud_user_delete_spec.rb +10 -8
  491. data/spec/chef/knife/ionoscloud_user_get_spec.rb +10 -8
  492. data/spec/chef/knife/ionoscloud_user_list_spec.rb +12 -10
  493. data/spec/chef/knife/ionoscloud_user_ssourl_spec.rb +11 -12
  494. data/spec/chef/knife/ionoscloud_user_update_spec.rb +10 -8
  495. data/spec/chef/knife/ionoscloud_volume_attach_spec.rb +10 -8
  496. data/spec/chef/knife/ionoscloud_volume_create_spec.rb +10 -8
  497. data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +10 -8
  498. data/spec/chef/knife/ionoscloud_volume_detach_spec.rb +10 -8
  499. data/spec/chef/knife/ionoscloud_volume_get_spec.rb +10 -8
  500. data/spec/chef/knife/ionoscloud_volume_list_spec.rb +12 -10
  501. data/spec/chef/knife/ionoscloud_volume_update_spec.rb +10 -8
  502. data/spec/spec_helper.rb +116 -6
  503. metadata +213 -160
  504. data/spec/test.sh +0 -3
@@ -0,0 +1,54 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresClusterList < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres cluster list'
9
+
10
+ def initialize(args = [])
11
+ super(args)
12
+ @description =
13
+ 'Retrieves a list of PostgreSQL clusters.'
14
+ @directory = 'dbaas-postgres'
15
+ end
16
+
17
+ def run
18
+ $stdout.sync = true
19
+ handle_extra_config
20
+ validate_required_params(@required_options, config)
21
+
22
+ dbaas_cluster_list = [
23
+ ui.color('ID', :bold),
24
+ ui.color('Display Name', :bold),
25
+ ui.color('Postgres Version', :bold),
26
+ ui.color('Location', :bold),
27
+ ui.color('Backup location', :bold),
28
+ ui.color('Instances', :bold),
29
+ ui.color('Datacenter ID', :bold),
30
+ ui.color('Lan ID', :bold),
31
+ ui.color('cidr', :bold),
32
+ ui.color('Status', :bold),
33
+ ]
34
+
35
+ clusters_api = IonoscloudDbaasPostgres::ClustersApi.new(api_client_dbaas)
36
+
37
+ clusters_api.clusters_get(depth: 1).items.each do |cluster|
38
+ dbaas_cluster_list << cluster.id
39
+ dbaas_cluster_list << cluster.properties.display_name
40
+ dbaas_cluster_list << cluster.properties.postgres_version
41
+ dbaas_cluster_list << cluster.properties.location
42
+ dbaas_cluster_list << cluster.properties.backup_location
43
+ dbaas_cluster_list << cluster.properties.instances
44
+ dbaas_cluster_list << cluster.properties.connections.first.datacenter_id
45
+ dbaas_cluster_list << cluster.properties.connections.first.lan_id
46
+ dbaas_cluster_list << cluster.properties.connections.first.cidr
47
+ dbaas_cluster_list << cluster.metadata.state
48
+ end
49
+
50
+ puts ui.list(dbaas_cluster_list, :uneven_columns_across, 10)
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,48 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresClusterRestore < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres cluster restore (options)'
9
+
10
+ option :cluster_id,
11
+ short: '-C CLUSTER_ID',
12
+ long: '--cluster-id CLUSTER_ID',
13
+ description: 'ID of the cluster'
14
+
15
+ option :backup_id,
16
+ short: '-B BACKUP_ID',
17
+ long: '--backup-id BACKUP_ID',
18
+ description: 'ID of backup'
19
+
20
+ option :recovery_target_time,
21
+ short: '-T RECOVERY_TARGET_TIME',
22
+ long: '--recovery-target-time RECOVERY_TARGET_TIME',
23
+ description: 'Recovery target time'
24
+
25
+ def initialize(args = [])
26
+ super(args)
27
+ @description =
28
+ 'Triggers an in-place restore of the given PostgreSQL.'
29
+ @directory = 'dbaas-postgres'
30
+ @required_options = [:cluster_id]
31
+ end
32
+
33
+ def run
34
+ $stdout.sync = true
35
+ handle_extra_config
36
+ validate_required_params(@required_options, config)
37
+
38
+ print "#{ui.color('Restoring Cluster...', :magenta)}"
39
+
40
+ restore_request = IonoscloudDbaasPostgres::CreateRestoreRequest.new(backup_id: config[:backup_id], recovery_target_time: config[:recovery_target_time])
41
+
42
+ IonoscloudDbaasPostgres::RestoresApi.new(api_client_dbaas).cluster_restore_post(config[:cluster_id], restore_request)
43
+
44
+ puts("\nCluster restored succsefully.")
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,100 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresClusterUpdate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres cluster update (options)'
9
+
10
+ option :cluster_id,
11
+ short: '-C CLUSTER_ID',
12
+ long: '--cluster-id CLUSTER_ID',
13
+ description: 'ID of the cluster'
14
+
15
+ option :cores,
16
+ short: '-C CORES',
17
+ long: '--cores CORES',
18
+ description: 'The number of CPU cores per instance.'
19
+
20
+ option :ram_size,
21
+ short: '-r RAM',
22
+ long: '--ram RAM',
23
+ description: 'The amount of memory per instance.'
24
+
25
+ option :storage_size,
26
+ long: '--size STORAGE_SIZE',
27
+ description: 'The amount of storage per instance.'
28
+
29
+ option :connections,
30
+ long: '--connections CONNECTIONS',
31
+ description: 'Array of VDCs to connect to your cluster.'
32
+
33
+ option :display_name,
34
+ short: '-n DISPLAY_NAME',
35
+ long: '--name DISPLAY_NAME',
36
+ description: 'The friendly name of your cluster.'
37
+
38
+ option :time,
39
+ long: '--time TIME',
40
+ description: 'Time Of the day when to perform the maintenance.'
41
+
42
+ option :day_of_the_week,
43
+ short: '-d DAY_OF_THE_WEEK',
44
+ long: '--day-of-the-week DAY_OF_THE_WEEK',
45
+ description: 'Day Of the week when to perform the maintenance.'
46
+
47
+ option :postgres_version,
48
+ long: '--postgres-version POSTGRES_VERSION',
49
+ description: 'The PostgreSQL version of your cluster'
50
+
51
+ option :instances,
52
+ short: '-R INSTANCES',
53
+ long: '--instances INSTANCES',
54
+ description: 'The total number of instances in the cluster (one master and n-1 standbys).'
55
+
56
+
57
+ def initialize(args = [])
58
+ super(args)
59
+ @description =
60
+ 'Updates information about a Ionoscloud Dbaas Cluster.'
61
+ @directory = 'dbaas-postgres'
62
+ @required_options = [:cluster_id]
63
+ @updatable_fields = [:cores, :ram, :storage_size, :display_name, :time, :day_of_the_week, :postgres_version, :instances]
64
+ end
65
+
66
+ def run
67
+ $stdout.sync = true
68
+ handle_extra_config
69
+ validate_required_params(@required_options, config)
70
+
71
+ clusters_api = IonoscloudDbaasPostgres::ClustersApi.new(api_client_dbaas)
72
+
73
+ if @updatable_fields.map { |el| config[el] }.any?
74
+ print "#{ui.color('Updating cluster...', :magenta)}"
75
+
76
+ cluster_properties = IonoscloudDbaasPostgres::PatchClusterProperties.new(
77
+ cores: (config[:cores].nil? ? nil : Integer(config[:cores])),
78
+ ram: (config[:ram].nil? ? nil : Integer(config[:ram])),
79
+ storage_size: (config[:storage_size].nil? ? nil : Integer(config[:storage_size])),
80
+ display_name: config[:display_name],
81
+ maintenance_window: (config[:time] && config[:day_of_the_week]) ? IonoscloudDbaasPostgres::MaintenanceWindow.new(
82
+ time: config[:time],
83
+ day_of_the_week: config[:day_of_the_week],
84
+ ) : nil,
85
+ postgres_version: config[:postgres_version],
86
+ instances: config[:instances],
87
+ )
88
+ cluster_request = IonoscloudDbaasPostgres::PatchClusterRequest.new()
89
+ cluster_request.properties = cluster_properties
90
+
91
+ clusters_api.clusters_patch_with_http_info(config[:cluster_id], cluster_request)
92
+ else
93
+ ui.warn("Nothing to update, please set one of the attributes #{@updatable_fields}.")
94
+ end
95
+
96
+ print_cluster(clusters_api.clusters_find_by_id(config[:cluster_id]))
97
+ end
98
+ end
99
+ end
100
+ end
@@ -0,0 +1,90 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresLogsGet < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres logs get'
9
+
10
+ option :cluster_id,
11
+ short: '-C CLUSTER_ID',
12
+ long: '--cluster-id CLUSTER_ID',
13
+ description: 'ID of the cluster'
14
+
15
+ option :limit,
16
+ short: '-l LIMIT',
17
+ long: '--limit LIMIT',
18
+ description: 'The maximal number of log lines to return.'
19
+
20
+ option :start,
21
+ long: '--start START',
22
+ description: 'The start time for the query in RFC3339 format. If both start and since are set, start will be used.'
23
+
24
+ option :since,
25
+ long: '--since SINCE',
26
+ description: 'The start time for the query using a time delta since the current moment: 2h - 2 hours ago, 20m - 20 minutes ago. '\
27
+ 'Only hours and minutes ar supported, and not at the same time. If both start and since are set, start will be used.'
28
+
29
+ option :end,
30
+ long: '--end END',
31
+ description: 'The end time for the query in RFC3339 format. If both end and until are set, end will be used.'
32
+
33
+ option :until,
34
+ long: '--until UNTIL',
35
+ description: 'The end time for the query using a time delta since the current moment: 2h - 2 hours ago, 20m - 20 minutes ago. '\
36
+ 'Only hours and minutes ar supported, and not at the same time. If both end and until are set, end will be used.'
37
+
38
+ option :direction,
39
+ long: '--direction DIRECTION',
40
+ description: 'The direction in which to scan through the logs. '\
41
+ 'The logs are returned in order of the direction. One of ["BACKWARD", "FORWARD"]'
42
+
43
+ def initialize(args = [])
44
+ super(args)
45
+ @description =
46
+ 'Retrieves PostgreSQL logs based on the given parameters.'
47
+ @directory = 'dbaas-postgres'
48
+ @required_options = [:cluster_id]
49
+ end
50
+
51
+ def run
52
+ $stdout.sync = true
53
+ handle_extra_config
54
+ validate_required_params(@required_options, config)
55
+
56
+ def delta_to_date(delta)
57
+ return nil if delta.nil?
58
+
59
+ unit = delta[-1]
60
+ unless ['h', 'm'].include? unit
61
+ ui.error('Time delta may only be specified in hours(h) or minutes(m)!')
62
+ exit(1)
63
+ end
64
+
65
+ minute_count = Integer(delta[0..-2])
66
+ minute_count *= 60 if unit == 'h'
67
+
68
+ (Time.now - minute_count * 60).iso8601
69
+ end
70
+
71
+ logs = IonoscloudDbaasPostgres::LogsApi.new(api_client_dbaas).cluster_logs_get(
72
+ config[:cluster_id],
73
+ {
74
+ limit: (config[:limit] != nil ? Integer(config[:limit]) : nil),
75
+ start: config[:start].nil? ? delta_to_date(config[:since]) : config[:start],
76
+ _end: config[:end].nil? ? delta_to_date(config[:until]) : config[:end],
77
+ direction: config[:direction],
78
+ },
79
+ )
80
+
81
+ logs.instances.each do |instance|
82
+ puts "Instance Name: #{instance.name}"
83
+ print "\n"
84
+ puts instance.messages.map { |message| message.message }
85
+ puts "\n"
86
+ end
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,49 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresVersionList < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres version list'
9
+
10
+ option :cluster_id,
11
+ short: '-C CLUSTER_ID',
12
+ long: '--cluster-id CLUSTER_ID',
13
+ description: 'ID of the cluster'
14
+
15
+ def initialize(args = [])
16
+ super(args)
17
+ @description =
18
+ 'If cluster_id is provided, retrieves a list of all PostgreSQL versions '\
19
+ 'available for a cluster including the current version, '\
20
+ 'otherwise retrieves a list of all available PostgreSQL versions.'
21
+ @directory = 'dbaas-postgres'
22
+ end
23
+
24
+ def run
25
+ $stdout.sync = true
26
+ handle_extra_config
27
+ validate_required_params(@required_options, config)
28
+
29
+ version_list = [
30
+ ui.color('Version', :bold),
31
+ ]
32
+
33
+ clusters_api = IonoscloudDbaasPostgres::ClustersApi.new(api_client_dbaas)
34
+
35
+ if config[:cluster_id]
36
+ versions = clusters_api.cluster_postgres_versions_get(config[:cluster_id])
37
+ else
38
+ versions = clusters_api.postgres_versions_get()
39
+ end
40
+
41
+ versions.data.each do |version|
42
+ version_list << version.name
43
+ end
44
+
45
+ puts ui.list(version_list, :uneven_columns_across, 1)
46
+ end
47
+ end
48
+ end
49
+ end
@@ -74,13 +74,12 @@ class Chef
74
74
  long: '--type TYPE',
75
75
  description: 'The type of firewall rule. If is not specified, it will take the default value INGRESS'
76
76
 
77
- attr_reader :description, :required_options
78
-
79
77
  def initialize(args = [])
80
78
  super(args)
81
79
  @description =
82
80
  'Creates a new firewall rule on an existing NIC.'
83
- @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
81
+ @directory = 'compute-engine'
82
+ @required_options = [:datacenter_id, :server_id, :nic_id]
84
83
  end
85
84
 
86
85
  def run
@@ -100,7 +99,7 @@ class Chef
100
99
  port_range_end: config[:port_range_end],
101
100
  icmp_type: config[:icmp_type],
102
101
  icmp_code: config[:icmp_code],
103
- type: config[:type]
102
+ type: config[:type],
104
103
  }
105
104
 
106
105
  firewallrules_api = Ionoscloud::FirewallRulesApi.new(api_client)
@@ -22,13 +22,12 @@ class Chef
22
22
  long: '--nic-id NIC_ID',
23
23
  description: 'ID of the NIC'
24
24
 
25
- attr_reader :description, :required_options
26
-
27
25
  def initialize(args = [])
28
26
  super(args)
29
27
  @description =
30
28
  'Deletes a firewall rule from an existing NIC.'
31
- @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
29
+ @directory = 'compute-engine'
30
+ @required_options = [:datacenter_id, :server_id, :nic_id]
32
31
  end
33
32
 
34
33
  def run
@@ -54,7 +53,7 @@ class Chef
54
53
 
55
54
  begin
56
55
  confirm('Do you really want to delete this firewall rule')
57
- rescue SystemExit => exc
56
+ rescue SystemExit
58
57
  next
59
58
  end
60
59
 
@@ -27,13 +27,12 @@ class Chef
27
27
  long: '--firewall-id FIREWALL_ID',
28
28
  description: 'ID of the Firewall Rule'
29
29
 
30
- attr_reader :description, :required_options
31
-
32
30
  def initialize(args = [])
33
31
  super(args)
34
32
  @description =
35
33
  'Retrieves information about a Ionoscloud Firewall Rule.'
36
- @required_options = [:firewall_id, :datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
34
+ @directory = 'compute-engine'
35
+ @required_options = [:firewall_id, :datacenter_id, :server_id, :nic_id]
37
36
  end
38
37
 
39
38
  def run
@@ -22,13 +22,12 @@ class Chef
22
22
  long: '--nic-id NIC_ID',
23
23
  description: 'ID of the NIC'
24
24
 
25
- attr_reader :description, :required_options
26
-
27
25
  def initialize(args = [])
28
26
  super(args)
29
27
  @description =
30
28
  'Lists all available firewall rules assigned to a NIC.'
31
- @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
29
+ @directory = 'compute-engine'
30
+ @required_options = [:datacenter_id, :server_id, :nic_id]
32
31
  end
33
32
 
34
33
  def run
@@ -53,7 +52,7 @@ class Chef
53
52
  firewallrules_api = Ionoscloud::FirewallRulesApi.new(api_client)
54
53
 
55
54
  firewallrules_api.datacenters_servers_nics_firewallrules_get(
56
- config[:datacenter_id], config[:server_id], config[:nic_id], { depth: 1 }
55
+ config[:datacenter_id], config[:server_id], config[:nic_id], { depth: 1 },
57
56
  ).items.each do |firewall|
58
57
  firewall_list << firewall.id
59
58
  firewall_list << firewall.properties.name
@@ -75,13 +75,12 @@ class Chef
75
75
  description: 'Defines the allowed code (from 0 to 254) if the' \
76
76
  ' protocol ICMP is chosen; null allows all codes'
77
77
 
78
- attr_reader :description, :required_options
79
-
80
78
  def initialize(args = [])
81
79
  super(args)
82
80
  @description =
83
81
  'Updates information about a Ionoscloud Firewall Rule.'
84
- @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
82
+ @directory = 'compute-engine'
83
+ @required_options = [:datacenter_id]
85
84
  @updatable_fields = [
86
85
  :name, :protocol, :source_mac, :source_ip, :target_ip,
87
86
  :port_range_start, :port_range_end, :icmp_type, :icmp_code,
@@ -56,13 +56,12 @@ class Chef
56
56
  long: '--bucket BUCKET',
57
57
  description: 'S3 bucket name of an existing IONOS Cloud S3 bucket. Ex. bucketName/key'
58
58
 
59
- attr_reader :description, :required_options
60
-
61
59
  def initialize(args = [])
62
60
  super(args)
63
61
  @description =
64
62
  'This will add a Flow Log to the network interface, NAT Gateway or Network Load Balancer.'
65
- @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
63
+ @directory = 'compute-engine'
64
+ @required_options = [:datacenter_id, :type]
66
65
  end
67
66
 
68
67
  def run
@@ -37,13 +37,12 @@ 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.'
46
- @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
44
+ @directory = 'compute-engine'
45
+ @required_options = [:datacenter_id, :type]
47
46
  end
48
47
 
49
48
  def run
@@ -51,8 +50,6 @@ class Chef
51
50
  handle_extra_config
52
51
  validate_required_params(@required_options, config)
53
52
 
54
- flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
55
-
56
53
  case config[:type]
57
54
  when 'nic'
58
55
  validate_required_params([:server_id, :nic_id], config)
@@ -90,7 +87,7 @@ class Chef
90
87
 
91
88
  begin
92
89
  confirm('Do you really want to delete this Flow Log')
93
- rescue SystemExit => exc
90
+ rescue SystemExit
94
91
  next
95
92
  end
96
93
 
@@ -42,13 +42,12 @@ class Chef
42
42
  long: '--flowlog-id FLOWLOG_ID',
43
43
  description: 'The ID of the Flow Log'
44
44
 
45
- attr_reader :description, :required_options
46
-
47
45
  def initialize(args = [])
48
46
  super(args)
49
47
  @description =
50
48
  'Retrieves information about a Ionoscloud Flow Log.'
51
- @required_options = [:flowlog_id, :datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
49
+ @directory = 'compute-engine'
50
+ @required_options = [:flowlog_id, :datacenter_id, :type]
52
51
  end
53
52
 
54
53
  def run
@@ -37,13 +37,12 @@ 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.'
46
- @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
44
+ @directory = 'compute-engine'
45
+ @required_options = [:datacenter_id, :type]
47
46
  end
48
47
 
49
48
  def run
@@ -65,27 +64,25 @@ class Chef
65
64
  validate_required_params([:server_id, :nic_id], config)
66
65
  flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
67
66
  flowlogs = flowlogs_api.datacenters_servers_nics_flowlogs_get(
68
- config[:datacenter_id], config[:server_id], config[:nic_id], { depth: 1 }
67
+ config[:datacenter_id], config[:server_id], config[:nic_id], { depth: 1 },
69
68
  )
70
69
  when 'natgateway'
71
70
  validate_required_params([:natgateway_id], config)
72
71
  flowlogs_api = Ionoscloud::NATGatewaysApi.new(api_client)
73
72
  flowlogs = flowlogs_api.datacenters_natgateways_flowlogs_get(
74
- config[:datacenter_id], config[:natgateway_id], { depth: 1 }
73
+ config[:datacenter_id], config[:natgateway_id], { depth: 1 },
75
74
  )
76
75
  when 'networkloadbalancer'
77
76
  validate_required_params([:network_loadbalancer_id], config)
78
77
  flowlogs_api = Ionoscloud::NetworkLoadBalancersApi.new(api_client)
79
78
  flowlogs = flowlogs_api.datacenters_networkloadbalancers_flowlogs_get(
80
- config[:datacenter_id], config[:network_loadbalancer_id], { depth: 1 }
79
+ config[:datacenter_id], config[:network_loadbalancer_id], { depth: 1 },
81
80
  )
82
81
  else
83
82
  ui.error "Flow log cannot belong to #{config[:type]}. Value must be one of ['nic', 'natgateway', 'networkloadbalancer']"
84
83
  exit(1)
85
84
  end
86
85
 
87
- flowlogs_api = Ionoscloud::FlowLogsApi.new(api_client)
88
-
89
86
  flowlogs.items.each do |flowlog|
90
87
  flowlog_list << flowlog.id
91
88
  flowlog_list << flowlog.properties.name
@@ -61,13 +61,12 @@ class Chef
61
61
  long: '--bucket BUCKET',
62
62
  description: 'S3 bucket name of an existing IONOS Cloud S3 bucket. Ex. bucketName/key'
63
63
 
64
- attr_reader :description, :required_options
65
-
66
64
  def initialize(args = [])
67
65
  super(args)
68
66
  @description =
69
67
  'Updates information about a Ionoscloud Flow Log.'
70
- @required_options = [:flowlog_id, :datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
68
+ @directory = 'compute-engine'
69
+ @required_options = [:flowlog_id, :datacenter_id, :type]
71
70
  @updatable_fields = [:name, :action, :direction, :bucket]
72
71
  end
73
72
 
@@ -66,13 +66,12 @@ 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.'
75
- @required_options = [:name, :ionoscloud_username, :ionoscloud_password]
73
+ @directory = 'user'
74
+ @required_options = [:name]
76
75
  end
77
76
 
78
77
  def run
@@ -7,15 +7,13 @@ 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.'
18
- @required_options = [:ionoscloud_username, :ionoscloud_password]
16
+ @directory = 'user'
19
17
  end
20
18
 
21
19
  def run
@@ -39,7 +37,7 @@ class Chef
39
37
 
40
38
  begin
41
39
  confirm('Do you really want to delete this Group')
42
- rescue SystemExit => exc
40
+ rescue SystemExit
43
41
  next
44
42
  end
45
43
 
@@ -12,14 +12,13 @@ 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.'
22
- @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
20
+ @directory = 'user'
21
+ @required_options = [:group_id]
23
22
  end
24
23
 
25
24
  def run
@@ -12,13 +12,11 @@ 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.'
21
- @required_options = [:ionoscloud_username, :ionoscloud_password]
19
+ @directory = 'user'
22
20
  end
23
21
 
24
22
  def run