/**
 * @fileoverview gRPC-Web generated client stub for org.couchers.admin
 * @enhanceable
 * @public
 */

// Code generated by protoc-gen-grpc-web. DO NOT EDIT.
// versions:
// 	protoc-gen-grpc-web v1.5.0
// 	protoc              v5.26.1
// source: admin.proto


/* eslint-disable */
// @ts-nocheck



const grpc = {};
grpc.web = require('grpc-web');


var google_protobuf_empty_pb = require('google-protobuf/google/protobuf/empty_pb.js')

var google_protobuf_timestamp_pb = require('google-protobuf/google/protobuf/timestamp_pb.js')

var google_protobuf_wrappers_pb = require('google-protobuf/google/protobuf/wrappers_pb.js')

var annotations_pb = require('./annotations_pb.js')

var api_pb = require('./api_pb.js')
const proto = {};
proto.org = {};
proto.org.couchers = {};
proto.org.couchers.admin = require('./admin_pb.js');

/**
 * @param {string} hostname
 * @param {?Object} credentials
 * @param {?grpc.web.ClientOptions} options
 * @constructor
 * @struct
 * @final
 */
proto.org.couchers.admin.AdminClient =
    function(hostname, credentials, options) {
  if (!options) options = {};
  options.format = 'binary';

  /**
   * @private @const {!grpc.web.GrpcWebClientBase} The client
   */
  this.client_ = new grpc.web.GrpcWebClientBase(options);

  /**
   * @private @const {string} The hostname
   */
  this.hostname_ = hostname.replace(/\/+$/, '');

};


/**
 * @param {string} hostname
 * @param {?Object} credentials
 * @param {?grpc.web.ClientOptions} options
 * @constructor
 * @struct
 * @final
 */
proto.org.couchers.admin.AdminPromiseClient =
    function(hostname, credentials, options) {
  if (!options) options = {};
  options.format = 'binary';

  /**
   * @private @const {!grpc.web.GrpcWebClientBase} The client
   */
  this.client_ = new grpc.web.GrpcWebClientBase(options);

  /**
   * @private @const {string} The hostname
   */
  this.hostname_ = hostname.replace(/\/+$/, '');

};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetUserDetailsReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_GetUserDetails = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetUserDetails',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetUserDetailsReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.GetUserDetailsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetUserDetailsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getUserDetails =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetUserDetails',
      request,
      metadata || {},
      methodDescriptor_Admin_GetUserDetails,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetUserDetailsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getUserDetails =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetUserDetails',
      request,
      metadata || {},
      methodDescriptor_Admin_GetUserDetails);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetUserReq,
 *   !proto.org.couchers.api.core.User>}
 */
const methodDescriptor_Admin_GetUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetUserReq,
  api_pb.User,
  /**
   * @param {!proto.org.couchers.admin.GetUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  api_pb.User.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.api.core.User)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.api.core.User>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetUser',
      request,
      metadata || {},
      methodDescriptor_Admin_GetUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.api.core.User>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetUser',
      request,
      metadata || {},
      methodDescriptor_Admin_GetUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.SearchUsersReq,
 *   !proto.org.couchers.admin.SearchUsersRes>}
 */
