/// <summary>
 /// Returns permissions that a caller has on the specified resource. If the
 /// resource does not exist, this will return an empty set of
 /// permissions, not a NOT_FOUND error.
 ///
 /// Note: This operation is designed to be used for building
 /// permission-aware UIs and command-line tools, not for authorization
 /// checking. This operation may "fail open" without warning.
 /// </summary>
 /// <param name="request">
 /// The request object containing all of the parameters for the API call.
 /// </param>
 /// <param name="callSettings">
 /// If not null, applies overrides to this RPC call.
 /// </param>
 /// <returns>
 /// The RPC response.
 /// </returns>
 public override iam::TestIamPermissionsResponse TestIamPermissions(
     iam::TestIamPermissionsRequest request,
     gaxgrpc::CallSettings callSettings = null)
 {
     Modify_TestIamPermissionsRequest(ref request, ref callSettings);
     return(_callTestIamPermissions.Sync(request, callSettings));
 }
 /// <summary>
 /// Returns permissions that a caller has on the specified resource. If the
 /// resource does not exist, this will return an empty set of
 /// permissions, not a NOT_FOUND error.
 ///
 /// Note: This operation is designed to be used for building
 /// permission-aware UIs and command-line tools, not for authorization
 /// checking. This operation may "fail open" without warning.
 /// </summary>
 /// <param name="request">
 /// The request object containing all of the parameters for the API call.
 /// </param>
 /// <param name="callSettings">
 /// If not null, applies overrides to this RPC call.
 /// </param>
 /// <returns>
 /// The RPC response.
 /// </returns>
 public virtual iam::TestIamPermissionsResponse TestIamPermissions(
     iam::TestIamPermissionsRequest request,
     gaxgrpc::CallSettings callSettings = null)
 {
     throw new sys::NotImplementedException();
 }
 partial void Modify_TestIamPermissionsRequest(ref iam::TestIamPermissionsRequest request, ref gaxgrpc::CallSettings settings);
 /// <summary>
 /// Returns permissions that a caller has on the specified resource. If the
 /// resource does not exist, this will return an empty set of
 /// permissions, not a NOT_FOUND error.
 ///
 /// Note: This operation is designed to be used for building
 /// permission-aware UIs and command-line tools, not for authorization
 /// checking. This operation may "fail open" without warning.
 /// </summary>
 /// <param name="request">
 /// The request object containing all of the parameters for the API call.
 /// </param>
 /// <param name="cancellationToken">
 /// A <see cref="st::CancellationToken"/> to use for this RPC.
 /// </param>
 /// <returns>
 /// A Task containing the RPC response.
 /// </returns>
 public virtual stt::Task <iam::TestIamPermissionsResponse> TestIamPermissionsAsync(
     iam::TestIamPermissionsRequest request,
     st::CancellationToken cancellationToken) => TestIamPermissionsAsync(
     request,
     gaxgrpc::CallSettings.FromCancellationToken(cancellationToken));