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[];}
/** Holder for private endpoint connections */@parentResource(TestTrackedResource)model PrivateEndpointConnectionResource is ProxyResource<PrivateEndpointConnectionProperties> { ...PrivateEndpointConnectionParameter;}
/** Private connection operations */@armResourceOperations(PrivateEndpointConnectionResource)interface PrivateEndpointConnections { /** List existing private connections */ listByTestTrackedResource is ArmResourceListByParent<PrivateEndpointConnectionResource>; /** Get a specific private connection */ get is ArmResourceRead<PrivateEndpointConnectionResource>; /** Create a Private endpoint connection */ create is ArmResourceCreateOrReplaceSync<PrivateEndpointConnectionResource>; /** Delete the private endpoint connection */ delete is ArmResourceDeleteSync<PrivateEndpointConnectionResource>;}
/** Private Links for TestRackedResource */#suppress "@azure-tools/typespec-providerhub-controller/no-resource-operations" "Expected for private links"@parentResource(TestTrackedResource)model PrivateLinkResource is ProxyResource<PrivateLinkResourceProperties> { ...PrivateLinkResourceParameter;}
/** Operations for private links on TestTrackedResource */@armResourceOperations(PrivateLinkResource)interface PrivateLinks { /** list private links on the given resource */ listByTestTrackedResource is ArmResourceListByParent<PrivateLinkResource>;}