const methodDescriptor_Admin_SearchUsers = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/SearchUsers',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.SearchUsersReq,
  proto.org.couchers.admin.SearchUsersRes,
  /**
   * @param {!proto.org.couchers.admin.SearchUsersReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.SearchUsersRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.SearchUsersReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.SearchUsersRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.SearchUsersRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.searchUsers =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/SearchUsers',
      request,
      metadata || {},
      methodDescriptor_Admin_SearchUsers,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.SearchUsersReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.SearchUsersRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.searchUsers =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/SearchUsers',
      request,
      metadata || {},
      methodDescriptor_Admin_SearchUsers);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ChangeUserGenderReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_ChangeUserGender = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ChangeUserGender',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ChangeUserGenderReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.ChangeUserGenderReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ChangeUserGenderReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.changeUserGender =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ChangeUserGender',
      request,
      metadata || {},
      methodDescriptor_Admin_ChangeUserGender,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ChangeUserGenderReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.changeUserGender =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ChangeUserGender',
      request,
      metadata || {},
      methodDescriptor_Admin_ChangeUserGender);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ChangeUserBirthdateReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_ChangeUserBirthdate = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ChangeUserBirthdate',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ChangeUserBirthdateReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.ChangeUserBirthdateReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ChangeUserBirthdateReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.changeUserBirthdate =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ChangeUserBirthdate',
      request,
      metadata || {},
      methodDescriptor_Admin_ChangeUserBirthdate,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ChangeUserBirthdateReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.changeUserBirthdate =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ChangeUserBirthdate',
      request,
      metadata || {},
      methodDescriptor_Admin_ChangeUserBirthdate);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.AddBadgeReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_AddBadge = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/AddBadge',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.AddBadgeReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.AddBadgeReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.AddBadgeReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.addBadge =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddBadge',
      request,
      metadata || {},
      methodDescriptor_Admin_AddBadge,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.AddBadgeReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.addBadge =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddBadge',
      request,
      metadata || {},
      methodDescriptor_Admin_AddBadge);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.RemoveBadgeReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_RemoveBadge = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/RemoveBadge',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.RemoveBadgeReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.RemoveBadgeReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.RemoveBadgeReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.removeBadge =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/RemoveBadge',
      request,
      metadata || {},
      methodDescriptor_Admin_RemoveBadge,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.RemoveBadgeReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.removeBadge =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/RemoveBadge',
      request,
      metadata || {},
      methodDescriptor_Admin_RemoveBadge);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.SetPassportSexGenderExceptionReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_SetPassportSexGenderException = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/SetPassportSexGenderException',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.SetPassportSexGenderExceptionReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.SetPassportSexGenderExceptionReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.SetPassportSexGenderExceptionReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.setPassportSexGenderException =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/SetPassportSexGenderException',
      request,
      metadata || {},
      methodDescriptor_Admin_SetPassportSexGenderException,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.SetPassportSexGenderExceptionReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.setPassportSexGenderException =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/SetPassportSexGenderException',
      request,
      metadata || {},
      methodDescriptor_Admin_SetPassportSexGenderException);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.BanUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_BanUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/BanUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.BanUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.BanUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.BanUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.banUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/BanUser',
      request,
      metadata || {},
      methodDescriptor_Admin_BanUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.BanUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.banUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/BanUser',
      request,
      metadata || {},
      methodDescriptor_Admin_BanUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.UnbanUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_UnbanUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/UnbanUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.UnbanUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.UnbanUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.UnbanUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.unbanUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/UnbanUser',
      request,
      metadata || {},
      methodDescriptor_Admin_UnbanUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.UnbanUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.unbanUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/UnbanUser',
      request,
      metadata || {},
      methodDescriptor_Admin_UnbanUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ShadowUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_ShadowUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ShadowUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ShadowUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.ShadowUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ShadowUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.shadowUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ShadowUser',
      request,
      metadata || {},
      methodDescriptor_Admin_ShadowUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ShadowUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.shadowUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ShadowUser',
      request,
      metadata || {},
      methodDescriptor_Admin_ShadowUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.UnshadowUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_UnshadowUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/UnshadowUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.UnshadowUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.UnshadowUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.UnshadowUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.unshadowUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/UnshadowUser',
      request,
      metadata || {},
      methodDescriptor_Admin_UnshadowUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.UnshadowUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.unshadowUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/UnshadowUser',
      request,
      metadata || {},
      methodDescriptor_Admin_UnshadowUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.AddAdminNoteReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_AddAdminNote = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/AddAdminNote',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.AddAdminNoteReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.AddAdminNoteReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.AddAdminNoteReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.addAdminNote =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddAdminNote',
      request,
      metadata || {},
      methodDescriptor_Admin_AddAdminNote,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.AddAdminNoteReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.addAdminNote =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddAdminNote',
      request,
      metadata || {},
      methodDescriptor_Admin_AddAdminNote);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetContentReportReq,
 *   !proto.org.couchers.admin.GetContentReportRes>}
 */
