func NewClient(opts ...Option) (Client, error) {
	logger := zap.NewNop()
	tc := &topicClient{
		client: m3admin.NewClient(),
		logger: logger,
	}
	for _, o := range opts {
		if err := o.execute(tc); err != nil {
			return nil, err
		}
	}
	return tc, nil
}
NewClient creates a new topic client.
package topic
import (
	"errors"
	"net/http"
	"github.com/m3db/m3db-operator/pkg/m3admin"
	"github.com/m3db/m3/src/msg/generated/proto/topicpb"
	m3topic "github.com/m3db/m3/src/msg/topic"
	"github.com/m3db/m3/src/query/generated/proto/admin"
	"go.uber.org/zap"
)
const (
	headerTopicName = "topic-name"
	topicBaseURL = "/api/v1/topic"
	topicInitURL = topicBaseURL + "/init"
	topicAddURL  = topicBaseURL
)
type topicClient struct {
	url    string
	client m3admin.Client
	logger *zap.Logger
}