private static UsageRequest CreateUsageRequest(RenderingEnvironment env, QueryTimePeriod period) { var usageRequest = new UsageRequest( Timeframe.Custom, new Dataset( Granularity.Daily, new Dictionary <string, Aggregation> { { "totalCost", new Aggregation(AggregationFunction.Sum, "PreTaxCost") } }, new List <Grouping> { new Grouping("ServiceName", ColumnType.Dimension) }, FilterExpression.Tag("environment", Operator.In, new[] { env.Id }))); usageRequest.TimePeriod = period; return(usageRequest); }
public async Task <UsageResponse> GetUsageForSubscription(Guid subscriptionId, UsageRequest usageRequest) { var uri = GetUri($"subscriptions/{subscriptionId}"); var request = new HttpRequestMessage(HttpMethod.Post, uri) { Content = new StringContent(JsonConvert.SerializeObject(usageRequest), Encoding.UTF8, "application/json"), }; request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _accessToken); using (var response = await _client.SendAsync(request)) { return(await response.Content.ReadAsAsync <UsageResponse>()); } }
public Task <UsageResponse> GetUsageForResourceGroup(Guid subscriptionId, string resourceGroupName, UsageRequest usageRequest) => PostUsageRequest(usageRequest, GetUri($"subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}"));
public Task <UsageResponse> GetUsageForSubscription(Guid subscriptionId, UsageRequest usageRequest) => PostUsageRequest(usageRequest, GetUri($"subscriptions/{subscriptionId}"));