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
@@ -11,13 +11,20 @@ class Chef
11
11
  def initialize(args = [])
12
12
  super(args)
13
13
  @description = ''
14
+ @directory = ''
14
15
  @required_options = []
15
16
  end
16
17
 
18
+ attr_reader :description, :required_options, :directory
19
+
17
20
  def self.included(includer)
18
21
  includer.class_eval do
19
22
  deps do
23
+ warn_level = $VERBOSE
24
+ $VERBOSE = nil
20
25
  require 'ionoscloud'
26
+ require 'ionoscloud-dbaas-postgres'
27
+ $VERBOSE = warn_level
21
28
  end
22
29
 
23
30
  option :ionoscloud_username,
@@ -30,6 +37,10 @@ class Chef
30
37
  long: '--password PASSWORD',
31
38
  description: 'Your Ionoscloud password'
32
39
 
40
+ option :ionoscloud_token,
41
+ long: '--token PASSWORD',
42
+ description: 'Your Ionoscloud access token'
43
+
33
44
  option :ionoscloud_url,
34
45
  long: '--url URL',
35
46
  description: 'The Ionoscloud API URL'
@@ -48,6 +59,11 @@ class Chef
48
59
  end
49
60
 
50
61
  def validate_required_params(required_params, params)
62
+ if !params[:ionoscloud_token] && !(params[:ionoscloud_username] && params[:ionoscloud_password])
63
+ puts 'Either ionoscloud_token or ionoscloud_username and ionoscloud_password must be provided to access the Ionoscloud API.'
64
+ exit(1)
65
+ end
66
+
51
67
  missing_params = required_params.select do |param|
52
68
  params[param].nil?
53
69
  end
@@ -80,8 +96,12 @@ class Chef
80
96
 
81
97
  api_config = Ionoscloud::Configuration.new()
82
98
 
83
- api_config.username = config[:ionoscloud_username]
84
- api_config.password = config[:ionoscloud_password]
99
+ if config[:ionoscloud_token]
100
+ api_config.token = config[:ionoscloud_token]
101
+ else
102
+ api_config.username = config[:ionoscloud_username]
103
+ api_config.password = config[:ionoscloud_password]
104
+ end
85
105
 
86
106
  if config[:ionoscloud_url]
87
107
  uri = URI.parse(config[:ionoscloud_url])
@@ -105,6 +125,31 @@ class Chef
105
125
  @api_client
106
126
  end
107
127
 
128
+ def api_client_dbaas
129
+ return @api_client_dbaas if @api_client_dbaas
130
+
131
+ api_config_dbaas = IonoscloudDbaasPostgres::Configuration.new()
132
+
133
+ if config[:ionoscloud_token]
134
+ api_config_dbaas.token = config[:ionoscloud_token]
135
+ else
136
+ api_config_dbaas.username = config[:ionoscloud_username]
137
+ api_config_dbaas.password = config[:ionoscloud_password]
138
+ end
139
+
140
+ api_config_dbaas.debugging = config[:ionoscloud_debug] || false
141
+
142
+ @api_client_dbaas = IonoscloudDbaasPostgres::ApiClient.new(api_config_dbaas)
143
+
144
+ @api_client_dbaas.user_agent = [
145
+ 'knife/v' + MODULE_VERSION,
146
+ @api_client_dbaas.default_headers['User-Agent'],
147
+ 'chef/' + Chef::VERSION,
148
+ ].join('_')
149
+
150
+ @api_client_dbaas
151
+ end
152
+
108
153
  def get_request_id(headers)
109
154
  begin
110
155
  headers['Location'].scan(%r{/requests/(\b[0-9a-f]{8}\b-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-\b[0-9a-f]{12}\b)}).last.first
@@ -423,6 +468,36 @@ class Chef
423
468
  end}"
424
469
  puts "#{ui.color('Flowlogs', :cyan)}: #{natgateway.entities.flowlogs.items.map { |flowlog| flowlog.id }}"
425
470
  end
