import "@typespec/versioning";
import "@azure-tools/typespec-azure-core";
import "@azure-tools/typespec-azure-resource-manager";
using TypeSpec.Versioning;
using Azure.ResourceManager;
/** Contoso Resource Provider management API */
title: "ContosoProviderHubClient",
version: "2021-01-01-preview",
@useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1)
@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5)
namespace Microsoft.ContosoProviderHub;
interface Operations extends Azure.ResourceManager.Operations {}
union ProvisioningState {
ResourceProvisioningState,
/** The resource is being provisioned. */
Provisioning: "Provisioning",
/** The resource is being updated. */
/** The resource is being deleted. */
/** The resource provisioning request has been accepted. */
/** The properties of User Resource */
/** The user's full name */
/** The user's email address */
/** The status of the last operation */
provisioningState?: ProvisioningState;
model User is TrackedResource<UserProperties> {
/** The details of a user notification */
model NotificationDetails {
/** The notification message */
/** If true, the notification is urgent */
get is ArmResourceRead<User>;
create is ArmResourceCreateOrReplaceAsync<User>;
update is ArmResourcePatchSync<User, UserProperties>;
delete is ArmResourceDeleteSync<User>;
listByResourceGroup is ArmResourceListByParent<User>;
listBySubscription is ArmListBySubscription<User>;
/** Send a notification to the user */
NotifyUser is ArmResourceActionNoContentSync<User, NotificationDetails>;
/** An address resource belonging to a user resource */
model AddressResource is ProxyResource<AddressResourceProperties> {
...ResourceNameParameter<AddressResource, KeyName = "addressName", SegmentName = "addresses">;
/** The properties of AddressResource */
model AddressResourceProperties {
/** The street address */
/** The city of the address */
/** The state of the address */
/** The zip code of the address */
/** The status of the last operation */
provisioningState?: ProvisioningState;
get is ArmResourceRead<AddressResource>;
create is ArmResourceCreateOrReplaceSync<AddressResource>;
update is ArmResourcePatchSync<AddressResource, AddressResourceProperties>;
delete is ArmResourceDeleteSync<AddressResource>;
listByParent is ArmResourceListByParent<AddressResource>;
checkGlobalName is checkGlobalNameAvailability;