Private links
Sample configuration for private links in resource manager.
Try itmain.tsp
import "@typespec/http";import "@typespec/rest";import "@typespec/versioning";import "@azure-tools/typespec-azure-core";import "@azure-tools/typespec-azure-resource-manager";
using Http;using Rest;using Versioning;using Azure.ResourceManager;
@service(#{ title: "Microsoft.PrivateLinkTest" })@versioned(Microsoft.PrivateLinkTest.Versions)@armProviderNamespacenamespace Microsoft.PrivateLinkTest;
@doc("The PrivateLinkTest service versions.")enum Versions { @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v4) @doc("The 2023-08-01-preview version.") `2023-08-01-preview`,
@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) @doc("The 2023-11-01-preview version.") `2023-11-01-preview`,}
interface Operations extends Azure.ResourceManager.Operations {}
// Tracked resourcesmodel TestTrackedResource is TrackedResource<TestTrackedProperties> { @pattern("^[a-zA-Z0-9-]{3,24}$") @doc("The name of the Tracked resource.") @key("trackedResourceName") @segment("trackedResources") @path name: string;}
@armResourceOperations(TestTrackedResource)interface TrackedOperations extends TrackedResourceOperations<TestTrackedResource, TestTrackedProperties> {}
@doc("rp-specific properties for the resource with all envelope properties")model TestTrackedProperties { @doc("The status of the last operation performed on this resource.") @visibility(Lifecycle.Read) provisioningState?: ResourceProvisioningState;
@visibility(Lifecycle.Create, Lifecycle.Read) @doc("Name of the resource") displayName?: string = "default";
/** The private endpoints exposed by this resource */ @visibility(Lifecycle.Read) endpoints?: PrivateEndpoint[];}
model PrivateEndpoint is PrivateEndpointConnection;alias PrivateEndpointOperations = PrivateEndpoints<PrivateEndpoint>;
/** Private connection operations */@armResourceOperations(PrivateEndpointConnectionResource)interface PrivateEndpointConnections { /** List existing private connections */ listByTestTrackedResource is PrivateEndpointOperations.ListByParent<TestTrackedResource>; /** Get a specific private connection */ get is PrivateEndpointOperations.Read<TestTrackedResource>; /** Create a Private endpoint connection */ create is PrivateEndpointOperations.CreateOrReplaceSync<TestTrackedResource>; /** Delete the private endpoint connection */ delete is PrivateEndpointOperations.DeleteAsync<TestTrackedResource>;}
/** Private Links for TestRackedResource */model PrivateLinkResource is PrivateLink;alias PrivateLinkOps = PrivateLinks<PrivateLinkResource>;
/** Operations for private links on TestTrackedResource */@armResourceOperations(PrivateLinkResource)interface PrivateLinkOperations { /** list private links on the given resource */ listByTestTrackedResource is PrivateLinkOps.ListByParent<TestTrackedResource>;}