API-Vultr

 view release on metacpan or  search on metacpan

lib/API/Vultr.pm  view on Meta::CPAN

    my ( $self, $id ) = @_;
    return $self->_request( 'get', $self->_make_uri( '/backups/' . $id ) );
}

# INSTANCES #

sub list_instances {
    my ( $self, %query ) = @_;
    return $self->_request( 'get', $self->_make_uri( '/instances', %query ) );
}

sub create_instance {
    my ( $self, %body ) = @_;
    return $self->_request( 'post', $self->_make_uri('/instances'), {%body} );
}

sub get_instance_by_id {
    my ( $self, $id ) = @_;

    croak qq{ID cannot be undefined when calling get_instance_by_id.}
      unless defined $id;

    return $self->_request( 'get', $self->_make_uri( '/instances/' . $id ) );
}

sub delete_instance_by_id {
    my ( $self, $id ) = @_;

    croak qq{ID cannot be undefined when calling get_instance_by_id.}
      unless defined $id;

    return $self->_request( 'delete', $self->_make_uri( '/instances/' . $id ) );
}

sub halt_instances {
    my ( $self, @ids ) = @_;

    croak qq{Expected list of ids, instead got undef.}
      unless @ids;

    return $self->_request(
        'post',
        $self->_make_uri('/instances/halt'),
        { instance_ids => [@ids] }
    );
}

sub reboot_instances {
    my ( $self, @ids ) = @_;

    croak qq{Expected list of ids, instead got undef.}
      unless @ids;

    return $self->_request(
        'post',
        $self->_make_uri('/instances/reboot'),
        { instance_ids => [@ids] }
    );
}

sub start_instances {
    my ( $self, @ids ) = @_;

    croak qq{Expected list of ids, instead got undef.}
      unless @ids;

    return $self->_request(
        'post',
        $self->_make_uri('/instances/start'),
        { instance_ids => [@ids] }
    );
}

sub get_instance_bandwidth {
    my ( $self, $id, %query ) = @_;

    croak qq{Expected scalar id as second argument, instead got $id.}
      unless defined $id;

    return $self->_request( 'get',
        $self->_make_uri( '/instances/' . $id . '/bandwidth', %query ) );
}

sub get_instance_neighbours {
    my ( $self, $id ) = @_;

    croak qq{Expected scalar id as second argument, instead got $id.}
      unless defined $id;

    return $self->_request( 'get',
        $self->_make_uri( '/instances/' . $id . '/neighbours' ) );
}

sub get_instance_iso_status {
    my ( $self, $id ) = @_;

    croak qq{Expected scalar id as second argument, instead got $id.}
      unless defined $id;

    return $self->_request( 'get',
        $self->_make_uri( '/instances/' . $id . '/iso' ) );
}

sub detach_iso_from_instance {
    my ( $self, $id ) = @_;

    croak qq{Expected scalar id as second argument, instead got $id.}
      unless defined $id;

    return $self->_request( 'post',
        $self->_make_uri( '/instances/' . $id . '/iso/detach' ) );
}

sub attach_iso_to_instance {
    my ( $self, $id, $iso_id ) = @_;

    croak qq{Expected scalar id as second argument, instead got $id.}
      unless defined $id;

    croak qq{Expected scalar iso_id as second argument, instead got $iso_id.}
      unless defined $iso_id;

    return $self->_request(
        'post',
        $self->_make_uri( '/instances/' . $id . '/iso/attach' ),
        { iso_id => $iso_id }
    );
}

lib/API/Vultr.pm  view on Meta::CPAN

=head2 get_account_info

Retrieve the account information associated with your API key.

L<Vultr API Reference|https://www.vultr.com/api/#tag/account/operation/get-account>

=head2 get_applications

Retrieve applications associated with your API key.

L<Vultr API Reference|https://www.vultr.com/api/#tag/application/operation/list-applications>

=head2 get_backups

Get a list of all backups associated with your API key.

L<Vultr API Reference|https://www.vultr.com/api/#tag/backup/operation/list-backups>

=head2 get_backup_by_id

Get information on a specific backup by its id.

L<Vultr API Reference|https://www.vultr.com/api/#tag/backup/operation/get-backup>

=head2 list_instances

Get a list of all instances associated with your API key.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/list-instances>

=head2 create_instance

Create a Vultr instance.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/create-instance>

=head2 get_instance_by_id

Find an instance by its id.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/get-instance>

=head2 delete_instance_by_id

Delete an instance by its id.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/delete-instance>

=head2 halt_instances

Halt a list of instances by their ids.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/halt-instances>

=head2 reboot_instances

Reboot a list of instances by their ids.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/reboot-instances>

=head2 start_instances

Reboot a list of instances by their ids.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/start-instances>

=head2 get_instance_bandwidth

Get the remaining bandwidth of a given instance.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/get-instance-bandwidth>

=head2 get_instance_neighbours

Get a list of instances in the same location as the specified instance.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/get-instance-neighbors>

=head2 get_instance_iso_status

Get the ISO status for an instance.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/get-instance-iso-status>

=head2 detach_iso_from_instance

Detach an ISO from a specified instance.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/detach-instance-iso>

=head2 attach_iso_to_instance

Attach an ISO to a specified instance.

L<Vultr API Reference|https://www.vultr.com/api/#tag/instances/operation/attach-instance-iso>

=cut



( run in 1.891 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )