public PSManagedHsm(ManagedHsm managedHsm, IMicrosoftGraphClient graphClient) { // PSKeyVaultIdentityItem's properties ResourceId = managedHsm.Id; VaultName = managedHsm.Name; ResourceGroupName = (new ResourceIdentifier(managedHsm.Id)).ResourceGroupName; Location = managedHsm.Location; Tags = TagsConversionHelper.CreateTagHashtable(managedHsm.Tags); // PSManagedHsm's properties, hides type Name = managedHsm.Name; Sku = managedHsm.Sku.Name.ToString(); TenantId = managedHsm.Properties.TenantId.Value; TenantName = ModelExtensions.GetDisplayNameForTenant(TenantId, graphClient); InitialAdminObjectIds = managedHsm.Properties.InitialAdminObjectIds.ToArray <string>(); HsmUri = managedHsm.Properties.HsmUri; EnablePurgeProtection = managedHsm.Properties.EnablePurgeProtection; EnableSoftDelete = managedHsm.Properties.EnableSoftDelete; SoftDeleteRetentionInDays = managedHsm.Properties.SoftDeleteRetentionInDays; StatusMessage = managedHsm.Properties.StatusMessage; ProvisioningState = managedHsm.Properties.ProvisioningState; OriginalManagedHsm = managedHsm; }
public async Task ManagedHsmCreateUpdateDelete() { Location = "southcentralus"; var parameters = new ManagedHsmData(Location) { Sku = new ManagedHsmSku(ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1), Properties = ManagedHsmProperties }; parameters.Tags.InitializeFrom(Tags); var managedHsm = await ManagedHsmContainer.CreateOrUpdateAsync(VaultName, parameters).ConfigureAwait(false); ValidateVault(managedHsm.Value.Data, VaultName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, CreateMode.Default, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkAcls, PublicNetworkAccess.Disabled, new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0)), 10, Tags); ManagedHsmProperties.PublicNetworkAccess = PublicNetworkAccess.Enabled; ManagedHsmProperties.NetworkAcls.DefaultAction = "Allow"; parameters = new ManagedHsmData(Location) { Sku = new ManagedHsmSku(ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1), Properties = ManagedHsmProperties }; parameters.Tags.InitializeFrom(Tags); ManagedHsm updateManagedHsm = null; if (Mode == RecordedTestMode.Record) { for (int i = 0; i < 10; i++) { try { updateManagedHsm = (await ManagedHsmContainer.CreateOrUpdateAsync(VaultName, parameters).ConfigureAwait(false)).Value; break; } catch (Exception) { Thread.Sleep(120000); } } } else { for (int i = 0; i < 10; i++) { try { updateManagedHsm = (await ManagedHsmContainer.CreateOrUpdateAsync(VaultName, parameters).ConfigureAwait(false)).Value; break; } catch (Exception) { } } } ValidateVault(updateManagedHsm.Data, VaultName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, CreateMode.Default, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkAcls, PublicNetworkAccess.Enabled, new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0)), 10, Tags); var retrievedVault = await ManagedHsmContainer.GetAsync(VaultName); ValidateVault(retrievedVault.Value.Data, VaultName, ResGroupName, TestEnvironment.SubscriptionId, TenantIdGuid, Location, ManagedHsmSkuFamily.B, ManagedHsmSkuName.StandardB1, CreateMode.Default, false, true, new List <string> { ObjectId }, ManagedHsmProperties.NetworkAcls, PublicNetworkAccess.Enabled, new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0)), 10, Tags); // Delete await retrievedVault.Value.DeleteAsync(); //Purge need to use loaction parameter. Update them later. //await retrievedVault.Value.PurgeDeletedAsync(); Assert.ThrowsAsync <RequestFailedException>(async() => { await ManagedHsmContainer.GetAsync(VaultName); }); }
/// <summary> /// Update a managed HSM Pool in the specified subscription. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// Name of the resource group that contains the managed HSM pool. /// </param> /// <param name='name'> /// Name of the managed HSM Pool /// </param> /// <param name='parameters'> /// Parameters to patch the managed HSM Pool /// </param> public static ManagedHsm Update(this IManagedHsmsOperations operations, string resourceGroupName, string name, ManagedHsm parameters) { return(operations.UpdateAsync(resourceGroupName, name, parameters).GetAwaiter().GetResult()); }
/// <summary> /// Create or update a managed HSM Pool in the specified subscription. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// Name of the resource group that contains the managed HSM pool. /// </param> /// <param name='name'> /// Name of the managed HSM Pool /// </param> /// <param name='parameters'> /// Parameters to create or update the managed HSM Pool /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <ManagedHsm> CreateOrUpdateAsync(this IManagedHsmsOperations operations, string resourceGroupName, string name, ManagedHsm parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, name, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }