/// <summary> /// Gets the auth rules for a relay and return <see cref="HybridConnectionDetails"/> instance containing details of hybrid connection. /// </summary> /// <param name="rgName">Name of the Resource Group.</param> /// <param name="hybridConnectionName">Hybrid connection name.</param> /// <param name="relayManagementClient">The relay management client.</param> /// <param name="relayNamespace">The selected relay.</param> private static async Task <HybridConnectionDetails> GetHybridConnectionDetailsAsync( string rgName, string hybridConnectionName, RelayManagementClient relayManagementClient, RelayNamespaceInner relayNamespace) { List <AuthorizationRuleInner> relayAuthRuleList = new List <AuthorizationRuleInner>(); IPage <AuthorizationRuleInner> resp = await relayManagementClient.Namespaces.ListAuthorizationRulesAsync(rgName, relayNamespace.Name).ConfigureAwait(false); relayAuthRuleList.AddRange(resp); while (!string.IsNullOrEmpty(resp.NextPageLink)) { resp = await relayManagementClient.Namespaces.ListAuthorizationRulesNextAsync(resp.NextPageLink).ConfigureAwait(false); relayAuthRuleList.AddRange(resp); } AuthorizationRuleInner selectedAuthRule = relayAuthRuleList.FirstOrDefault(rule => rule.Rights != null && rule.Rights.Contains(AccessRights.Listen) && rule.Rights.Contains(AccessRights.Manage) && rule.Rights.Contains(AccessRights.Send)); if (selectedAuthRule == null) { throw new InvalidOperationException("Failed to find a suitable Authorization rule to use. Please create an Authorization rule with Listen, Manage and Send rights and retry the operation"); } else { AccessKeysInner keyInfo = await relayManagementClient.Namespaces.ListKeysAsync( rgName, relayNamespace.Name, selectedAuthRule.Name).ConfigureAwait(false); return(new HybridConnectionDetails { HybridConnectionKeyName = keyInfo.KeyName, HybridConnectionName = hybridConnectionName, HybridConnectionSharedKey = keyInfo.PrimaryKey, RelayUrl = relayNamespace.ServiceBusEndpoint, }); } }
///GENMHASH:88DB44BAECF6544F77A2C83BD6FC1C3B:7517BB8CBCB94F9AA4632A3D07863A48 internal EventHubAuthorizationRuleImpl(string name, AuthorizationRuleInner inner, IEventHubManager manager) : base(name, inner, manager) { this.ancestor = new TwoAncestor(inner.Id); }
///GENMHASH:BCF24D03D2EE33ADFF1E81AD1D0155CB:D8ACC36215F5764A5A6952D3F104FC21 protected override EventHubNamespaceAuthorizationRuleImpl WrapModel(AuthorizationRuleInner innerModel) { return(new EventHubNamespaceAuthorizationRuleImpl(innerModel.Name, innerModel, this.Manager)); }
///GENMHASH:6F0F4875025EFAD1501AE24B692D87A3:C5C9A7A1846EEA08D381D40B63B43DC6 protected AuthorizationRuleBaseImpl(string name, AuthorizationRuleInner inner, IEventHubManager manager) : base(name, inner, manager) { }
///GENMHASH:BCF24D03D2EE33ADFF1E81AD1D0155CB:27E486AB74A10242FF421C0798DDC450 protected abstract RuleImpl WrapModel(AuthorizationRuleInner innerModel);