knife-ionoscloud 6.0.0.beta.2 → 6.1.1

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 +9 -0
  6. data/docs/README.md +17 -0
  7. data/docs/changelog.md +10 -0
  8. data/docs/docs_generator.rb +61 -29
  9. data/docs/subcommands/{backupunit_create.md → backup/backupunit_create.md} +6 -3
  10. data/docs/subcommands/{backupunit_delete.md → backup/backupunit_delete.md} +6 -3
  11. data/docs/subcommands/backup/backupunit_get.md +38 -0
  12. data/docs/subcommands/{backupunit_list.md → backup/backupunit_list.md} +6 -3
  13. data/docs/subcommands/{backupunit_ssourl.md → backup/backupunit_ssourl.md} +6 -3
  14. data/docs/subcommands/backup/backupunit_update.md +44 -0
  15. data/docs/subcommands/{composite_server_create.md → compute-engine/composite_server_create.md} +6 -3
  16. data/docs/subcommands/{cube_server_create.md → compute-engine/cube_server_create.md} +6 -3
  17. data/docs/subcommands/{datacenter_create.md → compute-engine/datacenter_create.md} +6 -3
  18. data/docs/subcommands/{datacenter_delete.md → compute-engine/datacenter_delete.md} +6 -3
  19. data/docs/subcommands/compute-engine/datacenter_get.md +38 -0
  20. data/docs/subcommands/{datacenter_list.md → compute-engine/datacenter_list.md} +6 -3
  21. data/docs/subcommands/compute-engine/datacenter_update.md +47 -0
  22. data/docs/subcommands/{firewall_create.md → compute-engine/firewall_create.md} +6 -3
  23. data/docs/subcommands/{firewall_delete.md → compute-engine/firewall_delete.md} +5 -2
  24. data/docs/subcommands/compute-engine/firewall_get.md +50 -0
  25. data/docs/subcommands/{firewall_list.md → compute-engine/firewall_list.md} +6 -3
  26. data/docs/subcommands/compute-engine/firewall_update.md +74 -0
  27. data/docs/subcommands/{flowlog_create.md → compute-engine/flowlog_create.md} +6 -3
  28. data/docs/subcommands/{flowlog_delete.md → compute-engine/flowlog_delete.md} +6 -3
  29. data/docs/subcommands/compute-engine/flowlog_get.md +58 -0
  30. data/docs/subcommands/{flowlog_list.md → compute-engine/flowlog_list.md} +6 -3
  31. data/docs/subcommands/compute-engine/flowlog_update.md +70 -0
  32. data/docs/subcommands/{image_list.md → compute-engine/image_list.md} +6 -3
  33. data/docs/subcommands/{ipblock_create.md → compute-engine/ipblock_create.md} +6 -3
  34. data/docs/subcommands/{ipblock_delete.md → compute-engine/ipblock_delete.md} +6 -3
  35. data/docs/subcommands/compute-engine/ipblock_get.md +38 -0
  36. data/docs/subcommands/{ipblock_list.md → compute-engine/ipblock_list.md} +6 -3
  37. data/docs/subcommands/compute-engine/ipblock_update.md +41 -0
  38. data/docs/subcommands/{ipfailover_add.md → compute-engine/ipfailover_add.md} +6 -3
  39. data/docs/subcommands/{ipfailover_remove.md → compute-engine/ipfailover_remove.md} +6 -3
  40. data/docs/subcommands/{label_add.md → compute-engine/label_add.md} +6 -3
  41. data/docs/subcommands/{label_list.md → compute-engine/label_list.md} +6 -3
  42. data/docs/subcommands/{label_remove.md → compute-engine/label_remove.md} +5 -2
  43. data/docs/subcommands/{lan_create.md → compute-engine/lan_create.md} +6 -3
  44. data/docs/subcommands/{lan_delete.md → compute-engine/lan_delete.md} +5 -2
  45. data/docs/subcommands/compute-engine/lan_get.md +42 -0
  46. data/docs/subcommands/{lan_list.md → compute-engine/lan_list.md} +6 -3
  47. data/docs/subcommands/compute-engine/lan_update.md +51 -0
  48. data/docs/subcommands/{loadbalancer_create.md → compute-engine/loadbalancer_create.md} +6 -3
  49. data/docs/subcommands/{loadbalancer_delete.md → compute-engine/loadbalancer_delete.md} +5 -2
  50. data/docs/subcommands/{loadbalancer_get.md → compute-engine/loadbalancer_get.md} +6 -3
  51. data/docs/subcommands/{loadbalancer_list.md → compute-engine/loadbalancer_list.md} +6 -3
  52. data/docs/subcommands/{loadbalancer_nic_add.md → compute-engine/loadbalancer_nic_add.md} +5 -2
  53. data/docs/subcommands/{loadbalancer_nic_remove.md → compute-engine/loadbalancer_nic_remove.md} +5 -2
  54. data/docs/subcommands/compute-engine/loadbalancer_update.md +51 -0
  55. data/docs/subcommands/{location_list.md → compute-engine/location_list.md} +6 -3
  56. data/docs/subcommands/{natgateway_create.md → compute-engine/natgateway_create.md} +8 -5
  57. data/docs/subcommands/{natgateway_delete.md → compute-engine/natgateway_delete.md} +5 -2
  58. data/docs/subcommands/compute-engine/natgateway_get.md +42 -0
  59. data/docs/subcommands/{natgateway_lan_add.md → compute-engine/natgateway_lan_add.md} +6 -3
  60. data/docs/subcommands/{natgateway_lan_remove.md → compute-engine/natgateway_lan_remove.md} +5 -2
  61. data/docs/subcommands/{natgateway_list.md → compute-engine/natgateway_list.md} +6 -3
  62. data/docs/subcommands/{natgateway_rule_add.md → compute-engine/natgateway_rule_add.md} +7 -4
  63. data/docs/subcommands/{natgateway_rule_list.md → compute-engine/natgateway_rule_list.md} +6 -3
  64. data/docs/subcommands/{natgateway_rule_remove.md → compute-engine/natgateway_rule_remove.md} +5 -2
  65. data/docs/subcommands/compute-engine/natgateway_rule_update.md +69 -0
  66. data/docs/subcommands/compute-engine/natgateway_update.md +51 -0
  67. data/docs/subcommands/{networkloadbalancer_create.md → compute-engine/networkloadbalancer_create.md} +6 -3
  68. data/docs/subcommands/{networkloadbalancer_delete.md → compute-engine/networkloadbalancer_delete.md} +5 -2
  69. data/docs/subcommands/compute-engine/networkloadbalancer_get.md +42 -0
  70. data/docs/subcommands/{networkloadbalancer_list.md → compute-engine/networkloadbalancer_list.md} +6 -3
  71. data/docs/subcommands/{networkloadbalancer_rule_add.md → compute-engine/networkloadbalancer_rule_add.md} +9 -6
  72. data/docs/subcommands/{networkloadbalancer_rule_list.md → compute-engine/networkloadbalancer_rule_list.md} +6 -3
  73. data/docs/subcommands/{networkloadbalancer_rule_remove.md → compute-engine/networkloadbalancer_rule_remove.md} +5 -2
  74. data/docs/subcommands/{networkloadbalancer_rule_target_add.md → compute-engine/networkloadbalancer_rule_target_add.md} +6 -3
  75. data/docs/subcommands/{networkloadbalancer_rule_target_list.md → compute-engine/networkloadbalancer_rule_target_list.md} +6 -3
  76. data/docs/subcommands/{networkloadbalancer_rule_target_remove.md → compute-engine/networkloadbalancer_rule_target_remove.md} +6 -3
  77. data/docs/subcommands/compute-engine/networkloadbalancer_rule_update.md +75 -0
  78. data/docs/subcommands/compute-engine/networkloadbalancer_update.md +57 -0
  79. data/docs/subcommands/{nic_create.md → compute-engine/nic_create.md} +6 -3
  80. data/docs/subcommands/{nic_delete.md → compute-engine/nic_delete.md} +5 -2
  81. data/docs/subcommands/compute-engine/nic_get.md +46 -0
  82. data/docs/subcommands/{nic_list.md → compute-engine/nic_list.md} +6 -3
  83. data/docs/subcommands/compute-engine/nic_update.md +61 -0
  84. data/docs/subcommands/{pcc_create.md → compute-engine/pcc_create.md} +6 -3
  85. data/docs/subcommands/{pcc_delete.md → compute-engine/pcc_delete.md} +6 -3
  86. data/docs/subcommands/compute-engine/pcc_get.md +38 -0
  87. data/docs/subcommands/{pcc_list.md → compute-engine/pcc_list.md} +6 -3
  88. data/docs/subcommands/compute-engine/pcc_update.md +44 -0
  89. data/docs/subcommands/compute-engine/request_get.md +38 -0
  90. data/docs/subcommands/{request_list.md → compute-engine/request_list.md} +6 -3
  91. data/docs/subcommands/{request_status.md → compute-engine/request_status.md} +6 -3
  92. data/docs/subcommands/{request_wait.md → compute-engine/request_wait.md} +6 -3
  93. data/docs/subcommands/{server_console.md → compute-engine/server_console.md} +6 -3
  94. data/docs/subcommands/{server_create.md → compute-engine/server_create.md} +6 -3
  95. data/docs/subcommands/{server_delete.md → compute-engine/server_delete.md} +5 -2
  96. data/docs/subcommands/compute-engine/server_get.md +42 -0
  97. data/docs/subcommands/{server_list.md → compute-engine/server_list.md} +6 -3
  98. data/docs/subcommands/{server_reboot.md → compute-engine/server_reboot.md} +5 -2
  99. data/docs/subcommands/{server_resume.md → compute-engine/server_resume.md} +5 -2
  100. data/docs/subcommands/{server_start.md → compute-engine/server_start.md} +5 -2
  101. data/docs/subcommands/{server_stop.md → compute-engine/server_stop.md} +5 -2
  102. data/docs/subcommands/{server_suspend.md → compute-engine/server_suspend.md} +5 -2
  103. data/docs/subcommands/{server_token.md → compute-engine/server_token.md} +6 -3
  104. data/docs/subcommands/compute-engine/server_update.md +63 -0
  105. data/docs/subcommands/{server_upgrade.md → compute-engine/server_upgrade.md} +6 -3
  106. data/docs/subcommands/{snapshot_create.md → compute-engine/snapshot_create.md} +6 -3
  107. data/docs/subcommands/{snapshot_delete.md → compute-engine/snapshot_delete.md} +6 -3
  108. data/docs/subcommands/compute-engine/snapshot_get.md +38 -0
  109. data/docs/subcommands/{snapshot_list.md → compute-engine/snapshot_list.md} +6 -3
  110. data/docs/subcommands/{snapshot_restore.md → compute-engine/snapshot_restore.md} +6 -3
  111. data/docs/subcommands/compute-engine/snapshot_update.md +80 -0
  112. data/docs/subcommands/{template_list.md → compute-engine/template_list.md} +6 -3
  113. data/docs/subcommands/{volume_attach.md → compute-engine/volume_attach.md} +5 -2
  114. data/docs/subcommands/{volume_create.md → compute-engine/volume_create.md} +6 -3
  115. data/docs/subcommands/{volume_delete.md → compute-engine/volume_delete.md} +5 -2
  116. data/docs/subcommands/{volume_detach.md → compute-engine/volume_detach.md} +5 -2
  117. data/docs/subcommands/compute-engine/volume_get.md +42 -0
  118. data/docs/subcommands/{volume_list.md → compute-engine/volume_list.md} +6 -3
  119. data/docs/subcommands/compute-engine/volume_update.md +69 -0
  120. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_get.md +38 -0
  121. data/docs/subcommands/dbaas-postgres/dbaas_postgres_backup_list.md +37 -0
  122. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_create.md +103 -0
  123. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_delete.md +34 -0
  124. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_get.md +38 -0
  125. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_list.md +34 -0
  126. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_restore.md +44 -0
  127. data/docs/subcommands/dbaas-postgres/dbaas_postgres_cluster_update.md +65 -0
  128. data/docs/subcommands/dbaas-postgres/dbaas_postgres_logs_get.md +50 -0
  129. data/docs/subcommands/dbaas-postgres/dbaas_postgres_version_list.md +37 -0
  130. data/docs/subcommands/{k8s_create.md → kubernetes/k8s_create.md} +13 -7
  131. data/docs/subcommands/{k8s_delete.md → kubernetes/k8s_delete.md} +6 -3
  132. data/docs/subcommands/kubernetes/k8s_get.md +38 -0
  133. data/docs/subcommands/{k8s_list.md → kubernetes/k8s_list.md} +6 -3
  134. data/docs/subcommands/kubernetes/k8s_update.md +56 -0
  135. data/docs/subcommands/{kubeconfig_get.md → kubernetes/kubeconfig_get.md} +6 -3
  136. data/docs/subcommands/{node_delete.md → kubernetes/node_delete.md} +5 -2
  137. data/docs/subcommands/kubernetes/node_get.md +46 -0
  138. data/docs/subcommands/{node_list.md → kubernetes/node_list.md} +6 -3
  139. data/docs/subcommands/{node_replace.md → kubernetes/node_replace.md} +5 -2
  140. data/docs/subcommands/{nodepool_create.md → kubernetes/nodepool_create.md} +15 -3
  141. data/docs/subcommands/{nodepool_delete.md → kubernetes/nodepool_delete.md} +5 -2
  142. data/docs/subcommands/kubernetes/nodepool_get.md +42 -0
  143. data/docs/subcommands/{nodepool_lan_add.md → kubernetes/nodepool_lan_add.md} +6 -3
  144. data/docs/subcommands/{nodepool_lan_remove.md → kubernetes/nodepool_lan_remove.md} +5 -2
  145. data/docs/subcommands/{nodepool_list.md → kubernetes/nodepool_list.md} +6 -3
  146. data/docs/subcommands/kubernetes/nodepool_update.md +72 -0
  147. data/docs/subcommands/{contract_list.md → user/contract_list.md} +6 -3
  148. data/docs/subcommands/{group_create.md → user/group_create.md} +6 -3
  149. data/docs/subcommands/{group_delete.md → user/group_delete.md} +6 -3
  150. data/docs/subcommands/{group_get.md → user/group_get.md} +6 -3
  151. data/docs/subcommands/{group_list.md → user/group_list.md} +6 -3
  152. data/docs/subcommands/user/group_update.md +77 -0
  153. data/docs/subcommands/{group_user_add.md → user/group_user_add.md} +5 -2
  154. data/docs/subcommands/{group_user_remove.md → user/group_user_remove.md} +5 -2
  155. data/docs/subcommands/{resource_list.md → user/resource_list.md} +6 -3
  156. data/docs/subcommands/{s3key_create.md → user/s3key_create.md} +6 -3
  157. data/docs/subcommands/{s3key_delete.md → user/s3key_delete.md} +5 -2
  158. data/docs/subcommands/user/s3key_get.md +42 -0
  159. data/docs/subcommands/{s3key_list.md → user/s3key_list.md} +6 -3
  160. data/docs/subcommands/{share_create.md → user/share_create.md} +6 -3
  161. data/docs/subcommands/{share_delete.md → user/share_delete.md} +5 -2
  162. data/docs/subcommands/user/share_get.md +42 -0
  163. data/docs/subcommands/{share_list.md → user/share_list.md} +6 -3
  164. data/docs/subcommands/user/share_update.md +48 -0
  165. data/docs/subcommands/{user_create.md → user/user_create.md} +6 -3
  166. data/docs/subcommands/{user_delete.md → user/user_delete.md} +6 -3
  167. data/docs/subcommands/user/user_get.md +38 -0
  168. data/docs/subcommands/{user_list.md → user/user_list.md} +6 -3
  169. data/docs/subcommands/{user_ssourl.md → user/user_ssourl.md} +6 -3
  170. data/docs/subcommands/user/user_update.md +59 -0
  171. data/docs/summary.md +167 -111
  172. data/docs/templates/summary.mustache +6 -3
  173. data/knife-ionoscloud.gemspec +2 -1
  174. data/lib/chef/knife/ionoscloud_backupunit_create.rb +1 -2
  175. data/lib/chef/knife/ionoscloud_backupunit_delete.rb +2 -3
  176. data/lib/chef/knife/ionoscloud_backupunit_get.rb +1 -2
  177. data/lib/chef/knife/ionoscloud_backupunit_list.rb +1 -2
  178. data/lib/chef/knife/ionoscloud_backupunit_ssourl.rb +1 -2
  179. data/lib/chef/knife/ionoscloud_backupunit_update.rb +2 -3
  180. data/lib/chef/knife/ionoscloud_base.rb +89 -1
  181. data/lib/chef/knife/ionoscloud_composite_server_create.rb +6 -11
  182. data/lib/chef/knife/ionoscloud_contract_list.rb +2 -4
  183. data/lib/chef/knife/ionoscloud_cube_server_create.rb +4 -5
  184. data/lib/chef/knife/ionoscloud_datacenter_create.rb +3 -4
  185. data/lib/chef/knife/ionoscloud_datacenter_delete.rb +2 -3
  186. data/lib/chef/knife/ionoscloud_datacenter_get.rb +1 -2
  187. data/lib/chef/knife/ionoscloud_datacenter_list.rb +1 -2
  188. data/lib/chef/knife/ionoscloud_datacenter_update.rb +3 -4
  189. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_get.rb +33 -0
  190. data/lib/chef/knife/ionoscloud_dbaas_postgres_backup_list.rb +59 -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 +49 -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 +55 -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 +50 -0
  199. data/lib/chef/knife/ionoscloud_firewall_create.rb +3 -6
  200. data/lib/chef/knife/ionoscloud_firewall_delete.rb +2 -3
  201. data/lib/chef/knife/ionoscloud_firewall_get.rb +1 -2
  202. data/lib/chef/knife/ionoscloud_firewall_list.rb +2 -3
  203. data/lib/chef/knife/ionoscloud_firewall_update.rb +1 -3
  204. data/lib/chef/knife/ionoscloud_flowlog_create.rb +1 -4
  205. data/lib/chef/knife/ionoscloud_flowlog_delete.rb +2 -5
  206. data/lib/chef/knife/ionoscloud_flowlog_get.rb +1 -2
  207. data/lib/chef/knife/ionoscloud_flowlog_list.rb +4 -7
  208. data/lib/chef/knife/ionoscloud_flowlog_update.rb +1 -4
  209. data/lib/chef/knife/ionoscloud_group_create.rb +1 -2
  210. data/lib/chef/knife/ionoscloud_group_delete.rb +2 -3
  211. data/lib/chef/knife/ionoscloud_group_get.rb +1 -2
  212. data/lib/chef/knife/ionoscloud_group_list.rb +1 -2
  213. data/lib/chef/knife/ionoscloud_group_update.rb +2 -3
  214. data/lib/chef/knife/ionoscloud_group_user_add.rb +1 -2
  215. data/lib/chef/knife/ionoscloud_group_user_remove.rb +1 -2
  216. data/lib/chef/knife/ionoscloud_image_list.rb +1 -2
  217. data/lib/chef/knife/ionoscloud_ipblock_create.rb +1 -2
  218. data/lib/chef/knife/ionoscloud_ipblock_delete.rb +2 -3
  219. data/lib/chef/knife/ionoscloud_ipblock_get.rb +1 -2
  220. data/lib/chef/knife/ionoscloud_ipblock_list.rb +1 -2
  221. data/lib/chef/knife/ionoscloud_ipblock_update.rb +1 -2
  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 +7 -2
  225. data/lib/chef/knife/ionoscloud_k8s_delete.rb +3 -4
  226. data/lib/chef/knife/ionoscloud_k8s_get.rb +1 -2
  227. data/lib/chef/knife/ionoscloud_k8s_list.rb +4 -3
  228. data/lib/chef/knife/ionoscloud_k8s_update.rb +3 -8
  229. data/lib/chef/knife/ionoscloud_kubeconfig_get.rb +1 -2
  230. data/lib/chef/knife/ionoscloud_label_add.rb +1 -2
  231. data/lib/chef/knife/ionoscloud_label_list.rb +2 -5
  232. data/lib/chef/knife/ionoscloud_label_remove.rb +1 -2
  233. data/lib/chef/knife/ionoscloud_lan_create.rb +2 -4
  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 +1 -2
  239. data/lib/chef/knife/ionoscloud_loadbalancer_delete.rb +2 -3
  240. data/lib/chef/knife/ionoscloud_loadbalancer_get.rb +1 -2
  241. data/lib/chef/knife/ionoscloud_loadbalancer_list.rb +1 -2
  242. data/lib/chef/knife/ionoscloud_loadbalancer_nic_add.rb +1 -2
  243. data/lib/chef/knife/ionoscloud_loadbalancer_nic_remove.rb +1 -2
  244. data/lib/chef/knife/ionoscloud_loadbalancer_update.rb +1 -2
  245. data/lib/chef/knife/ionoscloud_location_list.rb +1 -2
  246. data/lib/chef/knife/ionoscloud_natgateway_create.rb +2 -3
  247. data/lib/chef/knife/ionoscloud_natgateway_delete.rb +2 -3
  248. data/lib/chef/knife/ionoscloud_natgateway_get.rb +1 -2
  249. data/lib/chef/knife/ionoscloud_natgateway_lan_add.rb +1 -2
  250. data/lib/chef/knife/ionoscloud_natgateway_lan_remove.rb +1 -2
  251. data/lib/chef/knife/ionoscloud_natgateway_list.rb +1 -2
  252. data/lib/chef/knife/ionoscloud_natgateway_rule_add.rb +4 -7
  253. data/lib/chef/knife/ionoscloud_natgateway_rule_list.rb +1 -2
  254. data/lib/chef/knife/ionoscloud_natgateway_rule_remove.rb +1 -2
  255. data/lib/chef/knife/ionoscloud_natgateway_rule_update.rb +2 -3
  256. data/lib/chef/knife/ionoscloud_natgateway_update.rb +2 -4
  257. data/lib/chef/knife/ionoscloud_networkloadbalancer_create.rb +1 -2
  258. data/lib/chef/knife/ionoscloud_networkloadbalancer_delete.rb +2 -3
  259. data/lib/chef/knife/ionoscloud_networkloadbalancer_get.rb +1 -2
  260. data/lib/chef/knife/ionoscloud_networkloadbalancer_list.rb +1 -2
  261. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_add.rb +8 -16
  262. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_list.rb +1 -2
  263. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_remove.rb +1 -2
  264. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_add.rb +2 -4
  265. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_list.rb +1 -2
  266. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove.rb +2 -4
  267. data/lib/chef/knife/ionoscloud_networkloadbalancer_rule_update.rb +2 -4
  268. data/lib/chef/knife/ionoscloud_networkloadbalancer_update.rb +1 -2
  269. data/lib/chef/knife/ionoscloud_nic_create.rb +5 -8
  270. data/lib/chef/knife/ionoscloud_nic_delete.rb +2 -3
  271. data/lib/chef/knife/ionoscloud_nic_get.rb +1 -2
  272. data/lib/chef/knife/ionoscloud_nic_list.rb +1 -2
  273. data/lib/chef/knife/ionoscloud_nic_update.rb +1 -2
  274. data/lib/chef/knife/ionoscloud_node_delete.rb +2 -3
  275. data/lib/chef/knife/ionoscloud_node_get.rb +1 -2
  276. data/lib/chef/knife/ionoscloud_node_list.rb +1 -2
  277. data/lib/chef/knife/ionoscloud_node_replace.rb +4 -5
  278. data/lib/chef/knife/ionoscloud_nodepool_create.rb +11 -10
  279. data/lib/chef/knife/ionoscloud_nodepool_delete.rb +2 -3
  280. data/lib/chef/knife/ionoscloud_nodepool_get.rb +1 -2
  281. data/lib/chef/knife/ionoscloud_nodepool_lan_add.rb +1 -3
  282. data/lib/chef/knife/ionoscloud_nodepool_lan_remove.rb +1 -2
  283. data/lib/chef/knife/ionoscloud_nodepool_list.rb +4 -3
  284. data/lib/chef/knife/ionoscloud_nodepool_update.rb +1 -2
  285. data/lib/chef/knife/ionoscloud_pcc_create.rb +2 -3
  286. data/lib/chef/knife/ionoscloud_pcc_delete.rb +2 -3
  287. data/lib/chef/knife/ionoscloud_pcc_get.rb +1 -2
  288. data/lib/chef/knife/ionoscloud_pcc_list.rb +1 -2
  289. data/lib/chef/knife/ionoscloud_pcc_update.rb +2 -3
  290. data/lib/chef/knife/ionoscloud_request_get.rb +1 -2
  291. data/lib/chef/knife/ionoscloud_request_list.rb +7 -20
  292. data/lib/chef/knife/ionoscloud_request_status.rb +1 -2
  293. data/lib/chef/knife/ionoscloud_request_wait.rb +1 -2
  294. data/lib/chef/knife/ionoscloud_resource_list.rb +11 -14
  295. data/lib/chef/knife/ionoscloud_s3key_create.rb +1 -2
  296. data/lib/chef/knife/ionoscloud_s3key_delete.rb +2 -3
  297. data/lib/chef/knife/ionoscloud_s3key_get.rb +1 -2
  298. data/lib/chef/knife/ionoscloud_s3key_list.rb +1 -2
  299. data/lib/chef/knife/ionoscloud_server_console.rb +1 -2
  300. data/lib/chef/knife/ionoscloud_server_create.rb +6 -9
  301. data/lib/chef/knife/ionoscloud_server_delete.rb +4 -5
  302. data/lib/chef/knife/ionoscloud_server_get.rb +1 -2
  303. data/lib/chef/knife/ionoscloud_server_list.rb +1 -2
  304. data/lib/chef/knife/ionoscloud_server_reboot.rb +1 -2
  305. data/lib/chef/knife/ionoscloud_server_resume.rb +1 -2
  306. data/lib/chef/knife/ionoscloud_server_start.rb +1 -2
  307. data/lib/chef/knife/ionoscloud_server_stop.rb +1 -2
  308. data/lib/chef/knife/ionoscloud_server_suspend.rb +1 -2
  309. data/lib/chef/knife/ionoscloud_server_token.rb +1 -2
  310. data/lib/chef/knife/ionoscloud_server_update.rb +1 -2
  311. data/lib/chef/knife/ionoscloud_server_upgrade.rb +2 -3
  312. data/lib/chef/knife/ionoscloud_share_create.rb +1 -2
  313. data/lib/chef/knife/ionoscloud_share_delete.rb +2 -3
  314. data/lib/chef/knife/ionoscloud_share_get.rb +1 -2
  315. data/lib/chef/knife/ionoscloud_share_list.rb +1 -2
  316. data/lib/chef/knife/ionoscloud_share_update.rb +1 -2
  317. data/lib/chef/knife/ionoscloud_snapshot_create.rb +1 -2
  318. data/lib/chef/knife/ionoscloud_snapshot_delete.rb +2 -3
  319. data/lib/chef/knife/ionoscloud_snapshot_get.rb +1 -2
  320. data/lib/chef/knife/ionoscloud_snapshot_list.rb +2 -3
  321. data/lib/chef/knife/ionoscloud_snapshot_restore.rb +1 -2
  322. data/lib/chef/knife/ionoscloud_snapshot_update.rb +1 -2
  323. data/lib/chef/knife/ionoscloud_template_list.rb +1 -2
  324. data/lib/chef/knife/ionoscloud_user_create.rb +1 -2
  325. data/lib/chef/knife/ionoscloud_user_delete.rb +2 -3
  326. data/lib/chef/knife/ionoscloud_user_get.rb +1 -2
  327. data/lib/chef/knife/ionoscloud_user_list.rb +1 -2
  328. data/lib/chef/knife/ionoscloud_user_ssourl.rb +1 -2
  329. data/lib/chef/knife/ionoscloud_user_update.rb +1 -2
  330. data/lib/chef/knife/ionoscloud_volume_attach.rb +1 -2
  331. data/lib/chef/knife/ionoscloud_volume_create.rb +1 -2
  332. data/lib/chef/knife/ionoscloud_volume_delete.rb +2 -3
  333. data/lib/chef/knife/ionoscloud_volume_detach.rb +5 -6
  334. data/lib/chef/knife/ionoscloud_volume_get.rb +1 -2
  335. data/lib/chef/knife/ionoscloud_volume_list.rb +1 -2
  336. data/lib/chef/knife/ionoscloud_volume_update.rb +1 -2
  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 +1 -2
  340. data/spec/chef/knife/ionoscloud_backupunit_delete_spec.rb +0 -1
  341. data/spec/chef/knife/ionoscloud_backupunit_get_spec.rb +0 -1
  342. data/spec/chef/knife/ionoscloud_backupunit_list_spec.rb +0 -1
  343. data/spec/chef/knife/ionoscloud_backupunit_ssourl_spec.rb +2 -4
  344. data/spec/chef/knife/ionoscloud_backupunit_update_spec.rb +0 -1
  345. data/spec/chef/knife/ionoscloud_base_spec.rb +3 -4
  346. data/spec/chef/knife/ionoscloud_composite_server_create_spec.rb +0 -1
  347. data/spec/chef/knife/ionoscloud_contract_list_spec.rb +0 -1
  348. data/spec/chef/knife/ionoscloud_cube_server_create_spec.rb +2 -3
  349. data/spec/chef/knife/ionoscloud_datacenter_create_spec.rb +0 -1
  350. data/spec/chef/knife/ionoscloud_datacenter_delete_spec.rb +0 -1
  351. data/spec/chef/knife/ionoscloud_datacenter_get_spec.rb +0 -1
  352. data/spec/chef/knife/ionoscloud_datacenter_list_spec.rb +0 -1
  353. data/spec/chef/knife/ionoscloud_datacenter_update_spec.rb +0 -1
  354. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_get_spec.rb +66 -0
  355. data/spec/chef/knife/ionoscloud_dbaas_postgres_backup_list_spec.rb +110 -0
  356. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_create_spec.rb +100 -0
  357. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_delete_spec.rb +109 -0
  358. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_get_spec.rb +73 -0
  359. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_list_spec.rb +85 -0
  360. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_restore_spec.rb +58 -0
  361. data/spec/chef/knife/ionoscloud_dbaas_postgres_cluster_update_spec.rb +89 -0
  362. data/spec/chef/knife/ionoscloud_dbaas_postgres_logs_get_spec.rb +138 -0
  363. data/spec/chef/knife/ionoscloud_dbaas_postgres_version_list_spec.rb +93 -0
  364. data/spec/chef/knife/ionoscloud_firewall_create_spec.rb +0 -1
  365. data/spec/chef/knife/ionoscloud_firewall_delete_spec.rb +0 -1
  366. data/spec/chef/knife/ionoscloud_firewall_get_spec.rb +0 -1
  367. data/spec/chef/knife/ionoscloud_firewall_list_spec.rb +0 -1
  368. data/spec/chef/knife/ionoscloud_firewall_update_spec.rb +2 -3
  369. data/spec/chef/knife/ionoscloud_flowlog_create_spec.rb +0 -1
  370. data/spec/chef/knife/ionoscloud_flowlog_delete_spec.rb +0 -1
  371. data/spec/chef/knife/ionoscloud_flowlog_get_spec.rb +0 -2
  372. data/spec/chef/knife/ionoscloud_flowlog_list_spec.rb +0 -1
  373. data/spec/chef/knife/ionoscloud_flowlog_update_spec.rb +0 -2
  374. data/spec/chef/knife/ionoscloud_group_create_spec.rb +0 -1
  375. data/spec/chef/knife/ionoscloud_group_delete_spec.rb +0 -1
  376. data/spec/chef/knife/ionoscloud_group_get_spec.rb +0 -1
  377. data/spec/chef/knife/ionoscloud_group_list_spec.rb +2 -3
  378. data/spec/chef/knife/ionoscloud_group_update_spec.rb +0 -1
  379. data/spec/chef/knife/ionoscloud_group_user_add_spec.rb +0 -1
  380. data/spec/chef/knife/ionoscloud_group_user_remove_spec.rb +0 -1
  381. data/spec/chef/knife/ionoscloud_image_list_spec.rb +0 -1
  382. data/spec/chef/knife/ionoscloud_ipblock_create_spec.rb +0 -1
  383. data/spec/chef/knife/ionoscloud_ipblock_delete_spec.rb +0 -1
  384. data/spec/chef/knife/ionoscloud_ipblock_get_spec.rb +0 -1
  385. data/spec/chef/knife/ionoscloud_ipblock_list_spec.rb +0 -1
  386. data/spec/chef/knife/ionoscloud_ipblock_update_spec.rb +0 -1
  387. data/spec/chef/knife/ionoscloud_ipfailover_add_spec.rb +3 -4
  388. data/spec/chef/knife/ionoscloud_ipfailover_remove_spec.rb +4 -5
  389. data/spec/chef/knife/ionoscloud_k8s_create_spec.rb +1 -1
  390. data/spec/chef/knife/ionoscloud_k8s_delete_spec.rb +4 -4
  391. data/spec/chef/knife/ionoscloud_k8s_get_spec.rb +1 -1
  392. data/spec/chef/knife/ionoscloud_k8s_list_spec.rb +3 -2
  393. data/spec/chef/knife/ionoscloud_k8s_update_spec.rb +3 -3
  394. data/spec/chef/knife/ionoscloud_kubeconfig_get_spec.rb +2 -4
  395. data/spec/chef/knife/ionoscloud_label_add_spec.rb +1 -2
  396. data/spec/chef/knife/ionoscloud_label_list_spec.rb +4 -5
  397. data/spec/chef/knife/ionoscloud_label_remove_spec.rb +1 -2
  398. data/spec/chef/knife/ionoscloud_lan_create_spec.rb +3 -4
  399. data/spec/chef/knife/ionoscloud_lan_delete_spec.rb +5 -6
  400. data/spec/chef/knife/ionoscloud_lan_get_spec.rb +2 -3
  401. data/spec/chef/knife/ionoscloud_lan_list_spec.rb +2 -3
  402. data/spec/chef/knife/ionoscloud_lan_update_spec.rb +3 -4
  403. data/spec/chef/knife/ionoscloud_loadbalancer_create_spec.rb +0 -1
  404. data/spec/chef/knife/ionoscloud_loadbalancer_delete_spec.rb +0 -1
  405. data/spec/chef/knife/ionoscloud_loadbalancer_get_spec.rb +0 -1
  406. data/spec/chef/knife/ionoscloud_loadbalancer_list_spec.rb +0 -1
  407. data/spec/chef/knife/ionoscloud_loadbalancer_nic_add_spec.rb +0 -1
  408. data/spec/chef/knife/ionoscloud_loadbalancer_nic_remove_spec.rb +0 -1
  409. data/spec/chef/knife/ionoscloud_loadbalancer_update_spec.rb +1 -2
  410. data/spec/chef/knife/ionoscloud_location_list_spec.rb +1 -2
  411. data/spec/chef/knife/ionoscloud_natgateway_create_spec.rb +0 -1
  412. data/spec/chef/knife/ionoscloud_natgateway_delete_spec.rb +0 -1
  413. data/spec/chef/knife/ionoscloud_natgateway_get_spec.rb +0 -1
  414. data/spec/chef/knife/ionoscloud_natgateway_lan_add_spec.rb +2 -3
  415. data/spec/chef/knife/ionoscloud_natgateway_lan_remove_spec.rb +0 -1
  416. data/spec/chef/knife/ionoscloud_natgateway_list_spec.rb +0 -1
  417. data/spec/chef/knife/ionoscloud_natgateway_rule_add_spec.rb +0 -1
  418. data/spec/chef/knife/ionoscloud_natgateway_rule_list_spec.rb +0 -1
  419. data/spec/chef/knife/ionoscloud_natgateway_rule_remove_spec.rb +0 -1
  420. data/spec/chef/knife/ionoscloud_natgateway_rule_update_spec.rb +4 -5
  421. data/spec/chef/knife/ionoscloud_natgateway_update_spec.rb +4 -6
  422. data/spec/chef/knife/ionoscloud_networkloadbalancer_create_spec.rb +0 -1
  423. data/spec/chef/knife/ionoscloud_networkloadbalancer_delete_spec.rb +0 -1
  424. data/spec/chef/knife/ionoscloud_networkloadbalancer_get_spec.rb +0 -1
  425. data/spec/chef/knife/ionoscloud_networkloadbalancer_list_spec.rb +0 -1
  426. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_add_spec.rb +0 -1
  427. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_list_spec.rb +0 -1
  428. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_remove_spec.rb +0 -1
  429. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_add_spec.rb +1 -2
  430. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_list_spec.rb +0 -1
  431. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_target_remove_spec.rb +12 -15
  432. data/spec/chef/knife/ionoscloud_networkloadbalancer_rule_update_spec.rb +4 -6
  433. data/spec/chef/knife/ionoscloud_networkloadbalancer_update_spec.rb +2 -3
  434. data/spec/chef/knife/ionoscloud_nic_create_spec.rb +0 -1
  435. data/spec/chef/knife/ionoscloud_nic_delete_spec.rb +0 -1
  436. data/spec/chef/knife/ionoscloud_nic_get_spec.rb +0 -1
  437. data/spec/chef/knife/ionoscloud_nic_list_spec.rb +0 -1
  438. data/spec/chef/knife/ionoscloud_nic_update_spec.rb +1 -2
  439. data/spec/chef/knife/ionoscloud_node_delete_spec.rb +0 -1
  440. data/spec/chef/knife/ionoscloud_node_get_spec.rb +0 -1
  441. data/spec/chef/knife/ionoscloud_node_list_spec.rb +0 -1
  442. data/spec/chef/knife/ionoscloud_node_replace_spec.rb +0 -1
  443. data/spec/chef/knife/ionoscloud_nodepool_create_spec.rb +2 -1
  444. data/spec/chef/knife/ionoscloud_nodepool_delete_spec.rb +2 -1
  445. data/spec/chef/knife/ionoscloud_nodepool_get_spec.rb +1 -1
  446. data/spec/chef/knife/ionoscloud_nodepool_lan_add_spec.rb +3 -3
  447. data/spec/chef/knife/{ionoscloud_nodepool_lan_remove.rb → ionoscloud_nodepool_lan_remove_spec.rb} +14 -17
  448. data/spec/chef/knife/ionoscloud_nodepool_list_spec.rb +3 -2
  449. data/spec/chef/knife/ionoscloud_nodepool_update_spec.rb +3 -3
  450. data/spec/chef/knife/ionoscloud_pcc_create_spec.rb +2 -3
  451. data/spec/chef/knife/ionoscloud_pcc_delete_spec.rb +0 -1
  452. data/spec/chef/knife/ionoscloud_pcc_get_spec.rb +0 -1
  453. data/spec/chef/knife/ionoscloud_pcc_list_spec.rb +0 -1
  454. data/spec/chef/knife/ionoscloud_pcc_update_spec.rb +0 -1
  455. data/spec/chef/knife/ionoscloud_request_get_spec.rb +0 -1
  456. data/spec/chef/knife/ionoscloud_request_list_spec.rb +1 -3
  457. data/spec/chef/knife/ionoscloud_request_status_spec.rb +2 -4
  458. data/spec/chef/knife/ionoscloud_request_wait_spec.rb +2 -5
  459. data/spec/chef/knife/ionoscloud_resource_list_spec.rb +1 -3
  460. data/spec/chef/knife/ionoscloud_s3key_create_spec.rb +0 -1
  461. data/spec/chef/knife/ionoscloud_s3key_delete_spec.rb +0 -1
  462. data/spec/chef/knife/ionoscloud_s3key_get_spec.rb +0 -1
  463. data/spec/chef/knife/ionoscloud_s3key_list_spec.rb +0 -1
  464. data/spec/chef/knife/ionoscloud_server_console_spec.rb +2 -4
  465. data/spec/chef/knife/ionoscloud_server_create_spec.rb +0 -1
  466. data/spec/chef/knife/ionoscloud_server_delete_spec.rb +0 -1
  467. data/spec/chef/knife/ionoscloud_server_get_spec.rb +0 -1
  468. data/spec/chef/knife/ionoscloud_server_list_spec.rb +0 -1
  469. data/spec/chef/knife/ionoscloud_server_reboot_spec.rb +0 -1
  470. data/spec/chef/knife/ionoscloud_server_resume_spec.rb +0 -1
  471. data/spec/chef/knife/ionoscloud_server_start_spec.rb +0 -1
  472. data/spec/chef/knife/ionoscloud_server_stop_spec.rb +0 -1
  473. data/spec/chef/knife/ionoscloud_server_suspend_spec.rb +0 -1
  474. data/spec/chef/knife/ionoscloud_server_token_spec.rb +2 -4
  475. data/spec/chef/knife/ionoscloud_server_update_spec.rb +0 -1
  476. data/spec/chef/knife/ionoscloud_server_upgrade_spec.rb +0 -1
  477. data/spec/chef/knife/ionoscloud_share_create_spec.rb +0 -1
  478. data/spec/chef/knife/ionoscloud_share_delete_spec.rb +0 -1
  479. data/spec/chef/knife/ionoscloud_share_get_spec.rb +0 -1
  480. data/spec/chef/knife/ionoscloud_share_list_spec.rb +0 -1
  481. data/spec/chef/knife/ionoscloud_share_update_spec.rb +0 -1
  482. data/spec/chef/knife/ionoscloud_snapshot_create_spec.rb +0 -1
  483. data/spec/chef/knife/ionoscloud_snapshot_delete_spec.rb +0 -1
  484. data/spec/chef/knife/ionoscloud_snapshot_get_spec.rb +0 -1
  485. data/spec/chef/knife/ionoscloud_snapshot_list_spec.rb +0 -1
  486. data/spec/chef/knife/ionoscloud_snapshot_restore_spec.rb +0 -1
  487. data/spec/chef/knife/ionoscloud_snapshot_update_spec.rb +0 -1
  488. data/spec/chef/knife/ionoscloud_template_list_spec.rb +0 -1
  489. data/spec/chef/knife/ionoscloud_user_create_spec.rb +0 -1
  490. data/spec/chef/knife/ionoscloud_user_delete_spec.rb +0 -1
  491. data/spec/chef/knife/ionoscloud_user_get_spec.rb +0 -1
  492. data/spec/chef/knife/ionoscloud_user_list_spec.rb +2 -3
  493. data/spec/chef/knife/ionoscloud_user_ssourl_spec.rb +2 -4
  494. data/spec/chef/knife/ionoscloud_user_update_spec.rb +0 -1
  495. data/spec/chef/knife/ionoscloud_volume_attach_spec.rb +0 -1
  496. data/spec/chef/knife/ionoscloud_volume_create_spec.rb +0 -1
  497. data/spec/chef/knife/ionoscloud_volume_delete_spec.rb +0 -1
  498. data/spec/chef/knife/ionoscloud_volume_detach_spec.rb +0 -1
  499. data/spec/chef/knife/ionoscloud_volume_get_spec.rb +0 -1
  500. data/spec/chef/knife/ionoscloud_volume_list_spec.rb +2 -3
  501. data/spec/chef/knife/ionoscloud_volume_update_spec.rb +0 -1
  502. data/spec/spec_helper.rb +116 -6
  503. metadata +217 -123
  504. data/spec/test.sh +0 -3
