// Code generated by ifacemaker; DO NOT EDIT.

package hcloud

import (
	"context"
)

// IStorageBoxTypeClient ...
type IStorageBoxTypeClient interface {
	// List returns a list of storage box types for a specific page.
	//
	// See https://docs.hetzner.cloud/reference/hetzner#storage-box-types-list-storage-box-types
	List(ctx context.Context, opts StorageBoxTypeListOpts) ([]*StorageBoxType, *Response, error)
	// All returns all storage box types.
	//
	// See https://docs.hetzner.cloud/reference/hetzner#storage-box-types-list-storage-box-types
	All(ctx context.Context) ([]*StorageBoxType, error)
	// AllWithOpts returns all storage box types for the given options.
	//
	// See https://docs.hetzner.cloud/reference/hetzner#storage-box-types-list-storage-box-types
	AllWithOpts(ctx context.Context, opts StorageBoxTypeListOpts) ([]*StorageBoxType, error)
	// GetByID returns a specific Storage Box Type by ID.
	//
	// See https://docs.hetzner.cloud/reference/hetzner#storage-box-types-get-a-storage-box-type
	GetByID(ctx context.Context, id int64) (*StorageBoxType, *Response, error)
	// GetByName retrieves a Storage Box Type by its name. If the Storage Box Type does not exist, nil is returned.
	//
	// See https://docs.hetzner.cloud/reference/hetzner#storage-box-types-get-a-storage-box-type
	GetByName(ctx context.Context, name string) (*StorageBoxType, *Response, error)
	// Get retrieves a Storage Box Type by its ID if the input can be parsed as an integer, otherwise it
	// retrieves a Storage Box Type by its name. If the Storage Box Type does not exist, nil is returned.
	//
	// See https://docs.hetzner.cloud/reference/hetzner#storage-box-types-get-a-storage-box-type
	Get(ctx context.Context, idOrName string) (*StorageBoxType, *Response, error)
}
