// Code generated by ifacemaker; DO NOT EDIT.

package hcloud

import (
	"context"
)

// IResourceActionClient ...
type IResourceActionClient[R actionSupporter] interface {
	// GetByID retrieves an action by its ID. If the action does not exist, nil is returned.
	GetByID(ctx context.Context, id int64) (*Action, *Response, error)
	// List returns a paginated list of actions.
	//
	// Please note that filters specified in opts are not taken into account
	// when their value corresponds to their zero value or when they are empty.
	List(ctx context.Context, opts ActionListOpts) ([]*Action, *Response, error)
	// All returns all actions for the given options.
	All(ctx context.Context, opts ActionListOpts) ([]*Action, error)
	// ListFor returns a paginated list of actions for the given Resource.
	//
	// Please note that filters specified in opts are not taken into account
	// when their value corresponds to their zero value or when they are empty.
	ListFor(ctx context.Context, resource R, opts ActionListOpts) ([]*Action, *Response, error)
	// AllFor returns all actions for the given Resource.
	AllFor(ctx context.Context, resource R, opts ActionListOpts) ([]*Action, error)
}