const methodDescriptor_Admin_GetContentReport = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetContentReport',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetContentReportReq,
  proto.org.couchers.admin.GetContentReportRes,
  /**
   * @param {!proto.org.couchers.admin.GetContentReportReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.GetContentReportRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetContentReportReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.GetContentReportRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.GetContentReportRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getContentReport =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetContentReport',
      request,
      metadata || {},
      methodDescriptor_Admin_GetContentReport,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetContentReportReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.GetContentReportRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getContentReport =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetContentReport',
      request,
      metadata || {},
      methodDescriptor_Admin_GetContentReport);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetContentReportsForAuthorReq,
 *   !proto.org.couchers.admin.GetContentReportsForAuthorRes>}
 */
const methodDescriptor_Admin_GetContentReportsForAuthor = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetContentReportsForAuthor',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetContentReportsForAuthorReq,
  proto.org.couchers.admin.GetContentReportsForAuthorRes,
  /**
   * @param {!proto.org.couchers.admin.GetContentReportsForAuthorReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.GetContentReportsForAuthorRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetContentReportsForAuthorReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.GetContentReportsForAuthorRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.GetContentReportsForAuthorRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getContentReportsForAuthor =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetContentReportsForAuthor',
      request,
      metadata || {},
      methodDescriptor_Admin_GetContentReportsForAuthor,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetContentReportsForAuthorReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.GetContentReportsForAuthorRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getContentReportsForAuthor =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetContentReportsForAuthor',
      request,
      metadata || {},
      methodDescriptor_Admin_GetContentReportsForAuthor);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.SendModNoteReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_SendModNote = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/SendModNote',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.SendModNoteReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.SendModNoteReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.SendModNoteReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.sendModNote =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/SendModNote',
      request,
      metadata || {},
      methodDescriptor_Admin_SendModNote,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.SendModNoteReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.sendModNote =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/SendModNote',
      request,
      metadata || {},
      methodDescriptor_Admin_SendModNote);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_MarkUserNeedsLocationUpdate = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/MarkUserNeedsLocationUpdate',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.markUserNeedsLocationUpdate =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/MarkUserNeedsLocationUpdate',
      request,
      metadata || {},
      methodDescriptor_Admin_MarkUserNeedsLocationUpdate,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.MarkUserNeedsLocationUpdateReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.markUserNeedsLocationUpdate =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/MarkUserNeedsLocationUpdate',
      request,
      metadata || {},
      methodDescriptor_Admin_MarkUserNeedsLocationUpdate);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.DeleteUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_DeleteUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/DeleteUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.DeleteUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.DeleteUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.DeleteUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.deleteUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteUser',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.DeleteUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.deleteUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteUser',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.RecoverDeletedUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_RecoverDeletedUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/RecoverDeletedUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.RecoverDeletedUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.RecoverDeletedUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.RecoverDeletedUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.recoverDeletedUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/RecoverDeletedUser',
      request,
      metadata || {},
      methodDescriptor_Admin_RecoverDeletedUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.RecoverDeletedUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.recoverDeletedUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/RecoverDeletedUser',
      request,
      metadata || {},
      methodDescriptor_Admin_RecoverDeletedUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.CreateApiKeyReq,
 *   !proto.org.couchers.admin.CreateApiKeyRes>}
 */
const methodDescriptor_Admin_CreateApiKey = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/CreateApiKey',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.CreateApiKeyReq,
  proto.org.couchers.admin.CreateApiKeyRes,
  /**
   * @param {!proto.org.couchers.admin.CreateApiKeyReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.CreateApiKeyRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.CreateApiKeyReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.CreateApiKeyRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.CreateApiKeyRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.createApiKey =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateApiKey',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateApiKey,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.CreateApiKeyReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.CreateApiKeyRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.createApiKey =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateApiKey',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateApiKey);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetChatsReq,
 *   !proto.org.couchers.admin.GetChatsRes>}
 */
const methodDescriptor_Admin_GetChats = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetChats',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetChatsReq,
  proto.org.couchers.admin.GetChatsRes,
  /**
   * @param {!proto.org.couchers.admin.GetChatsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.GetChatsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetChatsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.GetChatsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.GetChatsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getChats =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetChats',
      request,
      metadata || {},
      methodDescriptor_Admin_GetChats,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetChatsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.GetChatsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getChats =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetChats',
      request,
      metadata || {},
      methodDescriptor_Admin_GetChats);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.DeleteEventReq,
 *   !proto.google.protobuf.Empty>}
 */
