// This is a generated file - do not edit.
//
// Generated from role.proto.

// @dart = 3.3

// ignore_for_file: annotate_overrides, camel_case_types, comment_references
// ignore_for_file: constant_identifier_names
// ignore_for_file: curly_braces_in_flow_control_structures
// ignore_for_file: deprecated_member_use_from_same_package, library_prefixes
// ignore_for_file: non_constant_identifier_names

import 'dart:async' as $async;
import 'dart:core' as $core;

import 'package:grpc/service_api.dart' as $grpc;
import 'package:protobuf/protobuf.dart' as $pb;

import 'role.pb.dart' as $0;

export 'role.pb.dart';

@$pb.GrpcServiceName('api.RoleService')
class RoleServiceClient extends $grpc.Client {
  /// The hostname for this service.
  static const $core.String defaultHost = '';

  /// OAuth scopes needed for the client.
  static const $core.List<$core.String> oauthScopes = [
    '',
  ];

  RoleServiceClient(super.channel, {super.options, super.interceptors});

  $grpc.ResponseFuture<$0.CreatePlatformRoleResult> createPlatformRole($0.CreatePlatformRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$createPlatformRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.CreateOrganisationRoleResult> createOrganisationRole($0.CreateOrganisationRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$createOrganisationRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.CreateProjectRoleResult> createProjectRole($0.CreateProjectRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$createProjectRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.UpdatePlatformRoleResult> updatePlatformRole($0.UpdatePlatformRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$updatePlatformRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.UpdateOrganisationRoleResult> updateOrganisationRole($0.UpdateOrganisationRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$updateOrganisationRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.UpdateProjectRoleResult> updateProjectRole($0.UpdateProjectRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$updateProjectRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.DeleteAllPlatformRolesResult> deleteAllPlatformRoles($0.DeleteAllPlatformRolesRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$deleteAllPlatformRoles, request, options: options);
  }

  $grpc.ResponseFuture<$0.DeletePlatformRoleResult> deletePlatformRole($0.DeletePlatformRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$deletePlatformRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.DeleteOrganisationRoleResult> deleteOrganisationRole($0.DeleteOrganisationRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$deleteOrganisationRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.DeleteProjectRoleResult> deleteProjectRole($0.DeleteProjectRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$deleteProjectRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.GetPlatformRoleResult> getPlatformRole($0.GetPlatformRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$getPlatformRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.GetOrganisationRoleResult> getOrganisationRole($0.GetOrganisationRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$getOrganisationRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.GetProjectRoleResult> getProjectRole($0.GetProjectRoleRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$getProjectRole, request, options: options);
  }

  $grpc.ResponseFuture<$0.ListPlatformRolesResult> listPlatformRoles($0.ListPlatformRolesRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$listPlatformRoles, request, options: options);
  }

  $grpc.ResponseFuture<$0.ListOrganisationRolesResult> listOrganisationRoles($0.ListOrganisationRolesRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$listOrganisationRoles, request, options: options);
  }

  $grpc.ResponseFuture<$0.ListProjectRolesResult> listProjectRoles($0.ListProjectRolesRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$listProjectRoles, request, options: options);
  }

  $grpc.ResponseFuture<$0.PutRoleExternalPermissionsResult> putRoleExternalPermissions($0.PutRoleExternalPermissionsRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$putRoleExternalPermissions, request, options: options);
  }

  $grpc.ResponseFuture<$0.DeleteRoleExternalPermissionsResult> deleteRoleExternalPermissions($0.DeleteRoleExternalPermissionsRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$deleteRoleExternalPermissions, request, options: options);
  }

  $grpc.ResponseFuture<$0.PropagateRolesOnResourceResult> propagateRolesOnResource($0.PropagateRolesOnResourceRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$propagateRolesOnResource, request, options: options);
  }

  $grpc.ResponseFuture<$0.DeleteRolesOnResourceResult> deleteRolesOnResource($0.DeleteRolesOnResourceRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$deleteRolesOnResource, request, options: options);
  }

  $grpc.ResponseFuture<$0.GetRoleResourceTypesResult> getRoleResourceTypes($0.GetRoleResourceTypesRequest request, {$grpc.CallOptions? options,}) {
    return $createUnaryCall(_$getRoleResourceTypes, request, options: options);
  }

    // method descriptors

  static final _$createPlatformRole = $grpc.ClientMethod<$0.CreatePlatformRoleRequest, $0.CreatePlatformRoleResult>(
      '/api.RoleService/CreatePlatformRole',
      ($0.CreatePlatformRoleRequest value) => value.writeToBuffer(),
      $0.CreatePlatformRoleResult.fromBuffer);
  static final _$createOrganisationRole = $grpc.ClientMethod<$0.CreateOrganisationRoleRequest, $0.CreateOrganisationRoleResult>(
      '/api.RoleService/CreateOrganisationRole',
      ($0.CreateOrganisationRoleRequest value) => value.writeToBuffer(),
      $0.CreateOrganisationRoleResult.fromBuffer);
  static final _$createProjectRole = $grpc.ClientMethod<$0.CreateProjectRoleRequest, $0.CreateProjectRoleResult>(
      '/api.RoleService/CreateProjectRole',
      ($0.CreateProjectRoleRequest value) => value.writeToBuffer(),
      $0.CreateProjectRoleResult.fromBuffer);
  static final _$updatePlatformRole = $grpc.ClientMethod<$0.UpdatePlatformRoleRequest, $0.UpdatePlatformRoleResult>(
      '/api.RoleService/UpdatePlatformRole',
      ($0.UpdatePlatformRoleRequest value) => value.writeToBuffer(),
      $0.UpdatePlatformRoleResult.fromBuffer);
  static final _$updateOrganisationRole = $grpc.ClientMethod<$0.UpdateOrganisationRoleRequest, $0.UpdateOrganisationRoleResult>(
      '/api.RoleService/UpdateOrganisationRole',
      ($0.UpdateOrganisationRoleRequest value) => value.writeToBuffer(),
      $0.UpdateOrganisationRoleResult.fromBuffer);
  static final _$updateProjectRole = $grpc.ClientMethod<$0.UpdateProjectRoleRequest, $0.UpdateProjectRoleResult>(
      '/api.RoleService/UpdateProjectRole',
      ($0.UpdateProjectRoleRequest value) => value.writeToBuffer(),
      $0.UpdateProjectRoleResult.fromBuffer);
  static final _$deleteAllPlatformRoles = $grpc.ClientMethod<$0.DeleteAllPlatformRolesRequest, $0.DeleteAllPlatformRolesResult>(
      '/api.RoleService/DeleteAllPlatformRoles',
      ($0.DeleteAllPlatformRolesRequest value) => value.writeToBuffer(),
      $0.DeleteAllPlatformRolesResult.fromBuffer);
  static final _$deletePlatformRole = $grpc.ClientMethod<$0.DeletePlatformRoleRequest, $0.DeletePlatformRoleResult>(
      '/api.RoleService/DeletePlatformRole',
      ($0.DeletePlatformRoleRequest value) => value.writeToBuffer(),
      $0.DeletePlatformRoleResult.fromBuffer);
  static final _$deleteOrganisationRole = $grpc.ClientMethod<$0.DeleteOrganisationRoleRequest, $0.DeleteOrganisationRoleResult>(
      '/api.RoleService/DeleteOrganisationRole',
      ($0.DeleteOrganisationRoleRequest value) => value.writeToBuffer(),
      $0.DeleteOrganisationRoleResult.fromBuffer);
  static final _$deleteProjectRole = $grpc.ClientMethod<$0.DeleteProjectRoleRequest, $0.DeleteProjectRoleResult>(
      '/api.RoleService/DeleteProjectRole',
      ($0.DeleteProjectRoleRequest value) => value.writeToBuffer(),
      $0.DeleteProjectRoleResult.fromBuffer);
  static final _$getPlatformRole = $grpc.ClientMethod<$0.GetPlatformRoleRequest, $0.GetPlatformRoleResult>(
      '/api.RoleService/GetPlatformRole',
      ($0.GetPlatformRoleRequest value) => value.writeToBuffer(),
      $0.GetPlatformRoleResult.fromBuffer);
  static final _$getOrganisationRole = $grpc.ClientMethod<$0.GetOrganisationRoleRequest, $0.GetOrganisationRoleResult>(
      '/api.RoleService/GetOrganisationRole',
      ($0.GetOrganisationRoleRequest value) => value.writeToBuffer(),
      $0.GetOrganisationRoleResult.fromBuffer);
  static final _$getProjectRole = $grpc.ClientMethod<$0.GetProjectRoleRequest, $0.GetProjectRoleResult>(
      '/api.RoleService/GetProjectRole',
      ($0.GetProjectRoleRequest value) => value.writeToBuffer(),
      $0.GetProjectRoleResult.fromBuffer);
  static final _$listPlatformRoles = $grpc.ClientMethod<$0.ListPlatformRolesRequest, $0.ListPlatformRolesResult>(
      '/api.RoleService/ListPlatformRoles',
      ($0.ListPlatformRolesRequest value) => value.writeToBuffer(),
      $0.ListPlatformRolesResult.fromBuffer);
  static final _$listOrganisationRoles = $grpc.ClientMethod<$0.ListOrganisationRolesRequest, $0.ListOrganisationRolesResult>(
      '/api.RoleService/ListOrganisationRoles',
      ($0.ListOrganisationRolesRequest value) => value.writeToBuffer(),
      $0.ListOrganisationRolesResult.fromBuffer);
  static final _$listProjectRoles = $grpc.ClientMethod<$0.ListProjectRolesRequest, $0.ListProjectRolesResult>(
      '/api.RoleService/ListProjectRoles',
      ($0.ListProjectRolesRequest value) => value.writeToBuffer(),
      $0.ListProjectRolesResult.fromBuffer);
  static final _$putRoleExternalPermissions = $grpc.ClientMethod<$0.PutRoleExternalPermissionsRequest, $0.PutRoleExternalPermissionsResult>(
      '/api.RoleService/PutRoleExternalPermissions',
      ($0.PutRoleExternalPermissionsRequest value) => value.writeToBuffer(),
      $0.PutRoleExternalPermissionsResult.fromBuffer);
  static final _$deleteRoleExternalPermissions = $grpc.ClientMethod<$0.DeleteRoleExternalPermissionsRequest, $0.DeleteRoleExternalPermissionsResult>(
      '/api.RoleService/DeleteRoleExternalPermissions',
      ($0.DeleteRoleExternalPermissionsRequest value) => value.writeToBuffer(),
      $0.DeleteRoleExternalPermissionsResult.fromBuffer);
  static final _$propagateRolesOnResource = $grpc.ClientMethod<$0.PropagateRolesOnResourceRequest, $0.PropagateRolesOnResourceResult>(
      '/api.RoleService/PropagateRolesOnResource',
      ($0.PropagateRolesOnResourceRequest value) => value.writeToBuffer(),
      $0.PropagateRolesOnResourceResult.fromBuffer);
  static final _$deleteRolesOnResource = $grpc.ClientMethod<$0.DeleteRolesOnResourceRequest, $0.DeleteRolesOnResourceResult>(
      '/api.RoleService/DeleteRolesOnResource',
      ($0.DeleteRolesOnResourceRequest value) => value.writeToBuffer(),
      $0.DeleteRolesOnResourceResult.fromBuffer);
  static final _$getRoleResourceTypes = $grpc.ClientMethod<$0.GetRoleResourceTypesRequest, $0.GetRoleResourceTypesResult>(
      '/api.RoleService/GetRoleResourceTypes',
      ($0.GetRoleResourceTypesRequest value) => value.writeToBuffer(),
      $0.GetRoleResourceTypesResult.fromBuffer);
}

@$pb.GrpcServiceName('api.RoleService')
abstract class RoleServiceBase extends $grpc.Service {
  $core.String get $name => 'api.RoleService';

  RoleServiceBase() {
    $addMethod($grpc.ServiceMethod<$0.CreatePlatformRoleRequest, $0.CreatePlatformRoleResult>(
        'CreatePlatformRole',
        createPlatformRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.CreatePlatformRoleRequest.fromBuffer(value),
        ($0.CreatePlatformRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.CreateOrganisationRoleRequest, $0.CreateOrganisationRoleResult>(
        'CreateOrganisationRole',
        createOrganisationRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.CreateOrganisationRoleRequest.fromBuffer(value),
        ($0.CreateOrganisationRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.CreateProjectRoleRequest, $0.CreateProjectRoleResult>(
        'CreateProjectRole',
        createProjectRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.CreateProjectRoleRequest.fromBuffer(value),
        ($0.CreateProjectRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.UpdatePlatformRoleRequest, $0.UpdatePlatformRoleResult>(
        'UpdatePlatformRole',
        updatePlatformRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.UpdatePlatformRoleRequest.fromBuffer(value),
        ($0.UpdatePlatformRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.UpdateOrganisationRoleRequest, $0.UpdateOrganisationRoleResult>(
        'UpdateOrganisationRole',
        updateOrganisationRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.UpdateOrganisationRoleRequest.fromBuffer(value),
        ($0.UpdateOrganisationRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.UpdateProjectRoleRequest, $0.UpdateProjectRoleResult>(
        'UpdateProjectRole',
        updateProjectRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.UpdateProjectRoleRequest.fromBuffer(value),
        ($0.UpdateProjectRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.DeleteAllPlatformRolesRequest, $0.DeleteAllPlatformRolesResult>(
        'DeleteAllPlatformRoles',
        deleteAllPlatformRoles_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.DeleteAllPlatformRolesRequest.fromBuffer(value),
        ($0.DeleteAllPlatformRolesResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.DeletePlatformRoleRequest, $0.DeletePlatformRoleResult>(
        'DeletePlatformRole',
        deletePlatformRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.DeletePlatformRoleRequest.fromBuffer(value),
        ($0.DeletePlatformRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.DeleteOrganisationRoleRequest, $0.DeleteOrganisationRoleResult>(
        'DeleteOrganisationRole',
        deleteOrganisationRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.DeleteOrganisationRoleRequest.fromBuffer(value),
        ($0.DeleteOrganisationRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.DeleteProjectRoleRequest, $0.DeleteProjectRoleResult>(
        'DeleteProjectRole',
        deleteProjectRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.DeleteProjectRoleRequest.fromBuffer(value),
        ($0.DeleteProjectRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.GetPlatformRoleRequest, $0.GetPlatformRoleResult>(
        'GetPlatformRole',
        getPlatformRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.GetPlatformRoleRequest.fromBuffer(value),
        ($0.GetPlatformRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.GetOrganisationRoleRequest, $0.GetOrganisationRoleResult>(
        'GetOrganisationRole',
        getOrganisationRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.GetOrganisationRoleRequest.fromBuffer(value),
        ($0.GetOrganisationRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.GetProjectRoleRequest, $0.GetProjectRoleResult>(
        'GetProjectRole',
        getProjectRole_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.GetProjectRoleRequest.fromBuffer(value),
        ($0.GetProjectRoleResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.ListPlatformRolesRequest, $0.ListPlatformRolesResult>(
        'ListPlatformRoles',
        listPlatformRoles_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.ListPlatformRolesRequest.fromBuffer(value),
        ($0.ListPlatformRolesResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.ListOrganisationRolesRequest, $0.ListOrganisationRolesResult>(
        'ListOrganisationRoles',
        listOrganisationRoles_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.ListOrganisationRolesRequest.fromBuffer(value),
        ($0.ListOrganisationRolesResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.ListProjectRolesRequest, $0.ListProjectRolesResult>(
        'ListProjectRoles',
        listProjectRoles_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.ListProjectRolesRequest.fromBuffer(value),
        ($0.ListProjectRolesResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.PutRoleExternalPermissionsRequest, $0.PutRoleExternalPermissionsResult>(
        'PutRoleExternalPermissions',
        putRoleExternalPermissions_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.PutRoleExternalPermissionsRequest.fromBuffer(value),
        ($0.PutRoleExternalPermissionsResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.DeleteRoleExternalPermissionsRequest, $0.DeleteRoleExternalPermissionsResult>(
        'DeleteRoleExternalPermissions',
        deleteRoleExternalPermissions_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.DeleteRoleExternalPermissionsRequest.fromBuffer(value),
        ($0.DeleteRoleExternalPermissionsResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.PropagateRolesOnResourceRequest, $0.PropagateRolesOnResourceResult>(
        'PropagateRolesOnResource',
        propagateRolesOnResource_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.PropagateRolesOnResourceRequest.fromBuffer(value),
        ($0.PropagateRolesOnResourceResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.DeleteRolesOnResourceRequest, $0.DeleteRolesOnResourceResult>(
        'DeleteRolesOnResource',
        deleteRolesOnResource_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.DeleteRolesOnResourceRequest.fromBuffer(value),
        ($0.DeleteRolesOnResourceResult value) => value.writeToBuffer()));
    $addMethod($grpc.ServiceMethod<$0.GetRoleResourceTypesRequest, $0.GetRoleResourceTypesResult>(
        'GetRoleResourceTypes',
        getRoleResourceTypes_Pre,
        false,
        false,
        ($core.List<$core.int> value) => $0.GetRoleResourceTypesRequest.fromBuffer(value),
        ($0.GetRoleResourceTypesResult value) => value.writeToBuffer()));
  }

  $async.Future<$0.CreatePlatformRoleResult> createPlatformRole_Pre($grpc.ServiceCall $call, $async.Future<$0.CreatePlatformRoleRequest> $request) async {
    return createPlatformRole($call, await $request);
  }

  $async.Future<$0.CreatePlatformRoleResult> createPlatformRole($grpc.ServiceCall call, $0.CreatePlatformRoleRequest request);

  $async.Future<$0.CreateOrganisationRoleResult> createOrganisationRole_Pre($grpc.ServiceCall $call, $async.Future<$0.CreateOrganisationRoleRequest> $request) async {
    return createOrganisationRole($call, await $request);
  }

  $async.Future<$0.CreateOrganisationRoleResult> createOrganisationRole($grpc.ServiceCall call, $0.CreateOrganisationRoleRequest request);

  $async.Future<$0.CreateProjectRoleResult> createProjectRole_Pre($grpc.ServiceCall $call, $async.Future<$0.CreateProjectRoleRequest> $request) async {
    return createProjectRole($call, await $request);
  }

  $async.Future<$0.CreateProjectRoleResult> createProjectRole($grpc.ServiceCall call, $0.CreateProjectRoleRequest request);

  $async.Future<$0.UpdatePlatformRoleResult> updatePlatformRole_Pre($grpc.ServiceCall $call, $async.Future<$0.UpdatePlatformRoleRequest> $request) async {
    return updatePlatformRole($call, await $request);
  }

  $async.Future<$0.UpdatePlatformRoleResult> updatePlatformRole($grpc.ServiceCall call, $0.UpdatePlatformRoleRequest request);

  $async.Future<$0.UpdateOrganisationRoleResult> updateOrganisationRole_Pre($grpc.ServiceCall $call, $async.Future<$0.UpdateOrganisationRoleRequest> $request) async {
    return updateOrganisationRole($call, await $request);
  }

  $async.Future<$0.UpdateOrganisationRoleResult> updateOrganisationRole($grpc.ServiceCall call, $0.UpdateOrganisationRoleRequest request);

  $async.Future<$0.UpdateProjectRoleResult> updateProjectRole_Pre($grpc.ServiceCall $call, $async.Future<$0.UpdateProjectRoleRequest> $request) async {
    return updateProjectRole($call, await $request);
  }

  $async.Future<$0.UpdateProjectRoleResult> updateProjectRole($grpc.ServiceCall call, $0.UpdateProjectRoleRequest request);

  $async.Future<$0.DeleteAllPlatformRolesResult> deleteAllPlatformRoles_Pre($grpc.ServiceCall $call, $async.Future<$0.DeleteAllPlatformRolesRequest> $request) async {
    return deleteAllPlatformRoles($call, await $request);
  }

  $async.Future<$0.DeleteAllPlatformRolesResult> deleteAllPlatformRoles($grpc.ServiceCall call, $0.DeleteAllPlatformRolesRequest request);

  $async.Future<$0.DeletePlatformRoleResult> deletePlatformRole_Pre($grpc.ServiceCall $call, $async.Future<$0.DeletePlatformRoleRequest> $request) async {
    return deletePlatformRole($call, await $request);
  }

  $async.Future<$0.DeletePlatformRoleResult> deletePlatformRole($grpc.ServiceCall call, $0.DeletePlatformRoleRequest request);

  $async.Future<$0.DeleteOrganisationRoleResult> deleteOrganisationRole_Pre($grpc.ServiceCall $call, $async.Future<$0.DeleteOrganisationRoleRequest> $request) async {
    return deleteOrganisationRole($call, await $request);
  }

  $async.Future<$0.DeleteOrganisationRoleResult> deleteOrganisationRole($grpc.ServiceCall call, $0.DeleteOrganisationRoleRequest request);

  $async.Future<$0.DeleteProjectRoleResult> deleteProjectRole_Pre($grpc.ServiceCall $call, $async.Future<$0.DeleteProjectRoleRequest> $request) async {
    return deleteProjectRole($call, await $request);
  }

  $async.Future<$0.DeleteProjectRoleResult> deleteProjectRole($grpc.ServiceCall call, $0.DeleteProjectRoleRequest request);

  $async.Future<$0.GetPlatformRoleResult> getPlatformRole_Pre($grpc.ServiceCall $call, $async.Future<$0.GetPlatformRoleRequest> $request) async {
    return getPlatformRole($call, await $request);
  }

  $async.Future<$0.GetPlatformRoleResult> getPlatformRole($grpc.ServiceCall call, $0.GetPlatformRoleRequest request);

  $async.Future<$0.GetOrganisationRoleResult> getOrganisationRole_Pre($grpc.ServiceCall $call, $async.Future<$0.GetOrganisationRoleRequest> $request) async {
    return getOrganisationRole($call, await $request);
  }

  $async.Future<$0.GetOrganisationRoleResult> getOrganisationRole($grpc.ServiceCall call, $0.GetOrganisationRoleRequest request);

  $async.Future<$0.GetProjectRoleResult> getProjectRole_Pre($grpc.ServiceCall $call, $async.Future<$0.GetProjectRoleRequest> $request) async {
    return getProjectRole($call, await $request);
  }

  $async.Future<$0.GetProjectRoleResult> getProjectRole($grpc.ServiceCall call, $0.GetProjectRoleRequest request);

  $async.Future<$0.ListPlatformRolesResult> listPlatformRoles_Pre($grpc.ServiceCall $call, $async.Future<$0.ListPlatformRolesRequest> $request) async {
    return listPlatformRoles($call, await $request);
  }

  $async.Future<$0.ListPlatformRolesResult> listPlatformRoles($grpc.ServiceCall call, $0.ListPlatformRolesRequest request);

  $async.Future<$0.ListOrganisationRolesResult> listOrganisationRoles_Pre($grpc.ServiceCall $call, $async.Future<$0.ListOrganisationRolesRequest> $request) async {
    return listOrganisationRoles($call, await $request);
  }

  $async.Future<$0.ListOrganisationRolesResult> listOrganisationRoles($grpc.ServiceCall call, $0.ListOrganisationRolesRequest request);

  $async.Future<$0.ListProjectRolesResult> listProjectRoles_Pre($grpc.ServiceCall $call, $async.Future<$0.ListProjectRolesRequest> $request) async {
    return listProjectRoles($call, await $request);
  }

  $async.Future<$0.ListProjectRolesResult> listProjectRoles($grpc.ServiceCall call, $0.ListProjectRolesRequest request);

  $async.Future<$0.PutRoleExternalPermissionsResult> putRoleExternalPermissions_Pre($grpc.ServiceCall $call, $async.Future<$0.PutRoleExternalPermissionsRequest> $request) async {
    return putRoleExternalPermissions($call, await $request);
  }

  $async.Future<$0.PutRoleExternalPermissionsResult> putRoleExternalPermissions($grpc.ServiceCall call, $0.PutRoleExternalPermissionsRequest request);

  $async.Future<$0.DeleteRoleExternalPermissionsResult> deleteRoleExternalPermissions_Pre($grpc.ServiceCall $call, $async.Future<$0.DeleteRoleExternalPermissionsRequest> $request) async {
    return deleteRoleExternalPermissions($call, await $request);
  }

  $async.Future<$0.DeleteRoleExternalPermissionsResult> deleteRoleExternalPermissions($grpc.ServiceCall call, $0.DeleteRoleExternalPermissionsRequest request);

  $async.Future<$0.PropagateRolesOnResourceResult> propagateRolesOnResource_Pre($grpc.ServiceCall $call, $async.Future<$0.PropagateRolesOnResourceRequest> $request) async {
    return propagateRolesOnResource($call, await $request);
  }

  $async.Future<$0.PropagateRolesOnResourceResult> propagateRolesOnResource($grpc.ServiceCall call, $0.PropagateRolesOnResourceRequest request);

  $async.Future<$0.DeleteRolesOnResourceResult> deleteRolesOnResource_Pre($grpc.ServiceCall $call, $async.Future<$0.DeleteRolesOnResourceRequest> $request) async {
    return deleteRolesOnResource($call, await $request);
  }

  $async.Future<$0.DeleteRolesOnResourceResult> deleteRolesOnResource($grpc.ServiceCall call, $0.DeleteRolesOnResourceRequest request);

  $async.Future<$0.GetRoleResourceTypesResult> getRoleResourceTypes_Pre($grpc.ServiceCall $call, $async.Future<$0.GetRoleResourceTypesRequest> $request) async {
    return getRoleResourceTypes($call, await $request);
  }

  $async.Future<$0.GetRoleResourceTypesResult> getRoleResourceTypes($grpc.ServiceCall call, $0.GetRoleResourceTypesRequest request);

}
