File size: 1,939 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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
// Code generated by @openmeter/typespec-typescript. DO NOT EDIT.

import { z } from 'zod'
import * as schemas from '../schemas.js'
import type { AcceptDateStrings } from '../../lib/wire.js'
import type {
  CreateFeatureRequest as CreateFeatureRequestBody,
  Feature,
  FeatureCostQueryResult,
  FeaturePagePaginatedResponse,
  ListFeatureParamsFilter,
  MeterQueryRequestInput,
  SortQueryInput,
  UpdateFeatureRequest as UpdateFeatureRequestBody,
} from '../types.js'

export interface ListFeaturesQuery {
  /** Determines which page of the collection to retrieve. */
  page?: { size?: number; number?: number }
  /**
   * Sort features returned in the response. Supported sort attributes are:
   *
   * - `key`
   * - `name`
   * - `created_at` (default)
   * - `updated_at`
   *
   * The `asc` suffix is optional as the default sort order is ascending. The `desc`
   * suffix is used to specify a descending order.
   */
  sort?: SortQueryInput
  /**
   * Filter features returned in the response.
   *
   * To filter features by meter_id add the following query param:
   * filter[meter_id][oeq]=<id>
   */
  filter?: ListFeatureParamsFilter
}

export type ListFeaturesRequest = AcceptDateStrings<ListFeaturesQuery>
export type ListFeaturesResponse = FeaturePagePaginatedResponse

export type CreateFeatureRequest = AcceptDateStrings<CreateFeatureRequestBody>
export type CreateFeatureResponse = Feature

export type GetFeatureRequest = {
  featureId: string
}
export type GetFeatureResponse = Feature

export type UpdateFeatureRequest = AcceptDateStrings<{
  featureId: string
  body: UpdateFeatureRequestBody
}>
export type UpdateFeatureResponse = Feature

export type DeleteFeatureRequest = {
  featureId: string
}
export type DeleteFeatureResponse = void

export type QueryFeatureCostRequest = AcceptDateStrings<{
  featureId: string
  body: MeterQueryRequestInput
}>
export type QueryFeatureCostResponse = FeatureCostQueryResult