private CallsSettings(CallsSettings existing) : base(existing)
 {
     gax::GaxPreconditions.CheckNotNull(existing, nameof(existing));
     CreateCallSettings = existing.CreateCallSettings;
     GetCallSettings    = existing.GetCallSettings;
     ListCallsSettings  = existing.ListCallsSettings;
     OnCopy(existing);
 }
        /// <summary>
        /// Creates a <see cref="CallsClient"/> which uses the specified call invoker for remote operations.
        /// </summary>
        /// <param name="callInvoker">
        /// The <see cref="grpccore::CallInvoker"/> for remote operations. Must not be null.
        /// </param>
        /// <param name="settings">Optional <see cref="CallsSettings"/>.</param>
        /// <returns>The created <see cref="CallsClient"/>.</returns>
        internal static CallsClient Create(grpccore::CallInvoker callInvoker, CallsSettings settings = null)
        {
            gax::GaxPreconditions.CheckNotNull(callInvoker, nameof(callInvoker));
            grpcinter::Interceptor interceptor = settings?.Interceptor;

            if (interceptor != null)
            {
                callInvoker = grpcinter::CallInvokerExtensions.Intercept(callInvoker, interceptor);
            }
            Calls.CallsClient grpcClient = new Calls.CallsClient(callInvoker);
            return(new CallsClientImpl(grpcClient, settings));
        }
        /// <summary>
        /// Constructs a client wrapper for the Calls service, with the specified gRPC client and settings.
        /// </summary>
        /// <param name="grpcClient">The underlying gRPC client.</param>
        /// <param name="settings">The base <see cref="CallsSettings"/> used within this client.</param>
        public CallsClientImpl(Calls.CallsClient grpcClient, CallsSettings settings)
        {
            GrpcClient = grpcClient;
            CallsSettings         effectiveSettings = settings ?? CallsSettings.GetDefault();
            gaxgrpc::ClientHelper clientHelper      = new gaxgrpc::ClientHelper(effectiveSettings);

            _callCreateCall = clientHelper.BuildApiCall <CreateCallRequest, Call>(grpcClient.CreateCallAsync, grpcClient.CreateCall, effectiveSettings.CreateCallSettings).WithGoogleRequestParam("parent", request => request.Parent);
            Modify_ApiCall(ref _callCreateCall);
            Modify_CreateCallApiCall(ref _callCreateCall);
            _callGetCall = clientHelper.BuildApiCall <GetCallRequest, Call>(grpcClient.GetCallAsync, grpcClient.GetCall, effectiveSettings.GetCallSettings).WithGoogleRequestParam("name", request => request.Name);
            Modify_ApiCall(ref _callGetCall);
            Modify_GetCallApiCall(ref _callGetCall);
            _callListCalls = clientHelper.BuildApiCall <ListCallsRequest, ListCallsResponse>(grpcClient.ListCallsAsync, grpcClient.ListCalls, effectiveSettings.ListCallsSettings).WithGoogleRequestParam("parent", request => request.Parent);
            Modify_ApiCall(ref _callListCalls);
            Modify_ListCallsApiCall(ref _callListCalls);
            OnConstruction(grpcClient, effectiveSettings, clientHelper);
        }
 partial void OnConstruction(Calls.CallsClient grpcClient, CallsSettings effectiveSettings, gaxgrpc::ClientHelper clientHelper);
 partial void OnCopy(CallsSettings existing);