Skip to content

Commit

Permalink
Add Service Bus resources (#42532)
Browse files Browse the repository at this point in the history
* Add ServiceBus resources

* api

* fix

* cspell
  • Loading branch information
JoshLove-msft authored Mar 8, 2024
1 parent 3321d49 commit dd8060e
Show file tree
Hide file tree
Showing 13 changed files with 365 additions and 2 deletions.
1 change: 1 addition & 0 deletions eng/Packages.Data.props
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,7 @@
<PackageReference Update="Azure.ResourceManager.PostgreSql" Version="1.2.0-alpha.20240304.1" />
<PackageReference Update="Azure.ResourceManager.Redis" Version="1.4.0-alpha.20240304.2" />
<PackageReference Update="Azure.ResourceManager.Resources" Version="1.8.0-alpha.20240222.2" />
<PackageReference Update="Azure.ResourceManager.ServiceBus" Version="1.1.0-alpha.20240307.2" />
<PackageReference Update="Azure.ResourceManager.Sql" Version="1.3.0-alpha.20240222.1" />
<PackageReference Update="Azure.ResourceManager.Storage" Version="1.3.0-alpha.20240222.1" />

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ public partial class RoleAssignment : Azure.Provisioning.Resource<Azure.Resource
public RoleDefinition(string value) { throw null; }
public static Azure.Provisioning.Authorization.RoleDefinition CognitiveServicesOpenAIContributor { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition KeyVaultAdministrator { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition ServiceBusDataOwner { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition StorageBlobDataContributor { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition StorageQueueDataContributor { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition StorageTableDataContributor { get { throw null; } }
Expand Down Expand Up @@ -345,6 +346,33 @@ public partial class DeploymentScript : Azure.Provisioning.Resource<Azure.Resour
public static Azure.Provisioning.Resources.DeploymentScript FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null) { throw null; }
}
}
namespace Azure.Provisioning.ServiceBus
{
public partial class ServiceBusNamespace : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusNamespaceData>
{
public ServiceBusNamespace(Azure.Provisioning.IConstruct scope, Azure.ResourceManager.ServiceBus.Models.ServiceBusSku? sku = null, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null, string name = "sb", string version = "2021-11-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.ServiceBus.ServiceBusNamespaceData>)) { }
public static Azure.Provisioning.ServiceBus.ServiceBusNamespace FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null) { throw null; }
protected override string GetAzureName(Azure.Provisioning.IConstruct scope, string resourceName) { throw null; }
}
public partial class ServiceBusQueue : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusQueueData>
{
public ServiceBusQueue(Azure.Provisioning.IConstruct scope, bool? requiresSession = default(bool?), Azure.Provisioning.ServiceBus.ServiceBusNamespace? parent = null, string name = "queue", string version = "2021-11-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.ServiceBus.ServiceBusQueueData>)) { }
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
public static Azure.Provisioning.ServiceBus.ServiceBusQueue FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ServiceBus.ServiceBusNamespace parent) { throw null; }
}
public partial class ServiceBusSubscription : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusSubscriptionData>
{
public ServiceBusSubscription(Azure.Provisioning.IConstruct scope, bool? requiresSession = default(bool?), Azure.Provisioning.ServiceBus.ServiceBusTopic? parent = null, string name = "subscription", string version = "2021-11-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.ServiceBus.ServiceBusSubscriptionData>)) { }
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
public static Azure.Provisioning.ServiceBus.ServiceBusSubscription FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ServiceBus.ServiceBusTopic parent) { throw null; }
}
public partial class ServiceBusTopic : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusTopicData>
{
public ServiceBusTopic(Azure.Provisioning.IConstruct scope, Azure.Provisioning.ServiceBus.ServiceBusNamespace? parent = null, string name = "topic", string version = "2021-11-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.ServiceBus.ServiceBusTopicData>)) { }
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
public static Azure.Provisioning.ServiceBus.ServiceBusTopic FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ServiceBus.ServiceBusNamespace parent) { throw null; }
}
}
namespace Azure.Provisioning.Sql
{
public partial class SqlDatabase : Azure.Provisioning.Resource<Azure.ResourceManager.Sql.SqlDatabaseData>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ public partial class RoleAssignment : Azure.Provisioning.Resource<Azure.Resource
public RoleDefinition(string value) { throw null; }
public static Azure.Provisioning.Authorization.RoleDefinition CognitiveServicesOpenAIContributor { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition KeyVaultAdministrator { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition ServiceBusDataOwner { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition StorageBlobDataContributor { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition StorageQueueDataContributor { get { throw null; } }
public static Azure.Provisioning.Authorization.RoleDefinition StorageTableDataContributor { get { throw null; } }
Expand Down Expand Up @@ -345,6 +346,33 @@ public partial class DeploymentScript : Azure.Provisioning.Resource<Azure.Resour
public static Azure.Provisioning.Resources.DeploymentScript FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null) { throw null; }
}
}
namespace Azure.Provisioning.ServiceBus
{
public partial class ServiceBusNamespace : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusNamespaceData>
{
public ServiceBusNamespace(Azure.Provisioning.IConstruct scope, Azure.ResourceManager.ServiceBus.Models.ServiceBusSku? sku = null, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null, string name = "sb", string version = "2021-11-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.ServiceBus.ServiceBusNamespaceData>)) { }
public static Azure.Provisioning.ServiceBus.ServiceBusNamespace FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ResourceManager.ResourceGroup? parent = null) { throw null; }
protected override string GetAzureName(Azure.Provisioning.IConstruct scope, string resourceName) { throw null; }
}
public partial class ServiceBusQueue : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusQueueData>
{
public ServiceBusQueue(Azure.Provisioning.IConstruct scope, bool? requiresSession = default(bool?), Azure.Provisioning.ServiceBus.ServiceBusNamespace? parent = null, string name = "queue", string version = "2021-11-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.ServiceBus.ServiceBusQueueData>)) { }
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
public static Azure.Provisioning.ServiceBus.ServiceBusQueue FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ServiceBus.ServiceBusNamespace parent) { throw null; }
}
public partial class ServiceBusSubscription : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusSubscriptionData>
{
public ServiceBusSubscription(Azure.Provisioning.IConstruct scope, bool? requiresSession = default(bool?), Azure.Provisioning.ServiceBus.ServiceBusTopic? parent = null, string name = "subscription", string version = "2021-11-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.ServiceBus.ServiceBusSubscriptionData>)) { }
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
public static Azure.Provisioning.ServiceBus.ServiceBusSubscription FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ServiceBus.ServiceBusTopic parent) { throw null; }
}
public partial class ServiceBusTopic : Azure.Provisioning.Resource<Azure.ResourceManager.ServiceBus.ServiceBusTopicData>
{
public ServiceBusTopic(Azure.Provisioning.IConstruct scope, Azure.Provisioning.ServiceBus.ServiceBusNamespace? parent = null, string name = "topic", string version = "2021-11-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.ServiceBus.ServiceBusTopicData>)) { }
protected override Azure.Provisioning.Resource? FindParentInScope(Azure.Provisioning.IConstruct scope) { throw null; }
public static Azure.Provisioning.ServiceBus.ServiceBusTopic FromExisting(Azure.Provisioning.IConstruct scope, string name, Azure.Provisioning.ServiceBus.ServiceBusNamespace parent) { throw null; }
}
}
namespace Azure.Provisioning.Sql
{
public partial class SqlDatabase : Azure.Provisioning.Resource<Azure.ResourceManager.Sql.SqlDatabaseData>
Expand Down
2 changes: 1 addition & 1 deletion sdk/provisioning/Azure.Provisioning/assets.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "net",
"TagPrefix": "net/provisioning/Azure.Provisioning",
"Tag": "net/provisioning/Azure.Provisioning_8f78e8f800"
"Tag": "net/provisioning/Azure.Provisioning_d2660e3b79"
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
<PackageReference Include="Azure.ResourceManager.PostgreSql" />
<PackageReference Include="Azure.ResourceManager.CosmosDB" />
<PackageReference Include="Azure.ResourceManager.CognitiveServices" />
<PackageReference Include="Azure.ResourceManager.ServiceBus" />
<PackageReference Include="System.ClientModel" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ public RoleDefinition(string value)
/// </summary>
public static RoleDefinition CognitiveServicesOpenAIContributor { get; } = new RoleDefinition("a001fd3d-188f-4b5d-821b-7da978bf7442");

/// <summary>
/// Service Bus data owner role.
/// </summary>
public static RoleDefinition ServiceBusDataOwner { get; } = new RoleDefinition("090c5cfd-751d-490a-894a-3ce6f1109419");

/// <summary> Converts a string to a <see cref="RoleDefinition"/>. </summary>
public static implicit operator RoleDefinition(string value) => new RoleDefinition(value);

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using Azure.Core;
using Azure.Provisioning.ResourceManager;
using Azure.Provisioning.Storage;
using Azure.ResourceManager.ServiceBus;
using Azure.ResourceManager.ServiceBus.Models;

namespace Azure.Provisioning.ServiceBus
{
/// <summary>
/// Represents a Service Bus namespace.
/// </summary>
public class ServiceBusNamespace : Resource<ServiceBusNamespaceData>
{
private const string ResourceTypeName = "Microsoft.ServiceBus/namespaces";
private static readonly Func<string, ServiceBusNamespaceData> Empty = (name) => ArmServiceBusModelFactory.ServiceBusNamespaceData();
internal const string DefaultVersion = "2021-11-01";

/// <summary>
/// Initializes a new instance of the <see cref="ServiceBusNamespace"/>.
/// </summary>
/// <param name="scope">The scope.</param>
/// <param name="sku">The sku.</param>
/// <param name="parent">The parent.</param>
/// <param name="name">The name.</param>
/// <param name="version">The version.</param>
/// <param name="location">The location.</param>
public ServiceBusNamespace(IConstruct scope, ServiceBusSku? sku = default, ResourceGroup? parent = null, string name = "sb", string version = DefaultVersion, AzureLocation? location = default)
: this(scope, parent, name, version, false, (name) => ArmServiceBusModelFactory.ServiceBusNamespaceData(
name: name,
resourceType: ResourceTypeName,
location: location ?? Environment.GetEnvironmentVariable("AZURE_LOCATION") ?? AzureLocation.WestUS,
sku: sku ?? new ServiceBusSku(ServiceBusSkuName.Standard),
minimumTlsVersion: ServiceBusMinimumTlsVersion.Tls1_2))
{
AssignProperty(data => data.Name, GetAzureName(scope, name));
}

private ServiceBusNamespace(IConstruct scope, ResourceGroup? parent = null, string name = "sb", string version = DefaultVersion, bool isExisting = true, Func<string, ServiceBusNamespaceData>? creator = null)
: base(scope, parent, name, ResourceTypeName, version, creator ?? Empty, isExisting)
{
}

/// <summary>
/// Creates a new instance of the <see cref="ServiceBusNamespace"/> class referencing an existing instance.
/// </summary>
/// <param name="scope">The scope.</param>
/// <param name="name">The resource name.</param>
/// <param name="parent">The resource group.</param>
/// <returns>The KeyVault instance.</returns>
public static ServiceBusNamespace FromExisting(IConstruct scope, string name, ResourceGroup? parent = null)
=> new ServiceBusNamespace(scope, parent: parent, name: name, isExisting: true);

/// <inheritdoc/>
protected override string GetAzureName(IConstruct scope, string resourceName) => GetGloballyUniqueName(resourceName);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

using System;
using Azure.Core;
using Azure.Provisioning.ResourceManager;
using Azure.Provisioning.Storage;
using Azure.ResourceManager.ServiceBus;
using Azure.ResourceManager.ServiceBus.Models;

namespace Azure.Provisioning.ServiceBus
{
/// <summary>
/// Represents a Service Bus queue.
/// </summary>
public class ServiceBusQueue : Resource<ServiceBusQueueData>
{
private const string ResourceTypeName = "Microsoft.ServiceBus/namespaces/queues";
private static readonly Func<string, ServiceBusQueueData> Empty = (name) => ArmServiceBusModelFactory.ServiceBusQueueData();

/// <summary>
/// Initializes a new instance of the <see cref="ServiceBusQueue"/>.
/// </summary>
/// <param name="scope">The scope.</param>
/// <param name="requiresSession">Whether to use sessions.</param>
/// <param name="parent">The parent.</param>
/// <param name="name">The name.</param>
/// <param name="version">The version.</param>
/// <param name="location">The location.</param>
public ServiceBusQueue(IConstruct scope, bool? requiresSession = default, ServiceBusNamespace? parent = null, string name = "queue", string version = ServiceBusNamespace.DefaultVersion, AzureLocation? location = default)
: this(scope, parent, name, version, false, (name) => ArmServiceBusModelFactory.ServiceBusQueueData(
name: name,
requiresSession: requiresSession,
resourceType: ResourceTypeName,
location: location ?? Environment.GetEnvironmentVariable("AZURE_LOCATION") ?? AzureLocation.WestUS))
{
}

private ServiceBusQueue(IConstruct scope, ServiceBusNamespace? parent = null, string name = "queue", string version = ServiceBusNamespace.DefaultVersion, bool isExisting = true, Func<string, ServiceBusQueueData>? creator = null)
: base(scope, parent, name, ResourceTypeName, ServiceBusNamespace.DefaultVersion, creator ?? Empty, isExisting)
{
}

/// <summary>
/// Creates a new instance of the <see cref="ServiceBusQueue"/> class referencing an existing instance.
/// </summary>
/// <param name="scope">The scope.</param>
/// <param name="name">The resource name.</param>
/// <param name="parent">The resource group.</param>
/// <returns>The KeyVault instance.</returns>
public static ServiceBusQueue FromExisting(IConstruct scope, string name, ServiceBusNamespace parent)
=> new ServiceBusQueue(scope, parent: parent, name: name, isExisting: true);

/// <inheritdoc/>
protected override Resource? FindParentInScope(IConstruct scope)
{
return scope.GetSingleResource<ServiceBusNamespace>() ?? new ServiceBusNamespace(scope);
}
}
}
Loading

0 comments on commit dd8060e

Please sign in to comment.