125 lines
3.9 KiB
Protocol Buffer
125 lines
3.9 KiB
Protocol Buffer
/*
|
|
* Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License, version 2.0,
|
|
* as published by the Free Software Foundation.
|
|
*
|
|
* This program is also distributed with certain software (including
|
|
* but not limited to OpenSSL) that is licensed under separate terms,
|
|
* as designated in a particular file or component or in included license
|
|
* documentation. The authors of MySQL hereby grant you an additional
|
|
* permission to link the program and your derivative works with the
|
|
* separately licensed software that they have included with MySQL.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License, version 2.0, for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*/
|
|
syntax = "proto2";
|
|
|
|
import "mysqlx.proto"; // comment_out_if PROTOBUF_LITE
|
|
|
|
// ifdef PROTOBUF_LITE: option optimize_for = LITE_RUNTIME;
|
|
|
|
// Messages to manage Sessions
|
|
//
|
|
// .. uml::
|
|
//
|
|
// == session start ==
|
|
// Client -> Server: AuthenticateStart
|
|
// opt
|
|
// Server --> Client: AuthenticateContinue
|
|
// Client --> Server: AuthenticateContinue
|
|
// end
|
|
// alt
|
|
// Server --> Client: AuthenticateOk
|
|
// else
|
|
// Server --> Client: Error
|
|
// end
|
|
// ...
|
|
// == session reset ==
|
|
// Client -> Server: Reset
|
|
// Server --> Client: Ok
|
|
// == session end ==
|
|
// Client -> Server: Close
|
|
// Server --> Client: Ok
|
|
//
|
|
package Mysqlx.Session;
|
|
option java_package = "com.mysql.cj.x.protobuf";
|
|
|
|
// the initial message send from the client to the server to start the
|
|
// authentication proccess
|
|
//
|
|
// :param mech_name: authentication mechanism name
|
|
// :param auth_data: authentication data
|
|
// :param initial_response: initial response
|
|
// :Returns: :protobuf:msg:`Mysqlx.Session::AuthenticateContinue`
|
|
message AuthenticateStart {
|
|
required string mech_name = 1;
|
|
optional bytes auth_data = 2;
|
|
optional bytes initial_response = 3;
|
|
|
|
option (client_message_id) = SESS_AUTHENTICATE_START; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
// send by client or server after a :protobuf:msg:`Mysqlx.Session::AuthenticateStart` to
|
|
// exchange more auth data
|
|
//
|
|
// :param auth_data: authentication data
|
|
// :Returns: :protobuf:msg:`Mysqlx.Session::AuthenticateContinue`
|
|
message AuthenticateContinue {
|
|
required bytes auth_data = 1;
|
|
|
|
option (server_message_id) = SESS_AUTHENTICATE_CONTINUE; // comment_out_if PROTOBUF_LITE
|
|
option (client_message_id) = SESS_AUTHENTICATE_CONTINUE; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
// sent by the server after successful authentication
|
|
//
|
|
// :param auth_data: authentication data
|
|
message AuthenticateOk {
|
|
optional bytes auth_data = 1;
|
|
|
|
option (server_message_id) = SESS_AUTHENTICATE_OK; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
message NewSession {
|
|
option (client_message_id) = SESS_NEW; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
message KillSession {
|
|
enum KillType {
|
|
QUERY = 1;
|
|
CONNECTION = 2;
|
|
}
|
|
required KillType type = 1;
|
|
required uint64 x_session_id = 2;
|
|
|
|
option (client_message_id) = SESS_KILL; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
// reset the current session
|
|
// param keep_open: if is true the session will be reset, but stays authenticated.
|
|
// otherwise, the session will be closed and needs to be authenticated again.
|
|
//
|
|
// :Returns: :protobuf:msg:`Mysqlx::Ok`
|
|
message Reset {
|
|
optional bool keep_open = 1 [ default = false ];
|
|
|
|
option (client_message_id) = SESS_RESET; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|
|
// close the current session
|
|
//
|
|
// :Returns: :protobuf:msg:`Mysqlx::Ok`
|
|
message Close {
|
|
option (client_message_id) = SESS_CLOSE; // comment_out_if PROTOBUF_LITE
|
|
}
|
|
|