// Code generated by sdkgen. DO NOT EDIT.

package clickhouse

import (
	"context"

	"google.golang.org/grpc"
)

// Clickhouse provides access to "clickhouse" component of Yandex.Cloud
type Clickhouse struct {
	getConn func(ctx context.Context) (*grpc.ClientConn, error)
}

// NewClickhouse creates instance of Clickhouse
func NewClickhouse(g func(ctx context.Context) (*grpc.ClientConn, error)) *Clickhouse {
	return &Clickhouse{g}
}

// Backup gets BackupService client
func (c *Clickhouse) Backup() *BackupServiceClient {
	return &BackupServiceClient{getConn: c.getConn}
}

// Cluster gets ClusterService client
func (c *Clickhouse) Cluster() *ClusterServiceClient {
	return &ClusterServiceClient{getConn: c.getConn}
}

// Database gets DatabaseService client
func (c *Clickhouse) Database() *DatabaseServiceClient {
	return &DatabaseServiceClient{getConn: c.getConn}
}

// ResourcePreset gets ResourcePresetService client
func (c *Clickhouse) ResourcePreset() *ResourcePresetServiceClient {
	return &ResourcePresetServiceClient{getConn: c.getConn}
}

// User gets UserService client
func (c *Clickhouse) User() *UserServiceClient {
	return &UserServiceClient{getConn: c.getConn}
}
