public async Task Update() { SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync(); ResourceGroupResource rg = await CreateResourceGroup(subscription, "testRg-"); string afdProfileName = Recording.GenerateAssetName("AFDProfile-"); ProfileResource afdProfile = await CreateAfdProfile(rg, afdProfileName, CdnSkuName.StandardAzureFrontDoor); string afdEndpointName1 = Recording.GenerateAssetName("AFDEndpoint-"); AfdEndpointResource afdEndpointInstance1 = await CreateAfdEndpoint(afdProfile, afdEndpointName1); string afdSecurityPolicyName = Recording.GenerateAssetName("AFDSecurityPolicy-"); AfdSecurityPolicyResource afdSecurityPolicy = await CreateAfdSecurityPolicy(afdProfile, afdEndpointInstance1, afdSecurityPolicyName); string afdEndpointName2 = Recording.GenerateAssetName("AFDEndpoint-"); AfdEndpointResource afdEndpointInstance2 = await CreateAfdEndpoint(afdProfile, afdEndpointName2); AfdSecurityPolicyPatch updateOptions = new AfdSecurityPolicyPatch { Parameters = new SecurityPolicyWebApplicationFirewallDefinition { 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 ActivatedResourceReference { Id = afdEndpointInstance1.Id }); securityPolicyWebApplicationFirewallAssociation.Domains.Add(new ActivatedResourceReference { Id = afdEndpointInstance2.Id }); securityPolicyWebApplicationFirewallAssociation.PatternsToMatch.Add("/*"); ((SecurityPolicyWebApplicationFirewallDefinition)updateOptions.Parameters).Associations.Add(securityPolicyWebApplicationFirewallAssociation); var lro = await afdSecurityPolicy.UpdateAsync(WaitUntil.Completed, updateOptions); AfdSecurityPolicyResource updatedSecurityPolicy = lro.Value; ResourceDataHelper.AssertAfdSecurityPolicyUpdate(updatedSecurityPolicy, updateOptions); }
public static void AssertAfdSecurityPolicyUpdate(AfdSecurityPolicyResource updatedSecurityPolicy, AfdSecurityPolicyPatch updateOptions) { Assert.AreEqual(((SecurityPolicyWebApplicationFirewallParameters)updatedSecurityPolicy.Data.Parameters).Associations.Count, 1); Assert.AreEqual(((SecurityPolicyWebApplicationFirewallParameters)updatedSecurityPolicy.Data.Parameters).Associations[0].Domains.Count, 2); }
public virtual ArmOperation <AfdSecurityPolicyResource> Update(WaitUntil waitUntil, AfdSecurityPolicyPatch patch, CancellationToken cancellationToken = default) { Argument.AssertNotNull(patch, nameof(patch)); using var scope = _afdSecurityPolicyClientDiagnostics.CreateScope("AfdSecurityPolicyResource.Update"); scope.Start(); try { var response = _afdSecurityPolicyRestClient.Patch(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, patch, cancellationToken); var operation = new CdnArmOperation <AfdSecurityPolicyResource>(new AfdSecurityPolicyOperationSource(Client), _afdSecurityPolicyClientDiagnostics, Pipeline, _afdSecurityPolicyRestClient.CreatePatchRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Name, Id.Name, patch).Request, response, OperationFinalStateVia.AzureAsyncOperation); if (waitUntil == WaitUntil.Completed) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }