@daocloud-proto/skoala 0.4.1 → 0.5.0-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,7 +4,10 @@
4
4
  * This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY
5
5
  */
6
6
 
7
- import * as SkoalaApiGeneralV1alpha1Skoala from "../../general/v1alpha1/skoala.pb"
7
+ import * as InsightIoApiMetricV1alpha1Metric from "../../../metric/v1alpha1/metric.pb"
8
+ import * as SkoalaApiGeneralV1alpha1Common from "../../general/v1alpha1/common.pb"
9
+ import * as SkoalaApiGeneralV1alpha1Resource from "../../general/v1alpha1/resource.pb"
10
+ import * as SkoalaApiGeneralV1alpha1Service from "../../general/v1alpha1/service.pb"
8
11
 
9
12
  type Absent<T, K extends keyof T> = { [k in Exclude<keyof T, K>]?: undefined };
10
13
  type OneOf<T> =
@@ -15,15 +18,54 @@ type OneOf<T> =
15
18
  : never)
16
19
  : never);
17
20
 
21
+ export enum HealthStatus {
22
+ HEALTH_STATUS_UNSPECIFIED = "HEALTH_STATUS_UNSPECIFIED",
23
+ Healthy = "Healthy",
24
+ Unhealthy = "Unhealthy",
25
+ }
26
+
27
+ export enum GatewayResource {
28
+ GATEWAY_RESOURCE_UNSPECIFIED = "GATEWAY_RESOURCE_UNSPECIFIED",
29
+ Api = "Api",
30
+ Deployment = "Deployment",
31
+ Service = "Service",
32
+ Pod = "Pod",
33
+ }
34
+
35
+ export enum QueryResultStatus {
36
+ QUERY_RESULT_STATUS_UNSPECIFIED = "QUERY_RESULT_STATUS_UNSPECIFIED",
37
+ Success = "Success",
38
+ Fail = "Fail",
39
+ }
40
+
41
+ export enum AlertTargetType {
42
+ ALERT_TARGET_TYPE_UNSPECIFIED = "ALERT_TARGET_TYPE_UNSPECIFIED",
43
+ AlertTargetGlobal = "AlertTargetGlobal",
44
+ AlertTargetCluster = "AlertTargetCluster",
45
+ AlertTargetNode = "AlertTargetNode",
46
+ AlertTargetDeployment = "AlertTargetDeployment",
47
+ AlertTargetStatefulSet = "AlertTargetStatefulSet",
48
+ AlertTargetDaemonSet = "AlertTargetDaemonSet",
49
+ AlertTargetCronJob = "AlertTargetCronJob",
50
+ AlertTargetPod = "AlertTargetPod",
51
+ }
52
+
53
+ export enum AlertSeverity {
54
+ ALERT_SEVERITY_UNSPECIFIED = "ALERT_SEVERITY_UNSPECIFIED",
55
+ Critical = "Critical",
56
+ Warnning = "Warnning",
57
+ Info = "Info",
58
+ }
59
+
18
60
  export enum LogLogLevel {
19
61
  STATUS_UNSPECIFIED = "STATUS_UNSPECIFIED",
20
- TRACE = "TRACE",
21
- DEBUG = "DEBUG",
22
- INFO = "INFO",
23
- WARNING = "WARNING",
24
- ERROR = "ERROR",
25
- CRITICAL = "CRITICAL",
26
- OFF = "OFF",
62
+ Trace = "Trace",
63
+ Debug = "Debug",
64
+ Info = "Info",
65
+ Warning = "Warning",
66
+ Error = "Error",
67
+ CriticalL = "CriticalL",
68
+ Off = "Off",
27
69
  }
28
70
 
