Skip to content

single-filter-search-request strict typechecking idea #224

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
104 changes: 95 additions & 9 deletions fern/openapi-overrides.yml
Original file line number Diff line number Diff line change
Expand Up @@ -787,21 +787,81 @@ components:
intercom_version:
x-fern-ignore: true
single_filter_search_request:
properties:
operator: null
value: null
filter:
description: Filter with operator determining the valid value type
type: object
oneOf:
- "$ref": '#/components/schemas/equality_filter'
- "$ref": '#/components/schemas/collection_filter'
- "$ref": '#/components/schemas/string_filter'
- "$ref": '#/components/schemas/comparison_filter'

# equality operators (=, !=) can work with any type
equality_filter:
type: object
properties:
operator:
type: string
enum:
- "="
- "!="
x-fern-enum:
"=":
name: Equals
"!=":
name: NotEquals
value:
oneOf:
- type: string
- type: integer
- type: array
items:
oneOf:
- type: string
- type: integer
required:
- operator
- value

# collection operators (IN, NIN) require arrays
collection_filter:
type: object
properties:
operator:
type: string
enum:
- IN
- NIN
x-fern-enum:
IN:
name: In
NIN:
name: NotIn
"<":
name: LessThan
">":
name: GreaterThan
value:
type: array
items:
oneOf:
- type: string
- type: integer
required:
- operator
- value

# string matching operators (~, !~, ^, $) require string values
string_filter:
type: object
properties:
operator:
type: string
enum:
- "~"
- "!~"
- "^"
- "$"
x-fern-enum:
"~":
name: Contains
"!~":
Expand All @@ -810,6 +870,34 @@ components:
name: StartsWith
"$":
name: EndsWith
value:
type: string
required:
- operator
- value

# comparison operators (<, >) work with integers or strings (dates)
comparison_filter:
type: object
properties:
operator:
type: string
enum:
- "<"
- ">"
x-fern-enum:
"<":
name: LessThan
">":
name: GreaterThan
value:
oneOf:
- type: string
- type: integer
required:
- operator
- value

create_contact_request:
properties: null
anyOf:
Expand Down Expand Up @@ -1436,6 +1524,8 @@ components:
- section
visitor:
properties:
custom_attributes:
additionalProperties: true
type:
enum:
- visitor
Expand Down Expand Up @@ -1466,11 +1556,7 @@ components:
properties:
custom_attributes:
additionalProperties: true
visitor:
properties:
custom_attributes:
additionalProperties: true


securitySchemes:
bearerAuth:
x-fern-bearer:
Expand Down