/// <summary> /// Create a resource group. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group to be created or updated. /// </param> /// <param name='parameters'> /// Parameters supplied to the create or update resource group service /// operation. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <ResourceGroupInner> CreateOrUpdateAsync(this IResourceGroupsOperations operations, string resourceGroupName, ResourceGroupInner parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Creates a new hybrid connection and returns it's details. /// </summary> /// <param name="subscription">Subscription to create the relay under.</param> /// <param name="relayName">Relay name.</param> /// <param name="hybridConnectionName">Hybrid connection name.</param> /// <param name="locationName">Location for the new relay.</param> /// <returns>Hybrid connection details.</returns> public async Task <HybridConnectionDetails> CreateHybridConnectionAsync( SubscriptionInner subscription, string relayName, string hybridConnectionName, string locationName) { string accessToken = this.userAuthenticator.GetSubscriptionSpecificUserToken(subscription); TokenCredentials tokenCredentials = new TokenCredentials(accessToken); ResourceManagementClient resourceManagementClient = new ResourceManagementClient(tokenCredentials) { SubscriptionId = subscription.SubscriptionId, }; RelayManagementClient relayManagementClient = new RelayManagementClient(tokenCredentials) { SubscriptionId = subscription.SubscriptionId, }; ResourceGroupInner resourceGroup = null; RelayNamespaceInner relayNamespace = null; Location location = this.userAuthenticator.GetSubscriptionLocations(subscription).First(region => region.DisplayName.Equals(locationName, StringComparison.OrdinalIgnoreCase) || region.Name.Equals(locationName, StringComparison.OrdinalIgnoreCase)); try { resourceGroup = await resourceManagementClient.ResourceGroups.GetAsync("TunnelRelay").ConfigureAwait(false); } catch (CloudException httpEx) { if (httpEx.Response.StatusCode == System.Net.HttpStatusCode.NotFound) { resourceGroup = await resourceManagementClient.ResourceGroups.CreateOrUpdateAsync("TunnelRelay", new ResourceGroupInner { Location = location.Name, Name = "TunnelRelay", Tags = new Dictionary <string, string>() { { "CreatedBy", "TunnelRelayv2" } }, }).ConfigureAwait(false); } } string rgName = resourceGroup.Name; relayNamespace = await relayManagementClient.Namespaces.CreateOrUpdateAsync(rgName, relayName, new RelayNamespaceInner { Location = resourceGroup.Location, Sku = new Microsoft.Azure.Management.Relay.Fluent.Models.Sku(SkuTier.Standard), Tags = new Dictionary <string, string>() { { "CreatedBy", "TunnelRelayv2" } }, }).ConfigureAwait(false); await relayManagementClient.HybridConnections.CreateOrUpdateAsync(rgName, relayName, hybridConnectionName, new HybridConnectionInner { RequiresClientAuthorization = false, }).ConfigureAwait(false); return(await AzureRelayResourceManager.GetHybridConnectionDetailsAsync(rgName, hybridConnectionName, relayManagementClient, relayNamespace).ConfigureAwait(false)); }