-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.d.ts
136 lines (114 loc) · 3.76 KB
/
index.d.ts
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
export namespace UAPI {
export namespace Response {
export type Simple<T extends PropertyDictionary = {}> = {
links: Links
metadata: Metadata.Simple
} & T
export type Collection<T extends PropertyDictionary = {}> = {
links: Links
metadata: Metadata.Collection
values: Simple<T>[]
}
}
export namespace Metadata {
export type ValidationResponse<T extends number = number> = {
code: T
message: string
}
export type ValidationInformation = string[]
export type Cache = {
date_time: string
}
export type Restricted = boolean
export type FieldSetsReturned = string[]
export type FieldSetsAvailable = string[]
export type FieldSetsDefault = string[]
export type Simple = {
validation_response: ValidationResponse
validation_information?: ValidationInformation
cache?: Cache
restricted?: Restricted
field_sets_returned?: FieldSetsReturned,
field_sets_available?: FieldSetsAvailable,
field_sets_default?: FieldSetsDefault
}
export type CollectionSize = number
export type Collection = Simple & {
collection_size?: CollectionSize
}
}
export type Links = Record<string, Link>
export type Link = {
method: string
rel: string
href: string
}
export namespace Scalar {
export type Type = string | number | boolean | null
export type String = Value<string>
export type Number = Value<number>
export type Boolean = Value<boolean>
}
export type Property<T extends Scalar.Type> = Value<T> | ValueArray<T>
export type ComplexProperty<T extends PropertyDictionary> = Object<T> | ObjectArray<T>
export type PropertyDictionary = Record<string, Property<any> | ComplexProperty<any>>
export type ApiType = 'read-only' | 'modifiable' | 'system' | 'derived' | 'unauthorized' | 'related'
export type ObjectApiType = 'read-only' | 'related'
export type Value<T extends Scalar.Type> = {
value: T | null
api_type: ApiType
key?: boolean
description?: string
long_description?: string
display_label?: string
domain?: string
related_resource?: string
}
export type ValueArray<T extends Scalar.Type> = {
value_array: Value<T>[]
api_type: ApiType
description?: string
long_description?: string
display_label?: string
domain?: string
related_resource?: string
}
export type Object<T extends PropertyDictionary> = {
object: T | null
api_type: ObjectApiType
display_label?: string
related_resource?: string
}
export type ObjectArray<T extends PropertyDictionary> = {
object_array: T[]
api_type: ObjectApiType
display_label?: string
related_resource?: string
}
export namespace Lite {
export namespace Response {
export type Simple<T extends PropertyDictionary = {}> = {
links: Links
metadata: Metadata.Simple
} & T
export type Collection<T extends PropertyDictionary = {}> = {
links: Links
metadata: Metadata.Collection
values: Simple<T>[]
}
}
export type Property<T extends Scalar.Type> = Value<T> | ValueArray<T>
export type ComplexProperty<T extends PropertyDictionary> = Object<T> | ObjectArray<T>
export type PropertyDictionary = Record<string, Property<any> | ComplexProperty<any>>
export type Value<T extends Scalar.Type> = T
export type ValueArray<T extends Scalar.Type> = Value<T>[]
export type Object<T extends PropertyDictionary> = T | null
export type ObjectArray<T extends PropertyDictionary> = T[]
export namespace Scalar {
export type Type = string | number | boolean | null
export type String = Value<string>
export type Number = Value<number>
export type Boolean = Value<boolean>
}
}
}