private static async Task CreateListener(LoadBalancerClient lbClient, string loadBalancerId, RuleSet ruleSet, string backendSetName) { logger.Info($"Creating new listener: {ListenerName} with ruleset: {RuleSetName}"); var ruleSetNames = new List <string>() { ruleSet.Name }; var createListenerDetails = new CreateListenerDetails { Name = ListenerName, DefaultBackendSetName = backendSetName, Port = ListenerPort, Protocol = ListenerProtocol, RuleSetNames = ruleSetNames }; var createListenerRequest = new CreateListenerRequest { CreateListenerDetails = createListenerDetails, LoadBalancerId = loadBalancerId }; var response = await lbClient.CreateListener(createListenerRequest); var waiterConfiguration = new WaiterConfiguration { MaxAttempts = 20, GetNextDelayInSeconds = DelayStrategy.GetExponentialDelayInSeconds }; var getWorkRequestRequest = new GetWorkRequestRequest { WorkRequestId = response.OpcWorkRequestId }; lbClient.Waiters.ForWorkRequest(getWorkRequestRequest, waiterConfiguration, WorkRequest.LifecycleStateEnum.Succeeded).Execute(); logger.Info($"listener {ListenerName} is created"); }