File size: 1,291 Bytes
1477a90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import "@typespec/rest";

namespace Shared;

@doc("{name} create request.", T)
@friendlyName("Create{name}Request", T)
@withVisibility(Lifecycle.Create)
model CreateRequest<T extends {}> is DefaultKeyVisibility<T, Lifecycle.Read>;

// Supports visibility filtering for models with nested fields.
@doc("{name} create request.", T)
@friendlyName("Create{name}Request", T)
model CreateRequestNested<T extends {}>
  is FilterVisibility<
    DefaultKeyVisibility<T, Lifecycle.Read>,
    #{ all: #[Lifecycle.Create] },
    "Create{name}"
  >;

@doc("{name} upsert request.", T)
@friendlyName("Upsert{name}Request", T)
@withVisibility(Lifecycle.Create, Lifecycle.Update)
model UpsertRequest<T extends {}> is DefaultKeyVisibility<T, Lifecycle.Read>;

@doc("{name} update request.", T)
@friendlyName("Update{name}Request", T)
@withVisibility(Lifecycle.Update)
model UpdateRequest<T extends {}>
  is OptionalProperties<UpdateableProperties<DefaultKeyVisibility<
    T,
    Lifecycle.Read
  >>>;

// Supports visibility filtering for models with nested fields.
@doc("{name} update request.", T)
@friendlyName("Update{name}Request", T)
model UpdateRequestNested<T extends {}>
  is FilterVisibility<
    DefaultKeyVisibility<T, Lifecycle.Read>,
    #{ all: #[Lifecycle.Update] },
    "Update{name}"
  >;