From 5fbc60b8e294d23365acd1d161ea373dd3835fe2 Mon Sep 17 00:00:00 2001 From: Nathan O'Sullivan Date: Mon, 22 Jun 2026 12:14:55 +1000 Subject: [PATCH] chore: update API to v0.38.0 --- .../reverse_names/post_v2_reverse_names_ipv6.py | 3 +++ ...ost_v_2_servers_server_id_actions_add_disk.py | 4 ++++ ...2_servers_server_id_actions_change_network.py | 16 ++++++++-------- ..._v_2_servers_server_id_actions_delete_disk.py | 4 ++++ lib/binarylane/models/account.py | 2 +- lib/binarylane/models/action.py | 14 ++++++++++++++ .../models/advanced_server_features.py | 1 + .../models/change_advanced_features.py | 1 + lib/binarylane/models/change_network.py | 4 ++-- .../models/change_size_options_request.py | 2 +- lib/binarylane/models/create_server_request.py | 11 ++++++++++- lib/binarylane/models/invoice.py | 12 +++++++++++- lib/binarylane/models/networks.py | 8 ++++++++ lib/binarylane/models/server.py | 10 ++++++++++ lib/binarylane/models/size_options.py | 3 ++- lib/binarylane/models/size_options_request.py | 2 +- lib/binarylane/models/threshold_alert.py | 2 ++ lib/binarylane/models/threshold_alert_request.py | 2 ++ lib/binarylane/models/threshold_alert_type.py | 1 + lib/binarylane/models/vm_machine_type.py | 1 + .../console/commands/api/get_v2_actions.py | 2 ++ .../commands/api/get_v2_customers_my_invoices.py | 3 ++- ...ustomers_my_unpaid_payment_failed_invoices.py | 3 ++- .../console/commands/api/get_v2_servers.py | 1 + .../api/get_v2_servers_server_id_actions.py | 2 ++ .../get_v2_servers_server_id_threshold_alerts.py | 1 + .../commands/api/post_v2_reverse_names_ipv6.py | 1 + .../console/commands/api/post_v2_servers.py | 14 ++++++++++++-- ...server_id_actions_change_advanced_features.py | 1 + ...2_servers_server_id_actions_change_network.py | 2 +- ..._server_id_actions_change_threshold_alerts.py | 1 + .../post_v_2_servers_server_id_actions_resize.py | 2 +- 32 files changed, 114 insertions(+), 22 deletions(-) diff --git a/lib/binarylane/api/reverse_names/post_v2_reverse_names_ipv6.py b/lib/binarylane/api/reverse_names/post_v2_reverse_names_ipv6.py index 980976d5..73827989 100644 --- a/lib/binarylane/api/reverse_names/post_v2_reverse_names_ipv6.py +++ b/lib/binarylane/api/reverse_names/post_v2_reverse_names_ipv6.py @@ -43,6 +43,9 @@ def _parse_response( response_200 = ActionResponse.from_dict(response.json()) return response_200 + if response.status_code == HTTPStatus.NO_CONTENT: + response_204 = cast(Any, None) + return response_204 if response.status_code == HTTPStatus.BAD_REQUEST: response_400 = ValidationProblemDetails.from_dict(response.json()) diff --git a/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_add_disk.py b/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_add_disk.py index 1b1883bd..3098d70e 100644 --- a/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_add_disk.py +++ b/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_add_disk.py @@ -86,6 +86,7 @@ def sync_detailed( This is used to add an additional disk in unallocated storage space. This does not alter the total disk space available to your server: to add additional disk space for your server use the 'Resize' action. + **This action may require the server to be rebooted.** Args: @@ -125,6 +126,7 @@ def sync( This is used to add an additional disk in unallocated storage space. This does not alter the total disk space available to your server: to add additional disk space for your server use the 'Resize' action. + **This action may require the server to be rebooted.** Args: @@ -157,6 +159,7 @@ async def asyncio_detailed( This is used to add an additional disk in unallocated storage space. This does not alter the total disk space available to your server: to add additional disk space for your server use the 'Resize' action. + **This action may require the server to be rebooted.** Args: @@ -194,6 +197,7 @@ async def asyncio( This is used to add an additional disk in unallocated storage space. This does not alter the total disk space available to your server: to add additional disk space for your server use the 'Resize' action. + **This action may require the server to be rebooted.** Args: diff --git a/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_network.py b/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_network.py index afe65c3e..15b528fb 100644 --- a/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_network.py +++ b/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_change_network.py @@ -83,8 +83,8 @@ def sync_detailed( ) -> Response[Union[ActionResponse, Any, ProblemDetails, ValidationProblemDetails]]: """Move a Server to an Existing Network - This is used to move a server either to an already defined virtual private cloud, or the default - public network in the server's region. + This is used to move a server either to an already defined virtual private cloud, or the public + network for the server's region. Args: server_id (int): The ID of the server on which the action should be performed. @@ -120,8 +120,8 @@ def sync( ) -> Optional[Union[ActionResponse, Any, ProblemDetails, ValidationProblemDetails]]: """Move a Server to an Existing Network - This is used to move a server either to an already defined virtual private cloud, or the default - public network in the server's region. + This is used to move a server either to an already defined virtual private cloud, or the public + network for the server's region. Args: server_id (int): The ID of the server on which the action should be performed. @@ -150,8 +150,8 @@ async def asyncio_detailed( ) -> Response[Union[ActionResponse, Any, ProblemDetails, ValidationProblemDetails]]: """Move a Server to an Existing Network - This is used to move a server either to an already defined virtual private cloud, or the default - public network in the server's region. + This is used to move a server either to an already defined virtual private cloud, or the public + network for the server's region. Args: server_id (int): The ID of the server on which the action should be performed. @@ -185,8 +185,8 @@ async def asyncio( ) -> Optional[Union[ActionResponse, Any, ProblemDetails, ValidationProblemDetails]]: """Move a Server to an Existing Network - This is used to move a server either to an already defined virtual private cloud, or the default - public network in the server's region. + This is used to move a server either to an already defined virtual private cloud, or the public + network for the server's region. Args: server_id (int): The ID of the server on which the action should be performed. diff --git a/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_delete_disk.py b/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_delete_disk.py index 606d8cf1..4afb55fa 100644 --- a/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_delete_disk.py +++ b/lib/binarylane/api/server_actions/post_v_2_servers_server_id_actions_delete_disk.py @@ -85,6 +85,7 @@ def sync_detailed( This is used to delete a disk added using the 'AddDisk' action. **NB: This is a destructive operation and no further confirmation will be requested.** + **This action may require the server to be rebooted.** Args: @@ -123,6 +124,7 @@ def sync( This is used to delete a disk added using the 'AddDisk' action. **NB: This is a destructive operation and no further confirmation will be requested.** + **This action may require the server to be rebooted.** Args: @@ -154,6 +156,7 @@ async def asyncio_detailed( This is used to delete a disk added using the 'AddDisk' action. **NB: This is a destructive operation and no further confirmation will be requested.** + **This action may require the server to be rebooted.** Args: @@ -190,6 +193,7 @@ async def asyncio( This is used to delete a disk added using the 'AddDisk' action. **NB: This is a destructive operation and no further confirmation will be requested.** + **This action may require the server to be rebooted.** Args: diff --git a/lib/binarylane/models/account.py b/lib/binarylane/models/account.py index 04283b60..3430c03c 100644 --- a/lib/binarylane/models/account.py +++ b/lib/binarylane/models/account.py @@ -16,7 +16,7 @@ class Account: """ Attributes: email (str): The email address registered for this account. - email_verified (bool): Whether this account has been verified. Un-verified accounts are subject to some + email_verified (bool): Whether this account has been verified. Unverified accounts are subject to some restrictions. two_factor_authentication_enabled (bool): Whether this account has enabled app-based two factor authentication. status (AccountStatus): The status of this account. diff --git a/lib/binarylane/models/action.py b/lib/binarylane/models/action.py index 5b589201..c46192d2 100644 --- a/lib/binarylane/models/action.py +++ b/lib/binarylane/models/action.py @@ -30,6 +30,8 @@ class Action: type (str): The type of this action. started_at (datetime.datetime): The timestamp in ISO8601 format of when processing of this action started. + title (str): A short display name for the action. + reason (str): A user-friendly explanation of what is happening. progress (ActionProgress): Information about the current progress of the action. Some actions are divided into 'steps' and this may also contain information about the current and completed steps. completed_at (Union[Unset, None, datetime.datetime]): The timestamp in ISO8601 format of when processing of this @@ -60,6 +62,8 @@ class Action: status: ActionStatus type: str started_at: datetime.datetime + title: str + reason: str progress: ActionProgress completed_at: Union[Unset, None, datetime.datetime] = UNSET resource_type: Union[Unset, None, ResourceType] = UNSET @@ -78,6 +82,8 @@ def to_dict(self) -> Dict[str, Any]: type = self.type started_at = self.started_at.isoformat() + title = self.title + reason = self.reason progress = self.progress.to_dict() completed_at: Union[Unset, None, str] = UNSET @@ -110,6 +116,8 @@ def to_dict(self) -> Dict[str, Any]: "status": status, "type": type, "started_at": started_at, + "title": title, + "reason": reason, "progress": progress, } ) @@ -143,6 +151,10 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: started_at = isoparse(d.pop("started_at")) + title = d.pop("title") + + reason = d.pop("reason") + progress = ActionProgress.from_dict(d.pop("progress")) _completed_at = d.pop("completed_at", UNSET) @@ -194,6 +206,8 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: status=status, type=type, started_at=started_at, + title=title, + reason=reason, progress=progress, completed_at=completed_at, resource_type=resource_type, diff --git a/lib/binarylane/models/advanced_server_features.py b/lib/binarylane/models/advanced_server_features.py index bfc51e70..3f4ebf9c 100644 --- a/lib/binarylane/models/advanced_server_features.py +++ b/lib/binarylane/models/advanced_server_features.py @@ -44,6 +44,7 @@ class AdvancedServerFeatures: | pc_i440fx_5point0 | PC i440FX 5.0 | | pc_i440fx_5point1 | PC i440FX 5.1 | | pc_i440fx_7point2 | PC i440FX 7.2 | + | pc_i440fx_7point2point1 | PC i440FX 7.2.1 | | pc_i440fx_8point2 | PC i440FX 8.2 | """ diff --git a/lib/binarylane/models/change_advanced_features.py b/lib/binarylane/models/change_advanced_features.py index 33fed0b9..b511ee95 100644 --- a/lib/binarylane/models/change_advanced_features.py +++ b/lib/binarylane/models/change_advanced_features.py @@ -37,6 +37,7 @@ class ChangeAdvancedFeatures: | pc_i440fx_5point0 | PC i440FX 5.0 | | pc_i440fx_5point1 | PC i440FX 5.1 | | pc_i440fx_7point2 | PC i440FX 7.2 | + | pc_i440fx_7point2point1 | PC i440FX 7.2.1 | | pc_i440fx_8point2 | PC i440FX 8.2 | automatic_machine_type (Union[Unset, None, bool]): Set to true to use best available machine type. If this is diff --git a/lib/binarylane/models/change_network.py b/lib/binarylane/models/change_network.py index dcc26238..b98459aa 100644 --- a/lib/binarylane/models/change_network.py +++ b/lib/binarylane/models/change_network.py @@ -16,8 +16,8 @@ class ChangeNetwork: Attributes: type (ChangeNetworkType): - vpc_id (Union[Unset, None, int]): If this is null the server will be moved into the default public network for - the server's region. + vpc_id (Union[Unset, None, int]): If this is null the server will be moved into the public network for the + server's region. """ type: ChangeNetworkType diff --git a/lib/binarylane/models/change_size_options_request.py b/lib/binarylane/models/change_size_options_request.py index ba45e209..f195eaab 100644 --- a/lib/binarylane/models/change_size_options_request.py +++ b/lib/binarylane/models/change_size_options_request.py @@ -49,7 +49,7 @@ class ChangeSizeOptionsRequest: Leave null to accept the default for the size if this is a new server or a resize to a different base size, or to keep the current value if this a resize with the same base size but different options. - Valid values (when converted to GB by multiplying the value provided by 1024): + Valid values (when converted to GB by multiplying the value provided by 1000): - must be a multiple of 5GB - > 30GB must be a multiple of 10 - > 200GB must be a multiple of 100 diff --git a/lib/binarylane/models/create_server_request.py b/lib/binarylane/models/create_server_request.py index d462f489..97e1baf5 100644 --- a/lib/binarylane/models/create_server_request.py +++ b/lib/binarylane/models/create_server_request.py @@ -37,7 +37,9 @@ class CreateServerRequest: left null if the Image does not support UserData, see DistributionInfo.Features for more information. port_blocking (Union[Unset, None, bool]): Port blocking of outgoing connections for email, SSH and Remote Desktop (TCP ports 22, 25, and 3389) is enabled by default for all new servers. If this is false port blocking - will be disabled. Disabling port blocking is only available to reviewed accounts. + will be disabled. Disabling port blocking is only available to verified accounts. + separate_private_network_interface (Union[Unset, None, bool]): If true this will enable a separate private + network interface for the server. This is only available for servers in a VPC. password (Union[Unset, None, str]): If this is provided the default remote user account's password will be set to this value. If this is null a random password will be generated and emailed to the account email address. """ @@ -55,6 +57,7 @@ class CreateServerRequest: licenses: Union[Unset, None, List[License]] = UNSET user_data: Union[Unset, None, str] = UNSET port_blocking: Union[Unset, None, bool] = UNSET + separate_private_network_interface: Union[Unset, None, bool] = UNSET password: Union[Unset, None, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) @@ -100,6 +103,7 @@ def to_dict(self) -> Dict[str, Any]: user_data = self.user_data port_blocking = self.port_blocking + separate_private_network_interface = self.separate_private_network_interface password = self.password field_dict: Dict[str, Any] = {} @@ -131,6 +135,8 @@ def to_dict(self) -> Dict[str, Any]: field_dict["user_data"] = user_data if port_blocking is not UNSET: field_dict["port_blocking"] = port_blocking + if separate_private_network_interface is not UNSET: + field_dict["separate_private_network_interface"] = separate_private_network_interface if password is not UNSET: field_dict["password"] = password @@ -189,6 +195,8 @@ def _parse_ssh_keys_item(data: object) -> Union[int, str]: port_blocking = d.pop("port_blocking", UNSET) + separate_private_network_interface = d.pop("separate_private_network_interface", UNSET) + password = d.pop("password", UNSET) create_server_request = cls( @@ -205,6 +213,7 @@ def _parse_ssh_keys_item(data: object) -> Union[int, str]: licenses=licenses, user_data=user_data, port_blocking=port_blocking, + separate_private_network_interface=separate_private_network_interface, password=password, ) diff --git a/lib/binarylane/models/invoice.py b/lib/binarylane/models/invoice.py index 05e0cd48..99248e18 100644 --- a/lib/binarylane/models/invoice.py +++ b/lib/binarylane/models/invoice.py @@ -32,7 +32,10 @@ class Invoice: this may identify the service, otherwise it will be the account reference. payment_failure_count (Union[Unset, None, int]): If this is included it indicates the number of failed attempts at processing payment for this invoice that have occurred. - invoice_download_url (Union[Unset, None, str]): The download URL for the rendered version of the invoice. + invoice_download_url (Union[Unset, None, str]): The download URL for the PDF version of the invoice. This URL + expires 24 hours after it is generated. + invoice_view_url (Union[Unset, None, str]): The URL for the HTML rendered version of the invoice. This URL + expires 24 hours after it is generated. """ invoice_id: int @@ -49,6 +52,7 @@ class Invoice: reference: Union[Unset, None, str] = UNSET payment_failure_count: Union[Unset, None, int] = UNSET invoice_download_url: Union[Unset, None, str] = UNSET + invoice_view_url: Union[Unset, None, str] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -75,6 +79,7 @@ def to_dict(self) -> Dict[str, Any]: reference = self.reference payment_failure_count = self.payment_failure_count invoice_download_url = self.invoice_download_url + invoice_view_url = self.invoice_view_url field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) @@ -99,6 +104,8 @@ def to_dict(self) -> Dict[str, Any]: field_dict["payment_failure_count"] = payment_failure_count if invoice_download_url is not UNSET: field_dict["invoice_download_url"] = invoice_download_url + if invoice_view_url is not UNSET: + field_dict["invoice_view_url"] = invoice_view_url return field_dict @@ -138,6 +145,8 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: invoice_download_url = d.pop("invoice_download_url", UNSET) + invoice_view_url = d.pop("invoice_view_url", UNSET) + invoice = cls( invoice_id=invoice_id, invoice_number=invoice_number, @@ -153,6 +162,7 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: reference=reference, payment_failure_count=payment_failure_count, invoice_download_url=invoice_download_url, + invoice_view_url=invoice_view_url, ) invoice.additional_properties = d diff --git a/lib/binarylane/models/networks.py b/lib/binarylane/models/networks.py index 73106c0a..ddc9f769 100644 --- a/lib/binarylane/models/networks.py +++ b/lib/binarylane/models/networks.py @@ -20,6 +20,8 @@ class Networks: recent_ddos (bool): If this is true this server has been the target of a recent DDOS attack. An email will have been sent to your email address when the DDOS was detected (and if it has ended, when it ended) with more details. + mac_address (str): The MAC address of this server's primary network interface. Customers may need this for ARP + entries, DHCP reservations on a VPC, or MAC-based licensing. separate_private_network_interface (Union[Unset, None, bool]): Whether a separate private network interface is provided for the server's VPC traffic. source_and_destination_check (Union[Unset, None, bool]): If enabled, this server is only able to send and @@ -32,6 +34,7 @@ class Networks: v6: List[Network] port_blocking: bool recent_ddos: bool + mac_address: str separate_private_network_interface: Union[Unset, None, bool] = UNSET source_and_destination_check: Union[Unset, None, bool] = UNSET ipv6_reverse_nameservers: Union[Unset, None, List[str]] = UNSET @@ -52,6 +55,7 @@ def to_dict(self) -> Dict[str, Any]: port_blocking = self.port_blocking recent_ddos = self.recent_ddos + mac_address = self.mac_address separate_private_network_interface = self.separate_private_network_interface source_and_destination_check = self.source_and_destination_check ipv6_reverse_nameservers: Union[Unset, None, List[str]] = UNSET @@ -69,6 +73,7 @@ def to_dict(self) -> Dict[str, Any]: "v6": v6, "port_blocking": port_blocking, "recent_ddos": recent_ddos, + "mac_address": mac_address, } ) if separate_private_network_interface is not UNSET: @@ -101,6 +106,8 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: recent_ddos = d.pop("recent_ddos") + mac_address = d.pop("mac_address") + separate_private_network_interface = d.pop("separate_private_network_interface", UNSET) source_and_destination_check = d.pop("source_and_destination_check", UNSET) @@ -112,6 +119,7 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: v6=v6, port_blocking=port_blocking, recent_ddos=recent_ddos, + mac_address=mac_address, separate_private_network_interface=separate_private_network_interface, source_and_destination_check=source_and_destination_check, ipv6_reverse_nameservers=ipv6_reverse_nameservers, diff --git a/lib/binarylane/models/server.py b/lib/binarylane/models/server.py index 38b2fb4d..60d63f82 100644 --- a/lib/binarylane/models/server.py +++ b/lib/binarylane/models/server.py @@ -71,6 +71,8 @@ class Server: that support this feature. attached_backup (Union[Unset, None, AttachedBackup]): An object that provides details of any backup image currently attached to the server.. + is_under_maintenance (Union[Unset, None, bool]): If true, this server is currently under maintenance and most + actions will not be available. If this is null the status was not checked. """ id: int @@ -101,6 +103,7 @@ class Server: partner_id: Union[Unset, None, int] = UNSET permalink: Union[Unset, None, str] = UNSET attached_backup: Union[Unset, None, AttachedBackup] = UNSET + is_under_maintenance: Union[Unset, None, bool] = UNSET additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict) def to_dict(self) -> Dict[str, Any]: @@ -164,6 +167,8 @@ def to_dict(self) -> Dict[str, Any]: if not isinstance(self.attached_backup, Unset): attached_backup = self.attached_backup.to_dict() if self.attached_backup else None + is_under_maintenance = self.is_under_maintenance + field_dict: Dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( @@ -206,6 +211,8 @@ def to_dict(self) -> Dict[str, Any]: field_dict["permalink"] = permalink if attached_backup is not UNSET: field_dict["attached_backup"] = attached_backup + if is_under_maintenance is not UNSET: + field_dict["is_under_maintenance"] = is_under_maintenance return field_dict @@ -308,6 +315,8 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: else: attached_backup = AttachedBackup.from_dict(_attached_backup) + is_under_maintenance = d.pop("is_under_maintenance", UNSET) + server = cls( id=id, name=name, @@ -337,6 +346,7 @@ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: partner_id=partner_id, permalink=permalink, attached_backup=attached_backup, + is_under_maintenance=is_under_maintenance, ) server.additional_properties = d diff --git a/lib/binarylane/models/size_options.py b/lib/binarylane/models/size_options.py index 0944174d..a1819288 100644 --- a/lib/binarylane/models/size_options.py +++ b/lib/binarylane/models/size_options.py @@ -21,7 +21,8 @@ class SizeOptions: disk_cost_per_additional_gigabyte (float): The additional cost per GB per month for additional storage space. memory_max (int): The maximum memory in MB permitted on this size. memory_cost_per_additional_megabyte (float): The additional cost per MB per month for additional memory. - transfer_max (float): The maximum transfer in TB permitted for this size. + transfer_max (float): The maximum transfer in TB permitted for this size. If this is the same as Size.Transfer + no additional transfer is supported. transfer_cost_per_additional_gigabyte (float): The additional cost per GB per month for additional included transfer. ipv4_addresses_max (int): The maximum number of IPv4 addresses permitted on this size. diff --git a/lib/binarylane/models/size_options_request.py b/lib/binarylane/models/size_options_request.py index 73fd8eef..1c66b626 100644 --- a/lib/binarylane/models/size_options_request.py +++ b/lib/binarylane/models/size_options_request.py @@ -49,7 +49,7 @@ class SizeOptionsRequest: Leave null to accept the default for the size if this is a new server or a resize to a different base size, or to keep the current value if this a resize with the same base size but different options. - Valid values (when converted to GB by multiplying the value provided by 1024): + Valid values (when converted to GB by multiplying the value provided by 1000): - must be a multiple of 5GB - > 30GB must be a multiple of 10 - > 200GB must be a multiple of 100 diff --git a/lib/binarylane/models/threshold_alert.py b/lib/binarylane/models/threshold_alert.py index 7fae9d93..77ba0999 100644 --- a/lib/binarylane/models/threshold_alert.py +++ b/lib/binarylane/models/threshold_alert.py @@ -35,6 +35,8 @@ class ThresholdAlert: | memory-used | The alert is based off the virtual memory consumed as a percentage of your physical memory. Virtual memory includes the swap file so the percentage may exceed 100% indicating that the server has run out of physical memory and is relying on swap space, which will generally cause poor performance. | + | locked-backup-slots | The alert is based off the percentage of scheduled backup slots (daily, weekly, monthly) + occupied by locked backups. When all slots are locked, automated backups cannot proceed. | enabled (bool): If a threshold alert is not enabled it will not generate warnings for the user. value (int): The threshold value of the alert. Refer to the documentation for each threshold alert type for what diff --git a/lib/binarylane/models/threshold_alert_request.py b/lib/binarylane/models/threshold_alert_request.py index ae328c22..caa9d07f 100644 --- a/lib/binarylane/models/threshold_alert_request.py +++ b/lib/binarylane/models/threshold_alert_request.py @@ -33,6 +33,8 @@ class ThresholdAlertRequest: | memory-used | The alert is based off the virtual memory consumed as a percentage of your physical memory. Virtual memory includes the swap file so the percentage may exceed 100% indicating that the server has run out of physical memory and is relying on swap space, which will generally cause poor performance. | + | locked-backup-slots | The alert is based off the percentage of scheduled backup slots (daily, weekly, monthly) + occupied by locked backups. When all slots are locked, automated backups cannot proceed. | enabled (Union[Unset, None, bool]): Do not provide or leave null to keep existing status. value (Union[Unset, None, int]): Do not provide or leave null to keep existing value. diff --git a/lib/binarylane/models/threshold_alert_type.py b/lib/binarylane/models/threshold_alert_type.py index 57abbbcc..0c555ca2 100644 --- a/lib/binarylane/models/threshold_alert_type.py +++ b/lib/binarylane/models/threshold_alert_type.py @@ -11,6 +11,7 @@ class ThresholdAlertType(str, Enum): DATA_TRANSFER_USED = "data-transfer-used" STORAGE_USED = "storage-used" MEMORY_USED = "memory-used" + LOCKED_BACKUP_SLOTS = "locked-backup-slots" def __str__(self) -> str: return str(self.value) diff --git a/lib/binarylane/models/vm_machine_type.py b/lib/binarylane/models/vm_machine_type.py index 8b528af6..bb7d4d97 100644 --- a/lib/binarylane/models/vm_machine_type.py +++ b/lib/binarylane/models/vm_machine_type.py @@ -11,6 +11,7 @@ class VmMachineType(str, Enum): PC_I440FX_5POINT0 = "pc_i440fx_5point0" PC_I440FX_5POINT1 = "pc_i440fx_5point1" PC_I440FX_7POINT2 = "pc_i440fx_7point2" + PC_I440FX_7POINT2POINT1 = "pc_i440fx_7point2point1" PC_I440FX_8POINT2 = "pc_i440fx_8point2" def __str__(self) -> str: diff --git a/src/binarylane/console/commands/api/get_v2_actions.py b/src/binarylane/console/commands/api/get_v2_actions.py index ccb4166e..1706270a 100644 --- a/src/binarylane/console/commands/api/get_v2_actions.py +++ b/src/binarylane/console/commands/api/get_v2_actions.py @@ -51,6 +51,8 @@ def fields(self) -> Dict[str, str]: """, "type": """The type of this action.""", "started_at": """The timestamp in ISO8601 format of when processing of this action started.""", + "title": """A short display name for the action.""", + "reason": """A user-friendly explanation of what is happening.""", "progress": """Information about the current progress of the action. Some actions are divided into 'steps' and this may also contain information about the current and completed steps.""", "completed_at": """The timestamp in ISO8601 format of when processing of this action completed. If this value is null the action is currently in progress.""", "resource_type": """The resource type (if any) associated with this action. diff --git a/src/binarylane/console/commands/api/get_v2_customers_my_invoices.py b/src/binarylane/console/commands/api/get_v2_customers_my_invoices.py index 74a63f6a..e48f8f3b 100644 --- a/src/binarylane/console/commands/api/get_v2_customers_my_invoices.py +++ b/src/binarylane/console/commands/api/get_v2_customers_my_invoices.py @@ -55,7 +55,8 @@ def fields(self) -> Dict[str, str]: "invoice_items": """The individual items that make up invoice.""", "reference": """The reference for this invoice. If this invoice is for a single service this may identify the service, otherwise it will be the account reference.""", "payment_failure_count": """If this is included it indicates the number of failed attempts at processing payment for this invoice that have occurred.""", - "invoice_download_url": """The download URL for the rendered version of the invoice.""", + "invoice_download_url": """The download URL for the PDF version of the invoice. This URL expires 24 hours after it is generated.""", + "invoice_view_url": """The URL for the HTML rendered version of the invoice. This URL expires 24 hours after it is generated.""", } @property diff --git a/src/binarylane/console/commands/api/get_v2_customers_my_unpaid_payment_failed_invoices.py b/src/binarylane/console/commands/api/get_v2_customers_my_unpaid_payment_failed_invoices.py index 135c50fc..872cbf60 100644 --- a/src/binarylane/console/commands/api/get_v2_customers_my_unpaid_payment_failed_invoices.py +++ b/src/binarylane/console/commands/api/get_v2_customers_my_unpaid_payment_failed_invoices.py @@ -54,7 +54,8 @@ def fields(self) -> Dict[str, str]: "invoice_items": """The individual items that make up invoice.""", "reference": """The reference for this invoice. If this invoice is for a single service this may identify the service, otherwise it will be the account reference.""", "payment_failure_count": """If this is included it indicates the number of failed attempts at processing payment for this invoice that have occurred.""", - "invoice_download_url": """The download URL for the rendered version of the invoice.""", + "invoice_download_url": """The download URL for the PDF version of the invoice. This URL expires 24 hours after it is generated.""", + "invoice_view_url": """The URL for the HTML rendered version of the invoice. This URL expires 24 hours after it is generated.""", } @property diff --git a/src/binarylane/console/commands/api/get_v2_servers.py b/src/binarylane/console/commands/api/get_v2_servers.py index 333002c8..6ceecc6c 100644 --- a/src/binarylane/console/commands/api/get_v2_servers.py +++ b/src/binarylane/console/commands/api/get_v2_servers.py @@ -79,6 +79,7 @@ def fields(self) -> Dict[str, str]: "partner_id": """The server ID of the partner of this server, if one has been assigned.""", "permalink": """A randomly generated two-word identifier assigned to servers in regions that support this feature.""", "attached_backup": """An object that provides details of any backup image currently attached to the server..""", + "is_under_maintenance": """If true, this server is currently under maintenance and most actions will not be available. If this is null the status was not checked.""", } def lookup(self, ref: str) -> Optional[int]: diff --git a/src/binarylane/console/commands/api/get_v2_servers_server_id_actions.py b/src/binarylane/console/commands/api/get_v2_servers_server_id_actions.py index 168bb136..87beb300 100644 --- a/src/binarylane/console/commands/api/get_v2_servers_server_id_actions.py +++ b/src/binarylane/console/commands/api/get_v2_servers_server_id_actions.py @@ -56,6 +56,8 @@ def fields(self) -> Dict[str, str]: """, "type": """The type of this action.""", "started_at": """The timestamp in ISO8601 format of when processing of this action started.""", + "title": """A short display name for the action.""", + "reason": """A user-friendly explanation of what is happening.""", "progress": """Information about the current progress of the action. Some actions are divided into 'steps' and this may also contain information about the current and completed steps.""", "completed_at": """The timestamp in ISO8601 format of when processing of this action completed. If this value is null the action is currently in progress.""", "resource_type": """The resource type (if any) associated with this action. diff --git a/src/binarylane/console/commands/api/get_v2_servers_server_id_threshold_alerts.py b/src/binarylane/console/commands/api/get_v2_servers_server_id_threshold_alerts.py index aea9e61e..836f6f33 100644 --- a/src/binarylane/console/commands/api/get_v2_servers_server_id_threshold_alerts.py +++ b/src/binarylane/console/commands/api/get_v2_servers_server_id_threshold_alerts.py @@ -50,6 +50,7 @@ def fields(self) -> Dict[str, str]: | data-transfer-used | The alert is based off the percentage of your monthly data transfer limit. | | storage-used | The alert is based off the disk space consumed as a percentage of your total disk space. If the server runs out of disk space programs may fail to execute or be unable to create new files, or the server may become unresponsive. | | memory-used | The alert is based off the virtual memory consumed as a percentage of your physical memory. Virtual memory includes the swap file so the percentage may exceed 100% indicating that the server has run out of physical memory and is relying on swap space, which will generally cause poor performance. | +| locked-backup-slots | The alert is based off the percentage of scheduled backup slots (daily, weekly, monthly) occupied by locked backups. When all slots are locked, automated backups cannot proceed. | """, "enabled": """If a threshold alert is not enabled it will not generate warnings for the user.""", diff --git a/src/binarylane/console/commands/api/post_v2_reverse_names_ipv6.py b/src/binarylane/console/commands/api/post_v2_reverse_names_ipv6.py index ee11eff0..60ac3bda 100644 --- a/src/binarylane/console/commands/api/post_v2_reverse_names_ipv6.py +++ b/src/binarylane/console/commands/api/post_v2_reverse_names_ipv6.py @@ -57,6 +57,7 @@ def request( assert isinstance(request, CommandRequest) # HTTPStatus.OK: ActionResponse + # HTTPStatus.NO_CONTENT: Any # HTTPStatus.BAD_REQUEST: ValidationProblemDetails # HTTPStatus.NOT_FOUND: ProblemDetails # HTTPStatus.UNAUTHORIZED: Any diff --git a/src/binarylane/console/commands/api/post_v2_servers.py b/src/binarylane/console/commands/api/post_v2_servers.py index ea8d6281..57a82322 100644 --- a/src/binarylane/console/commands/api/post_v2_servers.py +++ b/src/binarylane/console/commands/api/post_v2_servers.py @@ -236,7 +236,7 @@ def lookup_vpc_id(ref: str) -> Union[None, int]: If specified this is the absolute value, not just the additional transfer above what is included in the size. Leave null to accept the default for the size if this is a new server or a resize to a different base size, or to keep the current value if this a resize with the same base size but different options. -Valid values (when converted to GB by multiplying the value provided by 1024): +Valid values (when converted to GB by multiplying the value provided by 1000): - must be a multiple of 5GB - > 30GB must be a multiple of 10 - > 200GB must be a multiple of 100 @@ -290,7 +290,17 @@ def lookup_vpc_id(ref: str) -> Union[None, int]: Union[Unset, None, bool], required=False, option_name="port-blocking", - description="""Port blocking of outgoing connections for email, SSH and Remote Desktop (TCP ports 22, 25, and 3389) is enabled by default for all new servers. If this is false port blocking will be disabled. Disabling port blocking is only available to reviewed accounts.""", + description="""Port blocking of outgoing connections for email, SSH and Remote Desktop (TCP ports 22, 25, and 3389) is enabled by default for all new servers. If this is false port blocking will be disabled. Disabling port blocking is only available to verified accounts.""", + ) + ) + + json_body.add( + PrimitiveAttribute( + "separate_private_network_interface", + Union[Unset, None, bool], + required=False, + option_name="separate-private-network-interface", + description="""If true this will enable a separate private network interface for the server. This is only available for servers in a VPC.""", ) ) diff --git a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_advanced_features.py b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_advanced_features.py index c69b0a05..81c837e8 100644 --- a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_advanced_features.py +++ b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_advanced_features.py @@ -112,6 +112,7 @@ def lookup_server_id(ref: str) -> Union[None, int]: | pc_i440fx_5point0 | PC i440FX 5.0 | | pc_i440fx_5point1 | PC i440FX 5.1 | | pc_i440fx_7point2 | PC i440FX 7.2 | +| pc_i440fx_7point2point1 | PC i440FX 7.2.1 | | pc_i440fx_8point2 | PC i440FX 8.2 | """, diff --git a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_network.py b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_network.py index 6f0a4e37..138ca149 100644 --- a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_network.py +++ b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_network.py @@ -73,7 +73,7 @@ def lookup_vpc_id(ref: str) -> Union[None, int]: required=False, option_name=("vpc", "vpc-id"), metavar="vpc", - description="""If this is null the server will be moved into the default public network for the server's region.""", + description="""If this is null the server will be moved into the public network for the server's region.""", lookup=lookup_vpc_id, ) ) diff --git a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_threshold_alerts.py b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_threshold_alerts.py index 4ea2de23..7c049b26 100644 --- a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_threshold_alerts.py +++ b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_change_threshold_alerts.py @@ -90,6 +90,7 @@ def lookup_server_id(ref: str) -> Union[None, int]: | data-transfer-used | The alert is based off the percentage of your monthly data transfer limit. | | storage-used | The alert is based off the disk space consumed as a percentage of your total disk space. If the server runs out of disk space programs may fail to execute or be unable to create new files, or the server may become unresponsive. | | memory-used | The alert is based off the virtual memory consumed as a percentage of your physical memory. Virtual memory includes the swap file so the percentage may exceed 100% indicating that the server has run out of physical memory and is relying on swap space, which will generally cause poor performance. | +| locked-backup-slots | The alert is based off the percentage of scheduled backup slots (daily, weekly, monthly) occupied by locked backups. When all slots are locked, automated backups cannot proceed. | """, ) diff --git a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_resize.py b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_resize.py index 30b57bce..6648d1ef 100644 --- a/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_resize.py +++ b/src/binarylane/console/commands/api/post_v_2_servers_server_id_actions_resize.py @@ -186,7 +186,7 @@ def lookup_server_id(ref: str) -> Union[None, int]: If specified this is the absolute value, not just the additional transfer above what is included in the size. Leave null to accept the default for the size if this is a new server or a resize to a different base size, or to keep the current value if this a resize with the same base size but different options. -Valid values (when converted to GB by multiplying the value provided by 1024): +Valid values (when converted to GB by multiplying the value provided by 1000): - must be a multiple of 5GB - > 30GB must be a multiple of 10 - > 200GB must be a multiple of 100