@@ -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, :ionoscloud_username, :ionoscloud_password]
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, :ionoscloud_username, :ionoscloud_password]
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,50 @@
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
+ @required_options = [:ionoscloud_username, :ionoscloud_password]
23
+ end
24
+
25
+ def run
26
+ $stdout.sync = true
27
+ handle_extra_config
28
+ validate_required_params(@required_options, config)
29
+
30
+ version_list = [
31
+ ui.color('Version', :bold),
32
+ ]
33
+
34
+ clusters_api = IonoscloudDbaasPostgres::ClustersApi.new(api_client_dbaas)
35
+
36
+ if config[:cluster_id]
37
+ versions = clusters_api.cluster_postgres_versions_get(config[:cluster_id])
38
+ else
39
+ versions = clusters_api.postgres_versions_get()
40
+ end
41
+
42
+ versions.data.each do |version|
43
+ version_list << version.name
44
+ end
45
+
46
+ puts ui.list(version_list, :uneven_columns_across, 1)
47
+ end
48
+ end
49
+ end
50
+ end
@@ -30,7 +30,6 @@ class Chef
30
30
  option :protocol,
31
31
  short: '-P PROTOCOL',
32
32
  long: '--protocol PROTOCOL',
33
- default: 'TCP',
34
33
  description: 'The protocol of the firewall rule (TCP, UDP, ICMP, ANY)'
