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
@@ -45,8 +45,7 @@ class Chef
45
45
  option :cpu_family,
46
46
  short: '-f CPU_FAMILY',
47
47
  long: '--cpu-family CPU_FAMILY',
48
- description: 'Sets the CPU type. [AMD_OPTERON, INTEL_XEON, INTEL_SKYLAKE]',
49
- default: 'INTEL_SKYLAKE'
48
+ description: 'Sets the CPU type. [AMD_OPTERON, INTEL_XEON, INTEL_SKYLAKE]'
50
49
 
51
50
  option :cores,
52
51
  long: '--cores CORES',
@@ -60,13 +59,11 @@ class Chef
60
59
  option :availability_zone,
61
60
  short: '-a AVAILABILITY_ZONE',
62
61
  long: '--availability-zone AVAILABILITY_ZONE',
63
- description: 'The availability zone of the node pool',
64
- default: 'AUTO'
62
+ description: 'The availability zone of the node pool'
65
63
 
66
64
  option :storage_type,
67
65
  long: '--storage-type STORAGE_TYPE',
68
- description: 'Sets the storage type. [HDD, SSD]',
69
- default: 'HDD'
66
+ description: 'Sets the storage type. [HDD, SSD]'
70
67
 
71
68
  option :storage_size,
72
69
  long: '--storage-size STORAGE_SIZE',
@@ -84,6 +81,10 @@ class Chef
84
81
  long: '--lans LAN_ID [LAN_ID]',
85
82
  description: 'An array of additional private LANs attached to worker nodes'
86
83
 
84
+ option :gateway_ip,
85
+ long: '--gateway GATEWAY_IP',
86
+ description: "Public IP address for the gateway performing source NAT for the node pool's nodes belonging to a private cluster. Required only if the node pool belongs to a private cluster."
87
+
87
88
  option :public_ips,
88
89
  long: '--ips PUBLIC_IP [PUBLIC_IP]',
89
90
  description: 'Optional array of reserved public IP addresses to be used by the nodes. '\
@@ -99,14 +100,13 @@ class Chef
99
100
  long: '--annotations ANNOTATION [ANNOTATION]',
100
101
  description: 'map of annotations attached to node pool'
101
102
 
102
- attr_reader :description, :required_options
103
-
104
103
  def initialize(args = [])
105
104
  super(args)
106
105
  @description =
107
- "Creates a node pool into an existing Kubernetes cluster. "\
106
+ 'Creates a node pool into an existing Kubernetes cluster. '\
108
107
  "The Kubernetes cluster must be in state \"ACTIVE\" before creating a node pool.\n\n"\
