/// <summary>
 /// Reports operation results to Google Service Control, such as logs and
 /// metrics. It should be called after an operation is completed.
 ///
 /// If feasible, the client should aggregate reporting data for up to 5
 /// seconds to reduce API traffic. Limiting aggregation to 5 seconds is to
 /// reduce data loss during client crashes. Clients should carefully choose
 /// the aggregation time window to avoid data loss risk more than 0.01%
 /// for business and compliance reasons.
 ///
 /// NOTE: the [ReportRequest][google.api.servicecontrol.v1.ReportRequest] has the size limit (wire-format byte size) of
 /// 1MB.
 ///
 /// This method requires the `servicemanagement.services.report` permission
 /// on the specified service. For more information, see
 /// [Google 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.ReportResponse> ReportAsync(global::Google.Cloud.ServiceControl.V1.ReportRequest request, grpc::Metadata headers = null, global::System.DateTime?deadline = null, global::System.Threading.CancellationToken cancellationToken = default(global::System.Threading.CancellationToken))
 {
     return(ReportAsync(request, new grpc::CallOptions(headers, deadline, cancellationToken)));
 }
 /// <summary>
 /// Reports operation results to Google Service Control, such as logs and
 /// metrics. It should be called after an operation is completed.
 ///
 /// If feasible, the client should aggregate reporting data for up to 5
 /// seconds to reduce API traffic. Limiting aggregation to 5 seconds is to
 /// reduce data loss during client crashes. Clients should carefully choose
 /// the aggregation time window to avoid data loss risk more than 0.01%
 /// for business and compliance reasons.
 ///
 /// NOTE: the [ReportRequest][google.api.servicecontrol.v1.ReportRequest] has the size limit (wire-format byte size) of
 /// 1MB.
 ///
 /// This method requires the `servicemanagement.services.report` permission
 /// on the specified service. For more information, see
 /// [Google 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.ReportResponse> ReportAsync(global::Google.Cloud.ServiceControl.V1.ReportRequest request, grpc::CallOptions options)
 {
     return(CallInvoker.AsyncUnaryCall(__Method_Report, null, options, request));
 }
 /// <summary>
 /// Reports operation results to Google Service Control, such as logs and
 /// metrics. It should be called after an operation is completed.
 ///
 /// If feasible, the client should aggregate reporting data for up to 5
 /// seconds to reduce API traffic. Limiting aggregation to 5 seconds is to
 /// reduce data loss during client crashes. Clients should carefully choose
 /// the aggregation time window to avoid data loss risk more than 0.01%
 /// for business and compliance reasons.
 ///
 /// NOTE: the [ReportRequest][google.api.servicecontrol.v1.ReportRequest] has the size limit (wire-format byte size) of
 /// 1MB.
 ///
 /// This method requires the `servicemanagement.services.report` permission
 /// on the specified service. For more information, see
 /// [Google 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.ReportResponse> Report(global::Google.Cloud.ServiceControl.V1.ReportRequest request, grpc::ServerCallContext context)
 {
     throw new grpc::RpcException(new grpc::Status(grpc::StatusCode.Unimplemented, ""));
 }