const methodDescriptor_Admin_DeleteEvent = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/DeleteEvent',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.DeleteEventReq,
  google_protobuf_empty_pb.Empty,
  /**
   * @param {!proto.org.couchers.admin.DeleteEventReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  google_protobuf_empty_pb.Empty.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.DeleteEventReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.deleteEvent =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteEvent',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteEvent,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.DeleteEventReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.google.protobuf.Empty>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.deleteEvent =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteEvent',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteEvent);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ListUserIdsReq,
 *   !proto.org.couchers.admin.ListUserIdsRes>}
 */
const methodDescriptor_Admin_ListUserIds = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ListUserIds',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ListUserIdsReq,
  proto.org.couchers.admin.ListUserIdsRes,
  /**
   * @param {!proto.org.couchers.admin.ListUserIdsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.ListUserIdsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ListUserIdsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.ListUserIdsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.ListUserIdsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.listUserIds =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListUserIds',
      request,
      metadata || {},
      methodDescriptor_Admin_ListUserIds,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ListUserIdsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.ListUserIdsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.listUserIds =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListUserIds',
      request,
      metadata || {},
      methodDescriptor_Admin_ListUserIds);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.EditReferenceTextReq,
 *   !proto.google.protobuf.Empty>}
 */
const methodDescriptor_Admin_EditReferenceText = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/EditReferenceText',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.EditReferenceTextReq,
  google_protobuf_empty_pb.Empty,
  /**
   * @param {!proto.org.couchers.admin.EditReferenceTextReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  google_protobuf_empty_pb.Empty.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.EditReferenceTextReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.editReferenceText =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/EditReferenceText',
      request,
      metadata || {},
      methodDescriptor_Admin_EditReferenceText,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.EditReferenceTextReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.google.protobuf.Empty>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.editReferenceText =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/EditReferenceText',
      request,
      metadata || {},
      methodDescriptor_Admin_EditReferenceText);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.DeleteReferenceReq,
 *   !proto.google.protobuf.Empty>}
 */
const methodDescriptor_Admin_DeleteReference = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/DeleteReference',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.DeleteReferenceReq,
  google_protobuf_empty_pb.Empty,
  /**
   * @param {!proto.org.couchers.admin.DeleteReferenceReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  google_protobuf_empty_pb.Empty.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.DeleteReferenceReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.deleteReference =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteReference',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteReference,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.DeleteReferenceReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.google.protobuf.Empty>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.deleteReference =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteReference',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteReference);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetUserReferencesReq,
 *   !proto.org.couchers.admin.GetUserReferencesRes>}
 */
const methodDescriptor_Admin_GetUserReferences = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetUserReferences',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetUserReferencesReq,
  proto.org.couchers.admin.GetUserReferencesRes,
  /**
   * @param {!proto.org.couchers.admin.GetUserReferencesReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.GetUserReferencesRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetUserReferencesReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.GetUserReferencesRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.GetUserReferencesRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getUserReferences =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetUserReferences',
      request,
      metadata || {},
      methodDescriptor_Admin_GetUserReferences,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetUserReferencesReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.GetUserReferencesRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getUserReferences =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetUserReferences',
      request,
      metadata || {},
      methodDescriptor_Admin_GetUserReferences);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetFriendRequestsReq,
 *   !proto.org.couchers.admin.GetFriendRequestsRes>}
 */
const methodDescriptor_Admin_GetFriendRequests = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetFriendRequests',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetFriendRequestsReq,
  proto.org.couchers.admin.GetFriendRequestsRes,
  /**
   * @param {!proto.org.couchers.admin.GetFriendRequestsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.GetFriendRequestsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetFriendRequestsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.GetFriendRequestsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.GetFriendRequestsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getFriendRequests =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetFriendRequests',
      request,
      metadata || {},
      methodDescriptor_Admin_GetFriendRequests,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetFriendRequestsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.GetFriendRequestsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getFriendRequests =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetFriendRequests',
      request,
      metadata || {},
      methodDescriptor_Admin_GetFriendRequests);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.GetNonvisibleUserAccessLogReq,
 *   !proto.org.couchers.admin.GetNonvisibleUserAccessLogRes>}
 */
