binarylane-cli 0.13.0__tar.gz → 0.15.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (580) hide show
  1. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/PKG-INFO +2 -1
  2. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_console.py +12 -8
  3. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/errors.py +0 -1
  4. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/pyproject.toml +9 -6
  5. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/setup.py +6 -21
  6. binarylane_cli-0.15.0/src/binarylane/config/__init__.py +54 -0
  7. binarylane_cli-0.15.0/src/binarylane/config/options.py +94 -0
  8. binarylane_cli-0.15.0/src/binarylane/config/repository.py +53 -0
  9. binarylane_cli-0.15.0/src/binarylane/config/sources.py +141 -0
  10. binarylane_cli-0.13.0/src/binarylane/console/app/__init__.py → binarylane_cli-0.15.0/src/binarylane/console/__main__.py +5 -1
  11. binarylane_cli-0.15.0/src/binarylane/console/app.py +154 -0
  12. binarylane_cli-0.15.0/src/binarylane/console/commands/__init__.py +12 -0
  13. binarylane_cli-0.15.0/src/binarylane/console/commands/api/__init__.py +604 -0
  14. {binarylane_cli-0.13.0/src/binarylane/console/commands/keys → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_account_keys_key_id.py +9 -15
  15. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_domains_domain_name.py +9 -15
  16. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_domains_domain_name_records_record_id.py +17 -21
  17. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_load_balancers_load_balancer_id.py +9 -15
  18. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_load_balancers_load_balancer_id_forwarding_rules.py +18 -22
  19. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_load_balancers_load_balancer_id_servers.py +17 -21
  20. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_servers_server_id.py +17 -21
  21. {binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/delete_v2_vpcs_vpc_id.py +9 -15
  22. {binarylane_cli-0.13.0/src/binarylane/console/commands/accounts → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_account.py +0 -8
  23. {binarylane_cli-0.13.0/src/binarylane/console/commands/keys → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_account_keys.py +7 -9
  24. {binarylane_cli-0.13.0/src/binarylane/console/commands/keys → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_account_keys_key_id.py +9 -15
  25. {binarylane_cli-0.13.0/src/binarylane/console/commands/actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_actions.py +6 -8
  26. {binarylane_cli-0.13.0/src/binarylane/console/commands/actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_actions_action_id.py +9 -15
  27. {binarylane_cli-0.13.0/src/binarylane/console/commands/customers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_customers_my_balance.py +0 -8
  28. {binarylane_cli-0.13.0/src/binarylane/console/commands/customers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_customers_my_invoices.py +7 -9
  29. {binarylane_cli-0.13.0/src/binarylane/console/commands/customers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_customers_my_invoices_invoice_id.py +9 -15
  30. {binarylane_cli-0.13.0/src/binarylane/console/commands/customers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_customers_my_unpaid_payment_failed_invoices.py +7 -9
  31. {binarylane_cli-0.13.0/src/binarylane/console/commands/data_usages → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_data_usages_current.py +7 -9
  32. {binarylane_cli-0.13.0/src/binarylane/console/commands/data_usages → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_data_usages_server_id_current.py +9 -15
  33. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_domains.py +7 -9
  34. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_domains_domain_name.py +9 -15
  35. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_domains_domain_name_records.py +32 -28
  36. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_domains_domain_name_records_record_id.py +17 -21
  37. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_domains_nameservers.py +0 -8
  38. {binarylane_cli-0.13.0/src/binarylane/console/commands/failover_ips → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_failover_ips_server_id.py +9 -15
  39. {binarylane_cli-0.13.0/src/binarylane/console/commands/failover_ips → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_failover_ips_server_id_available.py +9 -15
  40. {binarylane_cli-0.13.0/src/binarylane/console/commands/images → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_images.py +24 -22
  41. {binarylane_cli-0.13.0/src/binarylane/console/commands/images → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_images_image_id_download.py +9 -15
  42. {binarylane_cli-0.13.0/src/binarylane/console/commands/images → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_images_image_id_or_slug.py +9 -15
  43. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_load_balancers.py +7 -9
  44. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_load_balancers_availability.py +7 -9
  45. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_load_balancers_load_balancer_id.py +9 -15
  46. {binarylane_cli-0.13.0/src/binarylane/console/commands/regions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_regions.py +7 -9
  47. {binarylane_cli-0.13.0/src/binarylane/console/commands/reverse_names → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_reverse_names_ipv6.py +0 -8
  48. {binarylane_cli-0.13.0/src/binarylane/console/commands/sample_sets → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_samplesets_server_id.py +40 -34
  49. {binarylane_cli-0.13.0/src/binarylane/console/commands/sample_sets → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_samplesets_server_id_latest.py +17 -21
  50. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers.py +16 -16
  51. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id.py +9 -15
  52. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_actions.py +16 -16
  53. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_actions_action_id.py +17 -21
  54. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_advanced_firewall_rules.py +16 -16
  55. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_available_advanced_features.py +9 -15
  56. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_backups.py +16 -16
  57. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_console.py +9 -15
  58. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_kernels.py +16 -16
  59. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_snapshots.py +16 -16
  60. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_software.py +16 -16
  61. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_threshold_alerts.py +16 -16
  62. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_server_id_user_data.py +9 -15
  63. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_servers_threshold_alerts.py +0 -8
  64. {binarylane_cli-0.13.0/src/binarylane/console/commands/sizes → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_sizes.py +24 -22
  65. {binarylane_cli-0.13.0/src/binarylane/console/commands/software → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_software.py +7 -9
  66. {binarylane_cli-0.13.0/src/binarylane/console/commands/software → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_software_operating_system_operating_system_id_or_slug.py +16 -16
  67. {binarylane_cli-0.13.0/src/binarylane/console/commands/software → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_software_software_id.py +9 -15
  68. {binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_vpcs.py +7 -9
  69. {binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_vpcs_vpc_id.py +9 -15
  70. {binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/get_v2_vpcs_vpc_id_members.py +24 -22
  71. {binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/patch_v2_vpcs_vpc_id.py +42 -40
  72. {binarylane_cli-0.13.0/src/binarylane/console/commands/keys → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_account_keys.py +25 -27
  73. {binarylane_cli-0.13.0/src/binarylane/console/commands/actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_actions_action_id_proceed.py +17 -21
  74. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_domains.py +17 -21
  75. binarylane_cli-0.15.0/src/binarylane/console/commands/api/post_v2_domains_domain_name_records.py +164 -0
  76. {binarylane_cli-0.13.0/src/binarylane/console/commands/domains → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_domains_refresh_nameserver_cache.py +0 -8
  77. {binarylane_cli-0.13.0/src/binarylane/console/commands/failover_ips → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_failover_ips_server_id.py +17 -21
  78. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_load_balancers.py +50 -46
  79. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_load_balancers_load_balancer_id_forwarding_rules.py +18 -22
  80. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_load_balancers_load_balancer_id_servers.py +17 -21
  81. {binarylane_cli-0.13.0/src/binarylane/console/commands/reverse_names → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_reverse_names_ipv6.py +9 -15
  82. binarylane_cli-0.15.0/src/binarylane/console/commands/api/post_v2_servers.py +311 -0
  83. {binarylane_cli-0.13.0/src/binarylane/console/commands/servers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_servers_server_id_backups.py +49 -45
  84. {binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_vpcs.py +42 -40
  85. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_add_disk.py +32 -32
  86. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_attach_backup.py +24 -26
  87. binarylane_cli-0.15.0/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_advanced_features.py +146 -0
  88. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_advanced_firewall_rules.py +65 -57
  89. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_backup_schedule.py +40 -38
  90. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_ipv_6.py +24 -26
  91. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_ipv_6_reverse_nameservers.py +24 -26
  92. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_kernel.py +24 -26
  93. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_manage_offsite_backup_copies.py +24 -26
  94. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_network.py +24 -26
  95. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_offsite_backup_location.py +24 -26
  96. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_partner.py +24 -26
  97. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_port_blocking.py +24 -26
  98. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_reverse_name.py +32 -32
  99. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_separate_private_network_interface.py +24 -26
  100. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_source_and_destination_check.py +24 -26
  101. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_threshold_alerts.py +41 -39
  102. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_change_vpc_ipv_4.py +32 -32
  103. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_clone_using_backup.py +40 -38
  104. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_delete_disk.py +24 -26
  105. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_detach_backup.py +16 -20
  106. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_disable_backups.py +16 -20
  107. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_disable_selinux.py +16 -20
  108. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_enable_backups.py +16 -20
  109. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_enable_ipv_6.py +16 -20
  110. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_is_running.py +16 -20
  111. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_password_reset.py +32 -32
  112. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_ping.py +16 -20
  113. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_power_cycle.py +16 -20
  114. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_power_off.py +16 -20
  115. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_power_on.py +16 -20
  116. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_reboot.py +16 -20
  117. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_rebuild.py +56 -50
  118. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_rename.py +24 -26
  119. binarylane_cli-0.15.0/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_resize.py +396 -0
  120. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_resize_disk.py +32 -32
  121. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_restore.py +24 -26
  122. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_shutdown.py +16 -20
  123. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_take_backup.py +48 -44
  124. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_uncancel.py +16 -20
  125. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v_2_servers_server_id_actions_uptime.py +16 -20
  126. {binarylane_cli-0.13.0/src/binarylane/console/commands/keys → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/put_v2_account_keys_key_id.py +25 -27
  127. binarylane_cli-0.15.0/src/binarylane/console/commands/api/put_v2_domains_domain_name_records_record_id.py +174 -0
  128. {binarylane_cli-0.13.0/src/binarylane/console/commands/images → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/put_v2_images_image_id.py +25 -27
  129. {binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/put_v2_load_balancers_load_balancer_id.py +50 -46
  130. {binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/put_v2_vpcs_vpc_id.py +42 -40
  131. {binarylane_cli-0.13.0/src/binarylane/console/app → binarylane_cli-0.15.0/src/binarylane/console/commands}/configure.py +13 -17
  132. binarylane_cli-0.15.0/src/binarylane/console/commands/version.py +11 -0
  133. binarylane_cli-0.15.0/src/binarylane/console/metadata.py +22 -0
  134. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/parser/__init__.py +11 -1
  135. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/parser/object_attribute.py +8 -50
  136. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/parser/parser.py +12 -3
  137. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/parser/primitive_attribute.py +19 -14
  138. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/printers/formatter.py +15 -28
  139. binarylane_cli-0.15.0/src/binarylane/console/runners/__init__.py +94 -0
  140. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/runners/action.py +13 -12
  141. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/runners/command.py +62 -52
  142. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/runners/httpx_wrapper.py +2 -1
  143. binarylane_cli-0.15.0/src/binarylane/console/runners/list.py +73 -0
  144. binarylane_cli-0.15.0/src/binarylane/console/util.py +30 -0
  145. {binarylane_cli-0.13.0/src/binarylane/console → binarylane_cli-0.15.0/src/binarylane/pycompat}/actions.py +20 -11
  146. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/pycompat/typing.py +3 -2
  147. binarylane_cli-0.13.0/src/binarylane/console/__main__.py +0 -8
  148. binarylane_cli-0.13.0/src/binarylane/console/app/app.py +0 -51
  149. binarylane_cli-0.13.0/src/binarylane/console/app/lazy_loader.py +0 -49
  150. binarylane_cli-0.13.0/src/binarylane/console/app/lazy_runner.py +0 -21
  151. binarylane_cli-0.13.0/src/binarylane/console/app/version.py +0 -32
  152. binarylane_cli-0.13.0/src/binarylane/console/commands/__init__.py +0 -1770
  153. binarylane_cli-0.13.0/src/binarylane/console/commands/accounts/__init__.py +0 -0
  154. binarylane_cli-0.13.0/src/binarylane/console/commands/actions/__init__.py +0 -0
  155. binarylane_cli-0.13.0/src/binarylane/console/commands/customers/__init__.py +0 -0
  156. binarylane_cli-0.13.0/src/binarylane/console/commands/data_usages/__init__.py +0 -0
  157. binarylane_cli-0.13.0/src/binarylane/console/commands/domains/__init__.py +0 -0
  158. binarylane_cli-0.13.0/src/binarylane/console/commands/domains/post_v2_domains_domain_name_records.py +0 -152
  159. binarylane_cli-0.13.0/src/binarylane/console/commands/domains/put_v2_domains_domain_name_records_record_id.py +0 -160
  160. binarylane_cli-0.13.0/src/binarylane/console/commands/failover_ips/__init__.py +0 -0
  161. binarylane_cli-0.13.0/src/binarylane/console/commands/images/__init__.py +0 -0
  162. binarylane_cli-0.13.0/src/binarylane/console/commands/keys/__init__.py +0 -0
  163. binarylane_cli-0.13.0/src/binarylane/console/commands/load_balancers/__init__.py +0 -0
  164. binarylane_cli-0.13.0/src/binarylane/console/commands/regions/__init__.py +0 -0
  165. binarylane_cli-0.13.0/src/binarylane/console/commands/reverse_names/__init__.py +0 -0
  166. binarylane_cli-0.13.0/src/binarylane/console/commands/sample_sets/__init__.py +0 -0
  167. binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions/__init__.py +0 -0
  168. binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions/post_v_2_servers_server_id_actions_change_advanced_features.py +0 -138
  169. binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions/post_v_2_servers_server_id_actions_resize.py +0 -356
  170. binarylane_cli-0.13.0/src/binarylane/console/commands/servers/__init__.py +0 -0
  171. binarylane_cli-0.13.0/src/binarylane/console/commands/servers/post_v2_servers.py +0 -277
  172. binarylane_cli-0.13.0/src/binarylane/console/commands/sizes/__init__.py +0 -0
  173. binarylane_cli-0.13.0/src/binarylane/console/commands/software/__init__.py +0 -0
  174. binarylane_cli-0.13.0/src/binarylane/console/commands/vpcs/__init__.py +0 -0
  175. binarylane_cli-0.13.0/src/binarylane/console/config.py +0 -137
  176. binarylane_cli-0.13.0/src/binarylane/console/runners/__init__.py +0 -49
  177. binarylane_cli-0.13.0/src/binarylane/console/runners/list.py +0 -64
  178. binarylane_cli-0.13.0/src/binarylane/console/runners/module.py +0 -39
  179. binarylane_cli-0.13.0/src/binarylane/console/runners/package.py +0 -159
  180. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/LICENSE +0 -0
  181. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/README.md +0 -0
  182. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/__init__.py +0 -0
  183. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/accounts/__init__.py +0 -0
  184. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/accounts/get_v2_account.py +0 -0
  185. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/actions/__init__.py +0 -0
  186. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/actions/get_v2_actions.py +0 -0
  187. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/actions/get_v2_actions_action_id.py +0 -0
  188. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/actions/post_v2_actions_action_id_proceed.py +0 -0
  189. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/customers/__init__.py +0 -0
  190. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/customers/get_v2_customers_my_balance.py +0 -0
  191. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/customers/get_v2_customers_my_invoices.py +0 -0
  192. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/customers/get_v2_customers_my_invoices_invoice_id.py +0 -0
  193. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/customers/get_v2_customers_my_unpaid_payment_failed_invoices.py +0 -0
  194. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/data_usages/__init__.py +0 -0
  195. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/data_usages/get_v2_data_usages_current.py +0 -0
  196. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/data_usages/get_v2_data_usages_server_id_current.py +0 -0
  197. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/__init__.py +0 -0
  198. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/delete_v2_domains_domain_name.py +0 -0
  199. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/delete_v2_domains_domain_name_records_record_id.py +0 -0
  200. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/get_v2_domains.py +0 -0
  201. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/get_v2_domains_domain_name.py +0 -0
  202. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/get_v2_domains_domain_name_records.py +0 -0
  203. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/get_v2_domains_domain_name_records_record_id.py +0 -0
  204. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/get_v2_domains_nameservers.py +0 -0
  205. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/post_v2_domains.py +0 -0
  206. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/post_v2_domains_domain_name_records.py +0 -0
  207. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/post_v2_domains_refresh_nameserver_cache.py +0 -0
  208. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/domains/put_v2_domains_domain_name_records_record_id.py +0 -0
  209. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/failover_ips/__init__.py +0 -0
  210. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/failover_ips/get_v2_failover_ips_server_id.py +0 -0
  211. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/failover_ips/get_v2_failover_ips_server_id_available.py +0 -0
  212. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/failover_ips/post_v2_failover_ips_server_id.py +0 -0
  213. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/images/__init__.py +0 -0
  214. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/images/get_v2_images.py +0 -0
  215. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/images/get_v2_images_image_id_download.py +0 -0
  216. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/images/get_v2_images_image_id_or_slug.py +0 -0
  217. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/images/put_v2_images_image_id.py +0 -0
  218. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/keys/__init__.py +0 -0
  219. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/keys/delete_v2_account_keys_key_id.py +0 -0
  220. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/keys/get_v2_account_keys.py +0 -0
  221. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/keys/get_v2_account_keys_key_id.py +0 -0
  222. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/keys/post_v2_account_keys.py +0 -0
  223. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/keys/put_v2_account_keys_key_id.py +0 -0
  224. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/__init__.py +0 -0
  225. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/delete_v2_load_balancers_load_balancer_id.py +0 -0
  226. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/delete_v2_load_balancers_load_balancer_id_forwarding_rules.py +0 -0
  227. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/delete_v2_load_balancers_load_balancer_id_servers.py +0 -0
  228. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/get_v2_load_balancers.py +0 -0
  229. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/get_v2_load_balancers_availability.py +0 -0
  230. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/get_v2_load_balancers_load_balancer_id.py +0 -0
  231. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/post_v2_load_balancers.py +0 -0
  232. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/post_v2_load_balancers_load_balancer_id_forwarding_rules.py +0 -0
  233. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/post_v2_load_balancers_load_balancer_id_servers.py +0 -0
  234. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/load_balancers/put_v2_load_balancers_load_balancer_id.py +0 -0
  235. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/regions/__init__.py +0 -0
  236. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/regions/get_v2_regions.py +0 -0
  237. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/reverse_names/__init__.py +0 -0
  238. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/reverse_names/get_v2_reverse_names_ipv6.py +0 -0
  239. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/reverse_names/post_v2_reverse_names_ipv6.py +0 -0
  240. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/sample_sets/__init__.py +0 -0
  241. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/sample_sets/get_v2_samplesets_server_id.py +0 -0
  242. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/sample_sets/get_v2_samplesets_server_id_latest.py +0 -0
  243. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/__init__.py +0 -0
  244. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/get_v2_servers_server_id_actions.py +0 -0
  245. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v2_servers_server_id_actions.py +0 -0
  246. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_add_disk.py +0 -0
  247. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_attach_backup.py +0 -0
  248. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_advanced_features.py +0 -0
  249. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_advanced_firewall_rules.py +0 -0
  250. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_backup_schedule.py +0 -0
  251. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_ipv_6.py +0 -0
  252. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_ipv_6_reverse_nameservers.py +0 -0
  253. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_kernel.py +0 -0
  254. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_manage_offsite_backup_copies.py +0 -0
  255. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_network.py +0 -0
  256. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_offsite_backup_location.py +0 -0
  257. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_partner.py +0 -0
  258. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_port_blocking.py +0 -0
  259. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_reverse_name.py +0 -0
  260. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_separate_private_network_interface.py +0 -0
  261. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_source_and_destination_check.py +0 -0
  262. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_threshold_alerts.py +0 -0
  263. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_vpc_ipv_4.py +0 -0
  264. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_clone_using_backup.py +0 -0
  265. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_delete_disk.py +0 -0
  266. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_detach_backup.py +0 -0
  267. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_disable_backups.py +0 -0
  268. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_disable_selinux.py +0 -0
  269. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_enable_backups.py +0 -0
  270. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_enable_ipv_6.py +0 -0
  271. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_is_running.py +0 -0
  272. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_password_reset.py +0 -0
  273. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_ping.py +0 -0
  274. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_power_cycle.py +0 -0
  275. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_power_off.py +0 -0
  276. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_power_on.py +0 -0
  277. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_reboot.py +0 -0
  278. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_rebuild.py +0 -0
  279. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_rename.py +0 -0
  280. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_resize.py +0 -0
  281. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_resize_disk.py +0 -0
  282. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_restore.py +0 -0
  283. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_shutdown.py +0 -0
  284. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_take_backup.py +0 -0
  285. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_uncancel.py +0 -0
  286. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_uptime.py +0 -0
  287. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/__init__.py +0 -0
  288. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/delete_v2_servers_server_id.py +0 -0
  289. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers.py +0 -0
  290. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id.py +0 -0
  291. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_actions_action_id.py +0 -0
  292. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_advanced_firewall_rules.py +0 -0
  293. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_available_advanced_features.py +0 -0
  294. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_backups.py +0 -0
  295. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_kernels.py +0 -0
  296. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_snapshots.py +0 -0
  297. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_software.py +0 -0
  298. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_threshold_alerts.py +0 -0
  299. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_server_id_user_data.py +0 -0
  300. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/get_v2_servers_threshold_alerts.py +0 -0
  301. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/post_v2_servers.py +0 -0
  302. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/servers/post_v2_servers_server_id_backups.py +0 -0
  303. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/sizes/__init__.py +0 -0
  304. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/sizes/get_v2_sizes.py +0 -0
  305. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/software/__init__.py +0 -0
  306. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/software/get_v2_software.py +0 -0
  307. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/software/get_v2_software_operating_system_operating_system_id_or_slug.py +0 -0
  308. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/software/get_v2_software_software_id.py +0 -0
  309. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/__init__.py +0 -0
  310. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/delete_v2_vpcs_vpc_id.py +0 -0
  311. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/get_v2_vpcs.py +0 -0
  312. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/get_v2_vpcs_vpc_id.py +0 -0
  313. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/get_v2_vpcs_vpc_id_members.py +0 -0
  314. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/patch_v2_vpcs_vpc_id.py +0 -0
  315. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/post_v2_vpcs.py +0 -0
  316. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/api/vpcs/put_v2_vpcs_vpc_id.py +0 -0
  317. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/client.py +0 -0
  318. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/__init__.py +0 -0
  319. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/account.py +0 -0
  320. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/account_response.py +0 -0
  321. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/account_status.py +0 -0
  322. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/action.py +0 -0
  323. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/action_link.py +0 -0
  324. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/action_progress.py +0 -0
  325. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/action_response.py +0 -0
  326. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/action_status.py +0 -0
  327. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/actions_links.py +0 -0
  328. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/actions_response.py +0 -0
  329. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/add_disk.py +0 -0
  330. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/add_disk_type.py +0 -0
  331. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/advanced_feature.py +0 -0
  332. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/advanced_firewall_rule.py +0 -0
  333. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/advanced_firewall_rule_action.py +0 -0
  334. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/advanced_firewall_rule_protocol.py +0 -0
  335. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/advanced_firewall_rules_response.py +0 -0
  336. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/advanced_server_features.py +0 -0
  337. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/attach_backup.py +0 -0
  338. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/attach_backup_type.py +0 -0
  339. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/attached_backup.py +0 -0
  340. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/available_advanced_server_features.py +0 -0
  341. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/available_advanced_server_features_response.py +0 -0
  342. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/backup_disk.py +0 -0
  343. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/backup_info.py +0 -0
  344. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/backup_replacement_strategy.py +0 -0
  345. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/backup_settings.py +0 -0
  346. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/backup_slot.py +0 -0
  347. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/backup_window.py +0 -0
  348. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/backups_response.py +0 -0
  349. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/balance.py +0 -0
  350. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/balance_response.py +0 -0
  351. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_advanced_features.py +0 -0
  352. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_advanced_features_type.py +0 -0
  353. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_advanced_firewall_rules.py +0 -0
  354. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_advanced_firewall_rules_type.py +0 -0
  355. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_backup_schedule.py +0 -0
  356. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_backup_schedule_type.py +0 -0
  357. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_image.py +0 -0
  358. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_ipv_6.py +0 -0
  359. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_ipv_6_reverse_nameservers.py +0 -0
  360. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_ipv_6_reverse_nameservers_type.py +0 -0
  361. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_ipv_6_type.py +0 -0
  362. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_kernel.py +0 -0
  363. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_kernel_type.py +0 -0
  364. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_licenses.py +0 -0
  365. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_manage_offsite_backup_copies.py +0 -0
  366. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_manage_offsite_backup_copies_type.py +0 -0
  367. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_network.py +0 -0
  368. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_network_type.py +0 -0
  369. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_offsite_backup_location.py +0 -0
  370. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_offsite_backup_location_type.py +0 -0
  371. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_partner.py +0 -0
  372. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_partner_type.py +0 -0
  373. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_port_blocking.py +0 -0
  374. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_port_blocking_type.py +0 -0
  375. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_reverse_name.py +0 -0
  376. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_reverse_name_type.py +0 -0
  377. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_separate_private_network_interface.py +0 -0
  378. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_separate_private_network_interface_type.py +0 -0
  379. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_size_options_request.py +0 -0
  380. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_source_and_destination_check.py +0 -0
  381. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_source_and_destination_check_type.py +0 -0
  382. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_threshold_alerts.py +0 -0
  383. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_threshold_alerts_type.py +0 -0
  384. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_vpc_ipv_4.py +0 -0
  385. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/change_vpc_ipv_4_type.py +0 -0
  386. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/charge_information.py +0 -0
  387. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/clone_using_backup.py +0 -0
  388. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/clone_using_backup_type.py +0 -0
  389. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/console.py +0 -0
  390. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/console_response.py +0 -0
  391. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/create_load_balancer_request.py +0 -0
  392. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/create_load_balancer_response.py +0 -0
  393. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/create_server_request.py +0 -0
  394. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/create_server_response.py +0 -0
  395. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/create_vpc_request.py +0 -0
  396. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/current_server_alerts_response.py +0 -0
  397. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/data_interval.py +0 -0
  398. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/data_usage.py +0 -0
  399. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/data_usage_response.py +0 -0
  400. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/data_usages_response.py +0 -0
  401. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/delete_disk.py +0 -0
  402. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/delete_disk_type.py +0 -0
  403. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/detach_backup.py +0 -0
  404. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/detach_backup_type.py +0 -0
  405. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/disable_backups.py +0 -0
  406. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/disable_backups_type.py +0 -0
  407. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/disable_selinux.py +0 -0
  408. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/disable_selinux_type.py +0 -0
  409. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/disk.py +0 -0
  410. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/distribution_feature.py +0 -0
  411. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/distribution_info.py +0 -0
  412. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/distribution_surcharges.py +0 -0
  413. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain.py +0 -0
  414. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain_record.py +0 -0
  415. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain_record_request.py +0 -0
  416. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain_record_response.py +0 -0
  417. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain_record_type.py +0 -0
  418. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain_records_response.py +0 -0
  419. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain_request.py +0 -0
  420. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domain_response.py +0 -0
  421. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/domains_response.py +0 -0
  422. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/enable_backups.py +0 -0
  423. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/enable_backups_type.py +0 -0
  424. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/enable_ipv_6.py +0 -0
  425. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/enable_ipv_6_type.py +0 -0
  426. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/failover_ips_request.py +0 -0
  427. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/failover_ips_response.py +0 -0
  428. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/forwarding_rule.py +0 -0
  429. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/forwarding_rules_request.py +0 -0
  430. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/health_check.py +0 -0
  431. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/health_check_protocol.py +0 -0
  432. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/host.py +0 -0
  433. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image.py +0 -0
  434. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_disk_download.py +0 -0
  435. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_download.py +0 -0
  436. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_download_response.py +0 -0
  437. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_options.py +0 -0
  438. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_query_type.py +0 -0
  439. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_request.py +0 -0
  440. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_response.py +0 -0
  441. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_status.py +0 -0
  442. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/image_type.py +0 -0
  443. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/images_response.py +0 -0
  444. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/invoice.py +0 -0
  445. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/invoice_line_item.py +0 -0
  446. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/invoice_response.py +0 -0
  447. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/invoices_response.py +0 -0
  448. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/is_running.py +0 -0
  449. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/is_running_type.py +0 -0
  450. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/kernel.py +0 -0
  451. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/kernels_response.py +0 -0
  452. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/license_.py +0 -0
  453. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/licensed_software.py +0 -0
  454. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/licensed_softwares_response.py +0 -0
  455. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/links.py +0 -0
  456. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/load_balancer.py +0 -0
  457. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/load_balancer_availability_option.py +0 -0
  458. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/load_balancer_availability_response.py +0 -0
  459. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/load_balancer_response.py +0 -0
  460. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/load_balancer_rule_protocol.py +0 -0
  461. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/load_balancer_status.py +0 -0
  462. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/load_balancers_response.py +0 -0
  463. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/local_nameservers_response.py +0 -0
  464. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/meta.py +0 -0
  465. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/network.py +0 -0
  466. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/network_type.py +0 -0
  467. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/networks.py +0 -0
  468. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/offsite_backup_frequency_cost.py +0 -0
  469. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/offsite_backup_settings.py +0 -0
  470. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/pages.py +0 -0
  471. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/password_recovery_type.py +0 -0
  472. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/password_reset.py +0 -0
  473. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/password_reset_type.py +0 -0
  474. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/patch_vpc_request.py +0 -0
  475. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/payment_method.py +0 -0
  476. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/period.py +0 -0
  477. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/ping.py +0 -0
  478. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/ping_type.py +0 -0
  479. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/power_cycle.py +0 -0
  480. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/power_cycle_type.py +0 -0
  481. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/power_off.py +0 -0
  482. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/power_off_type.py +0 -0
  483. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/power_on.py +0 -0
  484. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/power_on_type.py +0 -0
  485. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/problem_details.py +0 -0
  486. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/proceed_request.py +0 -0
  487. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/processor_model.py +0 -0
  488. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/reboot.py +0 -0
  489. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/reboot_type.py +0 -0
  490. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/rebuild.py +0 -0
  491. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/rebuild_type.py +0 -0
  492. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/region.py +0 -0
  493. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/regions_response.py +0 -0
  494. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/rename.py +0 -0
  495. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/rename_type.py +0 -0
  496. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/resize.py +0 -0
  497. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/resize_disk.py +0 -0
  498. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/resize_disk_type.py +0 -0
  499. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/resize_type.py +0 -0
  500. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/resource_type.py +0 -0
  501. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/restore.py +0 -0
  502. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/restore_type.py +0 -0
  503. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/reverse_name_servers_response.py +0 -0
  504. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/reverse_nameservers_request.py +0 -0
  505. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/route_entry.py +0 -0
  506. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/route_entry_request.py +0 -0
  507. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/sample.py +0 -0
  508. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/sample_set.py +0 -0
  509. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/sample_set_response.py +0 -0
  510. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/sample_sets_response.py +0 -0
  511. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/selected_size_options.py +0 -0
  512. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/server.py +0 -0
  513. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/server_ids_request.py +0 -0
  514. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/server_response.py +0 -0
  515. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/server_status.py +0 -0
  516. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/servers_response.py +0 -0
  517. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/shutdown.py +0 -0
  518. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/shutdown_type.py +0 -0
  519. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/size.py +0 -0
  520. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/size_options.py +0 -0
  521. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/size_options_request.py +0 -0
  522. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/size_type.py +0 -0
  523. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/sizes_response.py +0 -0
  524. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/snapshots_response.py +0 -0
  525. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/software.py +0 -0
  526. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/software_response.py +0 -0
  527. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/softwares_response.py +0 -0
  528. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/ssh_key.py +0 -0
  529. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/ssh_key_request.py +0 -0
  530. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/ssh_key_response.py +0 -0
  531. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/ssh_keys_response.py +0 -0
  532. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/take_backup.py +0 -0
  533. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/take_backup_type.py +0 -0
  534. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/tax_code.py +0 -0
  535. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/tax_code_type.py +0 -0
  536. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/threshold_alert.py +0 -0
  537. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/threshold_alert_request.py +0 -0
  538. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/threshold_alert_type.py +0 -0
  539. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/threshold_alerts_response.py +0 -0
  540. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/uncancel.py +0 -0
  541. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/uncancel_type.py +0 -0
  542. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/unpaid_failed_invoices_response.py +0 -0
  543. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/update_load_balancer_request.py +0 -0
  544. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/update_load_balancer_response.py +0 -0
  545. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/update_ssh_key_request.py +0 -0
  546. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/update_vpc_request.py +0 -0
  547. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/upload_image_request.py +0 -0
  548. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/uptime.py +0 -0
  549. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/uptime_type.py +0 -0
  550. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/user_data.py +0 -0
  551. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/user_interaction_required.py +0 -0
  552. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/user_interaction_type.py +0 -0
  553. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/validation_problem_details.py +0 -0
  554. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/validation_problem_details_errors.py +0 -0
  555. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/video_device.py +0 -0
  556. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/vm_machine_type.py +0 -0
  557. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/vpc.py +0 -0
  558. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/vpc_member.py +0 -0
  559. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/vpc_members_response.py +0 -0
  560. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/vpc_response.py +0 -0
  561. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/models/vpcs_response.py +0 -0
  562. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/py.typed +0 -0
  563. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/lib/binarylane/types.py +0 -0
  564. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/__init__.py +0 -0
  565. {binarylane_cli-0.13.0/src/binarylane/console/commands/server_actions → binarylane_cli-0.15.0/src/binarylane/console/commands/api}/post_v2_servers_server_id_actions.py +0 -0
  566. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/parser/attribute.py +0 -0
  567. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/parser/help_formatter.py +0 -0
  568. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/parser/list_attribute.py +0 -0
  569. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/printers/__init__.py +0 -0
  570. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/printers/json_printer.py +0 -0
  571. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/printers/plain_printer.py +0 -0
  572. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/printers/printer.py +0 -0
  573. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/printers/table_printer.py +0 -0
  574. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/printers/tsv_printer.py +0 -0
  575. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/py.typed +0 -0
  576. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/console/runners/actionlink.py +0 -0
  577. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/pycompat/__init__.py +0 -0
  578. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/pycompat/functools.py +0 -0
  579. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/pycompat/importlib.py +0 -0
  580. {binarylane_cli-0.13.0 → binarylane_cli-0.15.0}/src/binarylane/pycompat/shlex.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: binarylane-cli
3
- Version: 0.13.0
3
+ Version: 0.15.0
4
4
  Summary:
5
5
  Author: Nathan O'Sullivan
6
6
  Author-email: nathan.osullivan@mammoth.com.au
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.11
13
13
  Requires-Dist: attrs (>=22.2.0,<23.0.0)
14
14
  Requires-Dist: backports.cached-property (>=1.0.2,<2.0.0) ; python_version < "3.8"
15
15
  Requires-Dist: httpx (>=0.23.0,<0.24.0)
16
+ Requires-Dist: importlib-metadata ; python_version < "3.8"
16
17
  Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
17
18
  Requires-Dist: terminaltables (>=3.1.10,<4.0.0)
18
19
  Requires-Dist: typing-extensions (>=4.0.0,<5.0.0) ; python_version < "3.8"
@@ -72,9 +72,10 @@ def sync_detailed(
72
72
  *,
73
73
  client: Client,
74
74
  ) -> Response[Union[Any, ConsoleResponse, ProblemDetails, ValidationProblemDetails]]:
75
- """
75
+ """Fetch the Console URLs for a Server
76
+
76
77
  Args:
77
- server_id (int): The target server id.
78
+ server_id (int): The ID of the server for which console URLs will be fetched.
78
79
 
79
80
  Raises:
80
81
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -102,9 +103,10 @@ def sync(
102
103
  *,
103
104
  client: Client,
104
105
  ) -> Optional[Union[Any, ConsoleResponse, ProblemDetails, ValidationProblemDetails]]:
105
- """
106
+ """Fetch the Console URLs for a Server
107
+
106
108
  Args:
107
- server_id (int): The target server id.
109
+ server_id (int): The ID of the server for which console URLs will be fetched.
108
110
 
109
111
  Raises:
110
112
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -125,9 +127,10 @@ async def asyncio_detailed(
125
127
  *,
126
128
  client: Client,
127
129
  ) -> Response[Union[Any, ConsoleResponse, ProblemDetails, ValidationProblemDetails]]:
128
- """
130
+ """Fetch the Console URLs for a Server
131
+
129
132
  Args:
130
- server_id (int): The target server id.
133
+ server_id (int): The ID of the server for which console URLs will be fetched.
131
134
 
132
135
  Raises:
133
136
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -153,9 +156,10 @@ async def asyncio(
153
156
  *,
154
157
  client: Client,
155
158
  ) -> Optional[Union[Any, ConsoleResponse, ProblemDetails, ValidationProblemDetails]]:
156
- """
159
+ """Fetch the Console URLs for a Server
160
+
157
161
  Args:
158
- server_id (int): The target server id.
162
+ server_id (int): The ID of the server for which console URLs will be fetched.
159
163
 
160
164
  Raises:
161
165
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
@@ -1,6 +1,5 @@
1
1
  """ Contains shared errors types that can be raised from API functions """
2
2
 
3
-
4
3
  from __future__ import annotations
5
4
 
6
5
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "binarylane-cli"
3
- version = "0.13.0"
3
+ version = "0.15.0"
4
4
  description = ""
5
5
  authors = ["Nathan O'Sullivan <nathan.osullivan@mammoth.com.au>"]
6
6
  readme = "README.md"
@@ -14,9 +14,10 @@ attrs = "^22.2.0"
14
14
  python-dateutil = "^2.8.2"
15
15
  "backports.cached-property" = { version = "^1.0.2", python = "<3.8" }
16
16
  typing-extensions = { version = "^4.0.0", python = "<3.8" }
17
+ importlib-metadata = { version = "*", python = "<3.8" }
17
18
 
18
19
  [tool.poetry.scripts]
19
- bl = "binarylane.console.app:main"
20
+ bl = "binarylane.console.__main__:main"
20
21
 
21
22
  [tool.poetry.group.dev.dependencies]
22
23
  taskipy = "^1.10.3"
@@ -42,6 +43,7 @@ test = "pytest tests"
42
43
  check = "task isort && task black && task mypy && task pylint && task test && task safety"
43
44
 
44
45
  [tool.isort]
46
+ py_version = 37
45
47
  line_length = 120
46
48
  profile = "black"
47
49
  sections=['FUTURE', 'STDLIB', 'COMPAT', 'THIRDPARTY', 'FIRSTPARTY', 'LOCALFOLDER']
@@ -49,10 +51,11 @@ no_lines_before=["COMPAT"]
49
51
  known_compat=["binarylane.pycompat"]
50
52
  known_first_party=["binarylane"]
51
53
  known_local_folder=["binarylane.console"]
54
+ add_imports=["from __future__ import annotations"]
52
55
 
53
56
  [tool.black]
54
57
  line-length = 120
55
- target_version = ['py37', 'py38', 'py39']
58
+ target_version = ["py37"]
56
59
 
57
60
  [tool.pylint.format]
58
61
  max-line-length = 120
@@ -78,9 +81,9 @@ strict_equality = true
78
81
  mypy_path = "lib:src"
79
82
  namespace_packages = true
80
83
  explicit_package_bases = true
81
- exclude = [
82
- 'src/binarylane/console/actions\.py$', # from python 3.9
83
- ]
84
+
85
+ [tool.pyright]
86
+ extraPaths = ["src", "lib"]
84
87
 
85
88
  [build-system]
86
89
  requires = ["poetry-core"]
@@ -44,26 +44,10 @@ packages = \
44
44
  'binarylane.api.sizes',
45
45
  'binarylane.api.software',
46
46
  'binarylane.api.vpcs',
47
+ 'binarylane.config',
47
48
  'binarylane.console',
48
- 'binarylane.console.app',
49
49
  'binarylane.console.commands',
50
- 'binarylane.console.commands.accounts',
51
- 'binarylane.console.commands.actions',
52
- 'binarylane.console.commands.customers',
53
- 'binarylane.console.commands.data_usages',
54
- 'binarylane.console.commands.domains',
55
- 'binarylane.console.commands.failover_ips',
56
- 'binarylane.console.commands.images',
57
- 'binarylane.console.commands.keys',
58
- 'binarylane.console.commands.load_balancers',
59
- 'binarylane.console.commands.regions',
60
- 'binarylane.console.commands.reverse_names',
61
- 'binarylane.console.commands.sample_sets',
62
- 'binarylane.console.commands.server_actions',
63
- 'binarylane.console.commands.servers',
64
- 'binarylane.console.commands.sizes',
65
- 'binarylane.console.commands.software',
66
- 'binarylane.console.commands.vpcs',
50
+ 'binarylane.console.commands.api',
67
51
  'binarylane.console.parser',
68
52
  'binarylane.console.printers',
69
53
  'binarylane.console.runners',
@@ -81,14 +65,15 @@ install_requires = \
81
65
 
82
66
  extras_require = \
83
67
  {':python_version < "3.8"': ['backports.cached-property>=1.0.2,<2.0.0',
84
- 'typing-extensions>=4.0.0,<5.0.0']}
68
+ 'typing-extensions>=4.0.0,<5.0.0',
69
+ 'importlib-metadata']}
85
70
 
86
71
  entry_points = \
87
- {'console_scripts': ['bl = binarylane.console.app:main']}
72
+ {'console_scripts': ['bl = binarylane.console.__main__:main']}
88
73
 
89
74
  setup_kwargs = {
90
75
  'name': 'binarylane-cli',
91
- 'version': '0.13.0',
76
+ 'version': '0.15.0',
92
77
  'description': '',
93
78
  'long_description': '# `bl`: BinaryLane command-line interface\n\n```\n$ bl --help\nusage: bl [OPTIONS] COMMAND\n\nbl is a command-line interface for the BinaryLane API\n\nOptions:\n --help Display available commands and descriptions\n\nAvailable Commands:\n account Access account commands\n action Access action commands\n configure Configure access to BinaryLane API\n domain Access domain commands\n image Access image commands\n load-balancer Access load-balancer commands\n region Access region commands\n server Access server commands\n size Access size commands\n software Access software commands\n ssh-key Access ssh-key commands\n version Show the current version\n vpc Access vpc commands\n```\n\n## Installation\n\n`bl` requires Python 3.7 or later and has been tested on a variety of Linux\ndistributions, Windows and Mac OSX. To install:\n\n```\npip install binarylane-cli\n```\n\n### Portable install (without Python)\n\nThe [releases page](https://github.com/binarylane/binarylane-cli/releases) has\na standalone `bl.exe` for use on Windows.\n\n\n## Getting Started\n\nThe BinaryLane CLI program is invoked by running `bl` (or `bl.exe` on Windows).\nTo use `bl` you must configure the program with a BinaryLane customer access\ntoken.\n\n 1. To start the configuration process, run:\n```\nbl configure\n```\n\n 2. A prompt will be shown requesting access token. Go to [Developer API](https://home.binarylane.com.au/api-info) section of BinaryLane website and select **+ Create Token**, enter a name such as *CLI* and **Create**. \n\n 3. Copy the displayed token and paste at the `bl` *Enter your API access token:*\nprompt.\n\n 4. To confirm token is working correctly, use `bl` to display BinaryLane account details:\n```\nbl account get\n``` \n\n## Usage\n\n`bl` provides commands to access all functionality provided by the [BinaryLane\nAPI](https://api.binarylane.com.au/reference/), organised into a *command\ntree*. The general form for invoking an command is `bl NOUN [NOUN] VERB`.\nFor example:\n\n - `bl server list`: Displays list of servers\n - `bl domain record create`: Create a DNS record\n\nThe available commands at each level of the tree are displayed by running `bl`\nwith no arguments:\n\n```\n$ bl\n\nusage: bl [OPTIONS] COMMAND\n\nbl is a command-line interface for the binaryLane API\n\nOptions:\n --help Display available commands and descriptions\n\nAvailable Commands:\n account Access account commands\n action Access action commands\n configure Configure access to binaryLane API\n domain Access domain commands\n image Access image commands\n load-balancer Access load-balancer commands\n region Access region commands\n server Access server commands\n size Access size commands\n software Access software commands\n ssh-key Access ssh-key commands\n version Show the current version\n vpc Access vpc commands\n```\n\nTo see the available commands within the tree:\n\n```\nbl NOUN [NOUN]\n```\n\nFor example:\n\n```\n$ bl domain\nusage: bl domain [OPTIONS] COMMAND\n\nAccess domain commands\n\nOptions:\n --help Display available commands and descriptions\n\nAvailable Commands:\n create Create a new domain\n delete Delete an existing domain\n get Fetch an existing domain\n list List all domains\n nameservers Access domain nameservers commands\n record Access domain record commands\n```\n\nTo see the required arguments and optional parameters for a command:\n\n```\nbl NOUN [NOUN] VERB --help\n```\n\nFor example:\n\n```\n$ bl domain create --help\nusage: bl domain create [OPTIONS] --name NAME [PARAMETERS]\n\nCreate a New Domain\n\nOptions:\n --help Display command options and descriptions\n --curl Display API request as a \'curl\' command-line\n --no-header Display columns without field labels\n --output OUTPUT Desired output format [plain, table, tsv, json] (Default: "table")\n\nArguments:\n --name NAME The domain name to add to the DNS management system.\n\nParameters:\n --ip-address IP_ADDRESS\n An optional IPv4 address that will be used to create an A record for the root domain.\n```\n\n### Walkthrough: Creating a server\n\nServer creation is provided by the `bl server create` command. Use `--help` to\nview all arguments and parameters:\n\n```\n$ bl server list --help\nusage: bl server create [OPTIONS] --size SIZE --image IMAGE --region REGION [PARAMETERS]\n\nCreate a new server.\n\nOptions:\n --help Display command options and descriptions\n --curl Display API request as a \'curl\' command-line\n --no-header Display columns without field labels\n --output OUTPUT Desired output format [plain, table, tsv, json] (Default: "table")\n --async Do not wait for requested action to complete\n --quiet Do not show progress while waiting for requested action to complete\n\nArguments:\n --size SIZE The slug of the selected size.\n --image IMAGE The slug or id of the selected operating system.\n --region REGION The slug of the selected region.\n\nParameters:\n --name NAME The hostname of your server, such as vps01.yourcompany.com. If not\n provided, the server will be created with a random name.\n --backups, --no-backups\n If true this will enable two daily backups for the server.\n Options.daily_backups will override this value if provided. Setting\n this to false has no effect.\n --ipv6, --no-ipv6 If true this will enable IPv6 for this server.\n --ssh-keys [SSH_KEYS [SSH_KEYS ...]]\n This may be either the SSH keys Ids or fingerprints. If this is null\n or not provided any SSH keys that have been marked as default will be\n deployed (if the operating system supports SSH keys). Submit an empty\n array to disable deployment of default keys.\n --password PASSWORD If this is provided the default remote user account\'s password will be\n set to this value. If this is null a random password will be generated\n and emailed to the account email address.\n <additional parameters omitted for brevity>\n```\n\nIn the help displayed by `bl`, **Arguments** are required and **Parameters**\nare optional. For the `bl server list` command `--size SIZE`, `--image IMAGE`,\nand `--region REGION` are required. A list of available choices for each can be\ndisplayed by running:\n\n```\nbl size list\nbl image list\nbl region list\n```\n\nFor example, to create a minimum-sized Ubuntu 22.04 LTS server in Sydney using\nSSH public key authentication:\n\n```\n$ bl server create --size std-min --image ubuntu-22.04-lts --region syd\ncompleted.\n┌───────────────────────────┬─────────────────────────────────────────────────────────────────────────────────────┐\n│ name │ value │\n├───────────────────────────┼─────────────────────────────────────────────────────────────────────────────────────┤\n│ id │ 210658 │\n│ name │ giant-rudolf.bnr.la │\n│ memory │ 1024 │\n│ vcpus │ 1 │\n│ disk │ 20 │\n│ created_at │ 2023-01-20T02:02:32+00:00 │\n│ status │ new │\n│ region │ Sydney │\n│ image │ 20.04 LTS │\n│ size │ std-min │\n│ size_slug │ std-min │\n│ networks │ v4: [{\'ip_address\': \'175.45.180.1\', \'type\': \'public\', \'netmask\': \'255.255.255.0... │\n <additional rows omitted for brevity>\n└───────────────────────────┴─────────────────────────────────────────────────────────────────────────────────────┘\n```\n\n### Server passwords\n\nThe use of SSH public key authentication is strongly recommended where\npossible. When public key authentication is not suitable or the image being\ndeployed does not support SSH public key authentication (e.g. Windows Server),\ncommands such as `bl server create` and `bl server action password-reset` have\nan optional `--password PASSWORD` parameter that specifies the password to use.\n\nFor example, to create a server per the previous example with password\nauthentication:\n\n```\n$ bl server create --size std-min --image ubuntu-22.04-lts --region syd --password \'qq7s6GYZgbiVG3\'\n```\n\nUpon completion, the root password for the server in this example would be `qq7s6GYZgbiVG3`.\n\n:warning: **Internet-connected servers with password-based authentication enabled\nmust have a strong, randomly generated password.** Brute-force login attempts\nare pervasive on the public internet: if a server password is not randomly\ngenerated, unauthorised access is likely to occur.\n\n### Server actions\n\n`bl` can be used to perform any action that the BinaryLane website can perform,\nincluding:\n\n - Take and restore backups\n - Change plan, operating system, or reinstall\n - Restart and power cycle\n - and many more...\n\nA list of available commands is displayed by running `bl server action`:\n\n```\n$ bl server action\n\nAvailable Commands:\n add-disk Create an additional disk for a server\n attach-backup Attach a backup to a server\n change-advanced-features\n Change the advanced features of a server\n change-advanced-firewall-rules\n Change the advanced firewall rules for a server\n change-backup-schedule\n Change the backup schedule of a server\n change-ipv6 Enable or disable IPv6 for a server\n change-ipv6-reverse-nameservers\n Update the IPv6 reverse name servers for a server\n change-kernel Change the kernel of a server\n <additional actions omitted for brevity>\n ping Attempt to ping a server\n power-cycle Power a server off and then on\n power-off Power a server off\n power-on Power a server on\n reboot Request a server perform a reboot\n rebuild Rebuild an existing server\n rename Rename a server\n resize Update the size and related options for a server\n resize-disk Alter the size of an existing disk for a server\n restore Restore a backup to a server\n shutdown Request a server perform a shutdown\n take-backup Take a backup of a server\n uncancel Revert the cancellation of a server\n uptime Check the uptime of a server\n```\n\nEach server action has a mandatory `SERVER_ID` argument which can be obtained\nfrom `bl server list`.\n\nMany actions have additional *action-specific* arguments and parameters. Run\n`bl server action COMMAND --help` to see what a particular action supports.\n\n#### Example: password reset\n\n 1. Use `--help` to see the available arguments and parameters:\n\n\n```\n$ bl server action password-reset --help\nusage: bl server action password-reset [OPTIONS] SERVER_ID [PARAMETERS]\n\nReset the Password of a Server\n\n<options omitted for brevity>\n\nArguments:\n SERVER_ID The ID of the server on which the action should be performed.\n\nParameters:\n --username USERNAME The username of the user to change the password.\n --password PASSWORD If this is provided the specified or default remote user\'s account\n password will be set to this value.\n```\n\n 2. Use `bl server list` to obtain the numeric server ID. In this example, the\nserver requiring a password reset is ID 123456.\n\n 3. Provide the server ID and desired password to the `password-reset` command:\n\n```\nbl server action password-reset 123456 --password \'qq7s6GYZgbiVG3\'\n```\n\n### Asynchronous actions\n\n`bl` commands that perform an action - `bl create server`, `bl server\naction restore-backup`, and many others - default to *synchronous* handling\nwhere `bl` will display progress information to the console and not exit until\nthe command finishes.\n\nIn some scenarios such as when creating multiple servers, it may be desirable\nrun the command with *asynchronous* handling where `bl` will exit as\nsoon as the BinaryLane API accepts the requested command. To do so, include the\n`--async` option in the command invocation. For example:\n\n```\n$ bl server create --size std-min --image ubuntu-22.04-lts --region syd --async\n```\n\n### Configuration file\n\n`bl configure` creates a configuration file containing the API token, and reads\nthat configuration file on subsequent invocations. The configuration file is\nstored at:\n\n * `$XDG_CONFIG_HOME/binarylane/config.ini`\n\nTypically the environment variable `$XDG_CONFIG_HOME` is not set, in which case\nthe configuration file stored at:\n\n - **Linux/Mac/etc**: `$HOME/.config` - typical file location is\n `/home/username/.config/binarylane/config.ini`\n - **Windows**: `$APPDATA` - typical file location is\n `C:\\Users\\UserName\\AppData\\Roaming\\binarylane\\config.ini`\n\n\n### Environment variables\n\nFor environments where the use of `bl configure` and a permanent configuration\nfile are not suitable, environment variables may be utilised instead.\n\nThe environment variable `BL_API_TOKEN` may be used to provide the API token\nrequired to perform `bl` commands.\n\n## Versioning\n\n`bl` uses [semantic versioning](https://semver.org/spec/v2.0.0.html) to version\n[releases](https://github.com/binarylane/binarylane-cli/releases).\n\nSemantic versions are in the form of `MAJOR.MINOR.PATCH`. The value of `MAJOR`\nis currently **0**, which indicates that each new release of the `bl` program may\ncontain changes to its interface that are not backwards-compatible with\nprevious releases such as:\n\n - Command names may change, or moved within the command tree\n - Parameter names may change, or be removed entirely\n - Available field names may change, or be removed entirely\n - Default set of displayed fields displayed in output may change\n\nSuch changes in a new release are not likely to impact interactive use of `bl`,\nbut may cause problems for customers who integrate `bl` into non-interactive\nenvironments such as automation.\n\nIn non-interactive environments, customers should review the release\nChangelog prior to deploying an updated `0.x.y` release, and ensure that any\nrequired adjustments to the non-interactive environment are made prior to\nupgrading the `bl` program itself.\n',
94
79
  'author': "Nathan O'Sullivan",
@@ -0,0 +1,54 @@
1
+ from __future__ import annotations
2
+
3
+ from argparse import Namespace
4
+ from pathlib import Path
5
+ from typing import Dict, Optional
6
+
7
+ import binarylane.config.sources as src
8
+ from binarylane.config.options import OptionAttributes, OptionName
9
+ from binarylane.config.repository import Repository, Source
10
+
11
+
12
+ class _Config(Repository, OptionAttributes):
13
+ def __init__(self) -> None:
14
+ super().__init__(default_source=True)
15
+
16
+
17
+ class DefaultConfig(_Config):
18
+ pass
19
+
20
+
21
+ class UserConfig(_Config):
22
+ def __init__(self, *, config_file: Optional[Path] = src.FileSource.DEFAULT_PATH) -> None:
23
+ super().__init__()
24
+
25
+ self.add_source(src.FileSource(config_file))
26
+ self.add_source(src.EnvironmentSource())
27
+
28
+ def add_commandline(self, commandline: Namespace) -> None:
29
+ self.add_source(src.CommandlineSource(commandline))
30
+
31
+ def add_source(self, source: Source) -> None:
32
+ super().add_source(source)
33
+
34
+ # If we have a file source, update its config section:
35
+ try:
36
+ self.get_source(src.FileSource).section_name = self.config_section
37
+ except KeyError:
38
+ pass
39
+
40
+ def save(self) -> None:
41
+ # We will determine what to save by comparing current state with default
42
+ default = DefaultConfig()
43
+
44
+ # Create a dictionary of options with non-default values
45
+ config_options: Dict[str, Optional[str]] = {}
46
+ config_options[OptionName.API_URL] = self.api_url if self.api_url != default.api_url else None
47
+ config_options[OptionName.API_TOKEN] = self.api_token if self.api_token != default.api_token else None
48
+ config_options[OptionName.API_DEVELOPMENT] = (
49
+ str(self.api_development).lower() if self.api_development != default.api_development else None
50
+ )
51
+
52
+ # Write configuration to disk
53
+ file = self.get_source(src.FileSource)
54
+ file.save(config_options)
@@ -0,0 +1,94 @@
1
+ from __future__ import annotations
2
+
3
+ from abc import ABC, abstractmethod
4
+ from configparser import ConfigParser
5
+ from enum import Enum
6
+ from typing import ClassVar, Optional
7
+
8
+
9
+ class OptionName(str, Enum):
10
+ API_URL = "api-url"
11
+ API_TOKEN = "api-token"
12
+ API_DEVELOPMENT = "api-development"
13
+ CONFIG_SECTION = "context"
14
+
15
+ def __str__(self) -> str:
16
+ return self.value
17
+
18
+
19
+ class OptionAttributes(ABC):
20
+ """Typed access to value of each configuration option"""
21
+
22
+ UNCONFIGURED_TOKEN: ClassVar[str] = "unconfigured"
23
+
24
+ @abstractmethod
25
+ def get_option(self, name: OptionName) -> Optional[str]:
26
+ ...
27
+
28
+ @abstractmethod
29
+ def required_option(self, name: OptionName) -> str:
30
+ ...
31
+
32
+ @abstractmethod
33
+ def add_option(self, name: OptionName, value: str) -> None:
34
+ ...
35
+
36
+ @staticmethod
37
+ def to_bool(name: str) -> bool:
38
+ value = ConfigParser.BOOLEAN_STATES.get(name.lower())
39
+ if value is not None:
40
+ return value
41
+ raise ValueError(f"Not a boolean: {name}")
42
+
43
+ @property
44
+ def api_url(self) -> str:
45
+ return self.required_option(OptionName.API_URL)
46
+
47
+ @property
48
+ def api_token(self) -> str:
49
+ value = self.get_option(OptionName.API_TOKEN)
50
+
51
+ # NOTE: on handling when `get(Option.API_TOKEN) is None` - i.e. has not been configured:
52
+ #
53
+ # 1. The code-generated endpoints currently all have AuthenticatedClient as a parameter, regardless of
54
+ # whether the given endpoint actually requires authentication, however there are endpoints returning
55
+ # non-customer specific information like `bl size list`, `bl region list` that do not require
56
+ # authentication to get a HTTP 200 response from. For this reason, we currently must create an
57
+ # AuthenticatedClient() object for every request.
58
+ # 2. The code-generated AuthenticatedClient is generated with `token: str` rather than `Optional[str]`
59
+ # which makes sense, so we need to provide /something/.
60
+ # 3. If token is "" then httpx will raise LocalProtocolError about the "Authorization: Bearer " header.
61
+ # 4. If static type-checking is ignored and AuthenticatedClient is provided with `token=None`, then
62
+ # that value is coerced to str resulting in "Authorization: Bearer None" but that will look like a bug.
63
+ # 5. Since "" is not accepted by httpx, for clarity we use a value of "unconfigured" for this situation.
64
+ # 6. If the called endpoint does require an API token the response will be HTTP 401. Our response() method
65
+ # will then display a message requesting a token be provided via `bl configure`. If endpoint is
66
+ # publicly accessable, the "Authorization: Bearer unconfigured" header is ignored and the response
67
+ # will be HTTP 200, which can then be processed as normal.
68
+ #
69
+ # TLDR: when user has not provided an API token, because of current limitations with generated
70
+ # client library we cannot know whether a given endpoint requires authorization or is publically accessible,
71
+ # so we use "Authorization: Bearer unconfigured" and handle whatever HTTP response the endpoint provides.
72
+ #
73
+ # If point 1 is resolved in the future, when user has not provided a token and code generation correctly
74
+ # indicates that authorization is required we can skip the API call entirely and immediately display the
75
+ # message requesting `bl configure`; while public endpoints would use the token-less Client() instead.
76
+
77
+ if value is None:
78
+ return self.UNCONFIGURED_TOKEN
79
+ return value
80
+
81
+ @api_token.setter
82
+ def api_token(self, value: str) -> None:
83
+ self.add_option(OptionName.API_TOKEN, value)
84
+
85
+ @property
86
+ def api_development(self) -> bool:
87
+ value = self.get_option(OptionName.API_DEVELOPMENT)
88
+ if value is None:
89
+ return False
90
+ return self.to_bool(value)
91
+
92
+ @property
93
+ def config_section(self) -> str:
94
+ return self.required_option(OptionName.CONFIG_SECTION)
@@ -0,0 +1,53 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import List, Optional, Type, TypeVar
4
+ from binarylane.pycompat.typing import Protocol
5
+
6
+ import binarylane.config.sources as src
7
+ from binarylane.config.options import OptionName
8
+
9
+
10
+ class Source(Protocol):
11
+ def get(self, name: str) -> Optional[str]:
12
+ ...
13
+
14
+
15
+ T = TypeVar("T", bound=Source)
16
+
17
+
18
+ class Repository:
19
+ _sources: List[Source]
20
+
21
+ def __init__(self, default_source: bool = True) -> None:
22
+ self._sources = []
23
+
24
+ if default_source:
25
+ self.add_source(src.DefaultSource())
26
+
27
+ def add_source(self, source: Source) -> None:
28
+ self._sources.append(source)
29
+
30
+ def get_source(self, source_type: Type[T]) -> T:
31
+ for source in self._sources[::-1]:
32
+ if isinstance(source, source_type):
33
+ return source
34
+ raise KeyError(str(source_type))
35
+
36
+ def add_option(self, name: OptionName, value: str) -> None:
37
+ self.add_source(src.RuntimeSource({name: value}))
38
+
39
+ def get_option(self, name: OptionName) -> Optional[str]:
40
+ for source in self._sources[::-1]:
41
+ value = source.get(name)
42
+ if value is not None:
43
+ return value
44
+ return None
45
+
46
+ def required_option(self, name: OptionName) -> str:
47
+ value = self.get_option(name)
48
+ if value is None:
49
+ raise KeyError(name)
50
+ return value
51
+
52
+ def __repr__(self) -> str:
53
+ return f"Repository([{', '.join([repr(source) for source in self._sources])}])"
@@ -0,0 +1,141 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import configparser
5
+ import os
6
+ import sys
7
+ from abc import ABC
8
+ from pathlib import Path
9
+ from typing import ClassVar, Dict, Optional
10
+
11
+
12
+ class _SourceBase(ABC):
13
+ _config: Dict[str, str]
14
+
15
+ def get(self, name: str) -> Optional[str]:
16
+ return self._config.get(name, None)
17
+
18
+ def __repr__(self) -> str:
19
+ return f"{type(self).__name__}({self._config})"
20
+
21
+
22
+ class CommandlineSource(_SourceBase):
23
+ def __init__(self, config: argparse.Namespace) -> None:
24
+ self._config = {key.replace("_", "-"): str(value) for key, value in vars(config).items() if value is not None}
25
+
26
+
27
+ class DefaultSource(_SourceBase):
28
+ def __init__(self) -> None:
29
+ self._config = {
30
+ "api-url": "https://api.binarylane.com.au",
31
+ "context": "bl",
32
+ }
33
+
34
+
35
+ class EnvironmentSource(_SourceBase):
36
+ prefix: ClassVar[str] = "BL_"
37
+
38
+ def __init__(self) -> None:
39
+ self._config = {self._get_name(key): value for key, value in os.environ.items() if key.startswith(self.prefix)}
40
+
41
+ def _get_name(self, key: str) -> str:
42
+ return key[len(self.prefix) :].lower().replace("_", "-")
43
+
44
+
45
+ class FileSource:
46
+ DEFAULT_PATH = Path("__DEFAULT__")
47
+ _DIRNAME = "binarylane"
48
+ _FILENAME = "config.ini"
49
+ _path: Optional[Path]
50
+ section_name: str
51
+
52
+ _parser: configparser.ConfigParser
53
+
54
+ def __init__(self, config_file: Optional[Path] = None) -> None:
55
+ if config_file is self.DEFAULT_PATH:
56
+ config_file = self._get_config_dir() / self._FILENAME
57
+ self._path = config_file
58
+
59
+ # ConfigParser with default settings supports a lot of different features. We have disabled them
60
+ # to narrow the configuration file format, to simplify a potential migration to a different config format.
61
+ self._parser = configparser.ConfigParser(
62
+ delimiters=("="),
63
+ comment_prefixes=("#", ";"),
64
+ empty_lines_in_values=False,
65
+ interpolation=None,
66
+ default_section="", # this effectively disables the default section as `[]` is not a valid section header
67
+ )
68
+ self._read()
69
+ self.section_name = "bl"
70
+
71
+ @staticmethod
72
+ def _get_config_home() -> Path:
73
+ """Return platform-specific path that programs should store configuration in"""
74
+ # On windows, configuration is stored in APPDATA
75
+ if sys.platform == "win32":
76
+ appdata = os.getenv("APPDATA")
77
+ if not appdata:
78
+ raise EnvironmentError("%APPDATA% is not set?")
79
+ return Path(appdata)
80
+
81
+ # On other systems, use XDG_CONFIG_HOME if set
82
+ xdg_config_home = os.getenv("XDG_CONFIG_HOME")
83
+ if xdg_config_home:
84
+ return Path(xdg_config_home)
85
+
86
+ # Otherwise, use HOME/.config
87
+ home_config = Path.home() / ".config"
88
+
89
+ # Ensure $HOME/.config is a directory, creating it if necessary
90
+ if home_config.exists() and not home_config.is_dir():
91
+ raise EnvironmentError(f"{home_config} is not a directory?")
92
+ home_config.mkdir(mode=0o700, exist_ok=True)
93
+ return home_config
94
+
95
+ def _get_config_dir(self) -> Path:
96
+ return self._get_config_home() / self._DIRNAME
97
+
98
+ def _read(self) -> None:
99
+ if self._path is None:
100
+ return
101
+
102
+ if self._path.exists():
103
+ self._parser.read(self._path)
104
+
105
+ def save(self, config_options: Dict[str, Optional[str]]) -> None:
106
+ if self._path is None:
107
+ raise ValueError("Cannot save when FileSource.config_file is None")
108
+
109
+ # Update the section with provided options:
110
+ for option, value in config_options.items():
111
+ if value is not None:
112
+ # ConfigParser needs actual str, not _Value
113
+ self._section[option] = str(value)
114
+ # A value of None means "use default", and so should be removed from the section
115
+ else:
116
+ self._section.pop(option, None)
117
+
118
+ # Ensure config directory exists
119
+ config_dir = self._path.parent
120
+ config_dir.mkdir(mode=0o700, exist_ok=True)
121
+
122
+ # Write the updated config to disk
123
+ with open(self._path, "w", encoding="utf-8") as file:
124
+ self._parser.write(file)
125
+
126
+ @property
127
+ def _section(self) -> configparser.SectionProxy:
128
+ if self.section_name not in self._parser:
129
+ self._parser[self.section_name] = {}
130
+ return self._parser[self.section_name]
131
+
132
+ def get(self, name: str) -> Optional[str]:
133
+ return self._section.get(name, None)
134
+
135
+ def __repr__(self) -> str:
136
+ return f"FileSource(config_file={self._path!r}, section_name={self.section_name!r})"
137
+
138
+
139
+ class RuntimeSource(_SourceBase):
140
+ def __init__(self, config: Dict[str, str]) -> None:
141
+ self._config = config
@@ -4,7 +4,7 @@ import logging
4
4
  import os
5
5
  import sys
6
6
 
7
- from binarylane.console.app.app import App
7
+ from binarylane.console.app import App
8
8
 
9
9
  logger = logging.getLogger(__name__)
10
10
 
@@ -22,3 +22,7 @@ def main() -> int:
22
22
  except Exception as exc:
23
23
  logger.exception(exc)
24
24
  return -1
25
+
26
+
27
+ if __name__ == "__main__":
28
+ sys.exit(main())