/// <summary> /// Add a label to a telegraf config. /// </summary> /// <param name="label">label to add</param> /// <param name="telegraf">the telegraf config</param> /// <returns>added label</returns> public async Task <Label> AddLabelAsync(Label label, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(label, nameof(label)); return(await AddLabelAsync(label.Id, telegraf.Id)); }
/// <summary> /// Removes a member from a telegraf config. /// </summary> /// <param name="member">member to remove</param> /// <param name="telegraf">the telegraf</param> /// <returns>member removed</returns> public async Task DeleteMember(User member, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(member, nameof(member)); await DeleteMember(member.Id, telegraf.Id); }
/// <summary> /// Clone a telegraf config. /// </summary> /// <param name="clonedName">name of cloned telegraf config</param> /// <param name="telegraf">telegraf config to clone></param> /// <returns>cloned telegraf config</returns> public async Task <Telegraf> CloneTelegrafAsync(string clonedName, Telegraf telegraf) { Arguments.CheckNonEmptyString(clonedName, nameof(clonedName)); Arguments.CheckNotNull(telegraf, nameof(telegraf)); var cloned = new TelegrafRequest(clonedName, telegraf.Description, telegraf.Metadata, telegraf.Config, telegraf.OrgID); return(await CreateTelegrafAsync(cloned).ContinueWith(created => { // // Add labels // return GetLabelsAsync(telegraf) .ContinueWith(labels => { return labels.Result.Select(label => AddLabelAsync(label, created.Result)); }) .ContinueWith(async tasks => { await Task.WhenAll(tasks.Result); return created.Result; }) .Unwrap(); }).Unwrap()); }
/// <summary> /// Removes a member from a telegraf config. /// </summary> /// <param name="member">member to remove</param> /// <param name="telegraf">the telegraf</param> /// <returns>member removed</returns> public Task DeleteMemberAsync(User member, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(member, nameof(member)); return DeleteMemberAsync(member.Id, telegraf.Id); }
/// <summary> /// Delete a label from a telegraf config. /// </summary> /// <param name="label">label to delete</param> /// <param name="telegraf">the telegraf config</param> /// <returns>delete has been accepted</returns> public async Task DeleteLabel(Label label, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(label, nameof(label)); await DeleteLabel(label.Id, telegraf.Id); }
/// <summary> /// Add telegraf config owner. /// </summary> /// <param name="owner">user to add as owner</param> /// <param name="telegraf">the telegraf config</param> /// <returns>telegraf config owner added</returns> public Task<ResourceOwner> AddOwnerAsync(User owner, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(owner, nameof(owner)); return AddOwnerAsync(owner.Id, telegraf.Id); }
/// <summary> /// Removes an owner from a telegraf config. /// </summary> /// <param name="owner">owner to remove</param> /// <param name="telegraf">the telegraf config</param> /// <returns>owner removed</returns> public Task DeleteOwnerAsync(User owner, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(owner, nameof(owner)); return DeleteOwnerAsync(owner.Id, telegraf.Id); }
/// <summary> /// Removes an owner from a telegraf config. /// </summary> /// <param name="owner">owner to remove</param> /// <param name="telegraf">the telegraf config</param> /// <returns>owner removed</returns> public async Task DeleteOwner(User owner, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(owner, nameof(owner)); await DeleteOwner(owner.Id, telegraf.Id); }
/// <summary> /// Add telegraf config member. /// </summary> /// <param name="member">user to add as member</param> /// <param name="telegraf">the telegraf config</param> /// <returns>member added to telegraf</returns> public Task<ResourceMember> AddMemberAsync(User member, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(member, nameof(member)); return AddMemberAsync(member.Id, telegraf.Id); }
/// <summary> /// Delete a label from a telegraf config. /// </summary> /// <param name="label">label to delete</param> /// <param name="telegraf">the telegraf config</param> /// <returns>delete has been accepted</returns> public Task DeleteLabelAsync(Label label, Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); Arguments.CheckNotNull(label, nameof(label)); return DeleteLabelAsync(label.Id, telegraf.Id); }
/// <summary> /// Update a telegraf config. /// </summary> /// <param name="telegraf">telegraf config update to apply</param> /// <returns>An updated telegraf</returns> public async Task <Telegraf> UpdateTelegraf(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); var request = new TelegrafRequest(telegraf.Name, telegraf.Description, telegraf.Agent, telegraf.Plugins, telegraf.OrgID); return(await UpdateTelegraf(telegraf.Id, request)); }
/// <summary> /// Update a telegraf config. /// </summary> /// <param name="telegraf">telegraf config update to apply</param> /// <returns>An updated telegraf</returns> public Task<Telegraf> UpdateTelegrafAsync(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); var request = new TelegrafRequest(telegraf.Name, telegraf.Description, telegraf.Metadata, telegraf.Config, telegraf.OrgID); return UpdateTelegrafAsync(telegraf.Id, request); }
/// <summary> /// Clone a telegraf config. /// </summary> /// <param name="clonedName">name of cloned telegraf config</param> /// <param name="telegraf">telegraf config to clone></param> /// <returns>cloned telegraf config</returns> public async Task<Telegraf> CloneTelegrafAsync(string clonedName, Telegraf telegraf) { Arguments.CheckNonEmptyString(clonedName, nameof(clonedName)); Arguments.CheckNotNull(telegraf, nameof(telegraf)); var cloned = new TelegrafRequest(clonedName, telegraf.Description, telegraf.Metadata, telegraf.Config, telegraf.OrgID); var created = await CreateTelegrafAsync(cloned).ConfigureAwait(false); var labels = await GetLabelsAsync(telegraf).ConfigureAwait(false); foreach (var label in labels) { await AddLabelAsync(label, created).ConfigureAwait(false); } return created; }
/// <summary> /// Retrieve a telegraf config in TOML. /// </summary> /// <param name="telegraf">telegraf config to get</param> /// <returns>telegraf config details in TOML format</returns> public async Task <string> GetTOML(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); return(await GetTOML(telegraf.Id)); }
/// <summary> /// List all labels for a telegraf config. /// </summary> /// <param name="telegraf">the telegraf config</param> /// <returns>a list of all labels for a telegraf config</returns> public Task<List<Label>> GetLabelsAsync(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); return GetLabelsAsync(telegraf.Id); }
/// <summary> /// List all labels for a telegraf config. /// </summary> /// <param name="telegraf">the telegraf config</param> /// <returns>a list of all labels for a telegraf config</returns> public async Task <List <Label> > GetLabels(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); return(await GetLabels(telegraf.Id)); }
/// <summary> /// Delete a telegraf config. /// </summary> /// <param name="telegraf">telegraf config to delete</param> /// <returns>delete has been accepted</returns> public async Task DeleteTelegrafAsync(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); await DeleteTelegrafAsync(telegraf.Id); }
/// <summary> /// List all owners of a telegraf config. /// </summary> /// <param name="telegraf">the telegraf config</param> /// <returns>a list of telegraf config owners</returns> public Task<List<ResourceOwner>> GetOwnersAsync(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); return GetOwnersAsync(telegraf.Id); }
/// <summary> /// List all users with member privileges for a telegraf config. /// </summary> /// <param name="telegraf">the telegraf config</param> /// <returns>a list of telegraf config members</returns> public async Task <List <ResourceMember> > GetMembersAsync(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); return(await GetMembersAsync(telegraf.Id)); }
/// <summary> /// Delete a telegraf config. /// </summary> /// <param name="telegraf">telegraf config to delete</param> /// <returns>delete has been accepted</returns> public Task DeleteTelegrafAsync(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); return DeleteTelegrafAsync(telegraf.Id); }
/// <summary> /// Retrieve a telegraf config in TOML. /// </summary> /// <param name="telegraf">telegraf config to get</param> /// <returns>telegraf config details in TOML format</returns> public Task<string> GetTOMLAsync(Telegraf telegraf) { Arguments.CheckNotNull(telegraf, nameof(telegraf)); return GetTOMLAsync(telegraf.Id); }