const methodDescriptor_Admin_GetNonvisibleUserAccessLog = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/GetNonvisibleUserAccessLog',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.GetNonvisibleUserAccessLogReq,
  proto.org.couchers.admin.GetNonvisibleUserAccessLogRes,
  /**
   * @param {!proto.org.couchers.admin.GetNonvisibleUserAccessLogReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.GetNonvisibleUserAccessLogRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.GetNonvisibleUserAccessLogReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.GetNonvisibleUserAccessLogRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.GetNonvisibleUserAccessLogRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.getNonvisibleUserAccessLog =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetNonvisibleUserAccessLog',
      request,
      metadata || {},
      methodDescriptor_Admin_GetNonvisibleUserAccessLog,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.GetNonvisibleUserAccessLogReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.GetNonvisibleUserAccessLogRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.getNonvisibleUserAccessLog =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/GetNonvisibleUserAccessLog',
      request,
      metadata || {},
      methodDescriptor_Admin_GetNonvisibleUserAccessLog);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.EditDiscussionReq,
 *   !proto.google.protobuf.Empty>}
 */
const methodDescriptor_Admin_EditDiscussion = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/EditDiscussion',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.EditDiscussionReq,
  google_protobuf_empty_pb.Empty,
  /**
   * @param {!proto.org.couchers.admin.EditDiscussionReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  google_protobuf_empty_pb.Empty.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.EditDiscussionReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.editDiscussion =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/EditDiscussion',
      request,
      metadata || {},
      methodDescriptor_Admin_EditDiscussion,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.EditDiscussionReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.google.protobuf.Empty>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.editDiscussion =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/EditDiscussion',
      request,
      metadata || {},
      methodDescriptor_Admin_EditDiscussion);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.AdminDeleteDiscussionReq,
 *   !proto.google.protobuf.Empty>}
 */
const methodDescriptor_Admin_DeleteDiscussion = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/DeleteDiscussion',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.AdminDeleteDiscussionReq,
  google_protobuf_empty_pb.Empty,
  /**
   * @param {!proto.org.couchers.admin.AdminDeleteDiscussionReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  google_protobuf_empty_pb.Empty.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.AdminDeleteDiscussionReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.deleteDiscussion =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteDiscussion',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteDiscussion,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.AdminDeleteDiscussionReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.google.protobuf.Empty>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.deleteDiscussion =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/DeleteDiscussion',
      request,
      metadata || {},
      methodDescriptor_Admin_DeleteDiscussion);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.EditReplyReq,
 *   !proto.google.protobuf.Empty>}
 */
const methodDescriptor_Admin_EditReply = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/EditReply',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.EditReplyReq,
  google_protobuf_empty_pb.Empty,
  /**
   * @param {!proto.org.couchers.admin.EditReplyReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  google_protobuf_empty_pb.Empty.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.EditReplyReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.editReply =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/EditReply',
      request,
      metadata || {},
      methodDescriptor_Admin_EditReply,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.EditReplyReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.google.protobuf.Empty>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.editReply =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/EditReply',
      request,
      metadata || {},
      methodDescriptor_Admin_EditReply);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.AddUsersToModerationUserListReq,
 *   !proto.org.couchers.admin.AddUsersToModerationUserListRes>}
 */
const methodDescriptor_Admin_AddUsersToModerationUserList = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/AddUsersToModerationUserList',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.AddUsersToModerationUserListReq,
  proto.org.couchers.admin.AddUsersToModerationUserListRes,
  /**
   * @param {!proto.org.couchers.admin.AddUsersToModerationUserListReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.AddUsersToModerationUserListRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.AddUsersToModerationUserListReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.AddUsersToModerationUserListRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.AddUsersToModerationUserListRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.addUsersToModerationUserList =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddUsersToModerationUserList',
      request,
      metadata || {},
      methodDescriptor_Admin_AddUsersToModerationUserList,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.AddUsersToModerationUserListReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.AddUsersToModerationUserListRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.addUsersToModerationUserList =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddUsersToModerationUserList',
      request,
      metadata || {},
      methodDescriptor_Admin_AddUsersToModerationUserList);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.RemoveUserFromModerationUserListReq,
 *   !proto.google.protobuf.Empty>}
 */