35
34
 
36
35
  option :source_mac,
@@ -73,15 +72,13 @@ class Chef
73
72
  option :type,
74
73
  short: '--t TYPE',
75
74
  long: '--type TYPE',
76
- description: 'The type of firewall rule. If is not specified, it will take the default value INGRESS',
77
- default: 'INGRESS'
78
-
79
- attr_reader :description, :required_options
75
+ description: 'The type of firewall rule. If is not specified, it will take the default value INGRESS'
80
76
 
81
77
  def initialize(args = [])
82
78
  super(args)
83
79
  @description =
84
80
  'Creates a new firewall rule on an existing NIC.'
81
+ @directory = 'compute-engine'
85
82
  @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
86
83
  end
87
84
 
@@ -102,7 +99,7 @@ class Chef
102
99
  port_range_end: config[:port_range_end],
103
100
  icmp_type: config[:icmp_type],
104
101
  icmp_code: config[:icmp_code],
105
- type: config[:type]
102
+ type: config[:type],
106
103
  }
107
104
 
108
105
  firewallrules_api = Ionoscloud::FirewallRulesApi.new(api_client)
@@ -22,12 +22,11 @@ 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.'
29
+ @directory = 'compute-engine'
31
30
  @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
32
31
  end
33
32
 
@@ -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,12 +27,11 @@ 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.'
34
+ @directory = 'compute-engine'
36
35
  @required_options = [:firewall_id, :datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
37
36
  end
38
37
 
@@ -22,12 +22,11 @@ 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.'
29
+ @directory = 'compute-engine'
31
30
  @required_options = [:datacenter_id, :server_id, :nic_id, :ionoscloud_username, :ionoscloud_password]
32
31
  end
33
32
 
@@ -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
@@ -35,7 +35,6 @@ class Chef
35
35
  option :protocol,
36
36
  short: '-P PROTOCOL',
37
37
  long: '--protocol PROTOCOL',
38
- default: 'TCP',
39
38
  description: 'The protocol of the firewall rule (TCP, UDP, ICMP, ANY)'
40
39
 
41
40
  option :source_mac,
@@ -76,12 +75,11 @@ class Chef
76
75
  description: 'Defines the allowed code (from 0 to 254) if the' \
77
76
  ' protocol ICMP is chosen; null allows all codes'
78
77
 
79
- attr_reader :description, :required_options
80
-
81
78
  def initialize(args = [])
82
79
  super(args)
83
80
  @description =
84
81
  'Updates information about a Ionoscloud Firewall Rule.'
82
+ @directory = 'compute-engine'
85
83
  @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
86
84
  @updatable_fields = [
87
85
  :name, :protocol, :source_mac, :source_ip, :target_ip,
@@ -45,12 +45,10 @@ class Chef
45
45
  option :action,
46
46
  short: '-a ACTION',
47
47
  long: '--action ACTION',
48
- default: 'ALL',
49
48
  description: 'Specifies the traffic action pattern. Must be one of ["ALL", "ACCEPTED", "REJECTED"].'
50
49
 
51
50
  option :direction,
52
51
  long: '--direction DIRECTION',
53
- default: 'BIDIRECTIONAL',
54
52
  description: 'Specifies the traffic direction pattern. Must be one of ["INGRESS", "EGRESS", "BIDIRECTIONAL"].'
55
53
 
56
54
  option :bucket,
@@ -58,12 +56,11 @@ class Chef
58
56
  long: '--bucket BUCKET',
59
57
  description: 'S3 bucket name of an existing IONOS Cloud S3 bucket. Ex. bucketName/key'
60
58
 
61
- attr_reader :description, :required_options
62
-
63
59
  def initialize(args = [])
64
60
  super(args)
65
61
  @description =
66
62
  'This will add a Flow Log to the network interface, NAT Gateway or Network Load Balancer.'
63
+ @directory = 'compute-engine'
67
64
  @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
68
65
  end
69
66
 
@@ -37,12 +37,11 @@ class Chef
37
37
  long: '--network-loadbalancer NETWORK_LOADBALANCER',
38
38
  description: 'ID of the Network Load Balancer'
39
39
 
40
- attr_reader :description, :required_options
41
-
42
40
  def initialize(args = [])
43
41
  super(args)
44
42
  @description =
45
43
  'Removes the specified Flow Logs.'
44
+ @directory = 'compute-engine'
46
45
  @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
47
46
  end
48
47
 
@@ -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,12 +42,11 @@ 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.'
49
+ @directory = 'compute-engine'
51
50
  @required_options = [:flowlog_id, :datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
52
51
  end
53
52
 
@@ -37,12 +37,11 @@ class Chef
37
37
  long: '--network-loadbalancer NETWORK_LOADBALANCER',
38
38
  description: 'ID of the Network Load Balancer'
39
39
 
40
- attr_reader :description, :required_options
41
-
42
40
  def initialize(args = [])
43
41
  super(args)
44
42
  @description =
45
43
  'Lists all available flow logs assigned to a NIC, NAT Gateway or Network Load Balancer.'
44
+ @directory = 'compute-engine'
46
45
  @required_options = [:datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
47
46
  end
48
47
 
@@ -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
@@ -50,12 +50,10 @@ class Chef
50
50
  option :action,
51
51
  short: '-a ACTION',
52
52
  long: '--action ACTION',
53
- default: 'ALL',
54
53
  description: 'Specifies the traffic action pattern. Must be one of ["ALL", "ACCEPTED", "REJECTED"].'
55
54
 
56
55
  option :direction,
57
56
  long: '--direction DIRECTION',
58
- default: 'BIDIRECTIONAL',
59
57
  description: 'Specifies the traffic direction pattern. Must be one of ["INGRESS", "EGRESS", "BIDIRECTIONAL"].'
60
58
 
61
59
  option :bucket,
@@ -63,12 +61,11 @@ class Chef
63
61
  long: '--bucket BUCKET',
64
62
  description: 'S3 bucket name of an existing IONOS Cloud S3 bucket. Ex. bucketName/key'
65
63
 
66
- attr_reader :description, :required_options
67
-
68
64
  def initialize(args = [])
69
65
  super(args)
70
66
  @description =
71
67
  'Updates information about a Ionoscloud Flow Log.'
68
+ @directory = 'compute-engine'
72
69
  @required_options = [:flowlog_id, :datacenter_id, :type, :ionoscloud_username, :ionoscloud_password]
73
70
  @updatable_fields = [:name, :action, :direction, :bucket]
74
71
  end
@@ -66,12 +66,11 @@ class Chef
66
66
  long: '--manage-certificates',
67
67
  description: 'Privilege for a group to access and manage certificates.'
68
68
 
69
- attr_reader :description, :required_options
70
-
71
69
  def initialize(args = [])
72
70
  super(args)
73
71
  @description =
74
72
  'Use this operation to create a new group and set group privileges.'
73
+ @directory = 'user'
75
74
  @required_options = [:name, :ionoscloud_username, :ionoscloud_password]
76
75
  end
77
76
 
@@ -7,14 +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.'
16
+ @directory = 'user'
18
17
  @required_options = [:ionoscloud_username, :ionoscloud_password]
19
18
  end
20
19
 
@@ -39,7 +38,7 @@ class Chef
39
38
 
40
39
  begin
41
40
  confirm('Do you really want to delete this Group')
42
- rescue SystemExit => exc
41
+ rescue SystemExit
43
42
  next
44
43
  end
45
44
 
@@ -12,13 +12,12 @@ class Chef
12
12
  long: '--group-id GROUP_ID',
13
13
  description: 'ID of the group.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Retrieves detailed information about a specific group. This will also '\
21
19
  'retrieve a list of users who are members of the group.'
20
+ @directory = 'user'
22
21
  @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
23
22
  end
24
23
 
@@ -12,12 +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.'
19
+ @directory = 'user'
21
20
  @required_options = [:ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -71,12 +71,11 @@ class Chef
71
71
  long: '--manage-certificates ACCESS_AND_MANAGE_CERTIFICATES',
72
72
  description: 'Privilege for a group to access and manage certificates.'
73
73
 
74
- attr_reader :description, :required_options
75
-
76
74
  def initialize(args = [])
77
75
  super(args)
78
76
  @description =
79
77
  'Updates information about a Ionoscloud Group.'
78
+ @directory = 'user'
80
79
  @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
81
80
  @updatable_fields = [
82
81
  :name, :create_data_center, :create_snapshot, :reserve_ip, :access_activity_log, :s3_privilege,
@@ -97,7 +96,7 @@ class Chef
97
96
 
98
97
  existing_group = user_management_api.um_groups_find_by_id(config[:group_id], depth: 1)
99
98
 
100
- group, _, headers = user_management_api.um_groups_put_with_http_info(
99
+ _, _, headers = user_management_api.um_groups_put_with_http_info(
101
100
  config[:group_id],
102
101
  Ionoscloud::Group.new(
103
102
  properties: Ionoscloud::GroupProperties.new(
@@ -12,12 +12,11 @@ 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
  'Use this operation to add an existing user to a group.'
19
+ @directory = 'user'
21
20
  @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -12,12 +12,11 @@ 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
  'Use this operation to remove a user from a group.'
19
+ @directory = 'user'
21
20
  @required_options = [:group_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -7,13 +7,12 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud image list'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'A list of disk and ISO images are available from Ionoscloud for immediate use. '\
16
14
  'Make sure the image you use is in the same location as the virtual data center.'
15
+ @directory = 'compute-engine'
17
16
  @required_options = [:ionoscloud_username, :ionoscloud_password]
18
17
  end
19
18
 
@@ -22,8 +22,6 @@ class Chef
22
22
  long: '--name NAME',
23
23
  description: 'Name of the IP block'
24
24
 
25
- attr_reader :description, :required_options
26
-
27
25
  def initialize(args = [])
28
26
  super(args)
29
27
  @description =
@@ -31,6 +29,7 @@ class Chef
31
29
  'within any VDCs provisioned in that same location. An IP block consists of '\
32
30
  'one or more static IP addresses. The IP block size \(number of IP addresses\) '\
33
31
  'and location are required to reserve an IP block.'
32
+ @directory = 'compute-engine'
34
33
  @required_options = [:size, :location, :ionoscloud_username, :ionoscloud_password]
35
34
  end
36
35