UNPKG

yc-types

Version:

TypeScript types and interfaces for YellowCard protobuf definitions

79 lines (78 loc) 2.92 kB
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; import { Any } from "../protobuf/any"; export declare const protobufPackage = "google.api"; /** * Message that represents an arbitrary HTTP body. It should only be used for * payload formats that can't be represented as JSON, such as raw binary or * an HTML page. * * This message can be used both in streaming and non-streaming API methods in * the request as well as the response. * * It can be used as a top-level request field, which is convenient if one * wants to extract parameters from either the URL or HTTP template into the * request fields and also want access to the raw HTTP body. * * Example: * * message GetResourceRequest { * // A unique request id. * string request_id = 1; * * // The raw HTTP body is bound to this field. * google.api.HttpBody http_body = 2; * * } * * service ResourceService { * rpc GetResource(GetResourceRequest) * returns (google.api.HttpBody); * rpc UpdateResource(google.api.HttpBody) * returns (google.protobuf.Empty); * * } * * Example with streaming methods: * * service CaldavService { * rpc GetCalendar(stream google.api.HttpBody) * returns (stream google.api.HttpBody); * rpc UpdateCalendar(stream google.api.HttpBody) * returns (stream google.api.HttpBody); * * } * * Use of this type only changes how the request and response bodies are * handled, all other features will continue to work unchanged. */ export interface HttpBody { /** The HTTP Content-Type header value specifying the content type of the body. */ contentType: string; /** The HTTP request/response body as raw binary. */ data: Uint8Array; /** * Application specific response metadata. Must be set in the first response * for streaming APIs. */ extensions: Any[]; } export declare const HttpBody: MessageFns<HttpBody>; type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? { [K in keyof T]?: DeepPartial<T[K]>; } : Partial<T>; type KeysOfUnion<T> = T extends T ? keyof T : never; export type Exact<P, I extends P> = P extends Builtin ? P : P & { [K in keyof P]: Exact<P[K], I[K]>; } & { [K in Exclude<keyof I, KeysOfUnion<P>>]: never; }; export interface MessageFns<T> { encode(message: T, writer?: BinaryWriter): BinaryWriter; decode(input: BinaryReader | Uint8Array, length?: number): T; fromJSON(object: any): T; toJSON(message: T): unknown; create<I extends Exact<DeepPartial<T>, I>>(base?: I): T; fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T; } export {};