Struct Instances

Source
pub struct Instances {
    pub client: Client,
}

Fields§

§client: Client

Implementations§

Source§

impl Instances

Source

pub async fn view(&self, id: &str) -> Result<Instance>

Fetch an instance by id.

This function performs a GET to the /by-id/instances/{id} endpoint.

Parameters:

  • id: &str
Source

pub async fn network_interface_view(&self, id: &str) -> Result<NetworkInterface>

Fetch a network interface by id.

This function performs a GET to the /by-id/network-interfaces/{id} endpoint.

Parameters:

  • id: &str
Source

pub async fn get_page( &self, limit: u32, organization_name: &str, page_token: &str, project_name: &str, sort_by: NameSortMode, ) -> Result<Vec<Instance>>

List instances.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances endpoint.

Parameters:

  • limit: u32 – Maximum number of items returned by a single call.
  • page_token: &str – Token returned by previous call to retrieve the subsequent page.
  • sort_by: crate::types::NameSortMode – Supported set of sort modes for scanning by name only

Currently, we only support scanning in ascending order.

  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn get_all( &self, organization_name: &str, project_name: &str, sort_by: NameSortMode, ) -> Result<Vec<Instance>>

List instances.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances endpoint.

As opposed to get, this function returns all the pages of the request at once.

Source

pub async fn post( &self, organization_name: &str, project_name: &str, body: &InstanceCreate, ) -> Result<Instance>

Create an instance.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances endpoint.

Parameters:

  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn get( &self, instance_name: &str, organization_name: &str, project_name: &str, ) -> Result<Instance>

Fetch an instance.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name} endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn delete( &self, instance_name: &str, organization_name: &str, project_name: &str, ) -> Result<()>

Delete an instance.

This function performs a DELETE to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name} endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn disks_get( &self, instance_name: &str, limit: u32, organization_name: &str, page_token: &str, project_name: &str, sort_by: NameSortMode, ) -> Result<Vec<Disk>>

List an instance’s disks.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks endpoint.

Parameters:

  • limit: u32 – Maximum number of items returned by a single call.
  • page_token: &str – Token returned by previous call to retrieve the subsequent page.
  • sort_by: crate::types::NameSortMode – Supported set of sort modes for scanning by name only

Currently, we only support scanning in ascending order.

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn disks_get_all( &self, instance_name: &str, organization_name: &str, project_name: &str, sort_by: NameSortMode, ) -> Result<Vec<Disk>>

List an instance’s disks.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks endpoint.

As opposed to disks_get, this function returns all the pages of the request at once.

Source

pub async fn disks_attach( &self, instance_name: &str, organization_name: &str, project_name: &str, body: &DiskIdentifier, ) -> Result<Disk>

Attach a disk to an instance.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks/attach endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn disks_detach( &self, instance_name: &str, organization_name: &str, project_name: &str, body: &DiskIdentifier, ) -> Result<Disk>

Detach a disk from an instance.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/disks/detach endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn external_ip_list( &self, instance_name: &str, organization_name: &str, project_name: &str, ) -> Result<Vec<ExternalIp>>

List external IP addresses.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/external-ips endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn external_ip_list_all( &self, instance_name: &str, organization_name: &str, project_name: &str, ) -> Result<Vec<ExternalIp>>

List external IP addresses.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/external-ips endpoint.

As opposed to external_ip_list, this function returns all the pages of the request at once.

Source

pub async fn migrate( &self, instance_name: &str, organization_name: &str, project_name: &str, body: &InstanceMigrate, ) -> Result<Instance>

Migrate an instance.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/migrate endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn network_interfaces_get( &self, instance_name: &str, limit: u32, organization_name: &str, page_token: &str, project_name: &str, sort_by: NameSortMode, ) -> Result<Vec<NetworkInterface>>

List network interfaces.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/network-interfaces endpoint.

Parameters:

  • limit: u32 – Maximum number of items returned by a single call.
  • page_token: &str – Token returned by previous call to retrieve the subsequent page.
  • sort_by: crate::types::NameSortMode – Supported set of sort modes for scanning by name only

Currently, we only support scanning in ascending order.

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn network_interfaces_get_all( &self, instance_name: &str, organization_name: &str, project_name: &str, sort_by: NameSortMode, ) -> Result<Vec<NetworkInterface>>

List network interfaces.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/network-interfaces endpoint.

As opposed to network_interfaces_get, this function returns all the pages of the request at once.

Source

pub async fn network_interfaces_post( &self, instance_name: &str, organization_name: &str, project_name: &str, body: &NetworkInterfaceCreate, ) -> Result<NetworkInterface>

Create a network interface.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/network-interfaces endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn network_interfaces_get_interface( &self, instance_name: &str, interface_name: &str, organization_name: &str, project_name: &str, ) -> Result<NetworkInterface>

Fetch a network interface.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/network-interfaces/{interface_name} endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • interface_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn network_interfaces_put_interface( &self, instance_name: &str, interface_name: &str, organization_name: &str, project_name: &str, body: &NetworkInterfaceUpdate, ) -> Result<NetworkInterface>

Update a network interface.

This function performs a PUT to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/network-interfaces/{interface_name} endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • interface_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn network_interfaces_delete_interface( &self, instance_name: &str, interface_name: &str, organization_name: &str, project_name: &str, ) -> Result<()>

Delete a network interface.

This function performs a DELETE to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/network-interfaces/{interface_name} endpoint.

Note that the primary interface for an instance cannot be deleted if there are any secondary interfaces. A new primary interface must be designated first. The primary interface can be deleted if there are no secondary interfaces.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • interface_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn reboot( &self, instance_name: &str, organization_name: &str, project_name: &str, ) -> Result<Instance>

Reboot an instance.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/reboot endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn serial_get( &self, from_start: Option<u64>, instance_name: &str, max_bytes: Option<u64>, most_recent: Option<u64>, organization_name: &str, project_name: &str, ) -> Result<InstanceSerialConsoleData>

Fetch an instance’s serial console.

This function performs a GET to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/serial-console endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • from_start: u64 – Character index in the serial buffer from which to read, counting the bytes output since instance start. If this is not provided, most_recent must be provided, and if this *is* provided, most_recent must *not* be provided.
  • max_bytes: u64 – Maximum number of bytes of buffered serial console contents to return. If the requested range runs to the end of the available buffer, the data returned will be shorter than max_bytes.
  • most_recent: u64 – Character index in the serial buffer from which to read, counting *backward* from the most recently buffered data retrieved from the instance. (See note on from_start about mutual exclusivity).
Source

pub async fn start( &self, instance_name: &str, organization_name: &str, project_name: &str, ) -> Result<Instance>

Boot an instance.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/start endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
Source

pub async fn stop( &self, instance_name: &str, organization_name: &str, project_name: &str, ) -> Result<Instance>

Halt an instance.

This function performs a POST to the /organizations/{organization_name}/projects/{project_name}/instances/{instance_name}/stop endpoint.

Parameters:

  • instance_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • organization_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.
  • project_name: &str – Names must begin with a lower case ASCII letter, be composed exclusively of lowercase ASCII, uppercase ASCII, numbers, and ‘-’, and may not end with a ‘-’. Names cannot be a UUID though they may contain a UUID.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoResult<T> for T

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more