Skip to content

Commit 17f2893

Browse files
yukun-dongm-nash
andauthored
Storage mgmt track 2 library (Azure#23564)
* Feature/mgmt track2 storage2 (Azure#23468) * generate code and add storage account test * add blob container test cases an record the test * modify azure manager version and regenerate code * regenerate code and add test cases * regenerate code and add queue, table test cases * regenerate code using remote spec and rerun tests * add Properties and change Helpers position * Add support for 'files' configuration (Azure#23327) * add and change some test cases * add some storage account test cases * regenerate code using autorest c# v3.0.0 beta.20210825.1 * add some storage account test cases * modify some test cases * regenerate code using autorest c# v3.0.0-beta20210825.2 * update api * generate code using autorest c# v3.0.0-beta.20210826.2 * update api and README.md * update changelog * change README.md file * change README.md * bump storage version * modify samples' typos * modify samples and update snippets * regenerate using autorest c# 3.0.0-beta.20210830.1 * modify createResourceGroup method due to ResourceManager's version change * update snippets * add storage account test case * add one blob container test case * change mgmt storage version * fix compile errors in eventhub and network; modify typos in storage csproj file * fix merge conflicts * ignore storage account list key test * remove records that are not used * update with prepare release Co-authored-by: m-nash <[email protected]>
1 parent d1ef48e commit 17f2893

File tree

473 files changed

+73599
-202278
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

473 files changed

+73599
-202278
lines changed

eng/Packages.Data.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@
162162
<PackageReference Update="Azure.ResourceManager.Compute" Version="1.0.0-beta.1" />
163163
<PackageReference Update="Azure.ResourceManager.Network" Version="1.0.0-beta.1" />
164164
<PackageReference Update="Azure.ResourceManager.Resources" Version="1.0.0-beta.1" />
165-
<PackageReference Update="Azure.ResourceManager.Storage" Version="1.0.0-preview.2" />
165+
<PackageReference Update="Azure.ResourceManager.Storage" Version="1.0.0-alpha.20210831.3" />
166166
<PackageReference Update="Azure.Search.Documents" Version="11.2.0" />
167167
<PackageReference Update="Azure.Security.KeyVault.Secrets" Version="4.2.0-beta.4" />
168168
<PackageReference Update="Azure.Storage.Blobs" Version="12.8.0" />

sdk/eventhub/Azure.ResourceManager.EventHubs/tests/EventHubsManagementClientBase.cs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ public abstract class EventHubsManagementClientBase : ManagementRecordedTestBase
2424
public NamespacesOperations NamespacesOperations { get; set; }
2525
public ConsumerGroupsOperations ConsumerGroupsOperations { get; set; }
2626
public DisasterRecoveryConfigsOperations DisasterRecoveryConfigsOperations { get; set; }
27-
public StorageManagementClient StorageManagementClient { get; set; }
2827

2928
protected EventHubsManagementClientBase(bool isAsync)
3029
: base(isAsync)
@@ -42,8 +41,6 @@ protected void InitializeClients()
4241
ConsumerGroupsOperations = EventHubsManagementClient.ConsumerGroups;
4342
DisasterRecoveryConfigsOperations = EventHubsManagementClient.DisasterRecoveryConfigs;
4443
Operations = EventHubsManagementClient.Operations;
45-
46-
StorageManagementClient = GetStorageManagementClient();
4744
}
4845

4946
internal EventHubsManagementClient GetEventHubManagementClient()
@@ -52,14 +49,6 @@ internal EventHubsManagementClient GetEventHubManagementClient()
5249
TestEnvironment.Credential,
5350
InstrumentClientOptions(new EventHubsManagementClientOptions()));
5451
}
55-
56-
internal StorageManagementClient GetStorageManagementClient()
57-
{
58-
return CreateClient<StorageManagementClient>(this.SubscriptionId,
59-
TestEnvironment.Credential,
60-
InstrumentClientOptions(new StorageManagementClientOptions()));
61-
}
62-
6352
internal ArmClient GetArmClient()
6453
{
6554
var options = InstrumentClientOptions(new ArmClientOptions());

sdk/eventhub/Azure.ResourceManager.EventHubs/tests/SessionRecords/ScenarioTests/EventCreateGetUpdateDelete.json

Lines changed: 1433 additions & 1348 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/eventhub/Azure.ResourceManager.EventHubs/tests/SessionRecords/ScenarioTests/EventCreateGetUpdateDeleteAsync.json

Lines changed: 2009 additions & 1218 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/eventhub/Azure.ResourceManager.EventHubs/tests/Tests/ScenarioTests.EventHubTests.CRUD.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Azure.ResourceManager.EventHubs.Models;
99
using Azure.ResourceManager.EventHubs.Tests;
1010
using Azure.ResourceManager.Storage.Models;
11+
using Azure.ResourceManager.Storage;
1112
using NUnit.Framework;
1213

1314
namespace Azure.Management.EventHub.Tests
@@ -41,7 +42,7 @@ public async Task EventCreateGetUpdateDelete()
4142
{
4243
var location = await GetLocation();
4344
var resourceGroupName = Recording.GenerateAssetName(Helper.ResourceGroupPrefix);
44-
await ArmClient.DefaultSubscription.GetResourceGroups().CreateOrUpdateAsync(resourceGroupName, new ResourceGroupData(location));
45+
ResourceGroup resourceGroup=(await ArmClient.DefaultSubscription.GetResourceGroups().CreateOrUpdateAsync(resourceGroupName, new ResourceGroupData(location))).Value;
4546

4647
// Prepare Storage Account
4748
var accountName = Recording.GenerateAssetName("sdktestaccount");
@@ -53,8 +54,8 @@ public async Task EventCreateGetUpdateDelete()
5354
{
5455
AccessTier = AccessTier.Hot
5556
};
56-
await WaitForCompletionAsync(await StorageManagementClient.StorageAccounts.StartCreateAsync(resourceGroupName, accountName, storageAccountCreateParameters));
57-
57+
StorageAccountContainer storageAccountContainer = resourceGroup.GetStorageAccounts();
58+
await storageAccountContainer.CreateOrUpdateAsync(accountName, storageAccountCreateParameters);
5859
// Create NameSpace
5960
var namespaceName = Recording.GenerateAssetName(Helper.NamespacePrefix);
6061
var createNamespaceResponse = await NamespacesOperations.StartCreateOrUpdateAsync(resourceGroupName, namespaceName,

sdk/network/Azure.ResourceManager.Network/tests/Azure.ResourceManager.Network.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@
99
</ItemGroup>
1010
<ItemGroup>
1111
<PackageReference Include="Azure.Identity" />
12+
<PackageReference Include="Azure.ResourceManager.Storage" />
1213
</ItemGroup>
1314
</Project>

sdk/network/Azure.ResourceManager.Network/tests/Tests/PrivateEndpointTests.cs

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
using Azure.ResourceManager.Network.Tests.Helpers;
88
using Azure.ResourceManager.Resources;
99
using NUnit.Framework;
10+
using Azure.ResourceManager.Storage.Models;
11+
using Azure.ResourceManager.Storage;
1012
using Azure.ResourceManager.Network.Models;
1113

1214
namespace Azure.ResourceManager.Network.Tests.Tests
@@ -16,7 +18,7 @@ public class PrivateEndpointTests : NetworkServiceClientTestBase
1618
private VirtualNetwork virtualNetwork;
1719
private GenericResource privateDnsZone;
1820
private Resources.ResourceGroup resourceGroup;
19-
private GenericResource storageAccount;
21+
private StorageAccount storageAccount;
2022

2123
public PrivateEndpointTests(bool isAsync) : base(isAsync)
2224
{
@@ -56,21 +58,23 @@ private async Task<Response<VirtualNetwork>> createVirtualNetwork()
5658
return await resourceGroup.GetVirtualNetworks().CreateOrUpdate(name, vnet).WaitForCompletionAsync();
5759
}
5860

59-
private async Task<GenericResource> createStorageAccount()
61+
private async Task<StorageAccount> createStorageAccount()
6062
{
6163
var name = Recording.GenerateAssetName("testsa");
62-
var storageAccountId = $"/subscriptions/{TestEnvironment.SubscriptionId}/resourceGroups/{resourceGroup.Data.Name}/providers/Microsoft.Storage/storageAccounts/{name}";
64+
var parameters = new StorageAccountCreateParameters(new Storage.Models.Sku(SkuName.StandardLRS),Kind.Storage,TestEnvironment.Location);
65+
return (await resourceGroup.GetStorageAccounts().CreateOrUpdateAsync(name,parameters)).Value;
66+
//var storageAccountId = $"/subscriptions/{TestEnvironment.SubscriptionId}/resourceGroups/{resourceGroup.Data.Name}/providers/Microsoft.Storage/storageAccounts/{name}";
6367

6468
//var storageParameters = new Storage.Models.StorageAccountCreateParameters(new Storage.Models.Sku(Storage.Models.SkuName.StandardLRS), Storage.Models.Kind.Storage, TestEnvironment.Location);
6569
//var accountOperation = await StorageManagementClient.StorageAccounts.CreateAsync(resourceGroup.Data.Name, name, storageParameters);
6670
//Response<Storage.Models.StorageAccount> account = await accountOperation.WaitForCompletionAsync();
6771
//return account.Value;
6872

69-
return (await ArmClient.DefaultSubscription.GetGenericResources().CreateOrUpdateAsync(storageAccountId, new GenericResourceData(TestEnvironment.Location)
70-
{
71-
//Sku = new Resources.Models.Sku(),
72-
Kind = "storage",
73-
})).Value;
73+
//return (await ArmClient.DefaultSubscription.GetGenericResources().CreateOrUpdateAsync(storageAccountId, new GenericResourceData(TestEnvironment.Location)
74+
//{
75+
// //Sku = new Resources.Models.Sku(),
76+
// Kind = "storage",
77+
//})).Value;
7478
}
7579

7680
private async Task CleanUpVirtualNetwork()

sdk/storage/Azure.ResourceManager.Storage/Azure.ResourceManager.Storage.sln

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Microsoft Visual Studio Solution File, Format Version 12.00
2-
# Visual Studio Version 16
3-
VisualStudioVersion = 16.0.30011.22
2+
# Visual Studio Version 17
3+
VisualStudioVersion = 17.0.31630.363
44
MinimumVisualStudioVersion = 15.0.26124.0
55
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Core", "..\..\core\Azure.Core\src\Azure.Core.csproj", "{94E23818-B4C6-4E73-A3B5-7BFE379999CD}"
66
EndProject
@@ -10,8 +10,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.ResourceManager.Stora
1010
EndProject
1111
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.ResourceManager.Storage.Tests", "tests\Azure.ResourceManager.Storage.Tests.csproj", "{48D7DDA4-78A6-40D2-9366-32CDBB14E841}"
1212
EndProject
13-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Identity", "..\..\identity\Azure.Identity\src\Azure.Identity.csproj", "{DFC96D0F-45EE-4B39-9D03-0C99A7A4EC93}"
14-
EndProject
1513
Global
1614
GlobalSection(SolutionConfigurationPlatforms) = preSolution
1715
Debug|Any CPU = Debug|Any CPU
@@ -34,10 +32,6 @@ Global
3432
{48D7DDA4-78A6-40D2-9366-32CDBB14E841}.Debug|Any CPU.Build.0 = Debug|Any CPU
3533
{48D7DDA4-78A6-40D2-9366-32CDBB14E841}.Release|Any CPU.ActiveCfg = Release|Any CPU
3634
{48D7DDA4-78A6-40D2-9366-32CDBB14E841}.Release|Any CPU.Build.0 = Release|Any CPU
37-
{DFC96D0F-45EE-4B39-9D03-0C99A7A4EC93}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38-
{DFC96D0F-45EE-4B39-9D03-0C99A7A4EC93}.Debug|Any CPU.Build.0 = Debug|Any CPU
39-
{DFC96D0F-45EE-4B39-9D03-0C99A7A4EC93}.Release|Any CPU.ActiveCfg = Release|Any CPU
40-
{DFC96D0F-45EE-4B39-9D03-0C99A7A4EC93}.Release|Any CPU.Build.0 = Release|Any CPU
4135
EndGlobalSection
4236
GlobalSection(SolutionProperties) = preSolution
4337
HideSolutionNode = FALSE

sdk/storage/Azure.ResourceManager.Storage/CHANGELOG.md

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
# Release History
22

3-
## 1.0.0-preview.3 (Unreleased)
4-
5-
6-
## 1.0.0-preview.2 (2020-09-23)
7-
8-
- Accept header added to all requests.
9-
- Collections are now always initialized and collection properties are readonly by default.
10-
11-
## 1.0.0-preview.1
3+
## 1.0.0-beta.1 (2021-09-01)
124

135
This package follows the [Azure SDK Design Guidelines for .NET](https://azure.github.io/azure-sdk/dotnet_introduction.html) which provide a number of core capabilities that are shared amongst all Azure SDKs, including the intuitive Azure Identity library, an HTTP Pipeline with custom policies, error-handling, distributed tracing, and much more.
146

@@ -24,8 +16,6 @@ This is a Public Preview version, so expect incompatible changes in subsequent r
2416

2517
> NOTE: For more information about unified authentication, please refer to [Azure Identity documentation for .NET](https://docs.microsoft.com//dotnet/api/overview/azure/identity-readme?view=azure-dotnet)
2618
27-
### Migration from Previous Version of Azure Management SDK
28-
2919
#### Package Name
3020
The package name has been changed from `Microsoft.Azure.Management.Storage` to `Azure.ResourceManager.Storage`
3121

@@ -58,24 +48,22 @@ storageManagementClient.StorageAccounts.Create(resourceGroupName, accountName, p
5848
```
5949

6050
After upgrade:
61-
```csharp
51+
```C# Snippet:Create_Storage_Account
52+
using System.Collections.Generic;
6253
using Azure.Identity;
63-
using Azure.ResourceManager.Storage;
54+
using Azure.ResourceManager.Resources;
55+
using Azure.ResourceManager.Resources.Models;
6456
using Azure.ResourceManager.Storage.Models;
65-
66-
var storageManagementClient = new StorageManagementClient(subscriptionId, new DefaultAzureCredential());
67-
var storageAccountsOperations = storageManagementClient.StorageAccounts;
68-
69-
var parameters = new StorageAccountCreateParameters(new Sku(SkuName.StandardGRS), Kind.Storage, "westus")
70-
{
71-
Tags = new Dictionary<string, string>
72-
{
73-
{"key1","value1"},
74-
{"key2","value2"}
75-
}
76-
};
77-
var accountResponse = await storageAccountsOperations.StartCreateAsync(resourceGroupName, accountName, parameters);
78-
StorageAccount account = await accountResponse.WaitForCompletionAsync();
57+
string accountName = "myaccount";
58+
string resourceGropuName = "myResourceGroup";
59+
ArmClient client = new ArmClient(new DefaultAzureCredential());
60+
ResourceGroup resourceGroup = client.DefaultSubscription.GetResourceGroups().Get(resourceGropuName);
61+
StorageAccountContainer storageAccountContainer = resourceGroup.GetStorageAccounts();
62+
Sku sku = new Sku(SkuName.PremiumLRS);
63+
StorageAccountCreateParameters parameters = new StorageAccountCreateParameters(new Sku(SkuName.StandardGRS), Kind.Storage, Location.WestUS);
64+
parameters.Tags.Add("key1", "value1");
65+
parameters.Tags.Add("key2", "value2");
66+
StorageAccount account = storageAccountContainer.CreateOrUpdate(accountName, parameters).Value;
7967
```
8068

8169
#### Object Model Changes

sdk/storage/Azure.ResourceManager.Storage/README.md

Lines changed: 114 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,46 +9,143 @@ This package follows the [new Azure SDK guidelines](https://azure.github.io/azur
99
Install the Azure Storage management library for .NET with [NuGet](https://www.nuget.org/):
1010

1111
```PowerShell
12-
Install-Package Azure.ResourceManager.Storage -Version 1.0.0-preview.2
12+
Install-Package Azure.ResourceManager.Storage -Version 1.0.0-beta1
1313
```
1414

1515
### Prerequisites
16+
Set up a way to authenticate to Azure with Azure Identity.
1617

17-
* You must have an [Azure subscription](https://azure.microsoft.com/free/dotnet/)
18+
Some options are:
19+
- Through the [Azure CLI Login](https://docs.microsoft.com/cli/azure/authenticate-azure-cli).
20+
- Via [Visual Studio](https://docs.microsoft.com/dotnet/api/overview/azure/identity-readme?view=azure-dotnet#authenticating-via-visual-studio).
21+
- Setting [Environment Variables](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/AuthUsingEnvironmentVariables.md).
22+
23+
More information and different authentication approaches using Azure Identity can be found in [this document](https://docs.microsoft.com/dotnet/api/overview/azure/identity-readme?view=azure-dotnet).
1824

1925
### Authenticate the Client
2026

21-
To create an authenticated client and start interacting with Azure resources, please see the [quickstart guide here](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/mgmt_preview_quickstart.md)
27+
The default option to create an authenticated client is to use `DefaultAzureCredential`. Since all management APIs go through the same endpoint, in order to interact with resources, only one top-level `ArmClient` has to be created.
2228

23-
## Key concepts
29+
To authenticate to Azure and create an `ArmClient`, do the following:
2430

25-
Key concepts of the Azure .NET SDK can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html)
31+
```C# Snippet:Managing_StorageAccounts_AuthClient
32+
using Azure.Identity;
33+
using Azure.ResourceManager;
34+
35+
ArmClient armClient = new ArmClient(new DefaultAzureCredential());
36+
```
2637

27-
## Documentation
38+
Additional documentation for the `Azure.Identity.DefaultAzureCredential` class can be found in [this document](https://docs.microsoft.com/dotnet/api/azure.identity.defaultazurecredential).
2839

29-
Documentation is available to help you learn how to use this package
40+
## Key concepts
3041

31-
- [Quickstart](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/mgmt_preview_quickstart.md)
32-
- [API References](https://docs.microsoft.com/dotnet/api/?view=azure-dotnet)
33-
- [Authentication](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md)
42+
Key concepts of the Azure .NET SDK can be found [here](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/README.md#key-concepts)
3443

3544
## Examples
3645

37-
Code samples for using the management library for .NET can be found in the following locations
38-
- [.NET Management Library Code Samples](https://docs.microsoft.com/samples/browse/?branch=master&languages=csharp&term=managing%20using%20Azure%20.NET%20SDK)
46+
### Create a storage account
47+
48+
Before creating a storage account, we need to have a resource group.
49+
50+
```C# Snippet:Managing_StorageAccounts_DefaultSubscription
51+
ArmClient armClient = new ArmClient(new DefaultAzureCredential());
52+
Subscription subscription = armClient.DefaultSubscription;
53+
```
54+
```C# Snippet:Managing_StorageAccounts_GetResourceGroupContainer
55+
string rgName = "myRgName";
56+
Location location = Location.WestUS2;
57+
ResourceGroupCreateOrUpdateOperation operation= await subscription.GetResourceGroups().CreateOrUpdateAsync(rgName, new ResourceGroupData(location));
58+
ResourceGroup resourceGroup = operation.Value;
59+
```
60+
61+
Then we can create a storage account inside this resource group.
62+
63+
```C# Snippet:Managing_StorageAccounts_CreateStorageAccount
64+
//first we need to define the StorageAccountCreateParameters
65+
Sku sku = new Sku(SkuName.StandardGRS);
66+
Kind kind = Kind.Storage;
67+
string location = "westus2";
68+
StorageAccountCreateParameters parameters = new StorageAccountCreateParameters(sku, kind, location);
69+
//now we can create a storage account with defined account name and parameters
70+
StorageAccountContainer accountContainer = resourceGroup.GetStorageAccounts();
71+
string accountName = "myAccount";
72+
StorageAccountCreateOperation accountCreateOperation = await accountContainer.CreateOrUpdateAsync(accountName, parameters);
73+
StorageAccount storageAccount = accountCreateOperation.Value;
74+
```
75+
76+
### Get all storage accounts in a resource group
77+
78+
```C# Snippet:Managing_StorageAccounts_ListStorageAccounts
79+
StorageAccountContainer accountContainer = resourceGroup.GetStorageAccounts();
80+
AsyncPageable<StorageAccount> response = accountContainer.GetAllAsync();
81+
await foreach (StorageAccount storageAccount in response)
82+
{
83+
Console.WriteLine(storageAccount.Id.Name);
84+
}
85+
```
86+
87+
### Get a storage account
88+
89+
```C# Snippet:Managing_StorageAccounts_GetStorageAccount
90+
StorageAccountContainer accountContainer = resourceGroup.GetStorageAccounts();
91+
StorageAccount storageAccount = await accountContainer.GetAsync("myAccount");
92+
Console.WriteLine(storageAccount.Id.Name);
93+
```
94+
95+
### Try to get a storage account if it exists
96+
97+
98+
```C# Snippet:Managing_StorageAccounts_GetStorageAccountIfExists
99+
StorageAccountContainer accountContainer = resourceGroup.GetStorageAccounts();
100+
StorageAccount storageAccount = await accountContainer.GetIfExistsAsync("foo");
101+
if (storageAccount != null)
102+
{
103+
Console.WriteLine(storageAccount.Id.Name);
104+
}
105+
if (await accountContainer.CheckIfExistsAsync("bar"))
106+
{
107+
Console.WriteLine("storage account 'bar' exists");
108+
}
109+
```
110+
111+
### Delete a storage account
112+
113+
```C# Snippet:Managing_StorageAccounts_DeleteStorageAccount
114+
StorageAccountContainer accountContainer = resourceGroup.GetStorageAccounts();
115+
StorageAccount storageAccount = await accountContainer.GetAsync("myAccount");
116+
await storageAccount.DeleteAsync();
117+
```
118+
119+
### Add a tag to the storage account
120+
121+
```C# Snippet:Managing_StorageAccounts_AddTagStorageAccount
122+
StorageAccountContainer accountContainer = resourceGroup.GetStorageAccounts();
123+
StorageAccount storageAccount = await accountContainer.GetAsync("myAccount");
124+
// add a tag on this storage account
125+
await storageAccount.AddTagAsync("key", "value");
126+
```
127+
128+
For more detailed examples, take a look at [samples](https://github.com/Azure/azure-sdk-for-net/tree/feature/mgmt-track2-storage/sdk/storage/Azure.ResourceManager.Storage/samples) we have available.
39129

40130
## Troubleshooting
41131

42-
- File an issue via [Github
43-
Issues](https://github.com/Azure/azure-sdk-for-net/issues)
44-
- Check [previous
132+
- If you find a bug or have a suggestion, file an issue via [GitHub issues](https://github.com/Azure/azure-sdk-for-net/issues) and make sure you add the "Preview" label to the issue.
133+
- If you need help, check [previous
45134
questions](https://stackoverflow.com/questions/tagged/azure+.net)
46-
or ask new ones on Stack Overflow using azure and .net tags.
135+
or ask new ones on StackOverflow using azure and .NET tags.
136+
- If having trouble with authentication, go to [DefaultAzureCredential documentation](https://docs.microsoft.com/dotnet/api/azure.identity.defaultazurecredential?view=azure-dotnet)
47137

48138

49139
## Next steps
50140

51-
For more information on Azure SDK, please refer to [this website](https://azure.github.io/azure-sdk/)
141+
### More sample code
142+
143+
- [Managing Blob Containers](https://github.com/Azure/azure-sdk-for-net/blob/feature/mgmt-track2-storage/sdk/storage/Azure.ResourceManager.Storage/samples/Sample1_ManagingBlobContainers.md)
144+
- [Managing File Shares](https://github.com/Azure/azure-sdk-for-net/blob/feature/mgmt-track2-storage/sdk/storage/Azure.ResourceManager.Storage/samples/Sample2_ManagingFileShares.md)
145+
146+
### Additional Documentation
147+
148+
For more information on Azure SDK, please refer to [this website](https://azure.github.io/azure-sdk/).
52149

53150
## Contributing
54151

0 commit comments

Comments
 (0)