///GENMHASH:2751D8683222AD34691166D915065302:6CF6C0674C2EAF23B50944FED4A92C28 public async Task <Microsoft.Azure.Management.Eventhub.Fluent.IDisasterRecoveryPairingAuthorizationKey> GetKeysAsync(CancellationToken cancellationToken = default(CancellationToken)) { var configs = this.manager.Inner.DisasterRecoveryConfigs; AccessKeysInner innerKeys = await configs.ListKeysAsync(this.Ancestor().ResourceGroupName, this.Ancestor().Ancestor2Name, this.Ancestor().Ancestor1Name, this.Name(), cancellationToken); if (innerKeys == null) { return(null); } else { return(new DisasterRecoveryPairingAuthorizationKeyImpl(innerKeys)); } }
/// <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, }); } }