109
- "The worker nodes within the node pools will be deployed into an existing data centers."
108
+ 'The worker nodes within the node pools will be deployed into an existing data centers.'
109
+ @directory = 'kubernetes'
110
110
  @required_options = [
111
111
  :datacenter_id, :cluster_id, :name, :version, :node_count, :cpu_family, :cores, :ram,
112
112
  :availability_zone, :storage_type, :storage_size, :ionoscloud_username, :ionoscloud_password,
@@ -138,6 +138,7 @@ class Chef
138
138
  availability_zone: config[:availability_zone],
139
139
  storage_type: config[:storage_type],
140
140
  storage_size: config[:storage_size],
141
+ gateway_ip: config[:gateway_ip],
141
142
  public_ips: config[:public_ips],
142
143
  labels: config[:labels],
143
144
  annotations: config[:annotations],
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--cluster-id CLUSTER_ID',
13
13
  description: 'The ID of the K8s Cluster'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Deletes a node pool within an existing Kubernetes cluster.'
19
+ @directory = 'kubernetes'
21
20
  @required_options = [:cluster_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -42,7 +41,7 @@ class Chef
42
41
 
43
42
  begin
44
43
  confirm('Do you really want to delete this K8s Nodepool')
45
- rescue SystemExit => exc
44
+ rescue SystemExit
46
45
  next
47
46
  end
48
47
 
@@ -17,12 +17,11 @@ class Chef
17
17
  long: '--nodepool-id NODEPOOL_ID',
18
18
  description: 'The ID of the K8s Nodepool'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Retrieves the attributes of a given K8S Nodepool.'
24
+ @directory = 'kubernetes'
26
25
  @required_options = [:cluster_id, :nodepool_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
@@ -25,19 +25,17 @@ class Chef
25
25
  option :no_dhcp,
26
26
  long: '--nodhcp',
27
27
  boolean: true,
28
- default: false,
29
28
  description: 'Indicates if the Kubernetes Node Pool LAN will reserve an IP using DHCP'
30
29
 
31
30
  option :routes,
32
31
  long: '--routes NETWORK,GATEWAY_IP [NETWORK,GATEWAY_IP]',
33
32
  description: 'An array of additional LANs attached to worker nodes'
34
33
 
35
- attr_reader :description, :required_options
36
-
37
34
  def initialize(args = [])
38
35
  super(args)
39
36
  @description =
40
37
  'Adds or updates a LAN within a Nodepool.'
38
+ @directory = 'kubernetes'
41
39
  @required_options = [:cluster_id, :nodepool_id, :lan_id, :ionoscloud_username, :ionoscloud_password]
42
40
  end
43
41
 
@@ -17,12 +17,11 @@ class Chef
17
17
  long: '--nodepool NODEPOOL_ID',
18
18
  description: 'The ID of the K8s Nodepool'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Adds or updates a LAN within a Nodepool.'
24
+ @directory = 'kubernetes'
26
25
  @required_options = [:cluster_id, :nodepool_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--cluster-id CLUSTER_ID',
13
13
  description: 'The ID of the K8s Cluster'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Retrieve a list of all node pools contained in a selected Kubernetes cluster.'
19
+ @directory = 'kubernetes'
21
20
  @required_options = [:cluster_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -31,6 +30,7 @@ class Chef
31
30
  ui.color('Name', :bold),
32
31
  ui.color('K8s Version', :bold),
33
32
  ui.color('Datacenter ID', :bold),
33
+ ui.color('Gateway IP', :bold),
34
34
  ui.color('Node Count', :bold),
35
35
  ui.color('Lan Count', :bold),
36
36
  ui.color('State', :bold),
@@ -43,11 +43,12 @@ class Chef
43
43
  nodepool_list << nodepool.properties.name
44
44
  nodepool_list << nodepool.properties.k8s_version
45
45
  nodepool_list << nodepool.properties.datacenter_id
46
+ nodepool_list << nodepool.properties.gateway_ip
46
47
  nodepool_list << nodepool.properties.node_count.to_s
47
48
  nodepool_list << nodepool.properties.lans.length
48
49
  nodepool_list << nodepool.metadata.state
49
50
  end
50
- puts ui.list(nodepool_list, :uneven_columns_across, 7)
51
+ puts ui.list(nodepool_list, :uneven_columns_across, 8)
51
52
  end
52
53
  end
53
54
  end
@@ -63,12 +63,11 @@ class Chef
63
63
  long: '--annotations ANNOTATION [ANNOTATION]',
64
64
  description: 'map of annotations attached to node pool'
65
65
 
66
- attr_reader :description, :required_options
67
-
68
66
  def initialize(args = [])
69
67
  super(args)
70
68
  @description =
71
69
  'Updates information about a Ionoscloud K8s Nodepool.'
70
+ @directory = 'kubernetes'
72
71
  @required_options = [:cluster_id, :nodepool_id, :ionoscloud_username, :ionoscloud_password]
73
72
  @updatable_fields = [
74
73
  :k8s_version, :node_count, :public_ips, :lans, :maintenance_day, :maintenance_time,
@@ -21,12 +21,11 @@ class Chef
21
21
  long: '--peers DATACENTER_ID,LAN_ID [DATACENTER_ID,LAN_ID]',
22
22
  description: 'An array of LANs joined to this private cross connect'
23
23
 
24
- attr_reader :description, :required_options
25
-
26
24
  def initialize(args = [])
27
25
  super(args)
28
26
  @description =
29
27
  'Creates a Private Cross-Connect.'
28
+ @directory = 'compute-engine'
30
29
  @required_options = [:ionoscloud_username, :ionoscloud_password]
31
30
  end
32
31
 
@@ -60,7 +59,7 @@ class Chef
60
59
  pcc = pcc_api.pccs_find_by_id(pcc.id)
61
60
 
62
61
  if config[:peers]
63
- lan_api = Ionoscloud::LansApi.new(api_client)
62
+ lan_api = Ionoscloud::LANsApi.new(api_client)
64
63
 
65
64
  header_list = []
66
65
  allowed_datacenters_ids = pcc.properties.connectable_datacenters.map { |datacenter| datacenter.id }
@@ -7,12 +7,11 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud pcc delete PCC_ID [PCC_ID]'
9
9
 
10
- attr_reader :description, :required_options
11
-
12
10
  def initialize(args = [])
13
11
  super(args)
14
12
  @description =
15
13
  'Deletes a Private Cross-Connect.'
14
+ @directory = 'compute-engine'
16
15
  @required_options = [:ionoscloud_username, :ionoscloud_password]
17
16
  end
18
17
 
@@ -37,7 +36,7 @@ class Chef
37
36
 
38
37
  begin
39
38
  confirm('Do you really want to delete this PCC')
40
- rescue SystemExit => exc
39
+ rescue SystemExit
41
40
  next
42
41
  end
43
42
 
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--pcc-id PRIVATE_CROSS_CONNECT_ID',
13
13
  description: 'ID of the Private Cross Connect'
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 Private Cross Connect.'
19
+ @directory = 'compute-engine'
21
20
  @required_options = [:pcc_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -7,12 +7,11 @@ class Chef
7
7
 
8
8
  banner 'knife ionoscloud pcc 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 all Private Cross-Connect instances.'
14
+ @directory = 'compute-engine'
16
15
  @required_options = [:ionoscloud_username, :ionoscloud_password]
17
16
  end
18
17
 
@@ -21,13 +21,12 @@ class Chef
21
21
  long: '--description DESCRIPTION',
22
22
  description: 'Description of the data center'
23
23
 
24
- attr_reader :description, :required_options
25
-
26
24
  def initialize(args = [])
27
25
  super(args)
28
26
  @description =
29
27
  'Updates information about a Ionoscloud Private Cross Connect. In order to add LANs to the Private Cross Connect one should'\
30
28
  'update the LAN and change the pcc property using the ```text\knife ionscloud lan update\n``` command.'
29
+ @directory = 'compute-engine'
31
30
  @required_options = [:pcc_id, :ionoscloud_username, :ionoscloud_password]
32
31
  @updatable_fields = [:name, :description]
33
32
  end
@@ -47,7 +46,7 @@ class Chef
47
46
  Ionoscloud::PrivateCrossConnectProperties.new(
48
47
  name: config[:name],
49
48
  description: config[:description],
50
- )
49
+ ),
51
50
  )
52
51
 
53
52
  dot = ui.color('.', :magenta)
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--request-id REQUEST_ID',
13
13
  description: 'The ID of the Request.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Retrieves the properties of a specific request based on the supplied request id.'
19
+ @directory = 'compute-engine'
21
20
  @required_options = [:request_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -27,8 +27,6 @@ class Chef
27
27
  long: '--method METHOD',
28
28
  description: 'Request method filter to fetch all the request based on a particular method [POST, PUT, PATCH, DELETE]'
29
29
 
30
- attr_reader :description, :required_options
31
-
32
30
  def initialize(args = [])
33
31
  super(args)
34
32
  @description =
@@ -37,6 +35,7 @@ class Chef
37
35
  'the request and its current status. The "list request" operation described here will '\
38
36
  'return an array of request items. Each returned request item will have an id that can be '\
39
37
  'used to get additional information as described in the Get Request and Get Request Status sections.'
38
+ @directory = 'compute-engine'
40
39
  @required_options = [:ionoscloud_username, :ionoscloud_password]
41
40
  end
42
41
 
@@ -57,18 +56,14 @@ class Chef
57
56
  begin
58
57
  config[:limit] = Integer(config[:limit])
59
58
  rescue *[ArgumentError, TypeError]
60
- if config[:limit]
61
- ui.warn('limit should be an Integer!')
62
- end
59
+ ui.warn('limit should be an Integer!') if config[:limit]
63
60
  config[:limit] = 20
64
61
  end
65
62
 
66
63
  begin
67
64
  config[:offset] = Integer(config[:offset])
68
65
  rescue *[ArgumentError, TypeError]
69
- if config[:offset]
70
- ui.warn('offset should be an Integer!')
71
- end
66
+ ui.warn('offset should be an Integer!') if config[:offset]
72
67
  config[:offset] = 0
73
68
  end
74
69
 
@@ -78,21 +73,13 @@ class Chef
78
73
  offset: config[:offset],
79
74
  }
80
75
 
81
- if config[:status] && ['QUEUED', 'RUNNING', 'DONE', 'FAILED'].include?(config[:status])
82
- opts[:filter_request_status] = config[:status]
83
- end
76
+ opts[:filter_request_status] = config[:status] if config[:status] && ['QUEUED', 'RUNNING', 'DONE', 'FAILED'].include?(config[:status])
84
77
 
85
- if config[:status] && !['QUEUED', 'RUNNING', 'DONE', 'FAILED'].include?(config[:status])
86
- ui.warn('status should be one of [QUEUED, RUNNING, DONE, FAILED]')
87
- end
78
+ ui.warn('status should be one of [QUEUED, RUNNING, DONE, FAILED]') if config[:status] && !['QUEUED', 'RUNNING', 'DONE', 'FAILED'].include?(config[:status])
88
79
 
89
- if config[:method] && ['POST', 'PUT', 'PATCH', 'DELETE'].include?(config[:method])
90
- opts[:filter_method] = config[:method]
91
- end
80
+ opts[:filter_method] = config[:method] if config[:method] && ['POST', 'PUT', 'PATCH', 'DELETE'].include?(config[:method])
92
81
 
93
- if config[:method] && !['POST', 'PUT', 'PATCH', 'DELETE'].include?(config[:method])
94
- ui.warn('method should be one of [POST, PUT, PATCH, DELETE]')
95
- end
82
+ ui.warn('method should be one of [POST, PUT, PATCH, DELETE]') if config[:method] && !['POST', 'PUT', 'PATCH', 'DELETE'].include?(config[:method])
96
83
 
97
84
  request_api.requests_get(opts).items.each do |request|
98
85
  request_list << request.id
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--request-id REQUEST_ID',
13
13
  description: 'The ID of the Request.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Retrieves the status of a specific request based on the supplied request id.'
19
+ @directory = 'compute-engine'
21
20
  @required_options = [:request_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--request-id REQUEST_ID',
13
13
  description: 'The ID of the Backup unit.'
14
14
 
15
- attr_reader :description, :required_options
16
-
17
15
  def initialize(args = [])
18
16
  super(args)
19
17
  @description =
20
18
  'Waits until a request status is either DONE or FAILED.'
19
+ @directory = 'compute-engine'
21
20
  @required_options = [:request_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -17,18 +17,16 @@ class Chef
17
17
  long: '--resource-id RESOURCE_ID',
18
18
  description: 'The ID of the specific resource to retrieve information about.'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
- "No option: Retrieves a list of all resources and optionally their group associations. "\
26
- "Please Note: This API call can take a significant amount of time to return when there "\
27
- "are a large number of provisioned resources. You may wish to consult the next section "\
23
+ 'No option: Retrieves a list of all resources and optionally their group associations. '\
24
+ 'Please Note: This API call can take a significant amount of time to return when there '\
25
+ 'are a large number of provisioned resources. You may wish to consult the next section '\
28
26
  "on how to list resources of a particular type.\n\n"
29
- "resource_type specified: Lists all shareable resources of a specific type. Optionally include their "\
30
- "association with groups, permissions that a group has for the resource, and "\
31
- "users that are members of the group. Because you are scoping your request to "\
27
+ 'resource_type specified: Lists all shareable resources of a specific type. Optionally include their '\
28
+ 'association with groups, permissions that a group has for the resource, and '\
29
+ 'users that are members of the group. Because you are scoping your request to '\
32
30
  "a specific resource type, this API will likely return faster than querying */um/resources*.\n\n"\
33
31
  "The values available for resourceType are listed in this table:\n\n"\
34
32
  "| ResourceType | Description |\n"\
@@ -37,9 +35,10 @@ class Chef
37
35
  "| snapshot | A snapshot of a storage volume. |\n"\
38
36
  "| ipblock | An IP block that has been reserved. |\n"\
39
37
  "| k8s | A Kubernetes cluster. |\n\n"\
40
- "resource_type and resource_id specified: Retrieves a specific resource."\
41
- "**NOTE:** if you pass the *resource_id* option it is necessary to also pass the "\
42
- "*resource_type* option or a list of all resources will be returned."
38
+ 'resource_type and resource_id specified: Retrieves a specific resource.'\
39
+ '**NOTE:** if you pass the *resource_id* option it is necessary to also pass the '\
40
+ '*resource_type* option or a list of all resources will be returned.'
41
+ @directory = 'user'
43
42
  @required_options = [:ionoscloud_username, :ionoscloud_password]
44
43
  end
45
44
 
@@ -56,9 +55,7 @@ class Chef
56
55
  ui.color('Name', :bold),
57
56
  ]
58
57
 
59
- if config[:resource_id] && !config[:resource_type]
60
- ui.warn('Ignoring resource_id because no resource_type was specified.')
61
- end
58
+ ui.warn('Ignoring resource_id because no resource_type was specified.') if config[:resource_id] && !config[:resource_type]
62
59
 
63
60
  opts = { depth: 1 }
64
61
 
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--user USER_ID',
13
13
  description: 'The 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
  'Creates a new S3 key for a particular user.'
19
+ @directory = 'user'
21
20
  @required_options = [:user_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--user USER_ID',
13
13
  description: 'The 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 operation deletes a specific S3 key.'
19
+ @directory = 'user'
21
20
  @required_options = [:user_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -42,7 +41,7 @@ class Chef
42
41
 
43
42
  begin
44
43
  confirm('Do you really want to delete this S3 key')
45
- rescue SystemExit => exc
44
+ rescue SystemExit
46
45
  next
47
46
  end
48
47
 
@@ -17,12 +17,11 @@ class Chef
17
17
  long: '--s3-key S3KEY_ID',
18
18
  description: 'The ID of the S3 Key.'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Retrieves the properties of an S3 Key.'
24
+ @directory = 'user'
26
25
  @required_options = [:user_id, :s3_key_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
@@ -12,12 +12,11 @@ class Chef
12
12
  long: '--user USER_ID',
13
13
  description: 'The 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
  'Retrieve a list of all the S3 keys for a specific user.'
19
+ @directory = 'user'
21
20
  @required_options = [:user_id, :ionoscloud_username, :ionoscloud_password]
22
21
  end
23
22
 
@@ -17,12 +17,11 @@ class Chef
17
17
  long: '--server-id SERVER_ID',
18
18
  description: 'The ID of the Server.'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Returns the link with the jwToken to access the server remote console.'
24
+ @directory = 'compute-engine'
26
25
  @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
@@ -25,8 +25,7 @@ class Chef
25
25
  option :cpu_family,
26
26
  short: '-f CPU_FAMILY',
27
27
  long: '--cpu-family CPU_FAMILY',
28
- description: 'The family of the CPU (INTEL_XEON or AMD_OPTERON)',
29
- default: 'INTEL_SKYLAKE'
28
+ description: 'The family of the CPU (INTEL_XEON or AMD_OPTERON)'
30
29
 
31
30
  option :ram,
32
31
  short: '-r RAM',
@@ -36,8 +35,7 @@ class Chef
36
35
  option :availability_zone,
37
36
  short: '-a AVAILABILITY_ZONE',
38
37
  long: '--availability-zone AVAILABILITY_ZONE',
39
- description: 'The availability zone of the server',
40
- default: 'AUTO'
38
+ description: 'The availability zone of the server'
41
39
 
42
40
  option :boot_volume,
43
41
  long: '--boot-volume VOLUME_ID',
@@ -47,15 +45,14 @@ class Chef
47
45
  long: '--boot-cdrom CDROM_ID',
48
46
  description: 'Reference to a CD-ROM used for booting'
49
47
 
50
- attr_reader :description, :required_options
51
-
52
48
  def initialize(args = [])
53
49
  super(args)
54
50
  @description =
55
- "One of the unique features of the Ionoscloud platform when compared "\
56
- "with the other providers is that they allow you to define your own settings "\
51
+ 'One of the unique features of the Ionoscloud platform when compared '\
52
+ 'with the other providers is that they allow you to define your own settings '\
57
53
  "for cores, memory, and disk size without being tied to a particular size or flavor.\n\n"\
58
- "Note: _The memory parameter value must be a multiple of 256, e.g. 256, 512, 768, 1024, and so forth._"
54
+ 'Note: _The memory parameter value must be a multiple of 256, e.g. 256, 512, 768, 1024, and so forth._'
55
+ @directory = 'compute-engine'
59
56
  @required_options = [:datacenter_id, :cores, :ram, :ionoscloud_username, :ionoscloud_password]
60
57
  end
61
58
 
@@ -12,14 +12,13 @@ class Chef
12
12
  long: '--datacenter-id DATACENTER_ID',
13
13
  description: 'Name 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
  "This will remove a server from a VDC.\n\n"\
21
- "**NOTE**: This will not automatically remove the storage volume\\(s\\) "\
22
- "attached to a server. A separate API call is required to perform that action."
19
+ '**NOTE**: This will not automatically remove the storage volume\\(s\\) '\
20
+ 'attached to a server. A separate API call is required to perform that action.'
21
+ @directory = 'compute-engine'
23
22
  @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
24
23
  end
25
24
 
@@ -44,7 +43,7 @@ class Chef
44
43
 
45
44
  begin
46
45
  confirm('Do you really want to delete this server')
47
- rescue SystemExit => exc
46
+ rescue SystemExit
48
47
  next
49
48
  end
50
49
 
@@ -17,12 +17,11 @@ class Chef
17
17
  long: '--server-id SERVER_ID',
18
18
  description: 'The ID of the server to which the NIC is assigned'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'Retrieves the attributes of a given Server.'
24
+ @directory = 'compute-engine'
26
25
  @required_options = [:datacenter_id, :server_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
@@ -17,12 +17,11 @@ class Chef
17
17
  long: '--upgrade-needed',
18
18
  description: 'It can be used to filter which servers can be upgraded'
19
19
 
20
- attr_reader :description, :required_options
21
-
22
20
  def initialize(args = [])
23
21
  super(args)
24
22
  @description =
25
23
  'List all available servers under a specified data center.'
24
+ @directory = 'compute-engine'
26
25
  @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
27
26
  end
28
27
 
@@ -12,14 +12,13 @@ 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
  'This will force a hard reboot of the server. Do not use this method '\
21
19
  'if you want to gracefully reboot the machine. This is the equivalent '\
22
20
  'of powering off the machine and turning it back on.'
21
+ @directory = 'compute-engine'
23
22
  @required_options = [:datacenter_id, :ionoscloud_username, :ionoscloud_password]
24
23
  end
25
24