Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -645,10 +645,10 @@
# ServiceOwners: @omziv @anatse @raronen @ischrei @danhadari @azmonapplicationinsights

# PRLabel: %Monitor - Distro
/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/ @rajkumar-rangaraj
/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/ @rajkumar-rangaraj

# PRLabel: %Monitor - Distro
/sdk/monitor/Azure.Monitor.OpenTelemetry.sln @rajkumar-rangaraj
/sdk/monitor/Azure.Monitor.OpenTelemetry.sln @rajkumar-rangaraj

# ServiceLabel: %Monitor - Distro
# ServiceOwners: @rajkumar-rangaraj
Expand Down Expand Up @@ -898,8 +898,8 @@

# ServiceLabel: %Synapse
# ServiceOwners: @yanjungao718

Check failure on line 901 in .github/CODEOWNERS

View check run for this annotation

Azure Pipelines / net - codeowners-linter - ci

.github/CODEOWNERS#L901

.github/CODEOWNERS(901,1): error : Error(s) on line 901 Source Line: # ServiceLabel: %VirtualEnclaves -'VirtualEnclaves' is not a valid label for this repository.
# PRLabel: %Tables

Check failure on line 902 in .github/CODEOWNERS

View check run for this annotation

Azure Pipelines / net - codeowners-linter - ci

.github/CODEOWNERS#L902

.github/CODEOWNERS(902,1): error : Error(s) on line 902 Source Line: # ServiceOwners: @jchavaherrera @Azure/azure-virtual-enclaves -Azure/azure-virtual-enclaves is an invalid team. Ensure the team exists and has write permissions.
/sdk/tables/ @christothes @jorgerangel-msft

# ServiceLabel: %Tables
Expand All @@ -918,6 +918,9 @@
# ServiceLabel: %VideoAnalyzer
# ServiceOwners: @giakas

# ServiceLabel: %VirtualEnclaves
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After you have a valid label, this will need to move into the management section that starts on L955 and include %Mgmt. Entries should be ordered alphabetically by label name.

# ServiceOwners: @jchavaherrera @Azure/azure-virtual-enclaves

# ServiceLabel: %Web Apps
# ServiceOwners: @AzureAppServiceCLI @antcp

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30309.148
MinimumVisualStudioVersion = 10.0.40219.1
Project("{7DC62A36-7488-49E0-98B0-BCA292B9AA9B}") = "Azure.ResourceManager.VirtualEnclaves", "src\Azure.ResourceManager.VirtualEnclaves.csproj", "{673B38FB-4D42-43E4-BF91-3413C03BCD28}"
EndProject
Project("{7DC62A36-7488-49E0-98B0-BCA292B9AA9B}") = "Azure.ResourceManager.VirtualEnclaves.Tests", "tests\Azure.ResourceManager.VirtualEnclaves.Tests.csproj", "{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}"
EndProject
Project("{7DC62A36-7488-49E0-98B0-BCA292B9AA9B}") = "Azure.ResourceManager.VirtualEnclaves.Samples", "samples\Azure.ResourceManager.VirtualEnclaves.Samples.csproj", "{B21B4156-A1F9-47C2-8960-A4F4644857C1}"
EndProject
Global
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {7B5F25F2-D050-4B7C-8816-38873D77FE09}
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Debug|x64.ActiveCfg = Debug|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Debug|x64.Build.0 = Debug|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Debug|x86.ActiveCfg = Debug|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Debug|x86.Build.0 = Debug|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Release|Any CPU.ActiveCfg = Release|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Release|Any CPU.Build.0 = Release|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Release|x64.ActiveCfg = Release|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Release|x64.Build.0 = Release|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Release|x86.ActiveCfg = Release|Any CPU
{673B38FB-4D42-43E4-BF91-3413C03BCD28}.Release|x86.Build.0 = Release|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Debug|x64.ActiveCfg = Debug|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Debug|x64.Build.0 = Debug|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Debug|x86.ActiveCfg = Debug|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Debug|x86.Build.0 = Debug|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Release|Any CPU.Build.0 = Release|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Release|x64.ActiveCfg = Release|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Release|x64.Build.0 = Release|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Release|x86.ActiveCfg = Release|Any CPU
{C7DAA011-2AF0-453B-B88D-D1C9C6FF5222}.Release|x86.Build.0 = Release|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Debug|x64.ActiveCfg = Debug|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Debug|x64.Build.0 = Debug|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Debug|x86.ActiveCfg = Debug|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Debug|x86.Build.0 = Debug|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Release|Any CPU.Build.0 = Release|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Release|x64.ActiveCfg = Release|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Release|x64.Build.0 = Release|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Release|x86.ActiveCfg = Release|Any CPU
{B21B4156-A1F9-47C2-8960-A4F4644857C1}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Release History

