public override void ExecuteCmdlet() { base.ExecuteCmdlet(); switch (ParameterSetName) { case ContainerObjectParameterSet: this.ResourceGroupName = Container.ResourceGroupName; this.StorageAccountName = Container.StorageAccountName; this.ContainerName = Container.Name; break; case AccountObjectParameterSet: this.ResourceGroupName = StorageAccount.ResourceGroupName; this.StorageAccountName = StorageAccount.StorageAccountName; break; default: break; } ImmutabilityPolicy policy = this.StorageClient.BlobContainers.GetImmutabilityPolicy( this.ResourceGroupName, this.StorageAccountName, this.ContainerName, Etag); WriteObject(new PSImmutabilityPolicy(policy)); }
public void BlobContainersExtendImmutabilityPolicyTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group var rgName = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = TestUtilities.GenerateName("sto"); var parameters = StorageManagementTestUtilities.GetDefaultStorageAccountParameters(); parameters.Kind = Kind.StorageV2; var account = storageMgmtClient.StorageAccounts.Create(rgName, accountName, parameters); StorageManagementTestUtilities.VerifyAccountProperties(account, false); // implement case try { string containerName = TestUtilities.GenerateName("container"); BlobContainer blobContainer = storageMgmtClient.BlobContainers.Create(rgName, accountName, containerName); Assert.Null(blobContainer.Metadata); Assert.Null(blobContainer.PublicAccess); ImmutabilityPolicy immutabilityPolicy = storageMgmtClient.BlobContainers.CreateOrUpdateImmutabilityPolicy(rgName, accountName, containerName, ifMatch: "", immutabilityPeriodSinceCreationInDays: 3); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.Equal(3, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.Equal(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.State); immutabilityPolicy = storageMgmtClient.BlobContainers.LockImmutabilityPolicy(rgName, accountName, containerName, ifMatch: immutabilityPolicy.Etag); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.Equal(3, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.Equal(ImmutabilityPolicyState.Locked, immutabilityPolicy.State); immutabilityPolicy = storageMgmtClient.BlobContainers.ExtendImmutabilityPolicy(rgName, accountName, containerName, ifMatch: immutabilityPolicy.Etag, immutabilityPeriodSinceCreationInDays: 100); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.Equal(100, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.Equal(ImmutabilityPolicyState.Locked, immutabilityPolicy.State); storageMgmtClient.BlobContainers.Delete(rgName, accountName, containerName); } finally { // clean up storageMgmtClient.StorageAccounts.Delete(rgName, accountName); resourcesClient.ResourceGroups.Delete(rgName); } } }
/// <summary> /// Validate the object. /// </summary> /// <exception cref="ValidationException"> /// Thrown if validation fails /// </exception> public virtual void Validate() { if (ImmutabilityPolicy != null) { ImmutabilityPolicy.Validate(); } }
public async Task CreateDeleteImmutabilityPolicy() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainer container = (await _blobContainerCollection.CreateOrUpdateAsync(containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicy immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(parameters: immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); //delete immutability policy immutabilityPolicyModel = (await immutabilityPolicy.DeleteAsync(immutabilityPolicy.Data.Etag)).Value; //validate Assert.NotNull(immutabilityPolicyModel.Type); Assert.NotNull(immutabilityPolicyModel.Name); Assert.AreEqual(0, immutabilityPolicyModel.ImmutabilityPeriodSinceCreationInDays); }
public async Task ExtendImmutabilityPolicy() { //update storage account to v2 StorageAccountUpdateParameters updateParameters = new StorageAccountUpdateParameters() { Kind = Kind.StorageV2 }; _storageAccount = await _storageAccount.UpdateAsync(updateParameters); _blobService = await _blobService.GetAsync(); // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainer container = (await _blobContainerCollection.CreateOrUpdateAsync(containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicy immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(ifMatch: "", parameters: immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); //lock immutability policy immutabilityPolicy = await container.GetImmutabilityPolicy().LockImmutabilityPolicyAsync(ifMatch: immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); //extend immutability policy immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 100 }; immutabilityPolicy = await container.GetImmutabilityPolicy().ExtendImmutabilityPolicyAsync(ifMatch: immutabilityPolicy.Data.Etag, parameters: immutabilityPolicyModel); Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(100, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); await container.DeleteAsync(); }
public async Task UpdateImmutabilityPolicy() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainer container = (await _blobContainerCollection.CreateOrUpdateAsync(true, containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicy immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(true, immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); //update immutability policy immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 5, AllowProtectedAppendWrites = true }; immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(true, immutabilityPolicyModel, immutabilityPolicy.Data.Etag)).Value; Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.IsTrue(immutabilityPolicy.Data.AllowProtectedAppendWrites); immutabilityPolicy = await container.GetImmutabilityPolicy().GetAsync(immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.IsTrue(immutabilityPolicy.Data.AllowProtectedAppendWrites); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); if (ShouldProcess(this.ContainerName, "Lock ImmutabilityPolicy")) { switch (ParameterSetName) { case ContainerObjectParameterSet: this.ResourceGroupName = Container.ResourceGroupName; this.StorageAccountName = Container.StorageAccountName; this.ContainerName = Container.Name; break; case AccountObjectParameterSet: this.ResourceGroupName = StorageAccount.ResourceGroupName; this.StorageAccountName = StorageAccount.StorageAccountName; break; case ImmutabilityPolicyObjectParameterSet: this.ResourceGroupName = PSContainer.ParseResourceGroupFromId(InputObject.Id); this.StorageAccountName = PSContainer.ParseStorageAccountNameFromId(InputObject.Id); this.ContainerName = PSContainer.ParseStorageContainerNameFromId(InputObject.Id); this.Etag = InputObject.Etag; break; default: break; } if (Force || ShouldContinue(string.Format("Lock ImmutabilityPolicy in container '{0}' with Etag {1}", this.ContainerName, this.Etag), "")) { ImmutabilityPolicy policy = this.StorageClient.BlobContainers.LockImmutabilityPolicy( this.ResourceGroupName, this.StorageAccountName, this.ContainerName, this.Etag); WriteObject(new PSImmutabilityPolicy(policy)); } } }
public async Task ImmutabilityPolicy_AllowProtectedAppendWrites() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainer container = (await _blobContainerContainer.CreateOrUpdateAsync(containerName, new BlobContainerData())).Value; ImmutabilityPolicy immutabilityPolicy = new ImmutabilityPolicy() { ImmutabilityPeriodSinceCreationInDays = 4, AllowProtectedAppendWrites = true }; immutabilityPolicy = await container.CreateOrUpdateImmutabilityPolicyAsync(ifMatch : "", immutabilityPolicy); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.AreEqual(4, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.State); Assert.True(immutabilityPolicy.AllowProtectedAppendWrites.Value); immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays = 5; immutabilityPolicy.AllowProtectedAppendWrites = false; immutabilityPolicy = await container.CreateOrUpdateImmutabilityPolicyAsync(ifMatch : immutabilityPolicy.Etag, immutabilityPolicy); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.AreEqual(5, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.State); Assert.False(immutabilityPolicy.AllowProtectedAppendWrites.Value); immutabilityPolicy = await container.GetImmutabilityPolicyAsync(immutabilityPolicy.Etag); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.AreEqual(5, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.State); Assert.False(immutabilityPolicy.AllowProtectedAppendWrites.Value); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); if (ShouldProcess(this.ContainerName, "Remove ImmutabilityPolicy")) { switch (ParameterSetName) { case ContainerObjectParameterSet: this.ResourceGroupName = Container.ResourceGroupName; this.StorageAccountName = Container.StorageAccountName; this.ContainerName = Container.Name; break; case AccountObjectParameterSet: this.ResourceGroupName = StorageAccount.ResourceGroupName; this.StorageAccountName = StorageAccount.StorageAccountName; break; case ImmutabilityPolicyObjectParameterSet: this.ResourceGroupName = PSContainer.ParseResourceGroupFromId(InputObject.Id); this.StorageAccountName = PSContainer.ParseStorageAccountNameFromId(InputObject.Id); this.ContainerName = PSContainer.ParseStorageContainerNameFromId(InputObject.Id); this.Etag = InputObject.Etag; break; default: break; } ImmutabilityPolicy policy = this.StorageClient.BlobContainers.DeleteImmutabilityPolicy( this.ResourceGroupName, this.StorageAccountName, this.ContainerName, this.Etag); WriteObject(new PSImmutabilityPolicy(policy)); } }
public async Task ImmutabilityPolicy_AllowProtectedAppendWrites() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainer container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 4, AllowProtectedAppendWrites = true }; ImmutabilityPolicy immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, parameters: immutabilityPolicyModel)).Value; Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(4, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.True(immutabilityPolicy.Data.AllowProtectedAppendWrites.Value); immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays = 5; immutabilityPolicy.Data.AllowProtectedAppendWrites = false; immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, parameters: immutabilityPolicy.Data, ifMatch: immutabilityPolicy.Data.Etag)).Value; Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.False(immutabilityPolicy.Data.AllowProtectedAppendWrites.Value); immutabilityPolicy = await container.GetImmutabilityPolicy().GetAsync(immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.False(immutabilityPolicy.Data.AllowProtectedAppendWrites.Value); }
public void BlobContainersGetTest() { var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType().FullName)) { var resourcesClient = StorageManagementTestUtilities.GetResourceManagementClient(context, handler); var storageMgmtClient = StorageManagementTestUtilities.GetStorageManagementClient(context, handler); // Create resource group var rgName = StorageManagementTestUtilities.CreateResourceGroup(resourcesClient); // Create storage account string accountName = TestUtilities.GenerateName("sto"); var parameters = StorageManagementTestUtilities.GetDefaultStorageAccountParameters(); parameters.Kind = Kind.StorageV2; var account = storageMgmtClient.StorageAccounts.Create(rgName, accountName, parameters); StorageManagementTestUtilities.VerifyAccountProperties(account, false); // implement case try { string containerName = TestUtilities.GenerateName("container"); BlobContainer blobContainer = storageMgmtClient.BlobContainers.Create(rgName, accountName, containerName); Assert.Null(blobContainer.Metadata); Assert.Null(blobContainer.PublicAccess); LegalHold legalHold = storageMgmtClient.BlobContainers.SetLegalHold(rgName, accountName, containerName, new List <string> { "tag1", "tag2", "tag3" }); Assert.True(legalHold.HasLegalHold); Assert.Equal(new List <string> { "tag1", "tag2", "tag3" }, legalHold.Tags); ImmutabilityPolicy immutabilityPolicy = storageMgmtClient.BlobContainers.CreateOrUpdateImmutabilityPolicy(rgName, accountName, containerName, ifMatch: "", immutabilityPeriodSinceCreationInDays: 3); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.Equal(3, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.Equal(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.State); immutabilityPolicy = storageMgmtClient.BlobContainers.LockImmutabilityPolicy(rgName, accountName, containerName, ifMatch: immutabilityPolicy.Etag); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.Equal(3, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.Equal(ImmutabilityPolicyState.Locked, immutabilityPolicy.State); immutabilityPolicy = storageMgmtClient.BlobContainers.ExtendImmutabilityPolicy(rgName, accountName, containerName, ifMatch: immutabilityPolicy.Etag, immutabilityPeriodSinceCreationInDays: 100); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.Equal(100, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.Equal(ImmutabilityPolicyState.Locked, immutabilityPolicy.State); blobContainer = storageMgmtClient.BlobContainers.Get(rgName, accountName, containerName); Assert.Null(blobContainer.Metadata); Assert.Equal(PublicAccess.None, blobContainer.PublicAccess); Assert.Equal(3, blobContainer.ImmutabilityPolicy.UpdateHistory.Count); Assert.Equal(ImmutabilityPolicyUpdateType.Put, blobContainer.ImmutabilityPolicy.UpdateHistory[0].Update); Assert.Equal(ImmutabilityPolicyUpdateType.Lock, blobContainer.ImmutabilityPolicy.UpdateHistory[1].Update); Assert.Equal(ImmutabilityPolicyUpdateType.Extend, blobContainer.ImmutabilityPolicy.UpdateHistory[2].Update); Assert.True(blobContainer.LegalHold.HasLegalHold); Assert.Equal(3, blobContainer.LegalHold.Tags.Count); Assert.Equal("tag1", blobContainer.LegalHold.Tags[0].Tag); Assert.Equal("tag2", blobContainer.LegalHold.Tags[1].Tag); Assert.Equal("tag3", blobContainer.LegalHold.Tags[2].Tag); legalHold = storageMgmtClient.BlobContainers.ClearLegalHold(rgName, accountName, containerName, new List <string> { "tag1", "tag2", "tag3" }); Assert.False(legalHold.HasLegalHold); //Assert.Equal(null, legalHold.Tags); storageMgmtClient.BlobContainers.Delete(rgName, accountName, containerName); } finally { // clean up storageMgmtClient.StorageAccounts.Delete(rgName, accountName); resourcesClient.ResourceGroups.Delete(rgName); } } }
public async Task GetBlobContainer() { string containerName = Recording.GenerateAssetName("testblob"); BlobContainer container = (await _blobContainerCollection.CreateOrUpdateAsync(true, containerName, new BlobContainerData())).Value; Assert.IsEmpty(container.Data.Metadata); Assert.Null(container.Data.PublicAccess); LegalHold legalHoldModel = new LegalHold(new List <string> { "tag1", "tag2", "tag3" }); LegalHold legalHold = await container.SetLegalHoldAsync(legalHoldModel); Assert.IsTrue(legalHold.HasLegalHold); Assert.AreEqual(new List <string> { "tag1", "tag2", "tag3" }, legalHold.Tags); ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicy immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(true, immutabilityPolicyModel)).Value; Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); immutabilityPolicy = await container.GetImmutabilityPolicy().LockImmutabilityPolicyAsync(immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 100 }; immutabilityPolicy = await container.GetImmutabilityPolicy().ExtendImmutabilityPolicyAsync(immutabilityPolicy.Data.Etag, parameters: immutabilityPolicyModel); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.Type); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(100, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); container = await container.GetAsync(); Assert.IsEmpty(container.Data.Metadata); Assert.AreEqual(PublicAccess.None, container.Data.PublicAccess); Assert.AreEqual(3, container.Data.ImmutabilityPolicy.UpdateHistory.Count); Assert.AreEqual(ImmutabilityPolicyUpdateType.Put, container.Data.ImmutabilityPolicy.UpdateHistory[0].Update); Assert.AreEqual(ImmutabilityPolicyUpdateType.Lock, container.Data.ImmutabilityPolicy.UpdateHistory[1].Update); Assert.AreEqual(ImmutabilityPolicyUpdateType.Extend, container.Data.ImmutabilityPolicy.UpdateHistory[2].Update); Assert.IsTrue(container.Data.LegalHold.HasLegalHold); Assert.AreEqual(3, container.Data.LegalHold.Tags.Count); Assert.AreEqual("tag1", container.Data.LegalHold.Tags[0].Tag); Assert.AreEqual("tag2", container.Data.LegalHold.Tags[1].Tag); Assert.AreEqual("tag3", container.Data.LegalHold.Tags[2].Tag); legalHold = await container.ClearLegalHoldAsync(legalHold); Assert.IsFalse(legalHold.HasLegalHold); await container.DeleteAsync(true); }