openmeter / api /spec /packages /aip /src /common /parameters.tsp
Leon4gr45's picture
Upload folder using huggingface_hub (part 2)
1477a90 verified
Raw
History Blame Contribute Delete
6.97 kB
import "@typespec/http";
import "@typespec/openapi";
import "@typespec/openapi3";
using TypeSpec.OpenAPI;
namespace Common;
/**
* Sort query.
*
* The `asc` suffix is optional as the default sort order is ascending. The `desc`
* suffix is used to specify a descending order.
*/
@useRef("../../../../common/definitions/aip_filters.yaml#/components/schemas/SortQuery")
@friendlyName("SortQuery")
model SortQuery {
/**
* The attribute to sort by.
*/
by: string;
/**
* The sort order. `asc` for ascending, `desc` for descending.
*/
order?: "asc" | "desc" = "asc";
}
/**
* Filter by a boolean value (true/false).
*/
@friendlyName("BooleanFieldFilter")
@extension("x-go-type", "filters.FilterBoolean")
@extension(
"x-go-type-import",
#{ path: "github.com/openmeterio/openmeter/api/v3/filters" }
)
@summary("Boolean Field Filter")
union BooleanFieldFilter {
equals: boolean,
object: {
/**
* Value strictly equals the given boolean value.
*/
eq: boolean,
},
}
/**
* Filter by a numeric value. All properties are optional; provide exactly one to
* specify the comparison.
*/
@friendlyName("NumericFieldFilter")
@extension("x-go-type", "filters.FilterNumeric")
@extension(
"x-go-type-import",
#{ path: "github.com/openmeterio/openmeter/api/v3/filters" }
)
@summary("Numeric Field Filter")
union NumericFieldFilter {
equals: float64,
object: {
/**
* Value strictly equals the given numeric value.
*/
eq?: float64,
/**
* Value does not equal the given numeric value.
*/
neq?: float64,
/**
* Returns entities that match any of the comma-delimited numeric values.
*/
@encode(ArrayEncoding.commaDelimited)
oeq?: float64[],
/**
* Value is less than the given numeric value.
*/
lt?: float64,
/**
* Value is less than or equal to the given numeric value.
*/
lte?: float64,
/**
* Value is greater than the given numeric value.
*/
gt?: float64,
/**
* Value is greater than or equal to the given numeric value.
*/
gte?: float64,
},
}
/**
* Filters on the given string field value by either exact or fuzzy match. All
* properties are optional; provide exactly one to specify the comparison.
*/
@friendlyName("StringFieldFilter")
@extension("x-go-type", "filters.FilterString")
@extension(
"x-go-type-import",
#{ path: "github.com/openmeterio/openmeter/api/v3/filters" }
)
union StringFieldFilter {
equals: string,
object: {
/**
* Value strictly equals the given string value.
*/
eq?: string,
/**
* Value does not equal the given string value.
*/
neq?: string,
/**
* Value contains the given string value (fuzzy match).
*/
contains?: string,
/**
* Returns entities that fuzzy-match any of the comma-delimited phrases in the
* filter string.
*/
@encode(ArrayEncoding.commaDelimited)
ocontains?: string[],
/**
* Returns entities that exact match any of the comma-delimited phrases in the
* filter string.
*/
@encode(ArrayEncoding.commaDelimited)
oeq?: string[],
/**
* Value is greater than the given string value (lexicographic compare).
*/
gt?: string,
/**
* Value is greater than or equal to the given string value (lexicographic
* compare).
*/
gte?: string,
/**
* Value is less than the given string value (lexicographic compare).
*/
lt?: string,
/**
* Value is less than or equal to the given string value (lexicographic compare).
*/
lte?: string,
/**
* When true, the field must be present (non-null); when false, the field must be
* absent (null).
*/
exists?: boolean,
},
}
/**
* Filters on the given string field value by exact match. All properties are
* optional; provide exactly one to specify the comparison.
*/
@friendlyName("StringFieldFilterExact")
@extension("x-go-type", "filters.FilterStringExact")
@extension(
"x-go-type-import",
#{ path: "github.com/openmeterio/openmeter/api/v3/filters" }
)
@summary("String Field Filter Exact")
union StringFieldFilterExact {
equals: string,
object: {
/**
* Value strictly equals the given string value.
*/
eq?: string,
/**
* Returns entities that exact match any of the comma-delimited phrases in the
* filter string.
*/
@encode(ArrayEncoding.commaDelimited)
oeq?: string[],
/**
* Value does not equal the given string value.
*/
neq?: string,
},
}
/**
* Filters on the given ULID field value by exact match. All properties are
* optional; provide exactly one to specify the comparison.
*/
@friendlyName("ULIDFieldFilter")
@extension("x-go-type", "filters.FilterULID")
@extension(
"x-go-type-import",
#{ path: "github.com/openmeterio/openmeter/api/v3/filters" }
)
@summary("ULID Field Filter")
union ULIDFieldFilter {
equals: Shared.ULID,
object: {
/**
* Value strictly equals the given ULID value.
*/
eq?: Shared.ULID,
/**
* Returns entities that exact match any of the comma-delimited ULIDs in the filter
* string.
*/
@encode(ArrayEncoding.commaDelimited)
oeq?: Shared.ULID[],
/**
* Value does not equal the given ULID value.
*/
neq?: Shared.ULID,
},
}
/**
* Filters on the given datetime (RFC-3339) field value. All properties are
* optional; provide exactly one to specify the comparison.
*/
@friendlyName("DateTimeFieldFilter")
@extension("x-go-type", "filters.FilterDateTime")
@extension(
"x-go-type-import",
#{ path: "github.com/openmeterio/openmeter/api/v3/filters" }
)
@summary("DateTime Field Filter")
union DateTimeFieldFilter {
equals: Shared.DateTime,
object: {
/**
* Value strictly equals given RFC-3339 formatted timestamp in UTC.
*/
eq?: Shared.DateTime,
/**
* Value is less than the given RFC-3339 formatted timestamp in UTC.
*/
lt?: Shared.DateTime,
/**
* Value is less than or equal to the given RFC-3339 formatted timestamp in UTC.
*/
lte?: Shared.DateTime,
/**
* Value is greater than the given RFC-3339 formatted timestamp in UTC.
*/
gt?: Shared.DateTime,
/**
* Value is greater than or equal to the given RFC-3339 formatted timestamp in UTC.
*/
gte?: Shared.DateTime,
},
}
/**
* 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).
*/
@friendlyName("LabelsFieldFilter")
@extension("x-go-type", "filters.FilterLabels")
@extension(
"x-go-type-import",
#{ path: "github.com/openmeterio/openmeter/api/v3/filters" }
)
@summary("Labels Field Filter")
model LabelsFieldFilter is Record<StringFieldFilter>;