@daocloud-proto/kcoral 0.0.1-6

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.
package/fetch.pb.ts ADDED
@@ -0,0 +1,232 @@
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 interface InitReq extends RequestInit {
8
+ pathPrefix?: string
9
+ }
10
+
11
+ export function fetchReq<I, O>(path: string, init?: InitReq): Promise<O> {
12
+ const {pathPrefix, ...req} = init || {}
13
+
14
+ const url = pathPrefix ? `${pathPrefix}${path}` : path
15
+
16
+ return fetch(url, req).then(r => r.json().then((body: O) => {
17
+ if (!r.ok) { throw body; }
18
+ return body;
19
+ })) as Promise<O>
20
+ }
21
+
22
+ // NotifyStreamEntityArrival is a callback that will be called on streaming entity arrival
23
+ export type NotifyStreamEntityArrival<T> = (resp: T) => void
24
+
25
+ /**
26
+ * fetchStreamingRequest is able to handle grpc-gateway server side streaming call
27
+ * it takes NotifyStreamEntityArrival that lets users respond to entity arrival during the call
28
+ * all entities will be returned as an array after the call finishes.
29
+ **/
30
+ export async function fetchStreamingRequest<S, R>(path: string, callback?: NotifyStreamEntityArrival<R>, init?: InitReq) {
31
+ const {pathPrefix, ...req} = init || {}
32
+ const url = pathPrefix ?`${pathPrefix}${path}` : path
33
+ const result = await fetch(url, req)
34
+ // needs to use the .ok to check the status of HTTP status code
35
+ // http other than 200 will not throw an error, instead the .ok will become false.
36
+ // see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch#
37
+ if (!result.ok) {
38
+ const resp = await result.json()
39
+ const errMsg = resp.error && resp.error.message ? resp.error.message : ""
40
+ throw new Error(errMsg)
41
+ }
42
+
43
+ if (!result.body) {
44
+ throw new Error("response doesnt have a body")
45
+ }
46
+
47
+ await result.body
48
+ .pipeThrough(new TextDecoderStream())
49
+ .pipeThrough<R>(getNewLineDelimitedJSONDecodingStream<R>())
50
+ .pipeTo(getNotifyEntityArrivalSink((e: R) => {
51
+ if (callback) {
52
+ callback(e)
53
+ }
54
+ }))
55
+
56
+ // wait for the streaming to finish and return the success respond
57
+ return
58
+ }
59
+
60
+ /**
61
+ * JSONStringStreamController represents the transform controller that's able to transform the incoming
62
+ * new line delimited json content stream into entities and able to push the entity to the down stream
63
+ */
64
+ interface JSONStringStreamController<T> extends TransformStreamDefaultController {
65
+ buf?: string
66
+ pos?: number
67
+ enqueue: (s: T) => void
68
+ }
69
+
70
+ /**
71
+ * getNewLineDelimitedJSONDecodingStream returns a TransformStream that's able to handle new line delimited json stream content into parsed entities
72
+ */
73
+ function getNewLineDelimitedJSONDecodingStream<T>(): TransformStream<string, T> {
74
+ return new TransformStream({
75
+ start(controller: JSONStringStreamController<T>) {
76
+ controller.buf = ''
77
+ controller.pos = 0
78
+ },
79
+
80
+ transform(chunk: string, controller: JSONStringStreamController<T>) {
81
+ if (controller.buf === undefined) {
82
+ controller.buf = ''
83
+ }
84
+ if (controller.pos === undefined) {
85
+ controller.pos = 0
86
+ }
87
+ controller.buf += chunk
88
+ while (controller.pos < controller.buf.length) {
89
+ if (controller.buf[controller.pos] === '\n') {
90
+ const line = controller.buf.substring(0, controller.pos)
91
+ const response = JSON.parse(line)
92
+ controller.enqueue(response.result)
93
+ controller.buf = controller.buf.substring(controller.pos + 1)
94
+ controller.pos = 0
95
+ } else {
96
+ ++controller.pos
97
+ }
98
+ }
99
+ }
100
+ })
101
+
102
+ }
103
+
104
+ /**
105
+ * getNotifyEntityArrivalSink takes the NotifyStreamEntityArrival callback and return
106
+ * a sink that will call the callback on entity arrival
107
+ * @param notifyCallback
108
+ */
109
+ function getNotifyEntityArrivalSink<T>(notifyCallback: NotifyStreamEntityArrival<T>) {
110
+ return new WritableStream<T>({
111
+ write(entity: T) {
112
+ notifyCallback(entity)
113
+ }
114
+ })
115
+ }
116
+
117
+ type Primitive = string | boolean | number;
118
+ type RequestPayload = Record<string, unknown>;
119
+ type FlattenedRequestPayload = Record<string, Primitive | Array<Primitive>>;
120
+
121
+ /**
122
+ * Checks if given value is a plain object
123
+ * Logic copied and adapted from below source:
124
+ * https://github.com/char0n/ramda-adjunct/blob/master/src/isPlainObj.js
125
+ * @param {unknown} value
126
+ * @return {boolean}
127
+ */
128
+ function isPlainObject(value: unknown): boolean {
129
+ const isObject =
130
+ Object.prototype.toString.call(value).slice(8, -1) === "Object";
131
+ const isObjLike = value !== null && isObject;
132
+
133
+ if (!isObjLike || !isObject) {
134
+ return false;
135
+ }
136
+
137
+ const proto = Object.getPrototypeOf(value);
138
+
139
+ const hasObjectConstructor =
140
+ typeof proto === "object" &&
141
+ proto.constructor === Object.prototype.constructor;
142
+
143
+ return hasObjectConstructor;
144
+ }
145
+
146
+ /**
147
+ * Checks if given value is of a primitive type
148
+ * @param {unknown} value
149
+ * @return {boolean}
150
+ */
151
+ function isPrimitive(value: unknown): boolean {
152
+ return ["string", "number", "boolean"].some(t => typeof value === t);
153
+ }
154
+
155
+ /**
156
+ * Checks if given primitive is zero-value
157
+ * @param {Primitive} value
158
+ * @return {boolean}
159
+ */
160
+ function isZeroValuePrimitive(value: Primitive): boolean {
161
+ return value === false || value === 0 || value === "";
162
+ }
163
+
164
+ /**
165
+ * Flattens a deeply nested request payload and returns an object
166
+ * with only primitive values and non-empty array of primitive values
167
+ * as per https://github.com/googleapis/googleapis/blob/master/google/api/http.proto
168
+ * @param {RequestPayload} requestPayload
169
+ * @param {String} path
170
+ * @return {FlattenedRequestPayload>}
171
+ */
172
+ function flattenRequestPayload<T extends RequestPayload>(
173
+ requestPayload: T,
174
+ path: string = ""
175
+ ): FlattenedRequestPayload {
176
+ return Object.keys(requestPayload).reduce(
177
+ (acc: T, key: string): T => {
178
+ const value = requestPayload[key];
179
+ const newPath = path ? [path, key].join(".") : key;
180
+
181
+ const isNonEmptyPrimitiveArray =
182
+ Array.isArray(value) &&
183
+ value.every(v => isPrimitive(v)) &&
184
+ value.length > 0;
185
+
186
+ const isNonZeroValuePrimitive =
187
+ isPrimitive(value) && !isZeroValuePrimitive(value as Primitive);
188
+
189
+ let objectToMerge = {};
190
+
191
+ if (isPlainObject(value)) {
192
+ objectToMerge = flattenRequestPayload(value as RequestPayload, newPath);
193
+ } else if (isNonZeroValuePrimitive || isNonEmptyPrimitiveArray) {
194
+ objectToMerge = { [newPath]: value };
195
+ }
196
+
197
+ return { ...acc, ...objectToMerge };
198
+ },
199
+ {} as T
200
+ ) as FlattenedRequestPayload;
201
+ }
202
+
203
+ /**
204
+ * Renders a deeply nested request payload into a string of URL search
205
+ * parameters by first flattening the request payload and then removing keys
206
+ * which are already present in the URL path.
207
+ * @param {RequestPayload} requestPayload
208
+ * @param {string[]} urlPathParams
209
+ * @return {string}
210
+ */
211
+ export function renderURLSearchParams<T extends RequestPayload>(
212
+ requestPayload: T,
213
+ urlPathParams: string[] = []
214
+ ): string {
215
+ const flattenedRequestPayload = flattenRequestPayload(requestPayload);
216
+
217
+ const urlSearchParams = Object.keys(flattenedRequestPayload).reduce(
218
+ (acc: string[][], key: string): string[][] => {
219
+ // key should not be present in the url path as a parameter
220
+ const value = flattenedRequestPayload[key];
221
+ if (urlPathParams.find(f => f === key)) {
222
+ return acc;
223
+ }
224
+ return Array.isArray(value)
225
+ ? [...acc, ...value.map(m => [key, m.toString()])]
226
+ : (acc = [...acc, [key, value.toString()]]);
227
+ },
228
+ [] as string[][]
229
+ );
230
+
231
+ return new URLSearchParams(urlSearchParams).toString();
232
+ }
@@ -0,0 +1 @@
1
+ export default {}
@@ -0,0 +1,7 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
3
+ /*
4
+ * This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY
5
+ */
6
+ export type Empty = {
7
+ }
@@ -0,0 +1,12 @@
1
+ /* eslint-disable */
2
+ // @ts-nocheck
3
+ /*
4
+ * This file is a generated Typescript file for GRPC Gateway, DO NOT MODIFY
5
+ */
6
+ export type ListNamespacesSummaryRequest = {
7
+ cluster?: string
8
+ }
9
+
10
+ export type ListNamespacesSummaryResponse = {
11
+ items?: string[]
12
+ }
@@ -0,0 +1,20 @@
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 KcoralIoApiTypesPage from "../../types/page.pb"
8
+ export type ListKCoralClustersRequest = {
9
+ page?: number
10
+ pageSize?: number
11
+ sortBy?: KcoralIoApiTypesPage.SortBy
12
+ sortDir?: KcoralIoApiTypesPage.SortDir
13
+ labelSelector?: string
14
+ fieldSelector?: string
15
+ fuzzyName?: string
16
+ }
17
+
18
+ export type ListKCoralClustersResponse = {
19
+ items?: string[]
20
+ }
@@ -0,0 +1,42 @@
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 KcoralIoApiTypesObjectmeta from "../../types/objectmeta.pb"
8
+ import * as KcoralIoApiTypesPage from "../../types/page.pb"
9
+
10
+ export enum VolumeSnapshotClassDeletionPolicy {
11
+ PHASE_UNSPECIFIED_HE = "PHASE_UNSPECIFIED_HE",
12
+ Delete = "Delete",
13
+ Retain = "Retain",
14
+ }
15
+
16
+ export type ListVolumeSnapshotClassesRequest = {
17
+ cluster?: string
18
+ page?: number
19
+ pageSize?: number
20
+ name?: string
21
+ sortBy?: KcoralIoApiTypesPage.SortBy
22
+ sortDir?: KcoralIoApiTypesPage.SortDir
23
+ labelSelector?: string
24
+ fieldSelector?: string
25
+ fuzzyName?: string
26
+ }
27
+
28
+ export type ListVolumeSnapshotClassesResponse = {
29
+ items?: VolumeSnapshotClass[]
30
+ pagination?: KcoralIoApiTypesPage.Pagination
31
+ }
32
+
33
+ export type EnableVolumeSnapshotClassRequest = {
34
+ cluster?: string
35
+ name?: string
36
+ }
37
+
38
+ export type VolumeSnapshotClass = {
39
+ metadata?: KcoralIoApiTypesObjectmeta.ObjectMeta
40
+ deletionPolicy?: string
41
+ parameters?: {[key: string]: string}
42
+ }
@@ -0,0 +1,69 @@
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 WorkloadState {
8
+ WORKLOAD_STATE_UNSPECIFIED = "WORKLOAD_STATE_UNSPECIFIED",
9
+ Running = "Running",
10
+ Deleting = "Deleting",
11
+ Not_Ready = "Not_Ready",
12
+ Stopped = "Stopped",
13
+ Waiting = "Waiting",
14
+ }
15
+
16
+ export type OwnerReference = {
17
+ uid?: string
18
+ controller?: boolean
19
+ name?: string
20
+ kind?: string
21
+ }
22
+
23
+ export type ObjectMeta = {
24
+ name?: string
25
+ namespace?: string
26
+ uid?: string
27
+ resourceVersion?: string
28
+ creationTimestamp?: string
29
+ deletionTimestamp?: string
30
+ labels?: {[key: string]: string}
31
+ annotations?: {[key: string]: string}
32
+ ownerReferences?: OwnerReference[]
33
+ cluster?: string
34
+ workspaceAlias?: string
35
+ }
36
+
37
+ export type Selector = {
38
+ matchLabels?: {[key: string]: string}
39
+ }
40
+
41
+ export type LabelSelector = {
42
+ matchLabels?: {[key: string]: string}
43
+ matchExpressions?: LabelSelectorRequirement[]
44
+ }
45
+
46
+ export type LabelSelectorRequirement = {
47
+ key?: string
48
+ operator?: string
49
+ values?: string[]
50
+ }
51
+
52
+ export type RollingUpdate = {
53
+ maxSurge?: string
54
+ maxUnavailable?: string
55
+ }
56
+
57
+ export type UpdateStrategy = {
58
+ rollingUpdate?: RollingUpdate
59
+ type?: string
60
+ }
61
+
62
+ export type Condition = {
63
+ lastTransitionTime?: string
64
+ lastUpdateTime?: string
65
+ message?: string
66
+ reason?: string
67
+ status?: string
68
+ type?: string
69
+ }
@@ -0,0 +1,27 @@
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 SortDir {
8
+ desc = "desc",
9
+ asc = "asc",
10
+ }
11
+
12
+ export enum SortBy {
13
+ SORT_BY_UNSPECIFIED = "SORT_BY_UNSPECIFIED",
14
+ field_name = "field_name",
15
+ state = "state",
16
+ workspace = "workspace",
17
+ cluster = "cluster",
18
+ namespace = "namespace",
19
+ created_at = "created_at",
20
+ }
21
+
22
+ export type Pagination = {
23
+ total?: number
24
+ page?: number
25
+ pageSize?: number
26
+ pages?: number
27
+ }
@@ -0,0 +1,12 @@
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 ConditionStatus {
8
+ CONDITION_STATUS_UNSPECIFIED = "CONDITION_STATUS_UNSPECIFIED",
9
+ True = "True",
10
+ False = "False",
11
+ Unknown = "Unknown",
12
+ }
@@ -0,0 +1,100 @@
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 fm from "../../../fetch.pb"
8
+ import * as GoogleProtobufEmpty from "../../../google/api/empty.pb"
9
+ import * as KcoralIoApiCoreV1alpha1Namespace from "../core/v1alpha1/namespace.pb"
10
+ import * as KcoralIoApiKcoralclusterV1alpha1Kcoralcluster from "../kcoralcluster/v1alpha1/kcoralcluster.pb"
11
+ import * as KcoralIoApiStorageV1alpha1Volumesnapshotclass from "../storage/v1alpha1/volumesnapshotclass.pb"
12
+ import * as KcoralIoApiVeleroV1alpha1Backup from "../velero/v1alpha1/backup.pb"
13
+ import * as KcoralIoApiVeleroV1alpha1Backupstoragelocation from "../velero/v1alpha1/backupstoragelocation.pb"
14
+ import * as KcoralIoApiVeleroV1alpha1Restore from "../velero/v1alpha1/restore.pb"
15
+ import * as KcoralIoApiVeleroV1alpha1Schedule from "../velero/v1alpha1/schedule.pb"
16
+ export class Kubernetes {
17
+ static ListNamespacesSummary(req: KcoralIoApiCoreV1alpha1Namespace.ListNamespacesSummaryRequest, initReq?: fm.InitReq): Promise<KcoralIoApiCoreV1alpha1Namespace.ListNamespacesSummaryResponse> {
18
+ return fm.fetchReq<KcoralIoApiCoreV1alpha1Namespace.ListNamespacesSummaryRequest, KcoralIoApiCoreV1alpha1Namespace.ListNamespacesSummaryResponse>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/namespacessummary?${fm.renderURLSearchParams(req, ["cluster"])}`, {...initReq, method: "GET"})
19
+ }
20
+ static ListKCoralClusters(req: KcoralIoApiKcoralclusterV1alpha1Kcoralcluster.ListKCoralClustersRequest, initReq?: fm.InitReq): Promise<KcoralIoApiKcoralclusterV1alpha1Kcoralcluster.ListKCoralClustersResponse> {
21
+ return fm.fetchReq<KcoralIoApiKcoralclusterV1alpha1Kcoralcluster.ListKCoralClustersRequest, KcoralIoApiKcoralclusterV1alpha1Kcoralcluster.ListKCoralClustersResponse>(`/apis/kcoral.io/v1alpha1/kcoralclusters?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: "GET"})
22
+ }
23
+ static ListVolumeSnapshotClasses(req: KcoralIoApiStorageV1alpha1Volumesnapshotclass.ListVolumeSnapshotClassesRequest, initReq?: fm.InitReq): Promise<KcoralIoApiStorageV1alpha1Volumesnapshotclass.ListVolumeSnapshotClassesResponse> {
24
+ return fm.fetchReq<KcoralIoApiStorageV1alpha1Volumesnapshotclass.ListVolumeSnapshotClassesRequest, KcoralIoApiStorageV1alpha1Volumesnapshotclass.ListVolumeSnapshotClassesResponse>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/volumesnapshotclasss?${fm.renderURLSearchParams(req, ["cluster"])}`, {...initReq, method: "GET"})
25
+ }
26
+ static EnableVolumeSnapshotClass(req: KcoralIoApiStorageV1alpha1Volumesnapshotclass.EnableVolumeSnapshotClassRequest, initReq?: fm.InitReq): Promise<KcoralIoApiStorageV1alpha1Volumesnapshotclass.VolumeSnapshotClass> {
27
+ return fm.fetchReq<KcoralIoApiStorageV1alpha1Volumesnapshotclass.EnableVolumeSnapshotClassRequest, KcoralIoApiStorageV1alpha1Volumesnapshotclass.VolumeSnapshotClass>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/enablevolumesnapshotclass/${req["name"]}:enable`, {...initReq, method: "POST", body: JSON.stringify(req)})
28
+ }
29
+ }
30
+ export class BackupStorageLocation {
31
+ static ListBackupStorageLocations(req: KcoralIoApiVeleroV1alpha1Backupstoragelocation.ListBackupStorageLocationsRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backupstoragelocation.ListBackupStorageLocationsResponse> {
32
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backupstoragelocation.ListBackupStorageLocationsRequest, KcoralIoApiVeleroV1alpha1Backupstoragelocation.ListBackupStorageLocationsResponse>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backupstoragelocations?${fm.renderURLSearchParams(req, ["cluster"])}`, {...initReq, method: "GET"})
33
+ }
34
+ static GetBackupStorageLocation(req: KcoralIoApiVeleroV1alpha1Backupstoragelocation.GetBackupStorageLocationRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backupstoragelocation.BackupStorageLocation> {
35
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backupstoragelocation.GetBackupStorageLocationRequest, KcoralIoApiVeleroV1alpha1Backupstoragelocation.BackupStorageLocation>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backupstoragelocations/${req["name"]}?${fm.renderURLSearchParams(req, ["cluster", "name"])}`, {...initReq, method: "GET"})
36
+ }
37
+ static CreateBackupStorageLocation(req: KcoralIoApiVeleroV1alpha1Backupstoragelocation.CreateBackupStorageLocationRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backupstoragelocation.BackupStorageLocation> {
38
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backupstoragelocation.CreateBackupStorageLocationRequest, KcoralIoApiVeleroV1alpha1Backupstoragelocation.BackupStorageLocation>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backupstoragelocations`, {...initReq, method: "POST", body: JSON.stringify(req)})
39
+ }
40
+ static UpdateBackupStorageLocation(req: KcoralIoApiVeleroV1alpha1Backupstoragelocation.UpdateBackupStorageLocationRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backupstoragelocation.BackupStorageLocation> {
41
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backupstoragelocation.UpdateBackupStorageLocationRequest, KcoralIoApiVeleroV1alpha1Backupstoragelocation.BackupStorageLocation>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backupstoragelocations/${req["name"]}`, {...initReq, method: "PUT", body: JSON.stringify(req)})
42
+ }
43
+ static DeleteBackupStorageLocation(req: KcoralIoApiVeleroV1alpha1Backupstoragelocation.DeleteBackupStorageLocationRequest, initReq?: fm.InitReq): Promise<GoogleProtobufEmpty.Empty> {
44
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backupstoragelocation.DeleteBackupStorageLocationRequest, GoogleProtobufEmpty.Empty>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backupstoragelocations/${req["name"]}`, {...initReq, method: "DELETE"})
45
+ }
46
+ }
47
+ export class Restore {
48
+ static ListRestores(req: KcoralIoApiVeleroV1alpha1Restore.ListRestoresRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Restore.ListRestoresResponse> {
49
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Restore.ListRestoresRequest, KcoralIoApiVeleroV1alpha1Restore.ListRestoresResponse>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/restores?${fm.renderURLSearchParams(req, ["cluster"])}`, {...initReq, method: "GET"})
50
+ }
51
+ static GetRestore(req: KcoralIoApiVeleroV1alpha1Restore.GetRestoreRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Restore.Restore> {
52
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Restore.GetRestoreRequest, KcoralIoApiVeleroV1alpha1Restore.Restore>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/restores/${req["name"]}?${fm.renderURLSearchParams(req, ["cluster", "name"])}`, {...initReq, method: "GET"})
53
+ }
54
+ static CreateRestore(req: KcoralIoApiVeleroV1alpha1Restore.CreateRestoreRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Restore.Restore> {
55
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Restore.CreateRestoreRequest, KcoralIoApiVeleroV1alpha1Restore.Restore>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/restores`, {...initReq, method: "POST", body: JSON.stringify(req)})
56
+ }
57
+ static DeleteRestore(req: KcoralIoApiVeleroV1alpha1Restore.DeleteRestoreRequest, initReq?: fm.InitReq): Promise<GoogleProtobufEmpty.Empty> {
58
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Restore.DeleteRestoreRequest, GoogleProtobufEmpty.Empty>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/restores/${req["name"]}`, {...initReq, method: "DELETE"})
59
+ }
60
+ }
61
+ export class Schedule {
62
+ static ListSchedules(req: KcoralIoApiVeleroV1alpha1Schedule.ListSchedulesRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Schedule.ListSchedulesResponse> {
63
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Schedule.ListSchedulesRequest, KcoralIoApiVeleroV1alpha1Schedule.ListSchedulesResponse>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/schedules?${fm.renderURLSearchParams(req, ["cluster"])}`, {...initReq, method: "GET"})
64
+ }
65
+ static GetSchedule(req: KcoralIoApiVeleroV1alpha1Schedule.GetScheduleRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Schedule.Schedule> {
66
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Schedule.GetScheduleRequest, KcoralIoApiVeleroV1alpha1Schedule.Schedule>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/schedules/${req["name"]}?${fm.renderURLSearchParams(req, ["cluster", "name"])}`, {...initReq, method: "GET"})
67
+ }
68
+ static CreateSchedule(req: KcoralIoApiVeleroV1alpha1Schedule.CreateScheduleRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Schedule.Schedule> {
69
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Schedule.CreateScheduleRequest, KcoralIoApiVeleroV1alpha1Schedule.Schedule>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/schedules`, {...initReq, method: "POST", body: JSON.stringify(req)})
70
+ }
71
+ static UpdateSchedule(req: KcoralIoApiVeleroV1alpha1Schedule.UpdateScheduleRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Schedule.Schedule> {
72
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Schedule.UpdateScheduleRequest, KcoralIoApiVeleroV1alpha1Schedule.Schedule>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/schedules/${req["name"]}`, {...initReq, method: "PUT", body: JSON.stringify(req)})
73
+ }
74
+ static DeleteSchedule(req: KcoralIoApiVeleroV1alpha1Schedule.DeleteScheduleRequest, initReq?: fm.InitReq): Promise<GoogleProtobufEmpty.Empty> {
75
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Schedule.DeleteScheduleRequest, GoogleProtobufEmpty.Empty>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/schedules/${req["name"]}`, {...initReq, method: "DELETE"})
76
+ }
77
+ static PauseSchedule(req: KcoralIoApiVeleroV1alpha1Schedule.PauseScheduleRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Schedule.Schedule> {
78
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Schedule.PauseScheduleRequest, KcoralIoApiVeleroV1alpha1Schedule.Schedule>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/schedules/${req["name"]}:pause`, {...initReq, method: "POST", body: JSON.stringify(req)})
79
+ }
80
+ static ResumeSchedule(req: KcoralIoApiVeleroV1alpha1Schedule.ResumeScheduleRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Schedule.Schedule> {
81
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Schedule.ResumeScheduleRequest, KcoralIoApiVeleroV1alpha1Schedule.Schedule>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/schedules/${req["name"]}:resume`, {...initReq, method: "POST", body: JSON.stringify(req)})
82
+ }
83
+ }
84
+ export class Backup {
85
+ static ListBackups(req: KcoralIoApiVeleroV1alpha1Backup.ListBackupsRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backup.ListBackupsResponse> {
86
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backup.ListBackupsRequest, KcoralIoApiVeleroV1alpha1Backup.ListBackupsResponse>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backups?${fm.renderURLSearchParams(req, ["cluster"])}`, {...initReq, method: "GET"})
87
+ }
88
+ static GetBackup(req: KcoralIoApiVeleroV1alpha1Backup.GetBackupRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backup.Backup> {
89
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backup.GetBackupRequest, KcoralIoApiVeleroV1alpha1Backup.Backup>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backups/${req["name"]}?${fm.renderURLSearchParams(req, ["cluster", "name"])}`, {...initReq, method: "GET"})
90
+ }
91
+ static CreateBackup(req: KcoralIoApiVeleroV1alpha1Backup.CreateBackupRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backup.Backup> {
92
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backup.CreateBackupRequest, KcoralIoApiVeleroV1alpha1Backup.Backup>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backups`, {...initReq, method: "POST", body: JSON.stringify(req)})
93
+ }
94
+ static UpdateBackup(req: KcoralIoApiVeleroV1alpha1Backup.UpdateBackupRequest, initReq?: fm.InitReq): Promise<KcoralIoApiVeleroV1alpha1Backup.Backup> {
95
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backup.UpdateBackupRequest, KcoralIoApiVeleroV1alpha1Backup.Backup>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backups/${req["name"]}`, {...initReq, method: "PUT", body: JSON.stringify(req)})
96
+ }
97
+ static DeleteBackup(req: KcoralIoApiVeleroV1alpha1Backup.DeleteBackupRequest, initReq?: fm.InitReq): Promise<GoogleProtobufEmpty.Empty> {
98
+ return fm.fetchReq<KcoralIoApiVeleroV1alpha1Backup.DeleteBackupRequest, GoogleProtobufEmpty.Empty>(`/apis/kcoral.io/v1alpha1/clusters/${req["cluster"]}/backups/${req["name"]}`, {...initReq, method: "DELETE"})
99
+ }
100
+ }
@@ -0,0 +1,143 @@
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 KcoralIoApiTypesObjectmeta from "../../types/objectmeta.pb"
8
+ import * as KcoralIoApiTypesPage from "../../types/page.pb"
9
+
10
+ export enum ExecHookHookErrorMode {
11
+ BACKUP_HOOK_ERROR_MODE_UNSPECIFIED = "BACKUP_HOOK_ERROR_MODE_UNSPECIFIED",
12
+ Continue = "Continue",
13
+ Fail = "Fail",
14
+ }
15
+
16
+ export enum BackupStatusBackupPhase {
17
+ BACKUP_PHASE_UNSPECIFIED = "BACKUP_PHASE_UNSPECIFIED",
18
+ New = "New",
19
+ FailedValidation = "FailedValidation",
20
+ InProgress = "InProgress",
21
+ Uploading = "Uploading",
22
+ UploadingPartialFailure = "UploadingPartialFailure",
23
+ Completed = "Completed",
24
+ PartiallyFailed = "PartiallyFailed",
25
+ Failed = "Failed",
26
+ Deleting = "Deleting",
27
+ }
28
+
29
+ export type ListBackupsResponse = {
30
+ items?: Backup[]
31
+ pagination?: KcoralIoApiTypesPage.Pagination
32
+ }
33
+
34
+ export type ListBackupsRequest = {
35
+ cluster?: string
36
+ page?: number
37
+ pageSize?: number
38
+ fuzzyName?: string
39
+ scheduleName?: string
40
+ sortBy?: KcoralIoApiTypesPage.SortBy
41
+ sortDir?: KcoralIoApiTypesPage.SortDir
42
+ labelSelector?: string
43
+ fieldSelector?: string
44
+ }
45
+
46
+ export type GetBackupRequest = {
47
+ cluster?: string
48
+ name?: string
49
+ }
50
+
51
+ export type CreateBackupRequest = {
52
+ cluster?: string
53
+ backup?: Backup
54
+ }
55
+
56
+ export type UpdateBackupRequest = {
57
+ cluster?: string
58
+ name?: string
59
+ backup?: Backup
60
+ }
61
+
62
+ export type DeleteBackupRequest = {
63
+ cluster?: string
64
+ name?: string
65
+ }
66
+
67
+ export type Backup = {
68
+ metadata?: KcoralIoApiTypesObjectmeta.ObjectMeta
69
+ spec?: BackupSpec
70
+ status?: BackupStatus
71
+ }
72
+
73
+ export type ExecHook = {
74
+ command?: string[]
75
+ container?: string
76
+ onError?: ExecHookHookErrorMode
77
+ timeout?: string
78
+ }
79
+
80
+ export type BackupResourceHook = {
81
+ exec?: ExecHook
82
+ }
83
+
84
+ export type BackupResourceHookSpec = {
85
+ includedNamespaces?: string[]
86
+ excludedNamespaces?: string[]
87
+ includedResources?: string[]
88
+ excludedResources?: string[]
89
+ labelSelector?: KcoralIoApiTypesObjectmeta.LabelSelector
90
+ name?: string
91
+ postHooks?: BackupResourceHook[]
92
+ preHooks?: BackupResourceHook[]
93
+ }
94
+
95
+ export type BackupHooks = {
96
+ resources?: BackupResourceHookSpec[]
97
+ }
98
+
99
+ export type Metadata = {
100
+ labels?: {[key: string]: string}
101
+ }
102
+
103
+ export type BackupSpec = {
104
+ metadata?: Metadata
105
+ includedNamespaces?: string[]
106
+ excludedNamespaces?: string[]
107
+ includedResources?: string[]
108
+ excludedResources?: string[]
109
+ labelSelector?: KcoralIoApiTypesObjectmeta.LabelSelector
110
+ orLabelSelectors?: KcoralIoApiTypesObjectmeta.LabelSelector[]
111
+ snapshotVolumes?: boolean
112
+ ttl?: string
113
+ includeClusterResources?: boolean
114
+ hooks?: BackupHooks
115
+ storageLocation?: string
116
+ volumeSnapshotLocations?: string[]
117
+ defaultVolumesToFsBackup?: boolean
118
+ orderedResources?: {[key: string]: string}
119
+ csiSnapshotTimeout?: string
120
+ }
121
+
122
+ export type BackupProgress = {
123
+ itemsBackedUp?: number
124
+ totalItems?: number
125
+ }
126
+
127
+ export type BackupStatus = {
128
+ version?: number
129
+ formatVersion?: string
130
+ expiration?: string
131
+ phase?: BackupStatusBackupPhase
132
+ validationErrors?: string[]
133
+ startTimestamp?: string
134
+ completionTimestamp?: string
135
+ volumeSnapshotsAttempted?: number
136
+ volumeSnapshotsCompleted?: number
137
+ failureReason?: string
138
+ warnings?: number
139
+ errors?: number
140
+ progress?: BackupProgress
141
+ csiVolumeSnapshotsAttempted?: number
142
+ csiVolumeSnapshotsCompleted?: number
143
+ }
@@ -0,0 +1,95 @@
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 KcoralIoApiTypesObjectmeta from "../../types/objectmeta.pb"
8
+ import * as KcoralIoApiTypesPage from "../../types/page.pb"
9
+
10
+ export enum BackupStorageLocationAccessMode {
11
+ BACKUP_STORAGE_LOCATION_ACCESS_MODE_UNSPECIFIED = "BACKUP_STORAGE_LOCATION_ACCESS_MODE_UNSPECIFIED",
12
+ ReadOnly = "ReadOnly",
13
+ ReadWrite = "ReadWrite",
14
+ }
15
+
16
+ export enum BackupStorageLocationStatusBackupStorageLocationPhase {
17
+ BACKUP_STORAGE_LOCATION_PHASE_UNSPECIFIED = "BACKUP_STORAGE_LOCATION_PHASE_UNSPECIFIED",
18
+ Available = "Available",
19
+ Unavailable = "Unavailable",
20
+ }
21
+
22
+ export type ListBackupStorageLocationsResponse = {
23
+ items?: BackupStorageLocation[]
24
+ pagination?: KcoralIoApiTypesPage.Pagination
25
+ }
26
+
27
+ export type ListBackupStorageLocationsRequest = {
28
+ cluster?: string
29
+ page?: number
30
+ pageSize?: number
31
+ fuzzyName?: string
32
+ sortBy?: KcoralIoApiTypesPage.SortBy
33
+ sortDir?: KcoralIoApiTypesPage.SortDir
34
+ labelSelector?: string
35
+ fieldSelector?: string
36
+ }
37
+
38
+ export type GetBackupStorageLocationRequest = {
39
+ cluster?: string
40
+ name?: string
41
+ }
42
+
43
+ export type CreateBackupStorageLocationRequest = {
44
+ cluster?: string
45
+ backupStorageLocation?: BackupStorageLocation
46
+ }
47
+
48
+ export type UpdateBackupStorageLocationRequest = {
49
+ cluster?: string
50
+ name?: string
51
+ backupStorageLocation?: BackupStorageLocation
52
+ }
53
+
54
+ export type DeleteBackupStorageLocationRequest = {
55
+ cluster?: string
56
+ name?: string
57
+ }
58
+
59
+ export type BackupStorageLocation = {
60
+ metadata?: KcoralIoApiTypesObjectmeta.ObjectMeta
61
+ spec?: BackupStorageLocationSpec
62
+ status?: BackupStorageLocationStatus
63
+ }
64
+
65
+ export type SecretKeySelector = {
66
+ key?: string
67
+ name?: string
68
+ optional?: boolean
69
+ }
70
+
71
+ export type ObjectStorageLocation = {
72
+ bucket?: string
73
+ caCert?: string
74
+ prefix?: string
75
+ }
76
+
77
+ export type BackupStorageLocationSpec = {
78
+ accessMode?: BackupStorageLocationAccessMode
79
+ backupSyncPeriod?: string
80
+ config?: {[key: string]: string}
81
+ credential?: SecretKeySelector
82
+ default?: boolean
83
+ objectStorage?: ObjectStorageLocation
84
+ provider?: string
85
+ validationFrequency?: string
86
+ }
87
+
88
+ export type BackupStorageLocationStatus = {
89
+ accessMode?: BackupStorageLocationAccessMode
90
+ lastSyncedRevision?: string
91
+ lastSyncedTime?: string
92
+ lastValidationTime?: string
93
+ message?: string
94
+ phase?: BackupStorageLocationStatusBackupStorageLocationPhase
95
+ }
@@ -0,0 +1,132 @@
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 KcoralIoApiTypesObjectmeta from "../../types/objectmeta.pb"
8
+ import * as KcoralIoApiTypesPage from "../../types/page.pb"
9
+
10
+ export enum ExecRestoreHookHookErrorMode {
11
+ RESTORE_HOOK_ERROR_MODE_UNSPECIFIED = "RESTORE_HOOK_ERROR_MODE_UNSPECIFIED",
12
+ Continue = "Continue",
13
+ Fail = "Fail",
14
+ }
15
+
16
+ export enum RestoreSpecPolicyType {
17
+ RESTORE_POLICY_TYPE_UNSPECIFIED = "RESTORE_POLICY_TYPE_UNSPECIFIED",
18
+ none = "none",
19
+ update = "update",
20
+ }
21
+
22
+ export enum RestoreStatusRestorePhase {
23
+ RESTORE_PHASE_UNSPECIFIED = "RESTORE_PHASE_UNSPECIFIED",
24
+ New = "New",
25
+ FailedValidation = "FailedValidation",
26
+ InProgress = "InProgress",
27
+ Completed = "Completed",
28
+ PartiallyFailed = "PartiallyFailed",
29
+ Failed = "Failed",
30
+ }
31
+
32
+ export type ListRestoresResponse = {
33
+ items?: Restore[]
34
+ pagination?: KcoralIoApiTypesPage.Pagination
35
+ }
36
+
37
+ export type ListRestoresRequest = {
38
+ cluster?: string
39
+ page?: number
40
+ pageSize?: number
41
+ fuzzyName?: string
42
+ sortBy?: KcoralIoApiTypesPage.SortBy
43
+ sortDir?: KcoralIoApiTypesPage.SortDir
44
+ labelSelector?: string
45
+ fieldSelector?: string
46
+ }
47
+
48
+ export type GetRestoreRequest = {
49
+ cluster?: string
50
+ name?: string
51
+ }
52
+
53
+ export type CreateRestoreRequest = {
54
+ cluster?: string
55
+ restore?: Restore
56
+ }
57
+
58
+ export type DeleteRestoreRequest = {
59
+ cluster?: string
60
+ name?: string
61
+ }
62
+
63
+ export type Restore = {
64
+ metadata?: KcoralIoApiTypesObjectmeta.ObjectMeta
65
+ spec?: RestoreSpec
66
+ status?: RestoreStatus
67
+ }
68
+
69
+ export type ExecRestoreHook = {
70
+ command?: string[]
71
+ container?: string
72
+ execTimeout?: string
73
+ onError?: ExecRestoreHookHookErrorMode
74
+ waitTimeout?: string
75
+ }
76
+
77
+ export type RestoreResourceHook = {
78
+ exec?: ExecRestoreHook
79
+ }
80
+
81
+ export type RestoreResourceHookSpec = {
82
+ excludedNamespaces?: string[]
83
+ excludedResources?: string[]
84
+ includedNamespaces?: string[]
85
+ includedResources?: string[]
86
+ labelSelector?: KcoralIoApiTypesObjectmeta.LabelSelector
87
+ name?: string
88
+ postHooks?: RestoreResourceHook[]
89
+ }
90
+
91
+ export type RestoreHooks = {
92
+ resources?: RestoreResourceHookSpec[]
93
+ }
94
+
95
+ export type RestoreStatusSpec = {
96
+ excludedResources?: string[]
97
+ includedResources?: string[]
98
+ }
99
+
100
+ export type RestoreSpec = {
101
+ backupName?: string
102
+ excludedNamespaces?: string[]
103
+ excludedResources?: string[]
104
+ existingResourcePolicy?: RestoreSpecPolicyType
105
+ hooks?: RestoreHooks
106
+ includeClusterResources?: boolean
107
+ includedNamespaces?: string[]
108
+ includedResources?: string[]
109
+ labelSelector?: KcoralIoApiTypesObjectmeta.LabelSelector
110
+ namespaceMapping?: {[key: string]: string}
111
+ orLabelSelectors?: KcoralIoApiTypesObjectmeta.LabelSelector[]
112
+ preserveNodePorts?: boolean
113
+ restorePvs?: boolean
114
+ restoreStatus?: RestoreStatusSpec
115
+ scheduleName?: string
116
+ }
117
+
118
+ export type RestoreProgress = {
119
+ itemsRestored?: number
120
+ totalItems?: number
121
+ }
122
+
123
+ export type RestoreStatus = {
124
+ completionTimestamp?: string
125
+ errors?: number
126
+ failureReason?: string
127
+ phase?: RestoreStatusRestorePhase
128
+ progress?: RestoreProgress
129
+ startTimestamp?: string
130
+ validationErrors?: string[]
131
+ warnings?: number
132
+ }
@@ -0,0 +1,82 @@
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 KcoralIoApiTypesObjectmeta from "../../types/objectmeta.pb"
8
+ import * as KcoralIoApiTypesPage from "../../types/page.pb"
9
+ import * as KcoralIoApiVeleroV1alpha1Backup from "./backup.pb"
10
+
11
+ export enum ScheduleStatusSchedulePhase {
12
+ SCHEDULE_PHASE_UNSPECIFIED = "SCHEDULE_PHASE_UNSPECIFIED",
13
+ New = "New",
14
+ Enabled = "Enabled",
15
+ FailedValidation = "FailedValidation",
16
+ }
17
+
18
+ export type ListSchedulesResponse = {
19
+ items?: Schedule[]
20
+ pagination?: KcoralIoApiTypesPage.Pagination
21
+ }
22
+
23
+ export type ListSchedulesRequest = {
24
+ cluster?: string
25
+ page?: number
26
+ pageSize?: number
27
+ fuzzyName?: string
28
+ sortBy?: KcoralIoApiTypesPage.SortBy
29
+ sortDir?: KcoralIoApiTypesPage.SortDir
30
+ labelSelector?: string
31
+ fieldSelector?: string
32
+ }
33
+
34
+ export type GetScheduleRequest = {
35
+ cluster?: string
36
+ name?: string
37
+ }
38
+
39
+ export type CreateScheduleRequest = {
40
+ cluster?: string
41
+ schedule?: Schedule
42
+ }
43
+
44
+ export type UpdateScheduleRequest = {
45
+ cluster?: string
46
+ name?: string
47
+ schedule?: Schedule
48
+ }
49
+
50
+ export type DeleteScheduleRequest = {
51
+ cluster?: string
52
+ name?: string
53
+ }
54
+
55
+ export type PauseScheduleRequest = {
56
+ cluster?: string
57
+ name?: string
58
+ }
59
+
60
+ export type ResumeScheduleRequest = {
61
+ cluster?: string
62
+ name?: string
63
+ }
64
+
65
+ export type Schedule = {
66
+ metadata?: KcoralIoApiTypesObjectmeta.ObjectMeta
67
+ spec?: ScheduleSpec
68
+ status?: ScheduleStatus
69
+ }
70
+
71
+ export type ScheduleSpec = {
72
+ schedule?: string
73
+ template?: KcoralIoApiVeleroV1alpha1Backup.BackupSpec
74
+ useOwnerReferencesInBackup?: boolean
75
+ paused?: boolean
76
+ }
77
+
78
+ export type ScheduleStatus = {
79
+ lastBackup?: string
80
+ phase?: ScheduleStatusSchedulePhase
81
+ validationErrors?: string[]
82
+ }
package/package.json ADDED
@@ -0,0 +1,12 @@
1
+ {
2
+ "name":"@daocloud-proto/kcoral",
3
+ "version":"0.0.1-6",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "keywords": [],
10
+ "author": "",
11
+ "license": "ISC"
12
+ }