File size: 1,374 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
44
45
import "@typespec/http";
import "@typespec/rest";
import "@typespec/openapi";
import "@typespec/openapi3";
import "./common/parameters.tsp";

using TypeSpec.Http;
using TypeSpec.OpenAPI;

@service(#{ title: "Filter Test API" })
@info(#{ version: "1.0.0" })
namespace Test;

/**
 * Field filters with all supported types.
 */
@friendlyName("FieldFilters")
model FieldFilters {
  #suppress "@openmeter/api-spec-aip/doc-decorator" "test model"
  boolean?: Common.BooleanFieldFilter;
  #suppress "@openmeter/api-spec-aip/doc-decorator" "test model"
  numeric?: Common.NumericFieldFilter;
  #suppress "@openmeter/api-spec-aip/doc-decorator" "test model"
  string?: Common.StringFieldFilter;
  #suppress "@openmeter/api-spec-aip/doc-decorator" "test model"
  string_exact?: Common.StringFieldFilterExact;
  #suppress "@openmeter/api-spec-aip/doc-decorator" "test model"
  ulid?: Common.ULIDFieldFilter;
  #suppress "@openmeter/api-spec-aip/doc-decorator" "test model"
  datetime?: Common.DateTimeFieldFilter;
  #suppress "@openmeter/api-spec-aip/doc-decorator" "test model"
  labels?: Common.LabelsFieldFilter;
}

@route("/field-filters")
interface FieldFiltersEndpoints {
  @get
  @operationId("get-field-filters-with-all-supported-types")
  @summary("Field filters")
  getFieldFilters(
    @query(#{ style: "deepObject", explode: true })
    filter?: FieldFilters,
  ): void;
}