Sha256: 724c52a3bff2d03513f8c52d8176aa243e58bd0ee7ac1e8af64d85181046cce0

Contents?: true

Size: 969 Bytes

Versions: 2

Compression:

Stored size: 969 Bytes

Contents

module Vultr
  class ReservedIpsResource < Resource
    def list(**params)
      response = get_request("reserved-ips", params: params)
      Collection.from_response(response, key: "reserved_ips", type: ReservedIp)
    end

    def create(**attributes)
      ReservedIp.new post_request("reserved-ips", body: attributes).body.dig("reserved_ip")
    end

    def retrieve(reserved_ip:)
      ReservedIp.new get_request("reserved-ips/#{reserved_ip}").body.dig("reserved_ip")
    end

    def delete(reserved_ip:)
      delete_request("reserved-ips/#{reserved_ip}")
    end

    def attach(reserved_ip:, instance_id:)
      post_request("reserved-ips/#{reserved_ip}/attach", body: {instance_id: instance_id})
    end

    def detach(reserved_ip:)
      post_request("reserved-ips/#{reserved_ip}/detach", body: {})
    end

    def convert(**attributes)
      ReservedIp.new post_request("reserved-ips/convert", body: attributes).body.dig("reserved_ip")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
vultr-2.0.0 lib/vultr/resources/reserved_ips.rb
vultr-1.0.0 lib/vultr/resources/reserved_ips.rb