const methodDescriptor_Admin_RemoveUserFromModerationUserList = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/RemoveUserFromModerationUserList',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.RemoveUserFromModerationUserListReq,
  google_protobuf_empty_pb.Empty,
  /**
   * @param {!proto.org.couchers.admin.RemoveUserFromModerationUserListReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  google_protobuf_empty_pb.Empty.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.RemoveUserFromModerationUserListReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.google.protobuf.Empty)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.google.protobuf.Empty>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.removeUserFromModerationUserList =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/RemoveUserFromModerationUserList',
      request,
      metadata || {},
      methodDescriptor_Admin_RemoveUserFromModerationUserList,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.RemoveUserFromModerationUserListReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.google.protobuf.Empty>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.removeUserFromModerationUserList =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/RemoveUserFromModerationUserList',
      request,
      metadata || {},
      methodDescriptor_Admin_RemoveUserFromModerationUserList);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ListModerationUserListsReq,
 *   !proto.org.couchers.admin.ListModerationUserListsRes>}
 */
const methodDescriptor_Admin_ListModerationUserLists = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ListModerationUserLists',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ListModerationUserListsReq,
  proto.org.couchers.admin.ListModerationUserListsRes,
  /**
   * @param {!proto.org.couchers.admin.ListModerationUserListsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.ListModerationUserListsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ListModerationUserListsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.ListModerationUserListsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.ListModerationUserListsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.listModerationUserLists =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListModerationUserLists',
      request,
      metadata || {},
      methodDescriptor_Admin_ListModerationUserLists,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ListModerationUserListsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.ListModerationUserListsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.listModerationUserLists =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListModerationUserLists',
      request,
      metadata || {},
      methodDescriptor_Admin_ListModerationUserLists);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.CreateAccountDeletionLinkReq,
 *   !proto.org.couchers.admin.CreateAccountDeletionLinkRes>}
 */
const methodDescriptor_Admin_CreateAccountDeletionLink = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/CreateAccountDeletionLink',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.CreateAccountDeletionLinkReq,
  proto.org.couchers.admin.CreateAccountDeletionLinkRes,
  /**
   * @param {!proto.org.couchers.admin.CreateAccountDeletionLinkReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.CreateAccountDeletionLinkRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.CreateAccountDeletionLinkReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.CreateAccountDeletionLinkRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.CreateAccountDeletionLinkRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.createAccountDeletionLink =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateAccountDeletionLink',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateAccountDeletionLink,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.CreateAccountDeletionLinkReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.CreateAccountDeletionLinkRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.createAccountDeletionLink =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateAccountDeletionLink',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateAccountDeletionLink);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.AccessStatsReq,
 *   !proto.org.couchers.admin.AccessStatsRes>}
 */
const methodDescriptor_Admin_AccessStats = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/AccessStats',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.AccessStatsReq,
  proto.org.couchers.admin.AccessStatsRes,
  /**
   * @param {!proto.org.couchers.admin.AccessStatsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.AccessStatsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.AccessStatsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.AccessStatsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.AccessStatsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.accessStats =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/AccessStats',
      request,
      metadata || {},
      methodDescriptor_Admin_AccessStats,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.AccessStatsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.AccessStatsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.accessStats =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/AccessStats',
      request,
      metadata || {},
      methodDescriptor_Admin_AccessStats);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.SetLastDonatedReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_SetLastDonated = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/SetLastDonated',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.SetLastDonatedReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.SetLastDonatedReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.SetLastDonatedReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.setLastDonated =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/SetLastDonated',
      request,
      metadata || {},
      methodDescriptor_Admin_SetLastDonated,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.SetLastDonatedReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.setLastDonated =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/SetLastDonated',
      request,
      metadata || {},
      methodDescriptor_Admin_SetLastDonated);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.CreateAdminTagReq,
 *   !proto.org.couchers.admin.AdminTagInfo>}
 */
