public async Task Update() { SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync(); ResourceGroupResource rg = await CreateResourceGroup(subscription, "testRg-"); string afdProfileName = Recording.GenerateAssetName("AFDProfile-"); ProfileResource afdProfileResource = await CreateAfdProfile(rg, afdProfileName, CdnSkuName.StandardAzureFrontDoor); string afdEndpointName1 = Recording.GenerateAssetName("AFDEndpoint-"); AfdEndpoint afdEndpointInstance1 = await CreateAfdEndpoint(afdProfile, afdEndpointName1); string afdSecurityPolicyName = Recording.GenerateAssetName("AFDSecurityPolicy-"); AfdSecurityPolicy afdSecurityPolicy = await CreateAfdSecurityPolicy(afdProfile, afdEndpointInstance1, afdSecurityPolicyName); string afdEndpointName2 = Recording.GenerateAssetName("AFDEndpoint-"); AfdEndpoint afdEndpointInstance2 = await CreateAfdEndpoint(afdProfile, afdEndpointName2); PatchableAfdSecurityPolicyData updateOptions = new PatchableAfdSecurityPolicyData { Parameters = new SecurityPolicyWebApplicationFirewallParameters { WafPolicy = new WritableSubResource { Id = new ResourceIdentifier("/subscriptions/f3d94233-a9aa-4241-ac82-2dfb63ce637a/resourceGroups/CdnTest/providers/Microsoft.Network/frontdoorWebApplicationFirewallPolicies/testAFDWaf") } } }; SecurityPolicyWebApplicationFirewallAssociation securityPolicyWebApplicationFirewallAssociation = new SecurityPolicyWebApplicationFirewallAssociation(); securityPolicyWebApplicationFirewallAssociation.Domains.Add(new WritableSubResource { Id = afdEndpointInstance1.Id }); securityPolicyWebApplicationFirewallAssociation.Domains.Add(new WritableSubResource { Id = afdEndpointInstance2.Id }); securityPolicyWebApplicationFirewallAssociation.PatternsToMatch.Add("/*"); ((SecurityPolicyWebApplicationFirewallParameters)updateOptions.Parameters).Associations.Add(securityPolicyWebApplicationFirewallAssociation); var lro = await afdSecurityPolicy.UpdateAsync(WaitUntil.Completed, updateOptions); AfdSecurityPolicy updatedSecurityPolicy = lro.Value; ResourceDataHelper.AssertAfdSecurityPolicyUpdate(updatedSecurityPolicy, updateOptions); }
public virtual ArmOperation <AfdSecurityPolicyResource> Update(WaitUntil waitUntil, PatchableAfdSecurityPolicyData data, CancellationToken cancellationToken = default) { Argument.AssertNotNull(data, nameof(data)); using var scope = _afdSecurityPolicyClientDiagnostics.CreateScope("AfdSecurityPolicyResource.Update"); scope.Start(); try { var response = _afdSecurityPolicyRestClient.Patch(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, data, cancellationToken); var operation = new CdnArmOperation <AfdSecurityPolicyResource>(new AfdSecurityPolicyOperationSource(Client), _afdSecurityPolicyClientDiagnostics, Pipeline, _afdSecurityPolicyRestClient.CreatePatchRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); if (waitUntil == WaitUntil.Completed) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public static void AssertAfdSecurityPolicyUpdate(AfdSecurityPolicyResource updatedSecurityPolicy, PatchableAfdSecurityPolicyData updateOptions) { Assert.AreEqual(((SecurityPolicyWebApplicationFirewallParameters)updatedSecurityPolicy.Data.Parameters).Associations.Count, 1); Assert.AreEqual(((SecurityPolicyWebApplicationFirewallParameters)updatedSecurityPolicy.Data.Parameters).Associations[0].Domains.Count, 2); }