29
71
  export type Node = {
@@ -32,41 +74,43 @@ export type Node = {
32
74
  }
33
75
 
34
76
  export type Gateway = {
35
- workspaceId?: number
77
+ workspaceId?: string
36
78
  clusterName?: string
37
79
  namespaceName?: string
38
- name?: string
80
+ gatewayName?: string
39
81
  createdAt?: string
40
82
  updatedAt?: string
41
- status?: SkoalaApiGeneralV1alpha1Skoala.Status
83
+ status?: SkoalaApiGeneralV1alpha1Common.Status
42
84
  endpoints?: string[]
43
85
  contour?: Node
44
86
  envoy?: Node
87
+ apiCount?: number
45
88
  config?: GatewayConfig
46
89
  }
47
90
 
48
91
  export type ListAllGatewayReq = {
49
- workspaceId?: number
92
+ workspaceId?: string
50
93
  page?: number
51
94
  pageSize?: number
52
95
  filter?: string
53
96
  }
54
97
 
55
98
  export type ListClusterGatewayReq = {
56
- workspaceId?: number
99
+ workspaceId?: string
57
100
  clusterName?: string
58
101
  page?: number
59
102
  pageSize?: number
103
+ namespaceNames?: string[]
60
104
  filter?: string
61
105
  }
62
106
 
63
107
  export type ListGatewayRes = {
64
108
  items?: Gateway[]
65
- pagination?: SkoalaApiGeneralV1alpha1Skoala.Pagination
109
+ pagination?: SkoalaApiGeneralV1alpha1Common.Pagination
66
110
  }
67
111
 
68
112
  export type GetGatewayReq = {
69
- workspaceId?: number
113
+ workspaceId?: string
70
114
  clusterName?: string
71
115
  namespaceName?: string
72
116
  gatewayName?: string
@@ -101,7 +145,12 @@ export type HostIPs = {
101
145
  }
102
146
 
103
147
  export type EnvoyService = {
104
- type?: string
148
+ serviceType?: SkoalaApiGeneralV1alpha1Service.ServiceType
149
+ enableHttps?: boolean
150
+ }
151
+
152
+ export type EnvoyServicePro = {
153
+ serviceType?: SkoalaApiGeneralV1alpha1Service.ServiceType
105
154
  ports?: EnvoyPorts
106
155
  targetPorts?: EnvoyPortsString
107
156
  nodePorts?: EnvoyPortsString
@@ -110,7 +159,7 @@ export type EnvoyService = {
110
159
  }
111
160
 
112
161
  export type ContourService = {
113
- type?: string
162
+ serviceType?: SkoalaApiGeneralV1alpha1Service.ServiceType
114
163
  clusterIp?: string
115
164
  ports?: ContourPorts
116
165
  nodePorts?: ContourPortsString
@@ -121,6 +170,11 @@ export type ContourService = {
121
170
  }
122
171
 
123
172
  export type EnvoyNormalConfig = {
173
+ replicas?: number
174
+ service?: EnvoyService
175
+ }
176
+
177
+ export type EnvoyNormalConfigPro = {
124
178
  kind?: string
125
179
  replicas?: number
126
180
  hostNetwork?: boolean
@@ -130,42 +184,71 @@ export type EnvoyNormalConfig = {
130
184
  containerPorts?: EnvoyPorts
131
185
  hostIps?: HostIPs
132
186
  hostPorts?: EnvoyPorts
133
- service?: EnvoyService
187
+ service?: EnvoyServicePro
134
188
  }
135
189
 
136
190
  export type ContourNormalConfig = {
137
- rootNamespaces?: string
191
+ rootNamespaces?: string[]
192
+ replicas?: number
193
+ }
194
+
195
+ export type ContourNormalConfigPro = {
196
+ rootNamespaces?: string[]
138
197
  replicas?: number
139
198
  containerPorts?: ContourPorts
140
199
  service?: ContourService
141
200
  }
142
201
 
143
202
  export type CreateGatewayReq = {
144
- workspaceId?: number
145
- name?: string
203
+ workspaceId?: string
204
+ gatewayName?: string
146
205
  clusterName?: string
147
206
  namespaceName?: string
148
- createNamespace?: boolean
149
207
  config?: GatewayConfig
150
208
  }
151
209
 
210
+ export type CreateGatewayRes = {
211
+ status?: SkoalaApiGeneralV1alpha1Common.Status
212
+ }
213
+
214
+ export type CreateGatewayProReq = {
215
+ workspaceId?: string
216
+ gatewayName?: string
217
+ clusterName?: string
218
+ namespaceName?: string
219
+ createNamespace?: boolean
220
+ config?: GatewayConfigPro
221
+ }
222
+
152
223
  export type UpdateGatewayReq = {
153
- workspaceId?: number
224
+ workspaceId?: string
154
225
  gatewayName?: string
155
226
  clusterName?: string
156
227
  namespaceName?: string
157
228
  config?: GatewayConfig
158
229
  }
159
230
 
231
+ export type UpdateGatewayRes = {
232
+ status?: SkoalaApiGeneralV1alpha1Common.Status
233
+ }
234
+
235
+ export type UpdateGatewayProReq = {
236
+ workspaceId?: string
237
+ gatewayName?: string
238
+ clusterName?: string
239
+ namespaceName?: string
240
+ config?: GatewayConfigPro
241
+ }
242
+
160
243
  export type DeleteGatewayReq = {
161
- workspaceId?: number
244
+ workspaceId?: string
162
245
  clusterName?: string
163
246
  namespaceName?: string
164
247
  gatewayName?: string
165
248
  }
166
249
 
167
250
  export type DeleteGatewayRes = {
168
- gateway?: Gateway
251
+ status?: SkoalaApiGeneralV1alpha1Common.Status
169
252
  }
170
253
 
171
254
  export type NormalConfig = {
@@ -173,14 +256,25 @@ export type NormalConfig = {
173
256
  envoy?: EnvoyNormalConfig
174
257
  }
175
258
 
259
+ export type NormalConfigPro = {
260
+ contour?: ContourNormalConfigPro
261
+ envoy?: EnvoyNormalConfigPro
262
+ }
263
+
176
264
  export type GatewayConfig = {
177
265
  normal?: NormalConfig
178
266
  advanced?: AdvancedConfig
179
267
  }
180
268
 
269
+ export type GatewayConfigPro = {
270
+ normal?: NormalConfigPro
271
+ advanced?: AdvancedConfigPro
272
+ }
273
+
181
274
 
182
275
  type BaseContourAdvancedConfig = {
183
- resources?: Resource
276
+ resources?: SkoalaApiGeneralV1alpha1Resource.ResourceRequirements
277
+ diagnostic?: GatewayDiagnostic
184
278
  }
185
279
 
186
280
  export type ContourAdvancedConfig = BaseContourAdvancedConfig
@@ -188,7 +282,7 @@ export type ContourAdvancedConfig = BaseContourAdvancedConfig
188
282
 
189
283
 
190
284
  type BaseEnvoyAdvancedConfig = {
191
- resources?: Resource
285
+ resources?: SkoalaApiGeneralV1alpha1Resource.ResourceRequirements
192
286
  }
193
287
 
194
288
  export type EnvoyAdvancedConfig = BaseEnvoyAdvancedConfig
@@ -198,23 +292,22 @@ export type AdvancedConfig = {
198
292
  log?: Log
199
293
  contour?: ContourAdvancedConfig
200
294
  envoy?: EnvoyAdvancedConfig
295
+ }
296
+
297
+ export type AdvancedConfigPro = {
298
+ log?: Log
299
+ contour?: ContourAdvancedConfig
300
+ envoy?: EnvoyAdvancedConfig
201
301
  globalRateLimit?: boolean
202
302
  }
203
303
 
204
304
  export type Log = {
205
305
  envoyLogLevel?: LogLogLevel
206
- k8SDebug?: number
306
+ kubernetesDebug?: number
207
307
  contourDebug?: boolean
208
308
  logToInsight?: boolean
209
309
  }
210
310
 
211
- export type Resource = {
212
- cpuRequests?: string
213
- cpuLimits?: string
214
- memoryRequests?: string
215
- memoryLimits?: string
216
- }
217
-
218
311
  export type RollingUpdate = {
219
312
  maxSurge?: string
220
313
  maxUnavailable?: string
@@ -226,12 +319,188 @@ export type GetImagesRes = {
226
319
  }
227
320
 
228
321
  export type GetGatewayStatusReq = {
229
- workspaceId?: number
322
+ workspaceId?: string
230
323
  clusterName?: string
231
324
  namespaceName?: string
232
325
  gatewayName?: string
233
326
  }
234
327
 
235
328
  export type GetGatewayStatusRes = {
236
- ready?: boolean
329
+ health?: GatewayHealth
330
+ }
331
+
332
+ export type DeploymentHealth = {
333
+ name?: string
334
+ status?: HealthStatus
335
+ availableReplicas?: number
336
+ replicas?: number
337
+ msgs?: string[]
338
+ }
339
+
340
+ export type ContainerHealth = {
341
+ name?: string
342
+ status?: HealthStatus
343
+ containerPort?: number
344
+ responseTime?: number
345
+ msgs?: string[]
346
+ }
347
+
348
+ export type ServiceHealth = {
349
+ name?: string
350
+ status?: HealthStatus
351
+ serviceType?: SkoalaApiGeneralV1alpha1Service.ServiceType
352
+ clusterIp?: string
353
+ nodeIp?: string
354
+ ports?: string[]
355
+ msgs?: string[]
356
+ }
357
+
358
+ export type PodHealth = {
359
+ name?: string
360
+ status?: HealthStatus
361
+ containers?: ContainerHealth[]
362
+ msgs?: string[]
363
+ }
364
+
365
+ export type GatewayHealth = {
366
+ status?: SkoalaApiGeneralV1alpha1Common.Status
367
+ deployments?: DeploymentHealth[]
368
+ services?: ServiceHealth[]
369
+ pods?: PodHealth[]
370
+ exceptionResources?: string[]
371
+ }
372
+
373
+ export type GatewayDiagnostic = {
374
+ enabled?: boolean
375
+ command?: string[]
376
+ args?: string[]
377
+ }
378
+
379
+ export type GatewayDiagnosticReq = {
380
+ workspaceId?: string
381
+ gatewayName?: string
382
+ clusterName?: string
383
+ namespaceName?: string
384
+ diagnostic?: GatewayDiagnostic
385
+ }
386
+
387
+ export type GatewayDiagnosticRes = {
388
+ tips?: string
389
+ }
390
+
391
+ export type PodSummary = {
392
+ podName?: string
393
+ namespaceName?: string
394
+ phase?: SkoalaApiGeneralV1alpha1Common.PodPhase
395
+ podIp?: string
396
+ }
397
+
398
+ export type ListPodsReq = {
399
+ workspaceId?: string
400
+ clusterName?: string
401
+ namespaceName?: string
402
+ gatewayName?: string
403
+ phases?: SkoalaApiGeneralV1alpha1Common.PodPhase[]
404
+ page?: number
405
+ pageSize?: number
406
+ }
407
+
408
+ export type ListPodsRes = {
409
+ items?: PodSummary[]
410
+ pagination?: SkoalaApiGeneralV1alpha1Common.Pagination
411
+ }
412
+
413
+ export type GetPodReq = {
414
+ workspaceId?: string
415
+ clusterName?: string
416
+ namespaceName?: string
417
+ gatewayName?: string
418
+ podName?: string
419
+ }
420
+
421
+ export type GetPodRes = {
422
+ podName?: string
423
+ workspaceId?: string
424
+ clusterName?: string
425
+ namespaceName?: string
426
+ phase?: SkoalaApiGeneralV1alpha1Common.PodPhase
427
+ createTime?: number
428
+ podIp?: string
429
+ hostIp?: string
430
+ }
431
+
432
+ export type QueryGatewayPodMetricReq = {
433
+ workspaceId?: string
434
+ clusterId?: string
435
+ namespaceName?: string
436
+ gatewayName?: string
437
+ podName?: string
438
+ atTime?: number
439
+ }
440
+
441
+ export type QueryGatewayPodMetricRes = {
442
+ items?: QueryMetricResult[]
443
+ }
444
+
445
+ export type QueryGatewayPodMetricRangeReq = {
446
+ workspaceId?: string
447
+ clusterId?: string
448
+ namespaceName?: string
449
+ gatewayName?: string
450
+ podName?: string
451
+ startTime?: number
452
+ endTime?: number
453
+ step?: number
454
+ }
455
+
456
+ export type QueryGatewayPodMetricRangeRes = {
457
+ items?: QueryMetricRangeResult[]
458
+ }
459
+
460
+ export type QueryMetricResult = {
461
+ vector?: InsightIoApiMetricV1alpha1Metric.Sample[]
462
+ status?: QueryResultStatus
463
+ errorMessage?: string
464
+ }
465
+
466
+ export type QueryMetricRangeResult = {
467
+ matrix?: InsightIoApiMetricV1alpha1Metric.SampleStream[]
468
+ status?: QueryResultStatus
469
+ errorMessage?: string
470
+ }
471
+
472
+ export type QueryGatewayDeploymentsMetricRangeReq = {
473
+ workspaceId?: string
474
+ clusterId?: string
475
+ namespaceName?: string
476
+ gatewayName?: string
477
+ startTime?: number
478
+ endTime?: number
479
+ step?: number
480
+ }
481
+
482
+ export type QueryGatewayDeploymentsMetricRangeRes = {
483
+ contour?: QueryMetricRangeResult[]
484
+ envoy?: QueryMetricRangeResult[]
485
+ }
486
+
487
+ export type GatewayPodAlertReq = {
488
+ workspaceId?: string
489
+ clusterName?: string
490
+ namespaceName?: string
491
+ gatewayName?: string
492
+ podName?: string
493
+ startTime?: number
494
+ endTime?: number
495
+ step?: number
496
+ }
497
+
498
+ export type GatewayPodAlertRes = {
499
+ items?: Alert[]
500
+ }
501
+
502
+ export type Alert = {
503
+ startTime?: number
504
+ endTime?: number
505
+ stats?: {[key: string]: string}
237
506
  }
@@ -0,0 +1,170 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
3
+ /*
4
+ * This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY
5
+ */
6
+
7
+ import * as SkoalaApiGeneralV1alpha1Common from "../../general/v1alpha1/common.pb"
8
+ import * as SkoalaApiHostedV1alpha1Http from "./http.pb"
9
+
10
+ type Absent<T, K extends keyof T> = { [k in Exclude<keyof T, K>]?: undefined };
11
+ type OneOf<T> =
12
+ | { [k in keyof T]?: undefined }
13
+ | (
14
+ keyof T extends infer K ?
15
+ (K extends string & keyof T ? { [k in K]: T[K] } & Absent<T, K>
16
+ : never)
17
+ : never);
18
+
19
+ export enum ServiceSource {
20
+ SOURCE_CLUSTER = "SOURCE_CLUSTER",
21
+ SOURCE_MESH = "SOURCE_MESH",
22
+ SOURCE_REGISTRY = "SOURCE_REGISTRY",
23
+ SOURCE_EXTERNAL = "SOURCE_EXTERNAL",
24
+ }
25
+
26
+ export enum SesameServiceType {
27
+ EXTERNAL_SERVICE = "EXTERNAL_SERVICE",
28
+ MANAGE_SERVICE = "MANAGE_SERVICE",
29
+ }
30
+
31
+ export type CreateExternalServiceReq = {
32
+ workspaceId?: string
33
+ gatewayName?: string
34
+ clusterName?: string
35
+ namespaceName?: string
36
+ externalServiceConf?: ExternalServiceConf
37
+ }
38
+
39
+ export type CreateExternalServiceRes = {
40
+ serviceName?: string
41
+ namespaceName?: string
42
+ }
43
+
44
+ export type GetGatewayServiceReq = {
45
+ workspaceId?: string
46
+ clusterName?: string
47
+ gatewayName?: string
48
+ namespaceName?: string
49
+ serviceName?: string
50
+ }
51
+
52
+ export type UpdateGatewayServiceReq = {
53
+ workspaceId?: string
54
+ clusterName?: string
55
+ gatewayName?: string
56
+ namespaceName?: string
57
+ serviceName?: string
58
+ externalServiceConf?: ExternalServiceConf
59
+ }
60
+
61
+ export type UpdateGatewayServiceRes = {
62
+ serviceName?: string
63
+ namespaceName?: string
64
+ }
65
+
66
+ export type DeleteGatewayServiceReq = {
67
+ workspaceId?: string
68
+ clusterName?: string
69
+ gatewayName?: string
70
+ namespaceName?: string
71
+ serviceName?: string
72
+ }
73
+
74
+ export type DeleteGatewayServiceRes = {
75
+ serviceName?: string
76
+ namespaceName?: string
77
+ }
78
+
79
+ export type GetGatewayServiceRes = {
80
+ serviceInfo?: ServiceInfo
81
+ api?: SkoalaApiHostedV1alpha1Http.APIInfo[]
82
+ }
83
+
84
+ export type ListGatewayServiceReq = {
85
+ workspaceId?: string
86
+ clusterName?: string
87
+ gatewayName?: string
88
+ namespaceName?: string
89
+ serviceName?: string
90
+ serviceType?: SesameServiceType
91
+ page?: number
92
+ pageSize?: number
93
+ }
94
+
95
+ export type ListGatewayServiceRes = {
96
+ serviceInfo?: ServiceInfo[]
97
+ pagination?: SkoalaApiGeneralV1alpha1Common.Pagination
98
+ }
99
+
100
+ export type ServiceInfo = {
101
+ serviceName?: string
102
+ address?: Address
103
+ apiCount?: number
104
+ sourceInfo?: ServiceSourceInfo
105
+ createAt?: string
106
+ serviceType?: SesameServiceType
107
+ sesameServiceName?: string
108
+ sesameServiceNamespace?: string
109
+ }
110
+
111
+ export type ServiceSourceInfo = {
112
+ serviceSource?: ServiceSource
113
+ clusterName?: string
114
+ k8SNamespaceName?: string
115
+ registrationId?: string
116
+ registrationType?: string
117
+ nacosNamespaceId?: string
118
+ groupName?: string
119
+ }
120
+
121
+
122
+ type BaseExternalServiceConf = {
123
+ }
124
+
125
+ export type ExternalServiceConf = BaseExternalServiceConf
126
+ & OneOf<{ kubernetesService: KubernetesService; registryService: RegistryService; externalService: ExternalService }>
127
+
128
+ export type KubernetesService = {
129
+ clusterId?: string
130
+ clusterName?: string
131
+ namespaceName?: string
132
+ serviceName?: string
133
+ address?: Address
134
+ }
135
+
136
+
137
+ type BaseRegistryService = {
138
+ registrationId?: string
139
+ }
140
+
141
+ export type RegistryService = BaseRegistryService
142
+ & OneOf<{ eurekaService: EurekaService; nacosService: NacosService; zookeeperService: ZookeeperService; kubernetesService: KubernetesService }>
143
+
144
+ export type EurekaService = {
145
+ address?: Address
146
+ serviceName?: string
147
+ }
148
+
149
+ export type NacosService = {
150
+ address?: Address
151
+ serviceName?: string
152
+ namespaceId?: string
153
+ groupName?: string
154
+ }
155
+
156
+ export type ZookeeperService = {
157
+ address?: Address
158
+ serviceName?: string
159
+ }
160
+
161
+ export type ExternalService = {
162
+ serviceName?: string
163
+ address?: Address
164
+ }
165
+
166
+ export type Address = {
167
+ protocol?: SkoalaApiHostedV1alpha1Http.Protocol
168
+ hostname?: string
169
+ port?: number
170
+ }
@@ -0,0 +1,44 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
3
+ /*
4
+ * This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY
5
+ */
6
+
7
+ export enum HttpMethod {
8
+ GET = "GET",
9
+ POST = "POST",
10
+ DELETE = "DELETE",
11
+ PUT = "PUT",
12
+ PATCH = "PATCH",
13
+ OPTIONS = "OPTIONS",
14
+ ALL = "ALL",
15
+ }
16
+
17
+ export enum Protocol {
18
+ HTTP = "HTTP",
19
+ HTTPS = "HTTPS",
20
+ }
21
+
22
+ export enum RouteType {
23
+ CLUSTRE_SERVER = "CLUSTRE_SERVER",
24
+ DIRECT = "DIRECT",
25
+ REDIRECT = "REDIRECT",
26
+ EXTERNAL = "EXTERNAL",
27
+ REGISTRY = "REGISTRY",
28
+ UNKNOW = "UNKNOW",
29
+ }
30
+
31
+ export enum APIStatus {
32
+ UP = "UP",
33
+ DOWN = "DOWN",
34
+ }
35
+
36
+ export type APIInfo = {
37
+ apiName?: string
38
+ fqdn?: string
39
+ method?: HttpMethod[]
40
+ requestPath?: string
41
+ routeType?: RouteType
42
+ apiStatus?: APIStatus
43
+ updatedAt?: string
44
+ }