Exemple #1
0
        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);
     }
 }