@cerbos/embedded
Version:
Client library for interacting with embedded Cerbos policy decision points generated by Cerbos Hub from server-side Node.js and browser-based applications
121 lines (110 loc) • 3.69 kB
text/typescript
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// source: google/api/http.proto
/* eslint-disable */
export const protobufPackage = "google.api";
export interface HttpRule {
selector: string;
pattern?:
| { $case: "get"; get: string }
| { $case: "put"; put: string }
| { $case: "post"; post: string }
| { $case: "delete"; delete: string }
| { $case: "patch"; patch: string }
| { $case: "custom"; custom: CustomHttpPattern }
| undefined;
body: string;
responseBody: string;
additionalBindings: HttpRule[];
}
export interface CustomHttpPattern {
kind: string;
path: string;
}
export const HttpRule: MessageFns<HttpRule> = {
fromJSON(object: any): HttpRule {
return {
selector: isSet(object.selector)
? globalThis.String(object.selector)
: "",
pattern: isSet(object.get)
? { $case: "get", get: globalThis.String(object.get) }
: isSet(object.put)
? { $case: "put", put: globalThis.String(object.put) }
: isSet(object.post)
? { $case: "post", post: globalThis.String(object.post) }
: isSet(object.delete)
? { $case: "delete", delete: globalThis.String(object.delete) }
: isSet(object.patch)
? { $case: "patch", patch: globalThis.String(object.patch) }
: isSet(object.custom)
? {
$case: "custom",
custom: CustomHttpPattern.fromJSON(object.custom),
}
: undefined,
body: isSet(object.body) ? globalThis.String(object.body) : "",
responseBody: isSet(object.responseBody)
? globalThis.String(object.responseBody)
: "",
additionalBindings: globalThis.Array.isArray(object?.additionalBindings)
? object.additionalBindings.map((e: any) => HttpRule.fromJSON(e))
: [],
};
},
toJSON(message: HttpRule): unknown {
const obj: any = {};
if (message.selector !== "") {
obj.selector = message.selector;
}
if (message.pattern?.$case === "get") {
obj.get = message.pattern.get;
} else if (message.pattern?.$case === "put") {
obj.put = message.pattern.put;
} else if (message.pattern?.$case === "post") {
obj.post = message.pattern.post;
} else if (message.pattern?.$case === "delete") {
obj.delete = message.pattern.delete;
} else if (message.pattern?.$case === "patch") {
obj.patch = message.pattern.patch;
} else if (message.pattern?.$case === "custom") {
obj.custom = CustomHttpPattern.toJSON(message.pattern.custom);
}
if (message.body !== "") {
obj.body = message.body;
}
if (message.responseBody !== "") {
obj.responseBody = message.responseBody;
}
if (message.additionalBindings?.length) {
obj.additionalBindings = message.additionalBindings.map((e) =>
HttpRule.toJSON(e),
);
}
return obj;
},
};
export const CustomHttpPattern: MessageFns<CustomHttpPattern> = {
fromJSON(object: any): CustomHttpPattern {
return {
kind: isSet(object.kind) ? globalThis.String(object.kind) : "",
path: isSet(object.path) ? globalThis.String(object.path) : "",
};
},
toJSON(message: CustomHttpPattern): unknown {
const obj: any = {};
if (message.kind !== "") {
obj.kind = message.kind;
}
if (message.path !== "") {
obj.path = message.path;
}
return obj;
},
};
function isSet(value: any): boolean {
return value !== null && value !== undefined;
}
export interface MessageFns<T> {
fromJSON(object: any): T;
toJSON(message: T): unknown;
}