/// <summary>
        /// <para>Return the list of all shared folders the authenticated user has access
        /// to.</para>
        /// </summary>
        /// <param name="includeMembership">If include user and group membership information in
        /// the response.</param>
        /// <param name="showUnmounted">Determines whether the returned list of shared folders
        /// will include folders  that the user has left (but may still rejoin).</param>
        /// <returns>The task that represents the asynchronous send operation. The TResult
        /// parameter contains the response from the server.</returns>
        public t.Task <ListSharedFoldersResult> ListSharedFoldersAsync(bool includeMembership = false,
                                                                       bool showUnmounted     = false)
        {
            var listSharedFoldersArgs = new ListSharedFoldersArgs(includeMembership,
                                                                  showUnmounted);

            return(this.ListSharedFoldersAsync(listSharedFoldersArgs));
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the list shared folders route.</para>
        /// </summary>
        /// <param name="includeMembership">If include user and group membership information in
        /// the response.</param>
        /// <param name="showUnmounted">Determines whether the returned list of shared folders
        /// will include folders  that the user has left (but may still rejoin).</param>
        /// <param name="callback">The method to be called when the asynchronous send is
        /// completed.</param>
        /// <param name="callbackState">A user provided object that distinguished this send
        /// from other send requests.</param>
        /// <returns>An object that represents the asynchronous send request.</returns>
        public sys.IAsyncResult BeginListSharedFolders(bool includeMembership     = false,
                                                       bool showUnmounted         = false,
                                                       sys.AsyncCallback callback = null,
                                                       object callbackState       = null)
        {
            var listSharedFoldersArgs = new ListSharedFoldersArgs(includeMembership,
                                                                  showUnmounted);

            return(this.BeginListSharedFolders(listSharedFoldersArgs, callback, callbackState));
        }
        /// <summary>
        /// <para>Return the list of all shared folders the authenticated user has access
        /// to.</para>
        /// </summary>
        /// <param name="includeMembership">If include user and group membership information in
        /// the response.</param>
        /// <param name="showUnmounted">Determines whether the returned list of shared folders
        /// will include folders  that the user has left (but may still rejoin).</param>
        /// <returns>The task that represents the asynchronous send operation. The TResult
        /// parameter contains the response from the server.</returns>
        public t.Task<ListSharedFoldersResult> ListSharedFoldersAsync(bool includeMembership = false,
                                                                      bool showUnmounted = false)
        {
            var listSharedFoldersArgs = new ListSharedFoldersArgs(includeMembership,
                                                                  showUnmounted);

            return this.ListSharedFoldersAsync(listSharedFoldersArgs);
        }
 /// <summary>
 /// <para>Return the list of all shared folders the authenticated user has access
 /// to.</para>
 /// </summary>
 /// <param name="listSharedFoldersArgs">The request parameters</param>
 /// <returns>The task that represents the asynchronous send operation. The TResult
 /// parameter contains the response from the server.</returns>
 public t.Task<ListSharedFoldersResult> ListSharedFoldersAsync(ListSharedFoldersArgs listSharedFoldersArgs)
 {
     return this.Transport.SendRpcRequestAsync<ListSharedFoldersArgs, ListSharedFoldersResult, enc.Empty>(listSharedFoldersArgs, "api", "/sharing/list_shared_folders");
 }
        /// <summary>
        /// <para>Begins an asynchronous send to the list shared folders route.</para>
        /// </summary>
        /// <param name="includeMembership">If include user and group membership information in
        /// the response.</param>
        /// <param name="showUnmounted">Determines whether the returned list of shared folders
        /// will include folders  that the user has left (but may still rejoin).</param>
        /// <param name="callback">The method to be called when the asynchronous send is
        /// completed.</param>
        /// <param name="callbackState">A user provided object that distinguished this send
        /// from other send requests.</param>
        /// <returns>An object that represents the asynchronous send request.</returns>
        public sys.IAsyncResult BeginListSharedFolders(bool includeMembership = false,
                                                       bool showUnmounted = false,
                                                       sys.AsyncCallback callback = null,
                                                       object callbackState = null)
        {
            var listSharedFoldersArgs = new ListSharedFoldersArgs(includeMembership,
                                                                  showUnmounted);

            return this.BeginListSharedFolders(listSharedFoldersArgs, callback, callbackState);
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the list shared folders route.</para>
        /// </summary>
        /// <param name="listSharedFoldersArgs">The request parameters.</param>
        /// <param name="callback">The method to be called when the asynchronous send is
        /// completed.</param>
        /// <param name="state">A user provided object that distinguished this send from other
        /// send requests.</param>
        /// <returns>An object that represents the asynchronous send request.</returns>
        public sys.IAsyncResult BeginListSharedFolders(ListSharedFoldersArgs listSharedFoldersArgs, sys.AsyncCallback callback, object state = null)
        {
            var task = this.ListSharedFoldersAsync(listSharedFoldersArgs);

            return enc.Util.ToApm(task, callback, state);
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the list shared folders route.</para>
        /// </summary>
        /// <param name="listSharedFoldersArgs">The request parameters.</param>
        /// <param name="callback">The method to be called when the asynchronous send is
        /// completed.</param>
        /// <param name="state">A user provided object that distinguished this send from other
        /// send requests.</param>
        /// <returns>An object that represents the asynchronous send request.</returns>
        public sys.IAsyncResult BeginListSharedFolders(ListSharedFoldersArgs listSharedFoldersArgs, sys.AsyncCallback callback, object state = null)
        {
            var task = this.ListSharedFoldersAsync(listSharedFoldersArgs);

            return(enc.Util.ToApm(task, callback, state));
        }
 /// <summary>
 /// <para>Return the list of all shared folders the authenticated user has access
 /// to.</para>
 /// </summary>
 /// <param name="listSharedFoldersArgs">The request parameters</param>
 /// <returns>The task that represents the asynchronous send operation. The TResult
 /// parameter contains the response from the server.</returns>
 public t.Task <ListSharedFoldersResult> ListSharedFoldersAsync(ListSharedFoldersArgs listSharedFoldersArgs)
 {
     return(this.Transport.SendRpcRequestAsync <ListSharedFoldersArgs, ListSharedFoldersResult, enc.Empty>(listSharedFoldersArgs, "api", "/sharing/list_shared_folders"));
 }