Skip to content

Commit 4930fa9

Browse files
authored
add support for appconfiguration (#42019)
1 parent a66fcc2 commit 4930fa9

File tree

8 files changed

+124
-0
lines changed

8 files changed

+124
-0
lines changed

eng/Packages.Data.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@
134134
<PackageReference Update="Azure.ResourceManager.Sql" Version="1.3.0-alpha.20240213.1" />
135135
<PackageReference Update="Azure.ResourceManager.AppService" Version="1.1.0-alpha.20240213.1" />
136136
<PackageReference Update="Azure.ResourceManager.Storage" Version="1.3.0-alpha.20240213.1" />
137+
<PackageReference Update="Azure.ResourceManager.AppConfiguration" Version="1.3.0-alpha.20240215.2" />
137138

138139
<!-- Other approved packages -->
139140
<PackageReference Update="Microsoft.Azure.Amqp" Version="2.6.4" />

sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.net6.0.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,18 @@ public abstract partial class Resource<T> : Azure.Provisioning.Resource where T
100100
public void AssignParameter(System.Linq.Expressions.Expression<System.Func<T, object?>> propertySelector, Azure.Provisioning.Parameter parameter) { }
101101
}
102102
}
103+
namespace Azure.Provisioning.AppConfiguration
104+
{
105+
public static partial class AppConfigurationExtensions
106+
{
107+
public static Azure.Provisioning.AppConfiguration.AppConfigurationStore AddAppConfigurationStore(this Azure.Provisioning.IConstruct construct, string name = "store") { throw null; }
108+
}
109+
public partial class AppConfigurationStore : Azure.Provisioning.Resource<Azure.ResourceManager.AppConfiguration.AppConfigurationStoreData>
110+
{
111+
public AppConfigurationStore(Azure.Provisioning.IConstruct scope, string name = "store", string version = "2023-03-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(System.Func<string, Azure.ResourceManager.AppConfiguration.AppConfigurationStoreData>)) { }
112+
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
113+
}
114+
}
103115
namespace Azure.Provisioning.AppService
104116
{
105117
public partial class AppServicePlan : Azure.Provisioning.Resource<Azure.ResourceManager.AppService.AppServicePlanData>

sdk/provisioning/Azure.Provisioning/api/Azure.Provisioning.netstandard2.0.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,18 @@ public abstract partial class Resource<T> : Azure.Provisioning.Resource where T
100100
public void AssignParameter(System.Linq.Expressions.Expression<System.Func<T, object?>> propertySelector, Azure.Provisioning.Parameter parameter) { }
101101
}
102102
}
103+
namespace Azure.Provisioning.AppConfiguration
104+
{
105+
public static partial class AppConfigurationExtensions
106+
{
107+
public static Azure.Provisioning.AppConfiguration.AppConfigurationStore AddAppConfigurationStore(this Azure.Provisioning.IConstruct construct, string name = "store") { throw null; }
108+
}
109+
public partial class AppConfigurationStore : Azure.Provisioning.Resource<Azure.ResourceManager.AppConfiguration.AppConfigurationStoreData>
110+
{
111+
public AppConfigurationStore(Azure.Provisioning.IConstruct scope, string name = "store", string version = "2023-03-01", Azure.Core.AzureLocation? location = default(Azure.Core.AzureLocation?)) : base (default(Azure.Provisioning.IConstruct), default(Azure.Provisioning.Resource), default(string), default(Azure.Core.ResourceType), default(string), default(System.Func<string, Azure.ResourceManager.AppConfiguration.AppConfigurationStoreData>)) { }
112+
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
113+
}
114+
}
103115
namespace Azure.Provisioning.AppService
104116
{
105117
public partial class AppServicePlan : Azure.Provisioning.Resource<Azure.ResourceManager.AppService.AppServicePlanData>

sdk/provisioning/Azure.Provisioning/src/Azure.Provisioning.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<PackageReference Include="Azure.ResourceManager.Sql" />
1616
<PackageReference Include="Azure.ResourceManager.AppService" />
1717
<PackageReference Include="Azure.ResourceManager.Storage" />
18+
<PackageReference Include="Azure.ResourceManager.AppConfiguration" />
1819
<PackageReference Include="System.ClientModel" />
1920
</ItemGroup>
2021

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
namespace Azure.Provisioning.AppConfiguration
5+
{
6+
/// <summary>
7+
/// Extension methods for <see cref="IConstruct"/>.
8+
/// </summary>
9+
public static class AppConfigurationExtensions
10+
{
11+
/// <summary>
12+
/// Adds a <see cref="AppConfigurationStore"/> to the construct.
13+
/// </summary>
14+
/// <param name="construct">The construct.</param>
15+
/// <param name="name">The name.</param>
16+
/// <returns></returns>
17+
public static AppConfigurationStore AddAppConfigurationStore(this IConstruct construct, string name = "store")
18+
{
19+
return new AppConfigurationStore(construct, name);
20+
}
21+
}
22+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
4+
using System;
5+
using Azure.Core;
6+
using Azure.Provisioning.ResourceManager;
7+
using Azure.ResourceManager.AppConfiguration;
8+
using Azure.ResourceManager.AppConfiguration.Models;
9+
10+
namespace Azure.Provisioning.AppConfiguration
11+
{
12+
/// <summary>
13+
/// Represents a KeyVault.
14+
/// </summary>
15+
public class AppConfigurationStore : Resource<AppConfigurationStoreData>
16+
{
17+
private const string ResourceTypeName = "Microsoft.AppConfiguration/configurationStores";
18+
19+
/// <summary>
20+
/// Initializes a new instance of the <see cref="AppConfigurationStore"/> class.
21+
/// </summary>
22+
/// <param name="scope">The scope.</param>
23+
/// <param name="name">The name.</param>
24+
/// <param name="version">The version.</param>
25+
/// <param name="location">The location.</param>
26+
public AppConfigurationStore(IConstruct scope, string name = "store", string version = "2023-03-01", AzureLocation? location = default)
27+
: base(scope, null, name, ResourceTypeName, version, (name) => ArmAppConfigurationModelFactory.AppConfigurationStoreData(
28+
name: name,
29+
resourceType: ResourceTypeName,
30+
location: location ?? Environment.GetEnvironmentVariable("AZURE_LOCATION") ?? AzureLocation.WestUS,
31+
skuName: "free"))
32+
{
33+
}
34+
35+
/// <inheritdoc/>
36+
protected override Resource? FindParentInScope(IConstruct scope)
37+
{
38+
var result = base.FindParentInScope(scope);
39+
if (result is null)
40+
{
41+
result = scope.GetOrAddResourceGroup();
42+
}
43+
return result;
44+
}
45+
}
46+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
targetScope = subscription
2+
3+
4+
resource resourceGroup_I6QNkoPsb 'Microsoft.Resources/resourceGroups@2023-07-01' = {
5+
name: 'rg-TEST'
6+
location: 'westus'
7+
tags: {
8+
azd-env-name: 'TEST'
9+
}
10+
}
11+
12+
resource appConfigurationStore_sgecYnln3 'Microsoft.AppConfiguration/configurationStores@2023-03-01' = {
13+
scope: resourceGroup_I6QNkoPsb
14+
name: 'store-TEST'
15+
location: 'westus'
16+
sku: {
17+
name: 'free'
18+
}
19+
properties: {
20+
}
21+
}

sdk/provisioning/Azure.Provisioning/tests/ProvisioningTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
using Azure.Provisioning.Sql;
1212
using Azure.Provisioning.Resources;
1313
using Azure.Provisioning.Storage;
14+
using Azure.Provisioning.AppConfiguration;
1415
using Azure.ResourceManager.Storage.Models;
1516

1617
namespace Azure.Provisioning.Tests
@@ -120,6 +121,14 @@ public void StorageBlobDropDown()
120121
infra.Build(GetOutputPath());
121122
}
122123

124+
[Test]
125+
public void AppConfiguration()
126+
{
127+
var infra = new TestInfrastructure();
128+
infra.AddAppConfigurationStore();
129+
infra.Build(GetOutputPath());
130+
}
131+
123132
private static string GetGitRoot()
124133
{
125134
ProcessStartInfo startInfo = new ProcessStartInfo

0 commit comments

Comments
 (0)