471
+
472
+ def print_cluster(cluster)
473
+ connections = cluster.properties.connections.map { |connection| connection.to_hash }
474
+
475
+ print "\n"
476
+ puts "#{ui.color('ID', :cyan)}: #{cluster.id}"
477
+ puts "#{ui.color('Display Name', :cyan)}: #{cluster.properties.display_name}"
478
+ puts "#{ui.color('Postgres Version', :cyan)}: #{cluster.properties.postgres_version}"
479
+ puts "#{ui.color('Location', :cyan)}: #{cluster.properties.location}"
480
+ puts "#{ui.color('Backup location', :cyan)}: #{cluster.properties.backup_location}"
481
+ puts "#{ui.color('Instances', :cyan)}: #{cluster.properties.instances}"
482
+ puts "#{ui.color('RAM Size', :cyan)}: #{cluster.properties.ram}"
483
+ puts "#{ui.color('Cores', :cyan)}: #{cluster.properties.cores}"
484
+ puts "#{ui.color('Storage Size', :cyan)}: #{cluster.properties.storage_size}"
485
+ puts "#{ui.color('Storage Type', :cyan)}: #{cluster.properties.storage_type}"
486
+ puts "#{ui.color('Connections', :cyan)}: #{connections}"
487
+ puts "#{ui.color('Maintenance Window', :cyan)}: #{cluster.properties.maintenance_window.to_hash}"
488
+ puts "#{ui.color('Synchronization Mode', :cyan)}: #{cluster.properties.synchronization_mode}"
489
+ puts "#{ui.color('Lifecycle Status', :cyan)}: #{cluster.metadata.state}"
490
+ end
491
+
492
+ def print_cluster_backup(backup)
493
+ print "\n"
494
+ puts "#{ui.color('ID', :cyan)}: #{backup.id}"
495
+ puts "#{ui.color('Cluster ID', :cyan)}: #{backup.properties.cluster_id}"
496
+ puts "#{ui.color('Version', :cyan)}: #{backup.properties.version}"
497
+ puts "#{ui.color('Is Active', :cyan)}: #{backup.properties.is_active}"
498
+ puts "#{ui.color('Earliest Recovery Target Time', :cyan)}: #{backup.properties.earliest_recovery_target_time}"
499
+ puts "#{ui.color('Created Date', :cyan)}: #{backup.metadata.created_date}"
500
+ end
426
501
  end
427
502
  end
428
503
  end
@@ -124,14 +124,13 @@ class Chef
124
124
  description: 'The type of firewall rules that will be allowed on the NIC. If it is not specified it will take the '\
125
125
  'default value INGRESS'
126
126
 
127
- attr_reader :description, :required_options
128
-
129
127
  def initialize(args = [])
130
128
  super(args)
131
129
  @description =
132
130
  'This creates a new composite server with an attached volume and NIC in a specified virtual data center.'
131
+ @directory = 'compute-engine'
133
132
  @required_options = [
134
- :datacenter_id, :name, :cores, :ram, :size, :type, :dhcp, :lan, :ionoscloud_username, :ionoscloud_password,
133
+ :datacenter_id, :name, :cores, :ram, :size, :type, :dhcp, :lan,
135
134
  ]
136
135
  end
137
136
 
@@ -159,7 +158,7 @@ class Chef
159
158
  availability_zone: config[:volume_availability_zone],
160
159
  backupunit_id: config[:backupunit_id],
161
160
  user_data: config[:user_data],
162
- }.compact)
161
+ }.compact),
163
162
  )
164
163
 
165
164
  nic = Ionoscloud::Nic.new(
@@ -169,7 +168,7 @@ class Chef
169
168
  dhcp: config[:dhcp],
170
169
  lan: config[:lan],
171
170
  firewall_type: config[:firewall_type],
172
- }.compact)
171
+ }.compact),
173
172
  )
174
173
 
