/// <summary>
        /// <para>Add a template associated with a team. See <see
        /// cref="Dropbox.Api.FileProperties.Routes.FilePropertiesUserRoutes.PropertiesAddAsync"
        /// /> to add properties to a file or folder.</para>
        /// <para>Note: this endpoint will create team-owned templates.</para>
        /// </summary>
        /// <param name="name">Display name for the template. Template names can be up to 256
        /// bytes.</param>
        /// <param name="description">Description for the template. Template descriptions can
        /// be up to 1024 bytes.</param>
        /// <param name="fields">Definitions of the property fields associated with this
        /// 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 <AddTemplateResult> TemplatesAddForTeamAsync(string name,
                                                                   string description,
                                                                   col.IEnumerable <PropertyFieldTemplate> fields)
        {
            var addTemplateArg = new AddTemplateArg(name,
                                                    description,
                                                    fields);

            return(this.TemplatesAddForTeamAsync(addTemplateArg));
        }
        /// <summary>
        /// <para>Begins an asynchronous send to the templates add for team route.</para>
        /// </summary>
        /// <param name="name">Display name for the template. Template names can be up to 256
        /// bytes.</param>
        /// <param name="description">Description for the template. Template descriptions can
        /// be up to 1024 bytes.</param>
        /// <param name="fields">Definitions of the property fields associated with this
        /// 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 BeginTemplatesAddForTeam(string name,
                                                         string description,
                                                         col.IEnumerable <PropertyFieldTemplate> fields,
                                                         sys.AsyncCallback callback,
                                                         object callbackState = null)
        {
            var addTemplateArg = new AddTemplateArg(name,
                                                    description,
                                                    fields);

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

            return(enc.Util.ToApm(task, callback, state));
        }
 /// <summary>
 /// <para>Add a template associated with a team. See <see
 /// cref="Dropbox.Api.FileProperties.Routes.FilePropertiesUserRoutes.PropertiesAddAsync"
 /// /> to add properties to a file or folder.</para>
 /// <para>Note: this endpoint will create team-owned templates.</para>
 /// </summary>
 /// <param name="addTemplateArg">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 <AddTemplateResult> TemplatesAddForTeamAsync(AddTemplateArg addTemplateArg)
 {
     return(this.Transport.SendRpcRequestAsync <AddTemplateArg, AddTemplateResult, ModifyTemplateError>(addTemplateArg, "api", "/file_properties/templates/add_for_team", "team", global::Dropbox.Api.FileProperties.AddTemplateArg.Encoder, global::Dropbox.Api.FileProperties.AddTemplateResult.Decoder, global::Dropbox.Api.FileProperties.ModifyTemplateError.Decoder));
 }