/// <summary>
        /// <para>Update a template associated with a team. This route can update the template
        /// name, the template description and add optional properties to templates.</para>
        /// </summary>
        /// <param name="templateId">An identifier for template added by  See <see
        /// cref="Dropbox.Api.FileProperties.Routes.FilePropertiesUserRoutes.TemplatesAddForUserAsync"
        /// /> or <see
        /// cref="Dropbox.Api.FileProperties.Routes.FilePropertiesTeamRoutes.TemplatesAddForTeamAsync"
        /// />.</param>
        /// <param name="name">A display name for the template. template names can be up to 256
        /// bytes.</param>
        /// <param name="description">Description for the new template. Template descriptions
        /// can be up to 1024 bytes.</param>
        /// <param name="addFields">Property field templates to be added to the group template.
        /// There can be up to 32 properties in a single template.</param>
        /// <returns>The task that represents the asynchronous send operation. The TResult
        /// parameter contains the response from the server.</returns>
        /// <exception cref="Dropbox.Api.ApiException{TError}">Thrown if there is an error
        /// processing the request; This will contain a <see
        /// cref="ModifyTemplateError"/>.</exception>
        public t.Task <UpdateTemplateResult> TemplatesUpdateForTeamAsync(string templateId,
                                                                         string name        = null,
                                                                         string description = null,
                                                                         col.IEnumerable <PropertyFieldTemplate> addFields = null)
        {
            var updateTemplateArg = new UpdateTemplateArg(templateId,
                                                          name,
                                                          description,
                                                          addFields);

            return(this.TemplatesUpdateForTeamAsync(updateTemplateArg));
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the templates update for team route.</para>
        /// </summary>
        /// <param name="templateId">An identifier for template added by  See <see
        /// cref="Dropbox.Api.FileProperties.Routes.FilePropertiesUserRoutes.TemplatesAddForUserAsync"
        /// /> or <see
        /// cref="Dropbox.Api.FileProperties.Routes.FilePropertiesTeamRoutes.TemplatesAddForTeamAsync"
        /// />.</param>
        /// <param name="name">A display name for the template. template names can be up to 256
        /// bytes.</param>
        /// <param name="description">Description for the new template. Template descriptions
        /// can be up to 1024 bytes.</param>
        /// <param name="addFields">Property field templates to be added to the group template.
        /// There can be up to 32 properties in a single template.</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 BeginTemplatesUpdateForTeam(string templateId,
                                                            string name        = null,
                                                            string description = null,
                                                            col.IEnumerable <PropertyFieldTemplate> addFields = null,
                                                            sys.AsyncCallback callback = null,
                                                            object callbackState       = null)
        {
            var updateTemplateArg = new UpdateTemplateArg(templateId,
                                                          name,
                                                          description,
                                                          addFields);

            return(this.BeginTemplatesUpdateForTeam(updateTemplateArg, callback, callbackState));
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the templates update for team route.</para>
        /// </summary>
        /// <param name="updateTemplateArg">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 BeginTemplatesUpdateForTeam(UpdateTemplateArg updateTemplateArg, sys.AsyncCallback callback, object state = null)
        {
            var task = this.TemplatesUpdateForTeamAsync(updateTemplateArg);

            return(enc.Util.ToApm(task, callback, state));
        }
 /// <summary>
 /// <para>Update a template associated with a team. This route can update the template
 /// name, the template description and add optional properties to templates.</para>
 /// </summary>
 /// <param name="updateTemplateArg">The request parameters</param>
 /// <returns>The task that represents the asynchronous send operation. The TResult
 /// parameter contains the response from the server.</returns>
 /// <exception cref="Dropbox.Api.ApiException{TError}">Thrown if there is an error
 /// processing the request; This will contain a <see
 /// cref="ModifyTemplateError"/>.</exception>
 public t.Task <UpdateTemplateResult> TemplatesUpdateForTeamAsync(UpdateTemplateArg updateTemplateArg)
 {
     return(this.Transport.SendRpcRequestAsync <UpdateTemplateArg, UpdateTemplateResult, ModifyTemplateError>(updateTemplateArg, "api", "/file_properties/templates/update_for_team", "team", global::Dropbox.Api.FileProperties.UpdateTemplateArg.Encoder, global::Dropbox.Api.FileProperties.UpdateTemplateResult.Decoder, global::Dropbox.Api.FileProperties.ModifyTemplateError.Decoder));
 }