File size: 9,696 Bytes
1f10f31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
openapi: 3.0.0
info:
  title: Filter Test API
  version: 1.0.0
tags: []
paths:
  /field-filters:
    get:
      operationId: get-field-filters-with-all-supported-types
      summary: Field filters
      parameters:
        - name: filter
          in: query
          required: false
          schema:
            $ref: "#/components/schemas/FieldFilters"
          style: deepObject
      responses:
        "204":
          description: "There is no content to send for this request, but the headers may be useful. "
components:
  schemas:
    BooleanFieldFilter:
      anyOf:
        - type: boolean
        - type: object
          properties:
            eq:
              type: boolean
              description: Value strictly equals the given boolean value.
          required:
            - eq
          additionalProperties: false
      description: Filter by a boolean value (true/false).
      title: Boolean Field Filter
      x-go-type-import:
        path: github.com/openmeterio/openmeter/api/v3/filters
      x-go-type: filters.FilterBoolean
    DateTime:
      type: string
      format: date-time
      description: |-
        [RFC3339](https://tools.ietf.org/html/rfc3339) formatted date-time string in
        UTC.
      title: RFC3339 Date-Time
      example: 2023-01-01T01:01:01.001Z
    DateTimeFieldFilter:
      anyOf:
        - $ref: "#/components/schemas/DateTime"
        - type: object
          properties:
            eq:
              allOf:
                - $ref: "#/components/schemas/DateTime"
              description: Value strictly equals given RFC-3339 formatted timestamp in UTC.
            lt:
              allOf:
                - $ref: "#/components/schemas/DateTime"
              description: Value is less than the given RFC-3339 formatted timestamp in UTC.
            lte:
              allOf:
                - $ref: "#/components/schemas/DateTime"
              description: Value is less than or equal to the given RFC-3339 formatted timestamp in UTC.
            gt:
              allOf:
                - $ref: "#/components/schemas/DateTime"
              description: Value is greater than the given RFC-3339 formatted timestamp in UTC.
            gte:
              allOf:
                - $ref: "#/components/schemas/DateTime"
              description: Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC.
          additionalProperties: false
      description: |-
        Filters on the given datetime (RFC-3339) field value. All properties are
        optional; provide exactly one to specify the comparison.
      title: DateTime Field Filter
      x-go-type-import:
        path: github.com/openmeterio/openmeter/api/v3/filters
      x-go-type: filters.FilterDateTime
    FieldFilters:
      type: object
      properties:
        boolean:
          $ref: "#/components/schemas/BooleanFieldFilter"
        numeric:
          $ref: "#/components/schemas/NumericFieldFilter"
        string:
          $ref: "#/components/schemas/StringFieldFilter"
        string_exact:
          $ref: "#/components/schemas/StringFieldFilterExact"
        ulid:
          $ref: "#/components/schemas/ULIDFieldFilter"
        datetime:
          $ref: "#/components/schemas/DateTimeFieldFilter"
        labels:
          $ref: "#/components/schemas/LabelsFieldFilter"
      additionalProperties: false
      description: Field filters with all supported types.
    LabelsFieldFilter:
      type: object
      additionalProperties:
        $ref: "#/components/schemas/StringFieldFilter"
      description: |-
        Filters on the resource's `labels` field.

        The schema is a map keyed by the label name; each value is a
        `StringFieldFilter`. Both deepObject forms are accepted:
        `filter[labels][key]=value` (nested) and `filter[labels.key]=value`
        (dot-notation).
      title: Labels Field Filter
      x-go-type-import:
        path: github.com/openmeterio/openmeter/api/v3/filters
      x-go-type: filters.FilterLabels
    NumericFieldFilter:
      anyOf:
        - type: number
          format: double
        - type: object
          properties:
            eq:
              type: number
              format: double
              description: Value strictly equals the given numeric value.
            neq:
              type: number
              format: double
              description: Value does not equal the given numeric value.
            oeq:
              type: string
              description: Returns entities that match any of the comma-delimited numeric values.
            lt:
              type: number
              format: double
              description: Value is less than the given numeric value.
            lte:
              type: number
              format: double
              description: Value is less than or equal to the given numeric value.
            gt:
              type: number
              format: double
              description: Value is greater than the given numeric value.
            gte:
              type: number
              format: double
              description: Value is greater than or equal to the given numeric value.
          additionalProperties: false
      description: |-
        Filter by a numeric value. All properties are optional; provide exactly one to
        specify the comparison.
      title: Numeric Field Filter
      x-go-type-import:
        path: github.com/openmeterio/openmeter/api/v3/filters
      x-go-type: filters.FilterNumeric
    StringFieldFilter:
      anyOf:
        - type: string
        - type: object
          properties:
            eq:
              type: string
              description: Value strictly equals the given string value.
            neq:
              type: string
              description: Value does not equal the given string value.
            contains:
              type: string
              description: Value contains the given string value (fuzzy match).
            ocontains:
              type: string
              description: |-
                Returns entities that fuzzy-match any of the comma-delimited phrases in the
                filter string.
            oeq:
              type: string
              description: |-
                Returns entities that exact match any of the comma-delimited phrases in the
                filter string.
            gt:
              type: string
              description: Value is greater than the given string value (lexicographic compare).
            gte:
              type: string
              description: |-
                Value is greater than or equal to the given string value (lexicographic
                compare).
            lt:
              type: string
              description: Value is less than the given string value (lexicographic compare).
            lte:
              type: string
              description: Value is less than or equal to the given string value (lexicographic compare).
            exists:
              type: boolean
              description: |-
                When true, the field must be present (non-null); when false, the field must be
                absent (null).
          additionalProperties: false
      description: |-
        Filters on the given string field value by either exact or fuzzy match. All
        properties are optional; provide exactly one to specify the comparison.
      x-go-type-import:
        path: github.com/openmeterio/openmeter/api/v3/filters
      x-go-type: filters.FilterString
    StringFieldFilterExact:
      anyOf:
        - type: string
        - type: object
          properties:
            eq:
              type: string
              description: Value strictly equals the given string value.
            oeq:
              type: string
              description: |-
                Returns entities that exact match any of the comma-delimited phrases in the
                filter string.
            neq:
              type: string
              description: Value does not equal the given string value.
          additionalProperties: false
      description: |-
        Filters on the given string field value by exact match. All properties are
        optional; provide exactly one to specify the comparison.
      title: String Field Filter Exact
      x-go-type-import:
        path: github.com/openmeterio/openmeter/api/v3/filters
      x-go-type: filters.FilterStringExact
    ULID:
      type: string
      pattern: ^[0-7][0-9A-HJKMNP-TV-Z]{25}$
      description: ULID (Universally Unique Lexicographically Sortable Identifier).
      title: ULID
      example: 01G65Z755AFWAKHE12NY0CQ9FH
    ULIDFieldFilter:
      anyOf:
        - $ref: "#/components/schemas/ULID"
        - type: object
          properties:
            eq:
              allOf:
                - $ref: "#/components/schemas/ULID"
              description: Value strictly equals the given ULID value.
            oeq:
              type: string
              description: |-
                Returns entities that exact match any of the comma-delimited ULIDs in the filter
                string.
            neq:
              allOf:
                - $ref: "#/components/schemas/ULID"
              description: Value does not equal the given ULID value.
          additionalProperties: false
      description: |-
        Filters on the given ULID field value by exact match. All properties are
        optional; provide exactly one to specify the comparison.
      title: ULID Field Filter
      x-go-type-import:
        path: github.com/openmeterio/openmeter/api/v3/filters
      x-go-type: filters.FilterULID