const methodDescriptor_Admin_CreateAdminTag = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/CreateAdminTag',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.CreateAdminTagReq,
  proto.org.couchers.admin.AdminTagInfo,
  /**
   * @param {!proto.org.couchers.admin.CreateAdminTagReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.AdminTagInfo.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.CreateAdminTagReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.AdminTagInfo)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.AdminTagInfo>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.createAdminTag =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateAdminTag',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateAdminTag,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.CreateAdminTagReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.AdminTagInfo>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.createAdminTag =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateAdminTag',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateAdminTag);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ListAdminTagsReq,
 *   !proto.org.couchers.admin.ListAdminTagsRes>}
 */
const methodDescriptor_Admin_ListAdminTags = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ListAdminTags',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ListAdminTagsReq,
  proto.org.couchers.admin.ListAdminTagsRes,
  /**
   * @param {!proto.org.couchers.admin.ListAdminTagsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.ListAdminTagsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ListAdminTagsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.ListAdminTagsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.ListAdminTagsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.listAdminTags =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListAdminTags',
      request,
      metadata || {},
      methodDescriptor_Admin_ListAdminTags,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ListAdminTagsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.ListAdminTagsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.listAdminTags =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListAdminTags',
      request,
      metadata || {},
      methodDescriptor_Admin_ListAdminTags);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.AddAdminTagToUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_AddAdminTagToUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/AddAdminTagToUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.AddAdminTagToUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.AddAdminTagToUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.AddAdminTagToUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.addAdminTagToUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddAdminTagToUser',
      request,
      metadata || {},
      methodDescriptor_Admin_AddAdminTagToUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.AddAdminTagToUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.addAdminTagToUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/AddAdminTagToUser',
      request,
      metadata || {},
      methodDescriptor_Admin_AddAdminTagToUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.RemoveAdminTagFromUserReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_RemoveAdminTagFromUser = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/RemoveAdminTagFromUser',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.RemoveAdminTagFromUserReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.RemoveAdminTagFromUserReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.RemoveAdminTagFromUserReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.removeAdminTagFromUser =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/RemoveAdminTagFromUser',
      request,
      metadata || {},
      methodDescriptor_Admin_RemoveAdminTagFromUser,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.RemoveAdminTagFromUserReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.removeAdminTagFromUser =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/RemoveAdminTagFromUser',
      request,
      metadata || {},
      methodDescriptor_Admin_RemoveAdminTagFromUser);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.SetModScoreReq,
 *   !proto.org.couchers.admin.UserDetails>}
 */
const methodDescriptor_Admin_SetModScore = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/SetModScore',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.SetModScoreReq,
  proto.org.couchers.admin.UserDetails,
  /**
   * @param {!proto.org.couchers.admin.SetModScoreReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.UserDetails.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.SetModScoreReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.UserDetails)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.UserDetails>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.setModScore =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/SetModScore',
      request,
      metadata || {},
      methodDescriptor_Admin_SetModScore,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.SetModScoreReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.UserDetails>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.setModScore =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/SetModScore',
      request,
      metadata || {},
      methodDescriptor_Admin_SetModScore);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ListAdminActionsReq,
 *   !proto.org.couchers.admin.ListAdminActionsRes>}
 */
const methodDescriptor_Admin_ListAdminActions = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ListAdminActions',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ListAdminActionsReq,
  proto.org.couchers.admin.ListAdminActionsRes,
  /**
   * @param {!proto.org.couchers.admin.ListAdminActionsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.ListAdminActionsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ListAdminActionsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.ListAdminActionsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.ListAdminActionsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.listAdminActions =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListAdminActions',
      request,
      metadata || {},
      methodDescriptor_Admin_ListAdminActions,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ListAdminActionsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.ListAdminActionsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.listAdminActions =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListAdminActions',
      request,
      metadata || {},
      methodDescriptor_Admin_ListAdminActions);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ListUserUploadsReq,
 *   !proto.org.couchers.admin.ListUserUploadsRes>}
 */
const methodDescriptor_Admin_ListUserUploads = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ListUserUploads',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ListUserUploadsReq,
  proto.org.couchers.admin.ListUserUploadsRes,
  /**
   * @param {!proto.org.couchers.admin.ListUserUploadsReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.ListUserUploadsRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ListUserUploadsReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.ListUserUploadsRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.ListUserUploadsRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.listUserUploads =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListUserUploads',
      request,
      metadata || {},
      methodDescriptor_Admin_ListUserUploads,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ListUserUploadsReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.ListUserUploadsRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.listUserUploads =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListUserUploads',
      request,
      metadata || {},
      methodDescriptor_Admin_ListUserUploads);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.CreateOTAPackageReq,
 *   !proto.org.couchers.admin.OTAPackage>}
 */
