/* Copyright 2019 The Vitess Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ // Service definition for vtgateservice. // This is the main entry point to Vitess. syntax = "proto3"; option go_package = "vitess.io/vitess/go/vt/proto/vtgateservice"; option java_package="io.vitess.proto.grpc"; package vtgateservice; import "vtgate.proto"; // Vitess is the main service to access a Vitess cluster. It is the API that vtgate // exposes to serve all queries. service Vitess { // Execute tries to route the query to the right shard. // It depends on the query and bind variables to provide enough // information in conjunction with the vindexes to route the query. // API group: v3 rpc Execute(vtgate.ExecuteRequest) returns (vtgate.ExecuteResponse) {}; // ExecuteBatch tries to route the list of queries on the right shards. // It depends on the query and bind variables to provide enough // information in conjunction with the vindexes to route the query. // API group: v3 rpc ExecuteBatch(vtgate.ExecuteBatchRequest) returns (vtgate.ExecuteBatchResponse) {}; // StreamExecute executes a streaming query based on shards. // It depends on the query and bind variables to provide enough // information in conjunction with the vindexes to route the query. // Use this method if the query returns a large number of rows. // API group: v3 rpc StreamExecute(vtgate.StreamExecuteRequest) returns (stream vtgate.StreamExecuteResponse) {}; // ResolveTransaction resolves a transaction. // API group: Transactions rpc ResolveTransaction(vtgate.ResolveTransactionRequest) returns (vtgate.ResolveTransactionResponse) {}; // VStream streams binlog events from the requested sources. rpc VStream(vtgate.VStreamRequest) returns (stream vtgate.VStreamResponse) {}; // Prepare is used by the MySQL server plugin as part of supporting prepared statements. rpc Prepare(vtgate.PrepareRequest) returns (vtgate.PrepareResponse) {}; // CloseSession closes the session, rolling back any implicit transactions. // This has the same effect as if a "rollback" statement was executed, // but does not affect the query statistics. rpc CloseSession(vtgate.CloseSessionRequest) returns (vtgate.CloseSessionResponse) {}; }