## 1.0.0-beta.1 (Unreleased)



### Features Added

This package follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities:

- Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET.
- Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing.
- HTTP pipeline with custom policies.
- Better error-handling.
- Support uniform telemetry across all languages.

This package is a Public Preview version, so expect incompatible changes in subsequent releases as we improve the product. To provide feedback, submit an issue in our [Azure SDK for .NET GitHub repo](https://github.com/Azure/azure-sdk-for-net/issues).

> NOTE: For more information about unified authentication, please refer to [Microsoft Azure Identity documentation for .NET](https://docs.microsoft.com//dotnet/api/overview/azure/identity-readme?view=azure-dotnet).
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
Add any shared properties you want for the projects under this package directory that need to be set before the auto imported Directory.Build.props
-->
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., Directory.Build.props))\Directory.Build.props" />
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Microsoft Azure VirtualEnclaves management client library for .NET

**Azure Virtual Enclaves provide secure, isolated execution environments within Azure, enabling organizations to run sensitive workloads with enhanced confidentiality and integrity. This SDK allows developers and administrators to manage Virtual Enclave resources, configure enclave properties, and integrate secure enclaves with other Azure services through a consistent .NET API.**

This library follows the [new Azure SDK guidelines](https://azure.github.io/azure-sdk/general_introduction.html), and provides many core capabilities:

- Support MSAL.NET, Azure.Identity is out of box for supporting MSAL.NET.
- Support [OpenTelemetry](https://opentelemetry.io/) for distributed tracing.
- HTTP pipeline with custom policies.
- Better error-handling.
- Support uniform telemetry across all languages.

## Getting started

### Install the package

Install the Microsoft Azure VirtualEnclaves management library for .NET with [NuGet](https://www.nuget.org/):

```dotnetcli
dotnet add package Azure.ResourceManager.VirtualEnclaves --prerelease
```

### Prerequisites

* You must have an [Microsoft Azure subscription](https://azure.microsoft.com/free/dotnet/).

### Authenticate the Client

To create an authenticated client and start interacting with Microsoft Azure resources, see the [quickstart guide here](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md).

## Key concepts

Key concepts of the Microsoft Azure SDK for .NET can be found [here](https://azure.github.io/azure-sdk/dotnet_introduction.html)

## Documentation

Documentation is available to help you learn how to use this package:

- [Quickstart](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/mgmt_quickstart.md).
- [API References](https://docs.microsoft.com/dotnet/api/?view=azure-dotnet).
- [Authentication](https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/README.md).

## Examples

Code samples for using the management library for .NET can be found in the following locations
- [.NET Management Library Code Samples](https://aka.ms/azuresdk-net-mgmt-samples)

## Troubleshooting

- File an issue via [GitHub Issues](https://github.com/Azure/azure-sdk-for-net/issues).
- Check [previous questions](https://stackoverflow.com/questions/tagged/azure+.net) or ask new ones on Stack Overflow using Azure and .NET tags.

## Next steps

For more information about Microsoft Azure SDK, see [this website](https://azure.github.io/azure-sdk/).

## Contributing

For details on contributing to this repository, see the [contributing
guide][cg].

This project welcomes contributions and suggestions. Most contributions
require you to agree to a Contributor License Agreement (CLA) declaring
that you have the right to, and actually do, grant us the rights to use
your contribution. For details, visit <https://cla.microsoft.com>.

When you submit a pull request, a CLA-bot will automatically determine
whether you need to provide a CLA and decorate the PR appropriately
(for example, label, comment). Follow the instructions provided by the
bot. You'll only need to do this action once across all repositories
using our CLA.

This project has adopted the [Microsoft Open Source Code of Conduct][coc]. For
more information, see the [Code of Conduct FAQ][coc_faq] or contact
<[email protected]> with any other questions or comments.

<!-- LINKS -->
[cg]: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/resourcemanager/Azure.ResourceManager/docs/CONTRIBUTING.md
[coc]: https://opensource.microsoft.com/codeofconduct/
[coc_faq]: https://opensource.microsoft.com/codeofconduct/faq/
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "net",
"TagPrefix": "net/virtualenclaves/Azure.ResourceManager.VirtualEnclaves",
"Tag": ""
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<StartupObject>Azure.ResourceManager.VirtualEnclaves.Samples.Sample01_CreateCommunity</StartupObject>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\src\Azure.ResourceManager.VirtualEnclaves.csproj" />
<PackageReference Include="Azure.Identity" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Azure.Core;
using Azure.Core.Pipeline;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.VirtualEnclaves;
using Azure.ResourceManager.VirtualEnclaves.Models;

namespace Azure.ResourceManager.VirtualEnclaves.Samples
{
public class Sample01_CreateCommunity
{
public static async Task Main(string[] args)
{
try
{
// Initialize the client with logging
var options = new ArmClientOptions();
options.Diagnostics.IsLoggingEnabled = true;
options.Diagnostics.IsDistributedTracingEnabled = true;

var credential = new DefaultAzureCredential();
var client = new ArmClient(credential, default, options);

// Get specific subscription
string subscriptionId = "1fbade44-8ae7-42be-a05b-7919a3938975";
var subscription = await client.GetSubscriptions().GetAsync(subscriptionId);

// Get existing resource group
string resourceGroupName = "jorgechav_rg";
Console.WriteLine($"Getting resource group {resourceGroupName}...");
var resourceGroup = await subscription.Value.GetResourceGroupAsync(resourceGroupName);

// Create community configuration
var communityData = new CommunityResourceData(AzureLocation.WestUS)
{
Properties = new CommunityProperties
{
// Configure DNS servers (using same value as test)
DnsServers = { "168.63.129.16" },

// Configure address space with valid subnet mask between /8 and /17
AddressSpace = "10.0.0.0/16"
},
Tags =
{
["purpose"] = "demo",
["environment"] = "development"
}
};

// Create the community
string communityName = "jorgechav-community2";
Console.WriteLine($"Creating community {communityName}...");

var communities = resourceGroup.Value.GetCommunityResources();
var operation = await communities.CreateOrUpdateAsync(
WaitUntil.Completed,
communityName,
communityData);

var community = operation.Value;
Console.WriteLine($"Created community with ID: {community.Data.Id}");

// Verify address space availability
var addressSpaceCheck = new CheckAddressSpaceAvailabilityContent(
community.Id,
new EnclaveVirtualNetworkModel
{
NetworkSize = "small",
CustomCidrRange = "10.0.0.0/16",
SubnetConfigurations = { new SubnetConfiguration("default", 20) },
AllowSubnetCommunication = true
});

Console.WriteLine("Checking address space availability...");
var availabilityResponse = await community.CheckAddressSpaceAvailabilityAsync(addressSpaceCheck);
Console.WriteLine($"Address space availability check result: {availabilityResponse.Value.Value}");
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
Console.WriteLine(ex.StackTrace);
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Version>1.0.0-beta.1</Version>
<PackageId>Azure.ResourceManager.VirtualEnclaves</PackageId>
<Description>Azure Resource Manager client SDK for Azure resource provider VirtualEnclaves.</Description>
<PackageTags>azure;management;arm;resource manager;virtualenclaves</PackageTags>
<NoWarn>AZC0030,AZC0012,AZC0034</NoWarn>
</PropertyGroup>
</Project>

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading