public async Task <IActionResult> SetFirewallSettings( [HttpTrigger(AuthorizationLevel.Function, "patch", "post", Route = "subscriptions/{subscriptionId}/groups/{group}/analysisservers/{server}/firewallsettings")] HttpRequestMessage req, string subscriptionId, string group, string server) { IpV4FirewallSettings firewallSettings = await req.Content.ReadAsAsync <IpV4FirewallSettings>(); if (firewallSettings == null) { return(new BadRequestObjectResult(new ArgumentNullException("message body invalid or not found"))); } var accessToken = await aadService.GetAccessTokenAsync(); var result = await analysisService.SetFirewallRulesAsync(accessToken, subscriptionId, group, server, firewallSettings); if (result.IsSuccessStatusCode) { return(new OkResult()); } else { return(new BadRequestObjectResult(result.ReasonPhrase)); } }
public async Task <HttpResponseMessage> SetFirewallRulesAsync(string accessToken, string subscriptionId, string resourceGroup, string serverName, IpV4FirewallSettings firewallSettings) { log.LogTrace(JsonConvert.SerializeObject(firewallSettings)); var defaultRequestHeaders = httpClient.DefaultRequestHeaders; if (defaultRequestHeaders.Accept == null || !defaultRequestHeaders.Accept.Any(m => m.MediaType == "application/json")) { httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); } defaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", accessToken); var server = new AzureAnalysisServer { properties = new Properties { ipV4FirewallSettings = firewallSettings } }; var json = JsonConvert.SerializeObject(server); var content = new StringContent(json, Encoding.UTF8, "application/json"); return(await httpClient.PatchAsync(string.Format(webApiUrlFormat, subscriptionId, resourceGroup, serverName), content)); }