Sha256: 684125ae01c7ea003073b79096283a1cbac886eb1a89dce99bba399d370d6d79

Contents?: true

Size: 830 Bytes

Versions: 2

Compression:

Stored size: 830 Bytes

Contents

module Vultr
  class BlockStorageResource < Resource
    def list(**params)
      response = get_request("blocks", params: params)
      Collection.from_response(response, key: "blocks", type: BlockStorage)
    end

    def create(**attributes)
      BlockStorage.new post_request("blocks", body: attributes).body.dig("block")
    end

    def retrieve(block_id:)
      BlockStorage.new get_request("blocks/#{block_id}").body.dig("block")
    end

    def update(block_id:, **attributes)
      patch_request("blocks/#{block_id}", body: attributes)
    end

    def delete(block_id:)
      delete_request("blocks/#{block_id}")
    end

    def attach(block_id:)
      post_request("blocks/#{block_id}/attach", body: {})
    end

    def detach(block_id:)
      post_request("blocks/#{block_id}/detach", body: {})
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

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