/// <summary> /// Update a ScraperTarget. /// </summary> /// <param name="scraperTargetId">id of the scraper target (required)</param> /// <param name="scraperTargetRequest">ScraperTargetRequest update to apply</param> /// <returns>updated ScraperTarget</returns> public Task <ScraperTargetResponse> UpdateScraperTargetAsync(string scraperTargetId, ScraperTargetRequest scraperTargetRequest) { Arguments.CheckNonEmptyString(scraperTargetId, nameof(scraperTargetId)); Arguments.CheckNotNull(scraperTargetRequest, nameof(scraperTargetRequest)); return(_service.PatchScrapersIDAsync(scraperTargetId, scraperTargetRequest)); }
/// <summary> /// Creates a new ScraperTarget and sets <see cref="ScraperTargetResponse.Id" /> with the new identifier. /// </summary> /// <param name="name">the name of the new ScraperTarget</param> /// <param name="url">the url of the new ScraperTarget</param> /// <param name="bucketId">the id of the bucket that its use to writes</param> /// <param name="orgId">the id of the organization that owns new ScraperTarget</param> /// <returns>created ScraperTarget</returns> public Task <ScraperTargetResponse> CreateScraperTargetAsync(string name, string url, string bucketId, string orgId) { Arguments.CheckNonEmptyString(name, nameof(name)); Arguments.CheckNonEmptyString(url, nameof(url)); Arguments.CheckNonEmptyString(bucketId, nameof(bucketId)); Arguments.CheckNonEmptyString(orgId, nameof(orgId)); var scrapperTarget = new ScraperTargetRequest(name, ScraperTargetRequest.TypeEnum.Prometheus, url, orgId, bucketId); return(CreateScraperTargetAsync(scrapperTarget)); }
/// <summary> /// Clone a ScraperTarget. /// </summary> /// <param name="clonedName">name of cloned ScraperTarget</param> /// <param name="scraperTargetResponse">ScraperTarget to clone</param> /// <returns>cloned ScraperTarget</returns> public async Task <ScraperTargetResponse> CloneScraperTargetAsync(string clonedName, ScraperTargetResponse scraperTargetResponse) { Arguments.CheckNonEmptyString(clonedName, nameof(clonedName)); Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse)); var cloned = new ScraperTargetRequest(clonedName, scraperTargetResponse.Type, scraperTargetResponse.Url, scraperTargetResponse.OrgID, scraperTargetResponse.BucketID); var created = await CreateScraperTargetAsync(cloned).ConfigureAwait(false); var labels = await GetLabelsAsync(scraperTargetResponse).ConfigureAwait(false); foreach (var label in labels) { await AddLabelAsync(label, created).ConfigureAwait(false); } return(created); }
/// <summary> /// Clone a ScraperTarget. /// </summary> /// <param name="clonedName">name of cloned ScraperTarget</param> /// <param name="scraperTargetResponse">ScraperTarget to clone</param> /// <returns>cloned ScraperTarget</returns> public async Task <ScraperTargetResponse> CloneScraperTarget(string clonedName, ScraperTargetResponse scraperTargetResponse) { Arguments.CheckNonEmptyString(clonedName, nameof(clonedName)); Arguments.CheckNotNull(scraperTargetResponse, nameof(scraperTargetResponse)); var cloned = new ScraperTargetRequest(clonedName, scraperTargetResponse.Type, scraperTargetResponse.Url, scraperTargetResponse.OrgID, scraperTargetResponse.BucketID); return(await CreateScraperTarget(cloned).ContinueWith(created => { // // Add labels // return GetLabels(scraperTargetResponse) .ContinueWith(labels => { return labels.Result.Select(label => AddLabel(label, created.Result)); }) .ContinueWith(async tasks => { await Task.WhenAll(tasks.Result); return created.Result; }) .Unwrap(); }).Unwrap()); }
/// <summary> /// Creates a new ScraperTarget and sets <see cref="ScraperTargetResponse.Id" /> with the new identifier. /// </summary> /// <param name="scraperTargetRequest">the scraper to create</param> /// <returns>created ScraperTarget</returns> public Task <ScraperTargetResponse> CreateScraperTargetAsync(ScraperTargetRequest scraperTargetRequest) { Arguments.CheckNotNull(scraperTargetRequest, nameof(scraperTargetRequest)); return(_service.PostScrapersAsync(scraperTargetRequest)); }