/// <summary>
 /// Checks whether an operation on a service should be allowed to proceed
 /// based on the configuration of the service and related policies. It must be
 /// called before the operation is executed.
 ///
 /// If feasible, the client should cache the check results and reuse them for
 /// 60 seconds. In case of any server errors, the client should rely on the
 /// cached results for much longer time to avoid outage.
 /// WARNING: There is general 60s delay for the configuration and policy
 /// propagation, therefore callers MUST NOT depend on the `Check` method having
 /// the latest policy information.
 ///
 /// NOTE: the [CheckRequest][google.api.servicecontrol.v1.CheckRequest] has the size limit of 64KB.
 ///
 /// This method requires the `servicemanagement.services.check` permission
 /// on the specified service. For more information, see
 /// [Cloud IAM](https://cloud.google.com/iam).
 /// </summary>
 /// <param name="request">The request to send to the server.</param>
 /// <param name="options">The options for the call.</param>
 /// <returns>The call object.</returns>
 public virtual grpc::AsyncUnaryCall <global::Google.Cloud.ServiceControl.V1.CheckResponse> CheckAsync(global::Google.Cloud.ServiceControl.V1.CheckRequest request, grpc::CallOptions options)
 {
     return(CallInvoker.AsyncUnaryCall(__Method_Check, null, options, request));
 }
 /// <summary>
 /// Checks whether an operation on a service should be allowed to proceed
 /// based on the configuration of the service and related policies. It must be
 /// called before the operation is executed.
 ///
 /// If feasible, the client should cache the check results and reuse them for
 /// 60 seconds. In case of any server errors, the client should rely on the
 /// cached results for much longer time to avoid outage.
 /// WARNING: There is general 60s delay for the configuration and policy
 /// propagation, therefore callers MUST NOT depend on the `Check` method having
 /// the latest policy information.
 ///
 /// NOTE: the [CheckRequest][google.api.servicecontrol.v1.CheckRequest] has the size limit of 64KB.
 ///
 /// This method requires the `servicemanagement.services.check` permission
 /// on the specified service. For more information, see
 /// [Cloud IAM](https://cloud.google.com/iam).
 /// </summary>
 /// <param name="request">The request received from the client.</param>
 /// <param name="context">The context of the server-side call handler being invoked.</param>
 /// <returns>The response to send back to the client (wrapped by a task).</returns>
 public virtual global::System.Threading.Tasks.Task <global::Google.Cloud.ServiceControl.V1.CheckResponse> Check(global::Google.Cloud.ServiceControl.V1.CheckRequest request, grpc::ServerCallContext context)
 {
     throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
 }
 /// <summary>
 /// Checks whether an operation on a service should be allowed to proceed
 /// based on the configuration of the service and related policies. It must be
 /// called before the operation is executed.
 ///
 /// If feasible, the client should cache the check results and reuse them for
 /// 60 seconds. In case of any server errors, the client should rely on the
 /// cached results for much longer time to avoid outage.
 /// WARNING: There is general 60s delay for the configuration and policy
 /// propagation, therefore callers MUST NOT depend on the `Check` method having
 /// the latest policy information.
 ///
 /// NOTE: the [CheckRequest][google.api.servicecontrol.v1.CheckRequest] has the size limit of 64KB.
 ///
 /// This method requires the `servicemanagement.services.check` permission
 /// on the specified service. For more information, see
 /// [Cloud IAM](https://cloud.google.com/iam).
 /// </summary>
 /// <param name="request">The request to send to the server.</param>
 /// <param name="headers">The initial metadata to send with the call. This parameter is optional.</param>
 /// <param name="deadline">An optional deadline for the call. The call will be cancelled if deadline is hit.</param>
 /// <param name="cancellationToken">An optional token for canceling the call.</param>
 /// <returns>The call object.</returns>
 public virtual grpc::AsyncUnaryCall <global::Google.Cloud.ServiceControl.V1.CheckResponse> CheckAsync(global::Google.Cloud.ServiceControl.V1.CheckRequest request, grpc::Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(CheckAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)));
 }