ha-sdk-python 1.1.2__tar.gz → 1.1.3__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 (313) hide show
  1. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/PKG-INFO +1 -1
  2. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/__init__.py +10 -0
  3. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/vps_management_api.py +303 -3
  4. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/__init__.py +5 -0
  5. ha_sdk_python-1.1.3/ha_sdk_python/models/encrypted_password_response_data.py +95 -0
  6. ha_sdk_python-1.1.3/ha_sdk_python/models/get_encrypted_password_request_content.py +89 -0
  7. ha_sdk_python-1.1.3/ha_sdk_python/models/get_encrypted_password_response_content.py +94 -0
  8. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/no_vnc_console_details.py +10 -4
  9. ha_sdk_python-1.1.3/ha_sdk_python/models/password_encryption_info.py +93 -0
  10. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_credentials.py +1 -1
  11. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_details_response.py +10 -2
  12. ha_sdk_python-1.1.3/ha_sdk_python/models/vps_ip_address_detail.py +95 -0
  13. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_vm_info.py +1 -1
  14. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/retryable_paths.py +1 -0
  15. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python.egg-info/PKG-INFO +1 -1
  16. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python.egg-info/SOURCES.txt +5 -0
  17. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/pyproject.toml +1 -1
  18. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/LICENSE +0 -0
  19. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/README.md +0 -0
  20. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/__init__.py +0 -0
  21. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/backups_api.py +0 -0
  22. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/console_access_api.py +0 -0
  23. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/dns_api.py +0 -0
  24. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/domains_api.py +0 -0
  25. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/firewall_api.py +0 -0
  26. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/monitoring_api.py +0 -0
  27. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/power_management_api.py +0 -0
  28. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/service_management_api.py +0 -0
  29. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api/snapshots_api.py +0 -0
  30. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api_client.py +0 -0
  31. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/api_response.py +0 -0
  32. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/configuration.py +0 -0
  33. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/exceptions.py +0 -0
  34. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/add_dns_record_request_content.py +0 -0
  35. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/add_dns_record_response_content.py +0 -0
  36. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/backup_create_response_data.py +0 -0
  37. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/backup_creation_info.py +0 -0
  38. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/backup_item.py +0 -0
  39. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/backup_mode.py +0 -0
  40. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/backup_mode_type.py +0 -0
  41. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/backup_schedule.py +0 -0
  42. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/backup_schedule_list_response_data.py +0 -0
  43. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/bad_request_error_response_content.py +0 -0
  44. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/billing_cycle.py +0 -0
  45. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/cancel_vps_request_content.py +0 -0
  46. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/cancel_vps_response_content.py +0 -0
  47. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/catalogue_config_option.py +0 -0
  48. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/catalogue_config_suboption.py +0 -0
  49. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/catalogue_currency.py +0 -0
  50. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/catalogue_data.py +0 -0
  51. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/catalogue_group.py +0 -0
  52. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/catalogue_plan.py +0 -0
  53. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/catalogue_product.py +0 -0
  54. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/check_domain_availability_request_content.py +0 -0
  55. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/check_domain_availability_response_content.py +0 -0
  56. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/compression_method.py +0 -0
  57. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/compression_type.py +0 -0
  58. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_backup_request_content.py +0 -0
  59. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_backup_response_content.py +0 -0
  60. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_backup_schedule_request_content.py +0 -0
  61. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_backup_schedule_response_content.py +0 -0
  62. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_firewall_rule_request_content.py +0 -0
  63. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_firewall_rule_response_content.py +0 -0
  64. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_notification_request_content.py +0 -0
  65. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_notification_response_content.py +0 -0
  66. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_domain_item.py +0 -0
  67. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_items.py +0 -0
  68. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_product.py +0 -0
  69. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_product_item.py +0 -0
  70. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_request_content.py +0 -0
  71. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_response_content.py +0 -0
  72. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_response_data.py +0 -0
  73. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_order_total.py +0 -0
  74. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_power_task_request_content.py +0 -0
  75. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_power_task_response_content.py +0 -0
  76. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_rdns_record_request_content.py +0 -0
  77. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_rdns_record_response_content.py +0 -0
  78. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_rdns_record_response_data.py +0 -0
  79. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_snapshot_job_request_content.py +0 -0
  80. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_snapshot_job_response_content.py +0 -0
  81. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_snapshot_request_content.py +0 -0
  82. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/create_snapshot_response_content.py +0 -0
  83. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/day_of_week.py +0 -0
  84. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_backup_request_content.py +0 -0
  85. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_backup_response_content.py +0 -0
  86. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_backup_schedule_request_content.py +0 -0
  87. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_backup_schedule_response_content.py +0 -0
  88. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_dns_record_request_content.py +0 -0
  89. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_dns_record_response_content.py +0 -0
  90. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_firewall_rule_request_content.py +0 -0
  91. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_firewall_rule_response_content.py +0 -0
  92. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_notification_request_content.py +0 -0
  93. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_notification_response_content.py +0 -0
  94. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_power_task_request_content.py +0 -0
  95. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_power_task_response_content.py +0 -0
  96. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_rdns_record_request_content.py +0 -0
  97. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_rdns_record_response_content.py +0 -0
  98. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_snapshot_job_request_content.py +0 -0
  99. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_snapshot_job_response_content.py +0 -0
  100. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_snapshot_request_content.py +0 -0
  101. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/delete_snapshot_response_content.py +0 -0
  102. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/dns_create_candidate_info.py +0 -0
  103. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/dns_record_info.py +0 -0
  104. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/dns_record_mutation_data.py +0 -0
  105. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/dns_record_mutation_record.py +0 -0
  106. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/dns_zone_info.py +0 -0
  107. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/dnssec_record_info.py +0 -0
  108. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_addon_feature.py +0 -0
  109. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_addons.py +0 -0
  110. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_availability_result.py +0 -0
  111. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_available_features.py +0 -0
  112. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_contact_source_type.py +0 -0
  113. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_contact_update.py +0 -0
  114. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_contact_updates.py +0 -0
  115. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_contacts.py +0 -0
  116. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_detail.py +0 -0
  117. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_expiry_countdown.py +0 -0
  118. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_hosting_link.py +0 -0
  119. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_info.py +0 -0
  120. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_nameservers.py +0 -0
  121. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_pricing.py +0 -0
  122. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_pricing_entry.py +0 -0
  123. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_requiring_data_additional_field.py +0 -0
  124. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_requiring_data_info.py +0 -0
  125. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_search_response_data.py +0 -0
  126. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/domain_setting_key.py +0 -0
  127. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/edit_backup_schedule_request_content.py +0 -0
  128. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/edit_backup_schedule_response_content.py +0 -0
  129. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/edit_dns_record_request_content.py +0 -0
  130. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/edit_dns_record_response_content.py +0 -0
  131. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/firewall_list_response_data.py +0 -0
  132. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/firewall_move_direction.py +0 -0
  133. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/firewall_move_response_data.py +0 -0
  134. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/firewall_option.py +0 -0
  135. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/firewall_rule.py +0 -0
  136. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/firewall_rule_action.py +0 -0
  137. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/firewall_rule_type.py +0 -0
  138. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/forbidden_error_response_content.py +0 -0
  139. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_catalogue_request_content.py +0 -0
  140. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_catalogue_response_content.py +0 -0
  141. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_dns_zone_details_data.py +0 -0
  142. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_dns_zone_details_request_content.py +0 -0
  143. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_dns_zone_details_response_content.py +0 -0
  144. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_domain_contacts_data.py +0 -0
  145. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_domain_contacts_request_content.py +0 -0
  146. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_domain_contacts_response_content.py +0 -0
  147. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_domain_data.py +0 -0
  148. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_domain_request_content.py +0 -0
  149. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_domain_response_content.py +0 -0
  150. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_no_vnc_console_request_content.py +0 -0
  151. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_no_vnc_console_response_content.py +0 -0
  152. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_vps_config_request_content.py +0 -0
  153. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_vps_config_response_content.py +0 -0
  154. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_vps_details_request_content.py +0 -0
  155. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/get_vps_details_response_content.py +0 -0
  156. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/internal_service_error_response_content.py +0 -0
  157. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/invalid_state_error_response_content.py +0 -0
  158. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_backup_schedules_request_content.py +0 -0
  159. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_backup_schedules_response_content.py +0 -0
  160. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_backups_request_content.py +0 -0
  161. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_backups_response_content.py +0 -0
  162. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_dns_create_candidates_data.py +0 -0
  163. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_dns_create_candidates_response_content.py +0 -0
  164. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_dns_zones_data.py +0 -0
  165. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_dns_zones_response_content.py +0 -0
  166. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_dnssec_records_data.py +0 -0
  167. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_dnssec_records_request_content.py +0 -0
  168. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_dnssec_records_response_content.py +0 -0
  169. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_domains_data.py +0 -0
  170. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_domains_requiring_data_data.py +0 -0
  171. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_domains_requiring_data_response_content.py +0 -0
  172. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_domains_response_content.py +0 -0
  173. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_firewall_rules_request_content.py +0 -0
  174. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_firewall_rules_response_content.py +0 -0
  175. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_isos_request_content.py +0 -0
  176. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_isos_response_content.py +0 -0
  177. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_isos_response_data.py +0 -0
  178. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_notifications_request_content.py +0 -0
  179. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_notifications_response_content.py +0 -0
  180. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_orders_response_content.py +0 -0
  181. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_orders_response_data.py +0 -0
  182. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_power_tasks_request_content.py +0 -0
  183. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_power_tasks_response_content.py +0 -0
  184. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_rdns_records_response_content.py +0 -0
  185. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_rdns_response_data.py +0 -0
  186. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_reinstall_os_request_content.py +0 -0
  187. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_reinstall_os_response_content.py +0 -0
  188. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_reinstall_os_response_data.py +0 -0
  189. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_snapshot_jobs_request_content.py +0 -0
  190. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_snapshot_jobs_response_content.py +0 -0
  191. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_snapshots_request_content.py +0 -0
  192. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_snapshots_response_content.py +0 -0
  193. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_vps_services_data.py +0 -0
  194. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/list_vps_services_response_content.py +0 -0
  195. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/mount_iso_request_content.py +0 -0
  196. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/mount_iso_response_content.py +0 -0
  197. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/move_firewall_rule_request_content.py +0 -0
  198. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/move_firewall_rule_response_content.py +0 -0
  199. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/no_vnc_console_response_data.py +0 -0
  200. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/notification.py +0 -0
  201. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/notification_create_response_data.py +0 -0
  202. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/notification_dialog_rules.py +0 -0
  203. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/notification_list_response_data.py +0 -0
  204. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/notification_status.py +0 -0
  205. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/operation_status.py +0 -0
  206. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/order.py +0 -0
  207. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/order_last_attempt.py +0 -0
  208. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/order_warning.py +0 -0
  209. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/payment_error.py +0 -0
  210. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/payment_status.py +0 -0
  211. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/power_task.py +0 -0
  212. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/power_task_action.py +0 -0
  213. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/power_task_create_response_data.py +0 -0
  214. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/power_task_dialog_rules.py +0 -0
  215. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/power_task_job_type.py +0 -0
  216. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/power_task_list_response_data.py +0 -0
  217. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/rdns_available_item.py +0 -0
  218. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/rdns_pool.py +0 -0
  219. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/rdns_record.py +0 -0
  220. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/reboot_vps_request_content.py +0 -0
  221. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/reboot_vps_response_content.py +0 -0
  222. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/resource_not_found_error_response_content.py +0 -0
  223. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/restore_backup_request_content.py +0 -0
  224. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/restore_backup_response_content.py +0 -0
  225. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/retry_payment_request_content.py +0 -0
  226. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/retry_payment_response_content.py +0 -0
  227. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/retry_payment_response_data.py +0 -0
  228. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/retry_payment_total.py +0 -0
  229. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/rollback_snapshot_request_content.py +0 -0
  230. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/rollback_snapshot_response_content.py +0 -0
  231. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/save_domain_required_data_data.py +0 -0
  232. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/save_domain_required_data_request_content.py +0 -0
  233. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/save_domain_required_data_response_content.py +0 -0
  234. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/service_backups_response_data.py +0 -0
  235. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/service_snapshots_response_data.py +0 -0
  236. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/service_unavailable_error_response_content.py +0 -0
  237. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/shutdown_vps_request_content.py +0 -0
  238. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/shutdown_vps_response_content.py +0 -0
  239. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_create_response_data.py +0 -0
  240. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_item.py +0 -0
  241. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_job.py +0 -0
  242. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_job_delete_response_data.py +0 -0
  243. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_job_limits.py +0 -0
  244. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_job_list_response_data.py +0 -0
  245. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_job_mutation_response_data.py +0 -0
  246. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_job_period.py +0 -0
  247. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/snapshot_job_update_response_data.py +0 -0
  248. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/start_vps_request_content.py +0 -0
  249. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/start_vps_response_content.py +0 -0
  250. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/stop_vps_request_content.py +0 -0
  251. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/stop_vps_response_content.py +0 -0
  252. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/suggest_domains_request_content.py +0 -0
  253. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/suggest_domains_response_content.py +0 -0
  254. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/too_many_requests_error_response_content.py +0 -0
  255. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/trigger_reinstall_request_content.py +0 -0
  256. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/trigger_reinstall_response_content.py +0 -0
  257. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/trigger_reinstall_response_data.py +0 -0
  258. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/unauthorized_error_response_content.py +0 -0
  259. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_contacts_data.py +0 -0
  260. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_contacts_request_content.py +0 -0
  261. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_contacts_response_content.py +0 -0
  262. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_nameservers_data.py +0 -0
  263. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_nameservers_request_content.py +0 -0
  264. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_nameservers_response_content.py +0 -0
  265. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_settings_data.py +0 -0
  266. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_settings_request_content.py +0 -0
  267. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_domain_settings_response_content.py +0 -0
  268. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_firewall_rule_request_content.py +0 -0
  269. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_firewall_rule_response_content.py +0 -0
  270. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_notification_request_content.py +0 -0
  271. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_notification_response_content.py +0 -0
  272. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_power_task_request_content.py +0 -0
  273. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_power_task_response_content.py +0 -0
  274. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_snapshot_job_request_content.py +0 -0
  275. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_snapshot_job_response_content.py +0 -0
  276. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_snapshot_request_content.py +0 -0
  277. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_snapshot_response_content.py +0 -0
  278. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_vps_config_request_content.py +0 -0
  279. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/update_vps_config_response_content.py +0 -0
  280. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_base.py +0 -0
  281. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_breakdown.py +0 -0
  282. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_config_item.py +0 -0
  283. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_currency.py +0 -0
  284. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_discount.py +0 -0
  285. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_plan_config.py +0 -0
  286. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_plan_pricing.py +0 -0
  287. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_price_range.py +0 -0
  288. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_product.py +0 -0
  289. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_product_result.py +0 -0
  290. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_prorata.py +0 -0
  291. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_request_content.py +0 -0
  292. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_response_content.py +0 -0
  293. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_response_data.py +0 -0
  294. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_summary.py +0 -0
  295. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validate_pricing_summary_recurring.py +0 -0
  296. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/validation_error_response_content.py +0 -0
  297. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_available_features.py +0 -0
  298. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_cancel_response_data.py +0 -0
  299. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_cancel_type.py +0 -0
  300. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_config_response_data.py +0 -0
  301. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_cpu_info.py +0 -0
  302. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_disk_info.py +0 -0
  303. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_memory_info.py +0 -0
  304. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_network_rate.py +0 -0
  305. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_os_info.py +0 -0
  306. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_service_info.py +0 -0
  307. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/models/vps_simple_action_response_data.py +0 -0
  308. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/py.typed +0 -0
  309. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python/rest.py +0 -0
  310. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python.egg-info/dependency_links.txt +0 -0
  311. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python.egg-info/requires.txt +0 -0
  312. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/ha_sdk_python.egg-info/top_level.txt +0 -0
  313. {ha_sdk_python-1.1.2 → ha_sdk_python-1.1.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ha-sdk-python
3
- Version: 1.1.2
3
+ Version: 1.1.3
4
4
  Summary: Python SDK for the HostAfrica API
5
5
  Author-email: HostAfrica <support@hostafrica.com>
6
6
  Project-URL: Repository, https://github.com/hostafrica-dev/ha-sdk-python
@@ -134,6 +134,7 @@ __all__ = [
134
134
  "EditBackupScheduleResponseContent",
135
135
  "EditDnsRecordRequestContent",
136
136
  "EditDnsRecordResponseContent",
137
+ "EncryptedPasswordResponseData",
137
138
  "FirewallListResponseData",
138
139
  "FirewallMoveDirection",
139
140
  "FirewallMoveResponseData",
@@ -153,6 +154,8 @@ __all__ = [
153
154
  "GetDomainData",
154
155
  "GetDomainRequestContent",
155
156
  "GetDomainResponseContent",
157
+ "GetEncryptedPasswordRequestContent",
158
+ "GetEncryptedPasswordResponseContent",
156
159
  "GetNoVncConsoleRequestContent",
157
160
  "GetNoVncConsoleResponseContent",
158
161
  "GetVpsConfigRequestContent",
@@ -213,6 +216,7 @@ __all__ = [
213
216
  "Order",
214
217
  "OrderLastAttempt",
215
218
  "OrderWarning",
219
+ "PasswordEncryptionInfo",
216
220
  "PaymentError",
217
221
  "PaymentStatus",
218
222
  "PowerTask",
@@ -309,6 +313,7 @@ __all__ = [
309
313
  "VpsCredentials",
310
314
  "VpsDetailsResponse",
311
315
  "VpsDiskInfo",
316
+ "VpsIpAddressDetail",
312
317
  "VpsMemoryInfo",
313
318
  "VpsNetworkRate",
314
319
  "VpsOsInfo",
@@ -438,6 +443,7 @@ from ha_sdk_python.models.edit_backup_schedule_request_content import EditBackup
438
443
  from ha_sdk_python.models.edit_backup_schedule_response_content import EditBackupScheduleResponseContent as EditBackupScheduleResponseContent
439
444
  from ha_sdk_python.models.edit_dns_record_request_content import EditDnsRecordRequestContent as EditDnsRecordRequestContent
440
445
  from ha_sdk_python.models.edit_dns_record_response_content import EditDnsRecordResponseContent as EditDnsRecordResponseContent
446
+ from ha_sdk_python.models.encrypted_password_response_data import EncryptedPasswordResponseData as EncryptedPasswordResponseData
441
447
  from ha_sdk_python.models.firewall_list_response_data import FirewallListResponseData as FirewallListResponseData
442
448
  from ha_sdk_python.models.firewall_move_direction import FirewallMoveDirection as FirewallMoveDirection
443
449
  from ha_sdk_python.models.firewall_move_response_data import FirewallMoveResponseData as FirewallMoveResponseData
@@ -457,6 +463,8 @@ from ha_sdk_python.models.get_domain_contacts_response_content import GetDomainC
457
463
  from ha_sdk_python.models.get_domain_data import GetDomainData as GetDomainData
458
464
  from ha_sdk_python.models.get_domain_request_content import GetDomainRequestContent as GetDomainRequestContent
459
465
  from ha_sdk_python.models.get_domain_response_content import GetDomainResponseContent as GetDomainResponseContent
466
+ from ha_sdk_python.models.get_encrypted_password_request_content import GetEncryptedPasswordRequestContent as GetEncryptedPasswordRequestContent
467
+ from ha_sdk_python.models.get_encrypted_password_response_content import GetEncryptedPasswordResponseContent as GetEncryptedPasswordResponseContent
460
468
  from ha_sdk_python.models.get_no_vnc_console_request_content import GetNoVncConsoleRequestContent as GetNoVncConsoleRequestContent
461
469
  from ha_sdk_python.models.get_no_vnc_console_response_content import GetNoVncConsoleResponseContent as GetNoVncConsoleResponseContent
462
470
  from ha_sdk_python.models.get_vps_config_request_content import GetVpsConfigRequestContent as GetVpsConfigRequestContent
@@ -517,6 +525,7 @@ from ha_sdk_python.models.operation_status import OperationStatus as OperationSt
517
525
  from ha_sdk_python.models.order import Order as Order
518
526
  from ha_sdk_python.models.order_last_attempt import OrderLastAttempt as OrderLastAttempt
519
527
  from ha_sdk_python.models.order_warning import OrderWarning as OrderWarning
528
+ from ha_sdk_python.models.password_encryption_info import PasswordEncryptionInfo as PasswordEncryptionInfo
520
529
  from ha_sdk_python.models.payment_error import PaymentError as PaymentError
521
530
  from ha_sdk_python.models.payment_status import PaymentStatus as PaymentStatus
522
531
  from ha_sdk_python.models.power_task import PowerTask as PowerTask
@@ -613,6 +622,7 @@ from ha_sdk_python.models.vps_cpu_info import VpsCpuInfo as VpsCpuInfo
613
622
  from ha_sdk_python.models.vps_credentials import VpsCredentials as VpsCredentials
614
623
  from ha_sdk_python.models.vps_details_response import VpsDetailsResponse as VpsDetailsResponse
615
624
  from ha_sdk_python.models.vps_disk_info import VpsDiskInfo as VpsDiskInfo
625
+ from ha_sdk_python.models.vps_ip_address_detail import VpsIpAddressDetail as VpsIpAddressDetail
616
626
  from ha_sdk_python.models.vps_memory_info import VpsMemoryInfo as VpsMemoryInfo
617
627
  from ha_sdk_python.models.vps_network_rate import VpsNetworkRate as VpsNetworkRate
618
628
  from ha_sdk_python.models.vps_os_info import VpsOsInfo as VpsOsInfo
@@ -15,6 +15,8 @@ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
15
15
  from typing import Any, Dict, List, Optional, Tuple, Union
16
16
  from typing_extensions import Annotated
17
17
 
18
+ from ha_sdk_python.models.get_encrypted_password_request_content import GetEncryptedPasswordRequestContent
19
+ from ha_sdk_python.models.get_encrypted_password_response_content import GetEncryptedPasswordResponseContent
18
20
  from ha_sdk_python.models.get_vps_config_request_content import GetVpsConfigRequestContent
19
21
  from ha_sdk_python.models.get_vps_config_response_content import GetVpsConfigResponseContent
20
22
  from ha_sdk_python.models.get_vps_details_request_content import GetVpsDetailsRequestContent
@@ -49,6 +51,304 @@ class VPSManagementApi:
49
51
  self.api_client = api_client
50
52
 
51
53
 
54
+ @validate_call
55
+ def get_encrypted_password(
56
+ self,
57
+ get_encrypted_password_request_content: GetEncryptedPasswordRequestContent,
58
+ _request_timeout: Union[
59
+ None,
60
+ Annotated[StrictFloat, Field(gt=0)],
61
+ Tuple[
62
+ Annotated[StrictFloat, Field(gt=0)],
63
+ Annotated[StrictFloat, Field(gt=0)]
64
+ ]
65
+ ] = None,
66
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
67
+ _content_type: Optional[StrictStr] = None,
68
+ _headers: Optional[Dict[StrictStr, Any]] = None,
69
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
70
+ ) -> GetEncryptedPasswordResponseContent:
71
+ """get_encrypted_password
72
+
73
+ Retrieves the VPS username and root password without exposing plaintext over the API. Send a PEM-encoded RSA 4096-bit public key; the API encrypts the password with RSA-OAEP (SHA-256), and returns base64 ciphertext plus encryption metadata. Never send the private key. Invalid or non-4096-bit keys return HTTP 422 ValidationError. Generate a key with: openssl genrsa -out private.pem 4096 && openssl rsa -in private.pem -pubout -out public.pem. Decrypt with: echo CIPHERTEXT | base64 -d | openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256 (macOS: base64 -D).
74
+
75
+ :param get_encrypted_password_request_content: (required)
76
+ :type get_encrypted_password_request_content: GetEncryptedPasswordRequestContent
77
+ :param _request_timeout: timeout setting for this request. If one
78
+ number provided, it will be total request
79
+ timeout. It can also be a pair (tuple) of
80
+ (connection, read) timeouts.
81
+ :type _request_timeout: int, tuple(int, int), optional
82
+ :param _request_auth: set to override the auth_settings for an a single
83
+ request; this effectively ignores the
84
+ authentication in the spec for a single request.
85
+ :type _request_auth: dict, optional
86
+ :param _content_type: force content-type for the request.
87
+ :type _content_type: str, Optional
88
+ :param _headers: set to override the headers for a single
89
+ request; this effectively ignores the headers
90
+ in the spec for a single request.
91
+ :type _headers: dict, optional
92
+ :param _host_index: set to override the host_index for a single
93
+ request; this effectively ignores the host_index
94
+ in the spec for a single request.
95
+ :type _host_index: int, optional
96
+ :return: Returns the result object.
97
+ """ # noqa: E501
98
+
99
+ _param = self._get_encrypted_password_serialize(
100
+ get_encrypted_password_request_content=get_encrypted_password_request_content,
101
+ _request_auth=_request_auth,
102
+ _content_type=_content_type,
103
+ _headers=_headers,
104
+ _host_index=_host_index
105
+ )
106
+
107
+ _response_types_map: Dict[str, Optional[str]] = {
108
+ '200': "GetEncryptedPasswordResponseContent",
109
+ '400': "BadRequestErrorResponseContent",
110
+ '401': "UnauthorizedErrorResponseContent",
111
+ '403': "ForbiddenErrorResponseContent",
112
+ '404': "ResourceNotFoundErrorResponseContent",
113
+ '422': "ValidationErrorResponseContent",
114
+ '429': "TooManyRequestsErrorResponseContent",
115
+ '500': "InternalServiceErrorResponseContent",
116
+ '503': "ServiceUnavailableErrorResponseContent",
117
+ }
118
+ response_data = self.api_client.call_api(
119
+ *_param,
120
+ _request_timeout=_request_timeout
121
+ )
122
+ response_data.read()
123
+ return self.api_client.response_deserialize(
124
+ response_data=response_data,
125
+ response_types_map=_response_types_map,
126
+ ).data
127
+
128
+
129
+ @validate_call
130
+ def get_encrypted_password_with_http_info(
131
+ self,
132
+ get_encrypted_password_request_content: GetEncryptedPasswordRequestContent,
133
+ _request_timeout: Union[
134
+ None,
135
+ Annotated[StrictFloat, Field(gt=0)],
136
+ Tuple[
137
+ Annotated[StrictFloat, Field(gt=0)],
138
+ Annotated[StrictFloat, Field(gt=0)]
139
+ ]
140
+ ] = None,
141
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
142
+ _content_type: Optional[StrictStr] = None,
143
+ _headers: Optional[Dict[StrictStr, Any]] = None,
144
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
145
+ ) -> ApiResponse[GetEncryptedPasswordResponseContent]:
146
+ """get_encrypted_password
147
+
148
+ Retrieves the VPS username and root password without exposing plaintext over the API. Send a PEM-encoded RSA 4096-bit public key; the API encrypts the password with RSA-OAEP (SHA-256), and returns base64 ciphertext plus encryption metadata. Never send the private key. Invalid or non-4096-bit keys return HTTP 422 ValidationError. Generate a key with: openssl genrsa -out private.pem 4096 && openssl rsa -in private.pem -pubout -out public.pem. Decrypt with: echo CIPHERTEXT | base64 -d | openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256 (macOS: base64 -D).
149
+
150
+ :param get_encrypted_password_request_content: (required)
151
+ :type get_encrypted_password_request_content: GetEncryptedPasswordRequestContent
152
+ :param _request_timeout: timeout setting for this request. If one
153
+ number provided, it will be total request
154
+ timeout. It can also be a pair (tuple) of
155
+ (connection, read) timeouts.
156
+ :type _request_timeout: int, tuple(int, int), optional
157
+ :param _request_auth: set to override the auth_settings for an a single
158
+ request; this effectively ignores the
159
+ authentication in the spec for a single request.
160
+ :type _request_auth: dict, optional
161
+ :param _content_type: force content-type for the request.
162
+ :type _content_type: str, Optional
163
+ :param _headers: set to override the headers for a single
164
+ request; this effectively ignores the headers
165
+ in the spec for a single request.
166
+ :type _headers: dict, optional
167
+ :param _host_index: set to override the host_index for a single
168
+ request; this effectively ignores the host_index
169
+ in the spec for a single request.
170
+ :type _host_index: int, optional
171
+ :return: Returns the result object.
172
+ """ # noqa: E501
173
+
174
+ _param = self._get_encrypted_password_serialize(
175
+ get_encrypted_password_request_content=get_encrypted_password_request_content,
176
+ _request_auth=_request_auth,
177
+ _content_type=_content_type,
178
+ _headers=_headers,
179
+ _host_index=_host_index
180
+ )
181
+
182
+ _response_types_map: Dict[str, Optional[str]] = {
183
+ '200': "GetEncryptedPasswordResponseContent",
184
+ '400': "BadRequestErrorResponseContent",
185
+ '401': "UnauthorizedErrorResponseContent",
186
+ '403': "ForbiddenErrorResponseContent",
187
+ '404': "ResourceNotFoundErrorResponseContent",
188
+ '422': "ValidationErrorResponseContent",
189
+ '429': "TooManyRequestsErrorResponseContent",
190
+ '500': "InternalServiceErrorResponseContent",
191
+ '503': "ServiceUnavailableErrorResponseContent",
192
+ }
193
+ response_data = self.api_client.call_api(
194
+ *_param,
195
+ _request_timeout=_request_timeout
196
+ )
197
+ response_data.read()
198
+ return self.api_client.response_deserialize(
199
+ response_data=response_data,
200
+ response_types_map=_response_types_map,
201
+ )
202
+
203
+
204
+ @validate_call
205
+ def get_encrypted_password_without_preload_content(
206
+ self,
207
+ get_encrypted_password_request_content: GetEncryptedPasswordRequestContent,
208
+ _request_timeout: Union[
209
+ None,
210
+ Annotated[StrictFloat, Field(gt=0)],
211
+ Tuple[
212
+ Annotated[StrictFloat, Field(gt=0)],
213
+ Annotated[StrictFloat, Field(gt=0)]
214
+ ]
215
+ ] = None,
216
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
217
+ _content_type: Optional[StrictStr] = None,
218
+ _headers: Optional[Dict[StrictStr, Any]] = None,
219
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
220
+ ) -> RESTResponseType:
221
+ """get_encrypted_password
222
+
223
+ Retrieves the VPS username and root password without exposing plaintext over the API. Send a PEM-encoded RSA 4096-bit public key; the API encrypts the password with RSA-OAEP (SHA-256), and returns base64 ciphertext plus encryption metadata. Never send the private key. Invalid or non-4096-bit keys return HTTP 422 ValidationError. Generate a key with: openssl genrsa -out private.pem 4096 && openssl rsa -in private.pem -pubout -out public.pem. Decrypt with: echo CIPHERTEXT | base64 -d | openssl pkeyutl -decrypt -inkey private.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256 (macOS: base64 -D).
224
+
225
+ :param get_encrypted_password_request_content: (required)
226
+ :type get_encrypted_password_request_content: GetEncryptedPasswordRequestContent
227
+ :param _request_timeout: timeout setting for this request. If one
228
+ number provided, it will be total request
229
+ timeout. It can also be a pair (tuple) of
230
+ (connection, read) timeouts.
231
+ :type _request_timeout: int, tuple(int, int), optional
232
+ :param _request_auth: set to override the auth_settings for an a single
233
+ request; this effectively ignores the
234
+ authentication in the spec for a single request.
235
+ :type _request_auth: dict, optional
236
+ :param _content_type: force content-type for the request.
237
+ :type _content_type: str, Optional
238
+ :param _headers: set to override the headers for a single
239
+ request; this effectively ignores the headers
240
+ in the spec for a single request.
241
+ :type _headers: dict, optional
242
+ :param _host_index: set to override the host_index for a single
243
+ request; this effectively ignores the host_index
244
+ in the spec for a single request.
245
+ :type _host_index: int, optional
246
+ :return: Returns the result object.
247
+ """ # noqa: E501
248
+
249
+ _param = self._get_encrypted_password_serialize(
250
+ get_encrypted_password_request_content=get_encrypted_password_request_content,
251
+ _request_auth=_request_auth,
252
+ _content_type=_content_type,
253
+ _headers=_headers,
254
+ _host_index=_host_index
255
+ )
256
+
257
+ _response_types_map: Dict[str, Optional[str]] = {
258
+ '200': "GetEncryptedPasswordResponseContent",
259
+ '400': "BadRequestErrorResponseContent",
260
+ '401': "UnauthorizedErrorResponseContent",
261
+ '403': "ForbiddenErrorResponseContent",
262
+ '404': "ResourceNotFoundErrorResponseContent",
263
+ '422': "ValidationErrorResponseContent",
264
+ '429': "TooManyRequestsErrorResponseContent",
265
+ '500': "InternalServiceErrorResponseContent",
266
+ '503': "ServiceUnavailableErrorResponseContent",
267
+ }
268
+ response_data = self.api_client.call_api(
269
+ *_param,
270
+ _request_timeout=_request_timeout
271
+ )
272
+ return response_data.response
273
+
274
+
275
+ def _get_encrypted_password_serialize(
276
+ self,
277
+ get_encrypted_password_request_content,
278
+ _request_auth,
279
+ _content_type,
280
+ _headers,
281
+ _host_index,
282
+ ) -> RequestSerialized:
283
+
284
+ _host = None
285
+
286
+ _collection_formats: Dict[str, str] = {
287
+ }
288
+
289
+ _path_params: Dict[str, str] = {}
290
+ _query_params: List[Tuple[str, str]] = []
291
+ _header_params: Dict[str, Optional[str]] = _headers or {}
292
+ _form_params: List[Tuple[str, str]] = []
293
+ _files: Dict[
294
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
295
+ ] = {}
296
+ _body_params: Optional[bytes] = None
297
+
298
+ # process the path parameters
299
+ # process the query parameters
300
+ # process the header parameters
301
+ # process the form parameters
302
+ # process the body parameter
303
+ if get_encrypted_password_request_content is not None:
304
+ _body_params = get_encrypted_password_request_content
305
+
306
+
307
+ # set the HTTP header `Accept`
308
+ if 'Accept' not in _header_params:
309
+ _header_params['Accept'] = self.api_client.select_header_accept(
310
+ [
311
+ 'application/json'
312
+ ]
313
+ )
314
+
315
+ # set the HTTP header `Content-Type`
316
+ if _content_type:
317
+ _header_params['Content-Type'] = _content_type
318
+ else:
319
+ _default_content_type = (
320
+ self.api_client.select_header_content_type(
321
+ [
322
+ 'application/json'
323
+ ]
324
+ )
325
+ )
326
+ if _default_content_type is not None:
327
+ _header_params['Content-Type'] = _default_content_type
328
+
329
+ # authentication setting
330
+ _auth_settings: List[str] = [
331
+ 'BearerAuth'
332
+ ]
333
+
334
+ return self.api_client.param_serialize(
335
+ method='POST',
336
+ resource_path='/vps/get-encrypted-password',
337
+ path_params=_path_params,
338
+ query_params=_query_params,
339
+ header_params=_header_params,
340
+ body=_body_params,
341
+ post_params=_form_params,
342
+ files=_files,
343
+ auth_settings=_auth_settings,
344
+ collection_formats=_collection_formats,
345
+ _host=_host,
346
+ _request_auth=_request_auth
347
+ )
348
+
349
+
350
+
351
+
52
352
  @validate_call
53
353
  def get_vps_config(
54
354
  self,
@@ -366,7 +666,7 @@ class VPSManagementApi:
366
666
  ) -> GetVpsDetailsResponseContent:
367
667
  """get_vps_details
368
668
 
369
- Gets detailed information about a VPS service including configuration, network settings, and statistics
669
+ Gets detailed information about a VPS service including configuration, network settings, and statistics. Credentials.password is always \"<redacted>\"; plaintext passwords are never returned. To retrieve the password securely, use GetEncryptedPassword (/vps/get-encrypted-password).
370
670
 
371
671
  :param get_vps_details_request_content: (required)
372
672
  :type get_vps_details_request_content: GetVpsDetailsRequestContent
@@ -441,7 +741,7 @@ class VPSManagementApi:
441
741
  ) -> ApiResponse[GetVpsDetailsResponseContent]:
442
742
  """get_vps_details
443
743
 
444
- Gets detailed information about a VPS service including configuration, network settings, and statistics
744
+ Gets detailed information about a VPS service including configuration, network settings, and statistics. Credentials.password is always \"<redacted>\"; plaintext passwords are never returned. To retrieve the password securely, use GetEncryptedPassword (/vps/get-encrypted-password).
445
745
 
446
746
  :param get_vps_details_request_content: (required)
447
747
  :type get_vps_details_request_content: GetVpsDetailsRequestContent
@@ -516,7 +816,7 @@ class VPSManagementApi:
516
816
  ) -> RESTResponseType:
517
817
  """get_vps_details
518
818
 
519
- Gets detailed information about a VPS service including configuration, network settings, and statistics
819
+ Gets detailed information about a VPS service including configuration, network settings, and statistics. Credentials.password is always \"<redacted>\"; plaintext passwords are never returned. To retrieve the password securely, use GetEncryptedPassword (/vps/get-encrypted-password).
520
820
 
521
821
  :param get_vps_details_request_content: (required)
522
822
  :type get_vps_details_request_content: GetVpsDetailsRequestContent
@@ -110,6 +110,7 @@ from ha_sdk_python.models.edit_backup_schedule_request_content import EditBackup
110
110
  from ha_sdk_python.models.edit_backup_schedule_response_content import EditBackupScheduleResponseContent
111
111
  from ha_sdk_python.models.edit_dns_record_request_content import EditDnsRecordRequestContent
112
112
  from ha_sdk_python.models.edit_dns_record_response_content import EditDnsRecordResponseContent
113
+ from ha_sdk_python.models.encrypted_password_response_data import EncryptedPasswordResponseData
113
114
  from ha_sdk_python.models.firewall_list_response_data import FirewallListResponseData
114
115
  from ha_sdk_python.models.firewall_move_direction import FirewallMoveDirection
115
116
  from ha_sdk_python.models.firewall_move_response_data import FirewallMoveResponseData
@@ -129,6 +130,8 @@ from ha_sdk_python.models.get_domain_contacts_response_content import GetDomainC
129
130
  from ha_sdk_python.models.get_domain_data import GetDomainData
130
131
  from ha_sdk_python.models.get_domain_request_content import GetDomainRequestContent
131
132
  from ha_sdk_python.models.get_domain_response_content import GetDomainResponseContent
133
+ from ha_sdk_python.models.get_encrypted_password_request_content import GetEncryptedPasswordRequestContent
134
+ from ha_sdk_python.models.get_encrypted_password_response_content import GetEncryptedPasswordResponseContent
132
135
  from ha_sdk_python.models.get_no_vnc_console_request_content import GetNoVncConsoleRequestContent
133
136
  from ha_sdk_python.models.get_no_vnc_console_response_content import GetNoVncConsoleResponseContent
134
137
  from ha_sdk_python.models.get_vps_config_request_content import GetVpsConfigRequestContent
@@ -189,6 +192,7 @@ from ha_sdk_python.models.operation_status import OperationStatus
189
192
  from ha_sdk_python.models.order import Order
190
193
  from ha_sdk_python.models.order_last_attempt import OrderLastAttempt
191
194
  from ha_sdk_python.models.order_warning import OrderWarning
195
+ from ha_sdk_python.models.password_encryption_info import PasswordEncryptionInfo
192
196
  from ha_sdk_python.models.payment_error import PaymentError
193
197
  from ha_sdk_python.models.payment_status import PaymentStatus
194
198
  from ha_sdk_python.models.power_task import PowerTask
@@ -285,6 +289,7 @@ from ha_sdk_python.models.vps_cpu_info import VpsCpuInfo
285
289
  from ha_sdk_python.models.vps_credentials import VpsCredentials
286
290
  from ha_sdk_python.models.vps_details_response import VpsDetailsResponse
287
291
  from ha_sdk_python.models.vps_disk_info import VpsDiskInfo
292
+ from ha_sdk_python.models.vps_ip_address_detail import VpsIpAddressDetail
288
293
  from ha_sdk_python.models.vps_memory_info import VpsMemoryInfo
289
294
  from ha_sdk_python.models.vps_network_rate import VpsNetworkRate
290
295
  from ha_sdk_python.models.vps_os_info import VpsOsInfo
@@ -0,0 +1,95 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ HostAfricaApi
5
+
6
+ HostAfrica API
7
+
8
+ The version of the OpenAPI document: 1.1.0 - 2026-07-16
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List
22
+ from ha_sdk_python.models.password_encryption_info import PasswordEncryptionInfo
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class EncryptedPasswordResponseData(BaseModel):
27
+ """
28
+ Response data for get-encrypted-password
29
+ """ # noqa: E501
30
+ username: StrictStr = Field(description="Username for VPS access (plaintext)")
31
+ password: StrictStr = Field(description="Base64-encoded ciphertext of the VPS password. Produced with RSA-OAEP (SHA-256) and the request public_key. Decode from base64, then decrypt with the matching private key via openssl pkeyutl -decrypt -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 -pkeyopt rsa_mgf1_md:sha256.")
32
+ encryption: PasswordEncryptionInfo
33
+ __properties: ClassVar[List[str]] = ["username", "password", "encryption"]
34
+
35
+ model_config = ConfigDict(
36
+ populate_by_name=True,
37
+ validate_assignment=True,
38
+ protected_namespaces=(),
39
+ )
40
+
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.model_dump(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> Optional[Self]:
53
+ """Create an instance of EncryptedPasswordResponseData from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ """Return the dictionary representation of the model using alias.
58
+
59
+ This has the following differences from calling pydantic's
60
+ `self.model_dump(by_alias=True)`:
61
+
62
+ * `None` is only added to the output dict for nullable fields that
63
+ were set at model initialization. Other fields with value `None`
64
+ are ignored.
65
+ """
66
+ excluded_fields: Set[str] = set([
67
+ ])
68
+
69
+ _dict = self.model_dump(
70
+ by_alias=True,
71
+ exclude=excluded_fields,
72
+ exclude_none=True,
73
+ )
74
+ # override the default output from pydantic by calling `to_dict()` of encryption
75
+ if self.encryption:
76
+ _dict['encryption'] = self.encryption.to_dict()
77
+ return _dict
78
+
79
+ @classmethod
80
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
81
+ """Create an instance of EncryptedPasswordResponseData from a dict"""
82
+ if obj is None:
83
+ return None
84
+
85
+ if not isinstance(obj, dict):
86
+ return cls.model_validate(obj)
87
+
88
+ _obj = cls.model_validate({
89
+ "username": obj.get("username"),
90
+ "password": obj.get("password"),
91
+ "encryption": PasswordEncryptionInfo.from_dict(obj["encryption"]) if obj.get("encryption") is not None else None
92
+ })
93
+ return _obj
94
+
95
+
@@ -0,0 +1,89 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ HostAfricaApi
5
+
6
+ HostAfrica API
7
+
8
+ The version of the OpenAPI document: 1.1.0 - 2026-07-16
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
+ from typing import Any, ClassVar, Dict, List
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class GetEncryptedPasswordRequestContent(BaseModel):
26
+ """
27
+ GetEncryptedPasswordRequestContent
28
+ """ # noqa: E501
29
+ service_id: StrictStr = Field(description="Service ID - must be sent as a string")
30
+ public_key: StrictStr = Field(description="PEM-encoded RSA public key only (never the private key). Accepts SPKI (`-----BEGIN PUBLIC KEY-----`) or PKCS#1 (`-----BEGIN RSA PUBLIC KEY-----`). Must be exactly 4096-bit. Used with RSA-OAEP and SHA-256 to encrypt the password.")
31
+ __properties: ClassVar[List[str]] = ["service_id", "public_key"]
32
+
33
+ model_config = ConfigDict(
34
+ populate_by_name=True,
35
+ validate_assignment=True,
36
+ protected_namespaces=(),
37
+ )
38
+
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.model_dump(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> Optional[Self]:
51
+ """Create an instance of GetEncryptedPasswordRequestContent from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self) -> Dict[str, Any]:
55
+ """Return the dictionary representation of the model using alias.
56
+
57
+ This has the following differences from calling pydantic's
58
+ `self.model_dump(by_alias=True)`:
59
+
60
+ * `None` is only added to the output dict for nullable fields that
61
+ were set at model initialization. Other fields with value `None`
62
+ are ignored.
63
+ """
64
+ excluded_fields: Set[str] = set([
65
+ ])
66
+
67
+ _dict = self.model_dump(
68
+ by_alias=True,
69
+ exclude=excluded_fields,
70
+ exclude_none=True,
71
+ )
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
76
+ """Create an instance of GetEncryptedPasswordRequestContent from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return cls.model_validate(obj)
82
+
83
+ _obj = cls.model_validate({
84
+ "service_id": obj.get("service_id"),
85
+ "public_key": obj.get("public_key")
86
+ })
87
+ return _obj
88
+
89
+