175
174
  server = Ionoscloud::Server.new(
@@ -7,13 +7,11 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud contract list'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'Lists information about available contract resources.'
16
- @required_options = [:ionoscloud_username, :ionoscloud_password]
14
+ @directory = 'user'
17
15
  end
18
16
 
19
17
  def run
@@ -23,8 +21,7 @@ class Chef
23
21
 
24
22
  contracts = Ionoscloud::ContractResourcesApi.new(api_client).contracts_get()
25
23
 
26
- contracts.items.each do
27
- |contract|
24
+ contracts.items.each do |contract|
28
25
  puts "#{ui.color('Contract Type', :cyan)}: #{contract.type}"
29
26
  puts "#{ui.color('Contract Owner', :cyan)}: #{contract.properties.owner}"
30
27
  puts "#{ui.color('Contract Number', :cyan)}: #{contract.properties.contract_number}"
@@ -104,14 +104,13 @@ class Chef
104
104
  description: 'The type of firewall rules that will be allowed on the NIC. If it is not specified it will take the '\
105
105
  'default value INGRESS'
106
106
 
107
- attr_reader :description, :required_options
108
-
109
107
  def initialize(args = [])
110
108
  super(args)
111
109
  @description =
112
110
  'This creates a new cube server with an attached volume and NIC in a specified virtual data center.'
111
+ @directory = 'compute-engine'
113
112
  @required_options = [
114
- :datacenter_id, :name, :template, :ionoscloud_username, :ionoscloud_password,
113
+ :datacenter_id, :name, :template,
115
114
  ]
116
115
  end
117
116
 
@@ -136,7 +135,7 @@ class Chef
136
135
  licence_type: config[:licence_type],
137
136
  backupunit_id: config[:backupunit_id],
138
137
  user_data: config[:user_data],
139
- }.compact)
138
+ }.compact),
140
139
  )]
141
140
 
142
141
  nics = []
@@ -150,8 +149,8 @@ class Chef
150
149
  dhcp: config[:dhcp],
151
150
  lan: config[:lan],
152
151
  firewall_type: config[:firewall_type],
153
- }.compact)
154
- )
152
+ }.compact),
153
+ ),
155
154
  ]
156
155
  end
157
156
 
@@ -22,17 +22,16 @@ class Chef
22
22
  long: '--location LOCATION',
23
23
  description: 'Location of the data center'
24
24
 
25
- attr_reader :description, :required_options
26
-
27
25
  def initialize(args = [])
28
26
  super(args)
29
27
  @description =
30
- "Unless you are planning to manage an existing Ionoscloud environment, "\
31
- "the first step will typically involve choosing the location for a new virtual data center"\
28
+ 'Unless you are planning to manage an existing Ionoscloud environment, '\
29
+ 'the first step will typically involve choosing the location for a new virtual data center'\
32
30
  "A list of locations can be obtained with location command.\n\n\t"\
33
31
  "```text\nknife ionoscloud location list\n```\n\n"\
34
32
  "Make a note of the desired location ID and now the data center can be created.\n"
35
- @required_options = [:location, :ionoscloud_username, :ionoscloud_password]
33
+ @directory = 'compute-engine'
34
+ @required_options = [:location]
36
35
  end
37
36
 
38
37
  def run
@@ -7,15 +7,13 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud datacenter delete DATACENTER_ID [DATACENTER_ID]'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'You will want to exercise a bit of caution here. Removing a data center will destroy '\
16
14
  'all objects contained within that data center -- servers, volumes, snapshots, and so on. '\
17
15
  'The objects -- once removed -- will be unrecoverable.'
18
- @required_options = [:ionoscloud_username, :ionoscloud_password]
16
+ @directory = 'compute-engine'
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 data center')
42
- rescue SystemExit => exc
40
+ rescue SystemExit
43
41
  next
44
42
  end
45
43
 
@@ -12,13 +12,12 @@ class Chef
12
12
  long: '--datacenter-id DATACENTER_ID',
13
13
  description: 'ID of the data center'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Retrieves information about a Ionoscloud Datacenter.'
21
- @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
19
+ @directory = 'compute-engine'
20
+ @required_options = [:datacenter_id]
22
21
  end
23
22
 
24
23
  def run
@@ -7,8 +7,6 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud datacenter list'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
@@ -18,7 +16,7 @@ class Chef
18
16
  'networking, and other resources. The goal is to give you the same '\
19
17
  'experience as you would have if you were running your own physical '\
20
18
  'data center. A list of available data centers can be obtained with the following command.'
21
- @required_options = [:ionoscloud_username, :ionoscloud_password]
19
+ @directory = 'compute-engine'
22
20
  end
23
21
 
24
22
  def run
@@ -25,13 +25,12 @@ class Chef
25
25
  long: '--sec-auth-protection SEC_AUTH_PROTECTION',
26
26
  description: 'Boolean value representing if the data center requires extra protection e.g. two factor protection'