const methodDescriptor_Admin_CreateOTAPackage = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/CreateOTAPackage',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.CreateOTAPackageReq,
  proto.org.couchers.admin.OTAPackage,
  /**
   * @param {!proto.org.couchers.admin.CreateOTAPackageReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.OTAPackage.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.CreateOTAPackageReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.OTAPackage)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.OTAPackage>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.createOTAPackage =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateOTAPackage',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateOTAPackage,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.CreateOTAPackageReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.OTAPackage>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.createOTAPackage =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/CreateOTAPackage',
      request,
      metadata || {},
      methodDescriptor_Admin_CreateOTAPackage);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.ListOTAPackagesReq,
 *   !proto.org.couchers.admin.ListOTAPackagesRes>}
 */
const methodDescriptor_Admin_ListOTAPackages = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/ListOTAPackages',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.ListOTAPackagesReq,
  proto.org.couchers.admin.ListOTAPackagesRes,
  /**
   * @param {!proto.org.couchers.admin.ListOTAPackagesReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.ListOTAPackagesRes.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.ListOTAPackagesReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.ListOTAPackagesRes)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.ListOTAPackagesRes>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.listOTAPackages =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListOTAPackages',
      request,
      metadata || {},
      methodDescriptor_Admin_ListOTAPackages,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.ListOTAPackagesReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.ListOTAPackagesRes>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.listOTAPackages =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/ListOTAPackages',
      request,
      metadata || {},
      methodDescriptor_Admin_ListOTAPackages);
};


/**
 * @const
 * @type {!grpc.web.MethodDescriptor<
 *   !proto.org.couchers.admin.BanOTAPackageReq,
 *   !proto.org.couchers.admin.OTAPackage>}
 */
const methodDescriptor_Admin_BanOTAPackage = new grpc.web.MethodDescriptor(
  '/org.couchers.admin.Admin/BanOTAPackage',
  grpc.web.MethodType.UNARY,
  proto.org.couchers.admin.BanOTAPackageReq,
  proto.org.couchers.admin.OTAPackage,
  /**
   * @param {!proto.org.couchers.admin.BanOTAPackageReq} request
   * @return {!Uint8Array}
   */
  function(request) {
    return request.serializeBinary();
  },
  proto.org.couchers.admin.OTAPackage.deserializeBinary
);


/**
 * @param {!proto.org.couchers.admin.BanOTAPackageReq} request The
 *     request proto
 * @param {?Object<string, string>} metadata User defined
 *     call metadata
 * @param {function(?grpc.web.RpcError, ?proto.org.couchers.admin.OTAPackage)}
 *     callback The callback function(error, response)
 * @return {!grpc.web.ClientReadableStream<!proto.org.couchers.admin.OTAPackage>|undefined}
 *     The XHR Node Readable Stream
 */
proto.org.couchers.admin.AdminClient.prototype.banOTAPackage =
    function(request, metadata, callback) {
  return this.client_.rpcCall(this.hostname_ +
      '/org.couchers.admin.Admin/BanOTAPackage',
      request,
      metadata || {},
      methodDescriptor_Admin_BanOTAPackage,
      callback);
};


/**
 * @param {!proto.org.couchers.admin.BanOTAPackageReq} request The
 *     request proto
 * @param {?Object<string, string>=} metadata User defined
 *     call metadata
 * @return {!Promise<!proto.org.couchers.admin.OTAPackage>}
 *     Promise that resolves to the response
 */
proto.org.couchers.admin.AdminPromiseClient.prototype.banOTAPackage =
    function(request, metadata) {
  return this.client_.unaryCall(this.hostname_ +
      '/org.couchers.admin.Admin/BanOTAPackage',
      request,
      metadata || {},
      methodDescriptor_Admin_BanOTAPackage);
};


module.exports = proto.org.couchers.admin;

