public async Task CreateDeleteBlobContainer() { //create blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerResource container1 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; Assert.IsNotNull(container1); Assert.AreEqual(container1.Id.Name, containerName); //validate if created successfully BlobContainerResource container2 = await _blobContainerCollection.GetAsync(containerName); AssertBlobContainerEqual(container1, container2); Assert.IsTrue(await _blobContainerCollection.ExistsAsync(containerName)); Assert.IsFalse(await _blobContainerCollection.ExistsAsync(containerName + "1")); BlobContainerData containerData = container1.Data; Assert.IsEmpty(containerData.Metadata); Assert.IsFalse(containerData.HasLegalHold); Assert.IsNull(containerData.PublicAccess); Assert.False(containerData.HasImmutabilityPolicy); //delete blob container ArmOperation blobContainerDeleteOperation = await container1.DeleteAsync(WaitUntil.Completed); await blobContainerDeleteOperation.WaitForCompletionResponseAsync(); //validate if deleted successfully var exception = Assert.ThrowsAsync <RequestFailedException>(async() => { await _blobContainerCollection.GetAsync(containerName); }); Assert.AreEqual(404, exception.Status); Assert.IsFalse(await _blobContainerCollection.ExistsAsync(containerName)); }
public async Task CreateDeleteImmutabilityPolicy() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, data: immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); 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(WaitUntil.Completed, immutabilityPolicy.Data.Etag)).Value.Data; //validate Assert.NotNull(immutabilityPolicyModel.ResourceType); Assert.NotNull(immutabilityPolicyModel.Name); Assert.AreEqual(0, immutabilityPolicyModel.ImmutabilityPeriodSinceCreationInDays); }
public async Task SetClearLegalHold() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //set legal hold LegalHold legalHoldModel = new LegalHold(new List <string> { "tag1", "tag2", "tag3" }); LegalHold legalHold = await container.SetLegalHoldAsync(legalHoldModel); //validate Assert.True(legalHold.HasLegalHold); Assert.AreEqual(new List <string> { "tag1", "tag2", "tag3" }, legalHold.Tags); //clear legal hold legalHold = await container.ClearLegalHoldAsync(legalHoldModel); //validate Assert.False(legalHold.HasLegalHold); Assert.AreEqual(0, legalHold.Tags.Count); }
internal static ListContainerItems DeserializeListContainerItems(JsonElement element) { Optional <IReadOnlyList <BlobContainerData> > value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <BlobContainerData> array = new List <BlobContainerData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(BlobContainerData.DeserializeBlobContainerData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new ListContainerItems(Optional.ToList(value), nextLink.Value)); }
public async Task CreateDeleteImmutabilityPolicy() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainer container = (await _blobContainerContainer.CreateOrUpdateAsync(containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicy immutabilityPolicyModel = new ImmutabilityPolicy() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicy immutabilityPolicy = await container.CreateOrUpdateImmutabilityPolicyAsync(parameters : immutabilityPolicyModel); //validate Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.AreEqual(3, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.State); //delete immutability policy immutabilityPolicy = await container.DeleteImmutabilityPolicyAsync(immutabilityPolicy.Etag); //validate Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Type); Assert.NotNull(immutabilityPolicy.Name); Assert.AreEqual(0, immutabilityPolicy.ImmutabilityPeriodSinceCreationInDays); }
public async Task CreateDeleteBlobContainer() { //create blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainer container1 = (await _blobContainerCollection.CreateOrUpdateAsync(containerName, new BlobContainerData())).Value; Assert.IsNotNull(container1); Assert.AreEqual(container1.Id.Name, containerName); //validate if created successfully BlobContainer container2 = await _blobContainerCollection.GetAsync(containerName); AssertBlobContainerEqual(container1, container2); Assert.IsTrue(await _blobContainerCollection.CheckIfExistsAsync(containerName)); Assert.IsFalse(await _blobContainerCollection.CheckIfExistsAsync(containerName + "1")); BlobContainerData containerData = container1.Data; Assert.IsEmpty(containerData.Metadata); Assert.IsFalse(containerData.HasLegalHold); Assert.IsNull(containerData.PublicAccess); Assert.False(containerData.HasImmutabilityPolicy); //delete blob container BlobContainerDeleteOperation blobContainerDeleteOperation = await container1.DeleteAsync(); await blobContainerDeleteOperation.WaitForCompletionResponseAsync(); //validate if deleted successfully BlobContainer blobContainer3 = await _blobContainerCollection.GetIfExistsAsync(containerName); Assert.IsNull(blobContainer3); Assert.IsFalse(await _blobContainerCollection.CheckIfExistsAsync(containerName)); }
public async Task CreateOrUpdate() { #region Snippet:Managing_BlobContainers_CreateBlobContainer BlobContainerCollection blobContainerCollection = blobService.GetBlobContainers(); string blobContainerName = "myBlobContainer"; BlobContainerData blobContainerData = new BlobContainerData(); ArmOperation <BlobContainerResource> blobContainerCreateOperation = await blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, blobContainerName, blobContainerData); BlobContainerResource blobContainer = blobContainerCreateOperation.Value; #endregion }
public async Task ExtendImmutabilityPolicy() { //update storage account to v2 PatchableStorageAccountData updateParameters = new PatchableStorageAccountData() { Kind = StorageKind.StorageV2 }; _storageAccount = await _storageAccount.UpdateAsync(updateParameters); _blobService = await _blobService.GetAsync(); // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, data: immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); 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.ResourceType); 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, data: immutabilityPolicyModel); Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(100, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); await container.DeleteAsync(WaitUntil.Completed); }
public async Task CreateOrUpdate() { #region Snippet:Managing_BlobContainers_CreateBlobContainer BlobContainerContainer blobContainerContainer = blobService.GetBlobContainers(); string blobContainerName = "myBlobContainer"; BlobContainerData blobContainerData = new BlobContainerData(); BlobContainerCreateOperation blobContainerCreateOperation = await blobContainerContainer.CreateOrUpdateAsync(blobContainerName, blobContainerData); BlobContainer blobContainer = blobContainerCreateOperation.Value; #endregion }
public async Task BlobContainersVLW() { //update storage account to v2 PatchableStorageAccountData updateParameters = new PatchableStorageAccountData() { Kind = StorageKind.StorageV2 }; _storageAccount = await _storageAccount.UpdateAsync(updateParameters); _blobService = await _blobService.GetAsync(); //enable blob versioning BlobServiceData properties = _blobService.Data; properties.IsVersioningEnabled = true; _blobService = (await _blobService.CreateOrUpdateAsync(WaitUntil.Completed, properties)).Value; Assert.IsTrue(properties.IsVersioningEnabled); //create container with VLW string containerName1 = Recording.GenerateAssetName("testblob1"); BlobContainerData parameters1 = new BlobContainerData() { ImmutableStorageWithVersioning = new ImmutableStorageWithVersioning() { Enabled = true } }; BlobContainerResource container1 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName1, parameters1)).Value; Assert.IsTrue(container1.Data.ImmutableStorageWithVersioning.Enabled); Assert.IsNull(container1.Data.ImmutableStorageWithVersioning.MigrationState); //update container to enabled Immutability Policy string containerName2 = Recording.GenerateAssetName("testblob2"); BlobContainerData parameters2 = new BlobContainerData(); BlobContainerResource container2 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName2, parameters2)).Value; await container2.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, data: new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 1 }); await container2.ObjectLevelWormAsync(WaitUntil.Completed); container2 = await container2.GetAsync(); Assert.IsTrue(container2.Data.ImmutableStorageWithVersioning.Enabled); Assert.AreEqual("Completed", container2.Data.ImmutableStorageWithVersioning.MigrationState); }
public async Task UpdateImmutabilityPolicy() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); 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(WaitUntil.Completed, immutabilityPolicyModel, immutabilityPolicy.Data.Etag)).Value; Assert.NotNull(immutabilityPolicy.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.IsTrue(immutabilityPolicy.Data.AllowProtectedAppendWrites); immutabilityPolicy = await container.GetImmutabilityPolicy().GetAsync(immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.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.IsTrue(immutabilityPolicy.Data.AllowProtectedAppendWrites); }
public async Task LockImmutabilityPolicy() { //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(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); await container.DeleteAsync(); }
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 async Task UpdateBlobContainer() { //create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //update metadata, public access BlobContainerData containerData = container.Data; containerData.Metadata.Add("key1", "value1"); containerData.PublicAccess = PublicAccess.Container; BlobContainerResource container1 = await container.UpdateAsync(containerData); //validate Assert.NotNull(container1); Assert.NotNull(container1.Data.Metadata); Assert.AreEqual(container1.Data.Metadata["key1"], "value1"); Assert.AreEqual(PublicAccess.Container, container.Data.PublicAccess); Assert.False(container1.Data.HasLegalHold); Assert.False(container1.Data.HasImmutabilityPolicy); }
public async Task ImmutabilityPolicy_AllowProtectedAppendWrites() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, data)).Value; ImmutabilityPolicyData immutabilityPolicyData = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 4, AllowProtectedAppendWrites = true }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, immutabilityPolicyData)).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, 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 async Task CreateUpdateGetDeleteBlobInventoryPolicy() { //create resource group and storage account string accountName = await CreateValidAccountNameAsync(namePrefix); _resourceGroup = await CreateResourceGroupAsync(); StorageAccountContainer storageAccountContainer = _resourceGroup.GetStorageAccounts(); StorageAccountCreateParameters parameters = GetDefaultStorageAccountParameters(kind: Kind.StorageV2); StorageAccount account = (await storageAccountContainer.CreateOrUpdateAsync(accountName, parameters)).Value; BlobInventoryPolicyContainer blobInventoryPolicyContainer = account.GetBlobInventoryPolicies(); //create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobServiceContainer blobServiceContainer = account.GetBlobServices(); BlobService blobService = await blobServiceContainer.GetAsync("default"); BlobContainerContainer blobContainerContainer = blobService.GetBlobContainers(); BlobContainer container = (await blobContainerContainer.CreateOrUpdateAsync(containerName, new BlobContainerData())).Value; //prepare schema fields string[] BlobSchemaField = new string[] { "Name", "Creation-Time", "Last-Modified", "Content-Length", "Content-MD5", "BlobType", "AccessTier", "AccessTierChangeTime", "Snapshot", "VersionId", "IsCurrentVersion", "Metadata", "LastAccessTime" }; string[] ContainerSchemaField = new string[] { "Name", "Last-Modified", "Metadata", "LeaseStatus", "LeaseState", "LeaseDuration", "PublicAccess", "HasImmutabilityPolicy", "HasLegalHold" }; List <string> blobSchemaFields1 = new List <string>(BlobSchemaField); List <string> blobSchemaFields2 = new List <string>(); blobSchemaFields2.Add("Name"); List <string> containerSchemaFields1 = new List <string>(ContainerSchemaField); List <string> containerSchemaFields2 = new List <string>(); containerSchemaFields2.Add("Name"); // prepare policy objects,the type of policy rule should always be Inventory List <BlobInventoryPolicyRule> ruleList = new List <BlobInventoryPolicyRule>(); BlobInventoryPolicyRule rule1 = new BlobInventoryPolicyRule(true, "rule1", containerName, new BlobInventoryPolicyDefinition( filters: new BlobInventoryPolicyFilter( blobTypes: new List <string>(new string[] { "blockBlob" }), prefixMatch: new List <string>(new string[] { "prefix1", "prefix2" }), includeBlobVersions: true, includeSnapshots: true), format: Format.Csv, schedule: Schedule.Weekly, objectType: ObjectType.Blob, schemaFields: blobSchemaFields1)); BlobInventoryPolicyRule rule2 = new BlobInventoryPolicyRule(true, "rule2", containerName, new BlobInventoryPolicyDefinition( format: Format.Csv, schedule: Schedule.Daily, objectType: ObjectType.Container, schemaFields: containerSchemaFields1)); BlobInventoryPolicyRule rule3 = new BlobInventoryPolicyRule(true, "rule3", containerName, new BlobInventoryPolicyDefinition( format: Format.Parquet, schedule: Schedule.Weekly, objectType: ObjectType.Container, schemaFields: containerSchemaFields2)); ruleList.Add(rule1); ruleList.Add(rule2); BlobInventoryPolicySchema policy = new BlobInventoryPolicySchema(true, "Inventory", ruleList); BlobInventoryPolicyData parameter = new BlobInventoryPolicyData() { Policy = policy }; //create and get policy, the name of blob inventory policy should always be default BlobInventoryPolicy blobInventoryPolicy = (await blobInventoryPolicyContainer.CreateOrUpdateAsync("default", parameter)).Value; blobInventoryPolicy = await blobInventoryPolicyContainer.GetAsync("default"); Assert.AreEqual(blobInventoryPolicy.Data.Policy.Rules.Count, 2); //update policy ruleList.Add(rule3); BlobInventoryPolicySchema policy2 = new BlobInventoryPolicySchema(true, "Inventory", ruleList); BlobInventoryPolicyData parameter2 = new BlobInventoryPolicyData() { Policy = policy2 }; blobInventoryPolicy = (await blobInventoryPolicyContainer.CreateOrUpdateAsync("default", parameter2)).Value; Assert.AreEqual(blobInventoryPolicy.Data.Policy.Rules.Count, 3); //delete policy await blobInventoryPolicy.DeleteAsync(); }