27
27
 
28
- attr_reader :description, :required_options
29
-
30
28
  def initialize(args = [])
31
29
  super(args)
32
30
  @description =
33
31
  'Updates information about a Ionoscloud Datacenter.'
34
- @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
32
+ @directory = 'compute-engine'
33
+ @required_options = [:datacenter_id]
35
34
  @updatable_fields = [:name, :description, :sec_auth_protection]
36
35
  end
37
36
 
@@ -45,13 +44,13 @@ class Chef
45
44
  if @updatable_fields.map { |el| config[el] }.any?
46
45
  print "#{ui.color('Updating data center...', :magenta)}"
47
46
 
48
- datacenter, _, headers = datacenter_api.datacenters_patch_with_http_info(
47
+ _, _, headers = datacenter_api.datacenters_patch_with_http_info(
49
48
  config[:datacenter_id],
50
49
  Ionoscloud::DatacenterProperties.new(
51
50
  name: config[:name],
52
51
  description: config[:description],
53
52
  sec_auth_protection: (config.key?(:sec_auth_protection) ? config[:sec_auth_protection].to_s.downcase == 'true' : nil),
54
- )
53
+ ),
55
54
  )
56
55
 
57
56
  dot = ui.color('.', :magenta)
@@ -0,0 +1,33 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresBackupGet < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres cluster get (options)'
9
+
10
+ option :backup_id,
11
+ short: '-B BACKUP_ID',
12
+ long: '--backup-id BACKUP_ID',
13
+ description: 'ID of the cluster backup'
14
+
15
+ def initialize(args = [])
16
+ super(args)
17
+ @description =
18
+ 'Retrieve a PostgreSQL cluster backup by using its ID. This value can be '\
19
+ 'found when you GET a list of PostgreSQL cluster backups.'
20
+ @directory = 'dbaas-postgres'
21
+ @required_options = [:backup_id]
22
+ end
23
+
24
+ def run
25
+ $stdout.sync = true
26
+ handle_extra_config
27
+ validate_required_params(@required_options, config)
28
+
29
+ print_cluster_backup(IonoscloudDbaasPostgres::BackupsApi.new(api_client_dbaas).clusters_backups_find_by_id(config[:backup_id]))
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,58 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresBackupList < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres backup list (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
+ def initialize(args = [])
16
+ super(args)
17
+ @description =
18
+ 'If cluster_id is provided, retrieves a list of all backups of the given PostgreSQL cluster, '\
19
+ 'otherwise retrieves a list of all PostgreSQL cluster backups.'
20
+ @directory = 'dbaas-postgres'
21
+ end
22
+
23
+ def run
24
+ $stdout.sync = true
25
+ handle_extra_config
26
+ validate_required_params(@required_options, config)
27
+
28
+ backup_list = [
29
+ ui.color('ID', :bold),
30
+ ui.color('Type', :bold),
31
+ ui.color('Cluster ID', :bold),
32
+ ui.color('Is Active', :bold),
33
+ ui.color('Earliest Recovery Target Time', :bold),
34
+ ui.color('Created Date', :bold),
35
+ ]
36
+
37
+ backups_api = IonoscloudDbaasPostgres::BackupsApi.new(api_client_dbaas)
38
+
39
+ if config[:cluster_id]
40
+ backups = backups_api.cluster_backups_get(config[:cluster_id])
41
+ else
42
+ backups = backups_api.clusters_backups_get()
43
+ end
44
+
45
+ backups.items.each do |backup|
46
+ backup_list << backup.id
47
+ backup_list << backup.type
48
+ backup_list << backup.properties.cluster_id
49
+ backup_list << backup.properties.is_active
50
+ backup_list << backup.properties.earliest_recovery_target_time
51
+ backup_list << backup.metadata.created_date
52
+ end
53
+
54
+ puts ui.list(backup_list, :uneven_columns_across, 6)
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,162 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresClusterCreate < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres cluster create (options)'
9
+
10
+ option :postgres_version,
11
+ long: '--postgres-version POSTGRES_VERSION',
12
+ description: 'The PostgreSQL version of your cluster'
13
+
14
+ option :instances,
15
+ short: '-R INSTANCES',
16
+ long: '--instances INSTANCES',
17
+ description: 'The total number of instances in the cluster (one master and n-1 standbys).'
18
+
19
+ option :cores,
20
+ short: '-C CORES',
21
+ long: '--cores CORES',
22
+ description: 'The number of CPU cores per instance.'
23
+
24
+ option :ram,
25
+ short: '-r RAM',
26
+ long: '--ram RAM',
27
+ description: 'The amount of memory per instance(should be a multiple of 1024).'
28
+
29
+ option :storage_size,
30
+ long: '--size STORAGE_SIZE',
31
+ description: 'The amount of storage per instance.'
32
+
33
+ option :storage_type,
34
+ long: '--type STORAGE_TYPE',
35
+ description: 'The storage type used in your cluster.'
36
+
37
+ option :connections,
38
+ long: '--connections CONNECTIONS',
39
+ description: 'Array of VDCs to connect to your cluster.'
40
+
41
+ option :location,
42
+ short: '-l LOCATION',
43
+ long: '--location LOCATION',
44
+ description: 'The physical location where the cluster will be created. This will
45
+ be where all of your instances live. Property cannot be modified
46
+ after datacenter creation (disallowed in update requests)'
47
+
48
+ option :backup_location,
49
+ long: '--backup-location BACKUP_LOCATION',
50
+ description: 'The S3 location where the backups will be stored.'
51
+
52
+ option :display_name,
53
+ short: '-n DISPLAY_NAME',
54
+ long: '--name DISPLAY_NAME',
55
+ description: 'The friendly name of your cluster.'
56
+
57
+ option :from_backup,
58
+ short: '-b FROM_BACKUP',
59
+ long: '--from-backup FROM_BACKUP',
60
+ description: 'Deprecated: backup is always enabled. Enables automatic backups of your cluster.'
61
+
62
+ option :time,
63
+ long: '--time TIME',
64
+ description: 'Time Of the day when to perform the maintenance.'
65
+
66
+ option :day_of_the_week,
67
+ short: '-d DAY_OF_THE_WEEK',
68
+ long: '--day-of-the-week DAY_OF_THE_WEEK',
69
+ description: 'Day Of the week when to perform the maintenance.'
70
+
71
+ option :synchronization_mode,
72
+ short: '-s SYNCHRONIZATION_MODE',
73
+ long: '--synchronization-mode SYNCHRONIZATION_MODE',
74
+ description: 'Represents different modes of replication. One of [ASYNCHRONOUS, SYNCHRONOUS, STRICTLY_SYNCHRONOUS]'
75
+
76
+ option :username,
77
+ long: '--db-user DB_USERNAME',
78
+ description: 'The username for the initial postgres user.
79
+ Some system usernames are restricted (e.g. "postgres", "admin", "standby")'
80
+
81
+ option :password,
82
+ long: '--db-password DB_PASSWORD',
83
+ description: 'The username for the initial postgres user.'
84
+
85
+ option :backup_id,
86
+ short: '-B BACKUP_ID',
87
+ long: '--backup-id BACKUP_ID',
88
+ description: 'ID of backup'
89
+
90
+ option :recovery_target_time,
91
+ short: '-T RECOVERY_TARGET_TIME',
92
+ long: '--recovery-target-time RECOVERY_TARGET_TIME',
93
+ description: 'Recovery target time'
94
+
95
+ def initialize(args = [])
96
+ super(args)
97
+ @description =
98
+ 'Creates a new PostgreSQL cluster. '\
99
+ 'If the `fromBackup` field is populated, the new cluster will be created '\
100
+ 'based on the given backup.'
101
+ @directory = 'dbaas-postgres'
102
+ @required_options = [
103
+ :postgres_version, :instances, :cores, :ram, :storage_size, :storage_type,
104
+ :connections, :location, :display_name, :synchronization_mode, :username, :password,
105
+ ]
106
+ end
107
+
108
+ def run
109
+ $stdout.sync = true
110
+ handle_extra_config
111
+ validate_required_params(@required_options, config)
112
+
113
+ print "#{ui.color('Creating cluster...', :magenta)}"
114
+
115
+ config[:connections] = JSON[config[:connections]] if config[:connections] && config[:connections].instance_of?(String)
116
+
117
+ config[:connections] = config[:connections].map do |connection|
118
+ IonoscloudDbaasPostgres::Connection.new(
119
+ datacenter_id: connection['datacenter_id'],
120
+ lan_id: String(connection['lan_id']),
121
+ cidr: connection['cidr'],
122
+ )
123
+ end if config[:connections]
124
+
125
+ clusters_api = IonoscloudDbaasPostgres::ClustersApi.new(api_client_dbaas)
126
+
127
+ cluster_properties = IonoscloudDbaasPostgres::CreateClusterProperties.new(
128
+ postgres_version: config[:postgres_version],
129
+ instances: Integer(config[:instances]),
130
+ cores: Integer(config[:cores]),
131
+ ram: Integer(config[:ram]),
132
+ storage_size: Integer(config[:storage_size]),
133
+ storage_type: config[:storage_type],
134
+ connections: config[:connections],
135
+ location: config[:location],
136
+ backup_location: config[:backup_location],
137
+ display_name: config[:display_name],
138
+ maintenance_window: (config[:time] && config[:day_of_the_week]) ? IonoscloudDbaasPostgres::MaintenanceWindow.new(
139
+ time: config[:time],
140
+ day_of_the_week: config[:day_of_the_week],
141
+ ) : nil,
142
+ credentials: IonoscloudDbaasPostgres::DBUser.new(
143
+ username: config[:username],
144
+ password: config[:password],
145
+ ),
146
+ synchronization_mode: config[:synchronization_mode],
147
+ from_backup: IonoscloudDbaasPostgres::CreateRestoreRequest.new(
148
+ backup_id: config[:backup_id],
149
+ recovery_target_time: config[:recovery_target_time],
150
+ ),
151
+ )
152
+
153
+ cluster_request = IonoscloudDbaasPostgres::CreateClusterRequest.new()
154
+ cluster_request.properties = cluster_properties
155
+
156
+ cluster, _, _ = clusters_api.clusters_post_with_http_info(cluster_request)
157
+
158
+ print_cluster(cluster)
159
+ end
160
+ end
161
+ end
162
+ end
@@ -0,0 +1,48 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresClusterDelete < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres cluster delete CLUSTER_ID [CLUSTER_ID]'
9
+
10
+ def initialize(args = [])
11
+ super(args)
12
+ @description =
13
+ 'Delete a PostgreSQL cluster.'
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
+ clusters_api = IonoscloudDbaasPostgres::ClustersApi.new(api_client_dbaas)
23
+
24
+ @name_args.each do |cluster_id|
25
+ begin
26
+ cluster = clusters_api.clusters_find_by_id(cluster_id)
27
+ rescue IonoscloudDbaasPostgres::ApiError => err
28
+ raise err unless err.code == 404
29
+ ui.error("Cluster ID #{cluster_id} not found. Skipping.")
30
+ next
31
+ end
32
+
33
+ print_cluster(cluster)
34
+ puts "\n"
35
+
36
+ begin
37
+ confirm('Do you really want to delete this cluster')
38
+ rescue SystemExit
39
+ next
40
+ end
41
+
42
+ clusters_api.clusters_delete_with_http_info(cluster_id)
43
+ ui.warn("Deleted Cluster #{cluster.id}.")
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,34 @@
1
+ require_relative 'ionoscloud_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class IonoscloudDbaasPostgresClusterGet < Knife
6
+ include Knife::IonoscloudBase
7
+
8
+ banner 'knife ionoscloud dbaas postgres cluster get (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
+ def initialize(args = [])
16
+ super(args)
17
+ @description =
18
+ 'You can retrieve a PostgreSQL cluster by using its ID. This value can be '\
19
+ 'found in the response body when a PostgreSQL cluster is created or when '\
20
+ 'you GET a list of PostgreSQL clusters.'
21
+ @directory = 'dbaas-postgres'
22
+ @required_options = [:cluster_id]
23
+ end
24
+
25
+ def run
26
+ $stdout.sync = true
27
+ handle_extra_config
28
+ validate_required_params(@required_options, config)
29
+
30
+ print_cluster(IonoscloudDbaasPostgres::ClustersApi.new(api_client_dbaas).clusters_find_by_id(config[:cluster_id]))
31
+ end
32
+ end
33
+ end
34
+ end