// Code generated by sdkgen. DO NOT EDIT.

package opensearch

import (
	"context"

	"google.golang.org/grpc"
)

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

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

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

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

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

// Extension gets ExtensionService client
func (o *OpenSearch) Extension() *ExtensionServiceClient {
	return &ExtensionServiceClient{getConn: o.getConn}
}
