Skip to main content
Version: Latest (0.60.x)

Decorators

TypeSpec.Rest

@action

Specify this operation is an action. (Scoped to a resource item /pets/{petId}/my-action)

@TypeSpec.Rest.action(name?: valueof string)

Target

Operation

Parameters

NameTypeDescription
namevalueof stringName of the action. If not specified, the name of the operation will be used.

@actionSeparator

Defines the separator string that is inserted before the action name in auto-generated routes for actions.

@TypeSpec.Rest.actionSeparator(seperator: valueof "/" | ":" | "/:")

Target

Model | ModelProperty | Operation

Parameters

NameTypeDescription
seperatorvalueof "/" | ":" | "/:"Seperator seperating the action segment from the rest of the url

@autoRoute

This interface or operation should resolve its route automatically. To be used with resource types where the route segments area defined on the models.

@TypeSpec.Rest.autoRoute

Target

Interface | Operation

Parameters

None

Examples

@autoRoute
interface Pets {
get(@segment("pets") @path id: string): void; //-> route: /pets/{id}
}

@collectionAction

Specify this operation is a collection action. (Scopped to a resource, /pets/my-action)

@TypeSpec.Rest.collectionAction(resourceType: Model, name?: valueof string)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with
namevalueof stringName of the action. If not specified, the name of the operation will be used.

@copyResourceKeyParameters

Copy the resource key parameters on the model

@TypeSpec.Rest.copyResourceKeyParameters(filter?: valueof string)

Target

Model

Parameters

NameTypeDescription
filtervalueof stringFilter to exclude certain properties.

@createsOrReplacesResource

Specify that this is a CreateOrReplace operation for a given resource.

@TypeSpec.Rest.createsOrReplacesResource(resourceType: Model)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with

@createsOrUpdatesResource

Specify that this is a CreatesOrUpdate operation for a given resource.

@TypeSpec.Rest.createsOrUpdatesResource(resourceType: Model)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with

@createsResource

Specify that this is a Create operation for a given resource.

@TypeSpec.Rest.createsResource(resourceType: Model)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with

@deletesResource

Specify that this is a Delete operation for a given resource.

@TypeSpec.Rest.deletesResource(resourceType: Model)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with

@listsResource

Specify that this is a List operation for a given resource.

@TypeSpec.Rest.listsResource(resourceType: Model)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with

@parentResource

Mark model as a child of the given parent resource.

@TypeSpec.Rest.parentResource(parent: Model)

Target

Model

Parameters

NameTypeDescription
parentModelParent model.

@readsResource

Specify that this is a Read operation for a given resource.

@TypeSpec.Rest.readsResource(resourceType: Model)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with

@resource

Mark this model as a resource type with a name.

@TypeSpec.Rest.resource(collectionName: valueof string)

Target

Model

Parameters

NameTypeDescription
collectionNamevalueof stringtype's collection name

@segment

Defines the preceding path segment for a

@TypeSpec.Rest.segment(name: valueof string)

Target

Model | ModelProperty | Operation

Parameters

NameTypeDescription
namevalueof stringSegment that will be inserted into the operation route before the path parameter's name field.

Examples

@segmentOf

Returns the URL segment of a given model if it has @segment and @key decorator.

@TypeSpec.Rest.segmentOf(type: Model)

Target

Operation

Parameters

NameTypeDescription
typeModelTarget model

@updatesResource

Specify that this is a Update operation for a given resource.

@TypeSpec.Rest.updatesResource(resourceType: Model)

Target

Operation

Parameters

NameTypeDescription
resourceTypeModelResource marked with