UNPKG

tinkoff-invest-api

Version:
1,486 lines (1,422 loc) 184 kB
/* eslint-disable */ import Long from "long"; import _m0 from "protobufjs/minimal"; export const protobufPackage = "google.protobuf"; /** The full set of known editions. */ export enum Edition { /** EDITION_UNKNOWN - A placeholder for an unknown edition value. */ EDITION_UNKNOWN = 0, /** * EDITION_LEGACY - A placeholder edition for specifying default behaviors *before* a feature * was first introduced. This is effectively an "infinite past". */ EDITION_LEGACY = 900, /** * EDITION_PROTO2 - Legacy syntax "editions". These pre-date editions, but behave much like * distinct editions. These can't be used to specify the edition of proto * files, but feature definitions must supply proto2/proto3 defaults for * backwards compatibility. */ EDITION_PROTO2 = 998, EDITION_PROTO3 = 999, /** * EDITION_2023 - Editions that have been released. The specific values are arbitrary and * should not be depended on, but they will always be time-ordered for easy * comparison. */ EDITION_2023 = 1000, EDITION_2024 = 1001, /** * EDITION_1_TEST_ONLY - Placeholder editions for testing feature resolution. These should not be * used or relied on outside of tests. */ EDITION_1_TEST_ONLY = 1, EDITION_2_TEST_ONLY = 2, EDITION_99997_TEST_ONLY = 99997, EDITION_99998_TEST_ONLY = 99998, EDITION_99999_TEST_ONLY = 99999, /** * EDITION_MAX - Placeholder for specifying unbounded edition support. This should only * ever be used by plugins that can expect to never require any changes to * support a new edition. */ EDITION_MAX = 2147483647, UNRECOGNIZED = -1, } export function editionFromJSON(object: any): Edition { switch (object) { case 0: case "EDITION_UNKNOWN": return Edition.EDITION_UNKNOWN; case 900: case "EDITION_LEGACY": return Edition.EDITION_LEGACY; case 998: case "EDITION_PROTO2": return Edition.EDITION_PROTO2; case 999: case "EDITION_PROTO3": return Edition.EDITION_PROTO3; case 1000: case "EDITION_2023": return Edition.EDITION_2023; case 1001: case "EDITION_2024": return Edition.EDITION_2024; case 1: case "EDITION_1_TEST_ONLY": return Edition.EDITION_1_TEST_ONLY; case 2: case "EDITION_2_TEST_ONLY": return Edition.EDITION_2_TEST_ONLY; case 99997: case "EDITION_99997_TEST_ONLY": return Edition.EDITION_99997_TEST_ONLY; case 99998: case "EDITION_99998_TEST_ONLY": return Edition.EDITION_99998_TEST_ONLY; case 99999: case "EDITION_99999_TEST_ONLY": return Edition.EDITION_99999_TEST_ONLY; case 2147483647: case "EDITION_MAX": return Edition.EDITION_MAX; case -1: case "UNRECOGNIZED": default: return Edition.UNRECOGNIZED; } } export function editionToJSON(object: Edition): string { switch (object) { case Edition.EDITION_UNKNOWN: return "EDITION_UNKNOWN"; case Edition.EDITION_LEGACY: return "EDITION_LEGACY"; case Edition.EDITION_PROTO2: return "EDITION_PROTO2"; case Edition.EDITION_PROTO3: return "EDITION_PROTO3"; case Edition.EDITION_2023: return "EDITION_2023"; case Edition.EDITION_2024: return "EDITION_2024"; case Edition.EDITION_1_TEST_ONLY: return "EDITION_1_TEST_ONLY"; case Edition.EDITION_2_TEST_ONLY: return "EDITION_2_TEST_ONLY"; case Edition.EDITION_99997_TEST_ONLY: return "EDITION_99997_TEST_ONLY"; case Edition.EDITION_99998_TEST_ONLY: return "EDITION_99998_TEST_ONLY"; case Edition.EDITION_99999_TEST_ONLY: return "EDITION_99999_TEST_ONLY"; case Edition.EDITION_MAX: return "EDITION_MAX"; case Edition.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** * The protocol compiler can output a FileDescriptorSet containing the .proto * files it parses. */ export interface FileDescriptorSet { file: FileDescriptorProto[]; } /** Describes a complete .proto file. */ export interface FileDescriptorProto { /** file name, relative to root of source tree */ name: string; /** e.g. "foo", "foo.bar", etc. */ package: string; /** Names of files imported by this file. */ dependency: string[]; /** Indexes of the public imported files in the dependency list above. */ publicDependency: number[]; /** * Indexes of the weak imported files in the dependency list. * For Google-internal migration only. Do not use. */ weakDependency: number[]; /** All top-level definitions in this file. */ messageType: DescriptorProto[]; enumType: EnumDescriptorProto[]; service: ServiceDescriptorProto[]; extension: FieldDescriptorProto[]; options?: | FileOptions | undefined; /** * This field contains optional information about the original source code. * You may safely remove this entire field without harming runtime * functionality of the descriptors -- the information is needed only by * development tools. */ sourceCodeInfo?: | SourceCodeInfo | undefined; /** * The syntax of the proto file. * The supported values are "proto2", "proto3", and "editions". * * If `edition` is present, this value must be "editions". */ syntax: string; /** The edition of the proto file. */ edition: Edition; } /** Describes a message type. */ export interface DescriptorProto { name: string; field: FieldDescriptorProto[]; extension: FieldDescriptorProto[]; nestedType: DescriptorProto[]; enumType: EnumDescriptorProto[]; extensionRange: DescriptorProto_ExtensionRange[]; oneofDecl: OneofDescriptorProto[]; options?: MessageOptions | undefined; reservedRange: DescriptorProto_ReservedRange[]; /** * Reserved field names, which may not be used by fields in the same message. * A given name may only be reserved once. */ reservedName: string[]; } export interface DescriptorProto_ExtensionRange { /** Inclusive. */ start: number; /** Exclusive. */ end: number; options?: ExtensionRangeOptions | undefined; } /** * Range of reserved tag numbers. Reserved tag numbers may not be used by * fields or extension ranges in the same message. Reserved ranges may * not overlap. */ export interface DescriptorProto_ReservedRange { /** Inclusive. */ start: number; /** Exclusive. */ end: number; } export interface ExtensionRangeOptions { /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; /** * For external users: DO NOT USE. We are in the process of open sourcing * extension declaration and executing internal cleanups before it can be * used externally. */ declaration: ExtensionRangeOptions_Declaration[]; /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** * The verification state of the range. * TODO: flip the default to DECLARATION once all empty ranges * are marked as UNVERIFIED. */ verification: ExtensionRangeOptions_VerificationState; } /** The verification state of the extension range. */ export enum ExtensionRangeOptions_VerificationState { /** DECLARATION - All the extensions of the range must be declared. */ DECLARATION = 0, UNVERIFIED = 1, UNRECOGNIZED = -1, } export function extensionRangeOptions_VerificationStateFromJSON(object: any): ExtensionRangeOptions_VerificationState { switch (object) { case 0: case "DECLARATION": return ExtensionRangeOptions_VerificationState.DECLARATION; case 1: case "UNVERIFIED": return ExtensionRangeOptions_VerificationState.UNVERIFIED; case -1: case "UNRECOGNIZED": default: return ExtensionRangeOptions_VerificationState.UNRECOGNIZED; } } export function extensionRangeOptions_VerificationStateToJSON(object: ExtensionRangeOptions_VerificationState): string { switch (object) { case ExtensionRangeOptions_VerificationState.DECLARATION: return "DECLARATION"; case ExtensionRangeOptions_VerificationState.UNVERIFIED: return "UNVERIFIED"; case ExtensionRangeOptions_VerificationState.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export interface ExtensionRangeOptions_Declaration { /** The extension number declared within the extension range. */ number: number; /** * The fully-qualified name of the extension field. There must be a leading * dot in front of the full name. */ fullName: string; /** * The fully-qualified type name of the extension field. Unlike * Metadata.type, Declaration.type must have a leading dot for messages * and enums. */ type: string; /** * If true, indicates that the number is reserved in the extension range, * and any extension field with the number will fail to compile. Set this * when a declared extension field is deleted. */ reserved: boolean; /** * If true, indicates that the extension must be defined as repeated. * Otherwise the extension must be defined as optional. */ repeated: boolean; } /** Describes a field within a message. */ export interface FieldDescriptorProto { name: string; number: number; label: FieldDescriptorProto_Label; /** * If type_name is set, this need not be set. If both this and type_name * are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. */ type: FieldDescriptorProto_Type; /** * For message and enum types, this is the name of the type. If the name * starts with a '.', it is fully-qualified. Otherwise, C++-like scoping * rules are used to find the type (i.e. first the nested types within this * message are searched, then within the parent, on up to the root * namespace). */ typeName: string; /** * For extensions, this is the name of the type being extended. It is * resolved in the same manner as type_name. */ extendee: string; /** * For numeric types, contains the original text representation of the value. * For booleans, "true" or "false". * For strings, contains the default text contents (not escaped in any way). * For bytes, contains the C escaped value. All bytes >= 128 are escaped. */ defaultValue: string; /** * If set, gives the index of a oneof in the containing type's oneof_decl * list. This field is a member of that oneof. */ oneofIndex: number; /** * JSON name of this field. The value is set by protocol compiler. If the * user has set a "json_name" option on this field, that option's value * will be used. Otherwise, it's deduced from the field's name by converting * it to camelCase. */ jsonName: string; options?: | FieldOptions | undefined; /** * If true, this is a proto3 "optional". When a proto3 field is optional, it * tracks presence regardless of field type. * * When proto3_optional is true, this field must belong to a oneof to signal * to old proto3 clients that presence is tracked for this field. This oneof * is known as a "synthetic" oneof, and this field must be its sole member * (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs * exist in the descriptor only, and do not generate any API. Synthetic oneofs * must be ordered after all "real" oneofs. * * For message fields, proto3_optional doesn't create any semantic change, * since non-repeated message fields always track presence. However it still * indicates the semantic detail of whether the user wrote "optional" or not. * This can be useful for round-tripping the .proto file. For consistency we * give message fields a synthetic oneof also, even though it is not required * to track presence. This is especially important because the parser can't * tell if a field is a message or an enum, so it must always create a * synthetic oneof. * * Proto2 optional fields do not set this flag, because they already indicate * optional with `LABEL_OPTIONAL`. */ proto3Optional: boolean; } export enum FieldDescriptorProto_Type { /** * TYPE_DOUBLE - 0 is reserved for errors. * Order is weird for historical reasons. */ TYPE_DOUBLE = 1, TYPE_FLOAT = 2, /** * TYPE_INT64 - Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if * negative values are likely. */ TYPE_INT64 = 3, TYPE_UINT64 = 4, /** * TYPE_INT32 - Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if * negative values are likely. */ TYPE_INT32 = 5, TYPE_FIXED64 = 6, TYPE_FIXED32 = 7, TYPE_BOOL = 8, TYPE_STRING = 9, /** * TYPE_GROUP - Tag-delimited aggregate. * Group type is deprecated and not supported after google.protobuf. However, Proto3 * implementations should still be able to parse the group wire format and * treat group fields as unknown fields. In Editions, the group wire format * can be enabled via the `message_encoding` feature. */ TYPE_GROUP = 10, /** TYPE_MESSAGE - Length-delimited aggregate. */ TYPE_MESSAGE = 11, /** TYPE_BYTES - New in version 2. */ TYPE_BYTES = 12, TYPE_UINT32 = 13, TYPE_ENUM = 14, TYPE_SFIXED32 = 15, TYPE_SFIXED64 = 16, /** TYPE_SINT32 - Uses ZigZag encoding. */ TYPE_SINT32 = 17, /** TYPE_SINT64 - Uses ZigZag encoding. */ TYPE_SINT64 = 18, UNRECOGNIZED = -1, } export function fieldDescriptorProto_TypeFromJSON(object: any): FieldDescriptorProto_Type { switch (object) { case 1: case "TYPE_DOUBLE": return FieldDescriptorProto_Type.TYPE_DOUBLE; case 2: case "TYPE_FLOAT": return FieldDescriptorProto_Type.TYPE_FLOAT; case 3: case "TYPE_INT64": return FieldDescriptorProto_Type.TYPE_INT64; case 4: case "TYPE_UINT64": return FieldDescriptorProto_Type.TYPE_UINT64; case 5: case "TYPE_INT32": return FieldDescriptorProto_Type.TYPE_INT32; case 6: case "TYPE_FIXED64": return FieldDescriptorProto_Type.TYPE_FIXED64; case 7: case "TYPE_FIXED32": return FieldDescriptorProto_Type.TYPE_FIXED32; case 8: case "TYPE_BOOL": return FieldDescriptorProto_Type.TYPE_BOOL; case 9: case "TYPE_STRING": return FieldDescriptorProto_Type.TYPE_STRING; case 10: case "TYPE_GROUP": return FieldDescriptorProto_Type.TYPE_GROUP; case 11: case "TYPE_MESSAGE": return FieldDescriptorProto_Type.TYPE_MESSAGE; case 12: case "TYPE_BYTES": return FieldDescriptorProto_Type.TYPE_BYTES; case 13: case "TYPE_UINT32": return FieldDescriptorProto_Type.TYPE_UINT32; case 14: case "TYPE_ENUM": return FieldDescriptorProto_Type.TYPE_ENUM; case 15: case "TYPE_SFIXED32": return FieldDescriptorProto_Type.TYPE_SFIXED32; case 16: case "TYPE_SFIXED64": return FieldDescriptorProto_Type.TYPE_SFIXED64; case 17: case "TYPE_SINT32": return FieldDescriptorProto_Type.TYPE_SINT32; case 18: case "TYPE_SINT64": return FieldDescriptorProto_Type.TYPE_SINT64; case -1: case "UNRECOGNIZED": default: return FieldDescriptorProto_Type.UNRECOGNIZED; } } export function fieldDescriptorProto_TypeToJSON(object: FieldDescriptorProto_Type): string { switch (object) { case FieldDescriptorProto_Type.TYPE_DOUBLE: return "TYPE_DOUBLE"; case FieldDescriptorProto_Type.TYPE_FLOAT: return "TYPE_FLOAT"; case FieldDescriptorProto_Type.TYPE_INT64: return "TYPE_INT64"; case FieldDescriptorProto_Type.TYPE_UINT64: return "TYPE_UINT64"; case FieldDescriptorProto_Type.TYPE_INT32: return "TYPE_INT32"; case FieldDescriptorProto_Type.TYPE_FIXED64: return "TYPE_FIXED64"; case FieldDescriptorProto_Type.TYPE_FIXED32: return "TYPE_FIXED32"; case FieldDescriptorProto_Type.TYPE_BOOL: return "TYPE_BOOL"; case FieldDescriptorProto_Type.TYPE_STRING: return "TYPE_STRING"; case FieldDescriptorProto_Type.TYPE_GROUP: return "TYPE_GROUP"; case FieldDescriptorProto_Type.TYPE_MESSAGE: return "TYPE_MESSAGE"; case FieldDescriptorProto_Type.TYPE_BYTES: return "TYPE_BYTES"; case FieldDescriptorProto_Type.TYPE_UINT32: return "TYPE_UINT32"; case FieldDescriptorProto_Type.TYPE_ENUM: return "TYPE_ENUM"; case FieldDescriptorProto_Type.TYPE_SFIXED32: return "TYPE_SFIXED32"; case FieldDescriptorProto_Type.TYPE_SFIXED64: return "TYPE_SFIXED64"; case FieldDescriptorProto_Type.TYPE_SINT32: return "TYPE_SINT32"; case FieldDescriptorProto_Type.TYPE_SINT64: return "TYPE_SINT64"; case FieldDescriptorProto_Type.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export enum FieldDescriptorProto_Label { /** LABEL_OPTIONAL - 0 is reserved for errors */ LABEL_OPTIONAL = 1, LABEL_REPEATED = 3, /** * LABEL_REQUIRED - The required label is only allowed in google.protobuf. In proto3 and Editions * it's explicitly prohibited. In Editions, the `field_presence` feature * can be used to get this behavior. */ LABEL_REQUIRED = 2, UNRECOGNIZED = -1, } export function fieldDescriptorProto_LabelFromJSON(object: any): FieldDescriptorProto_Label { switch (object) { case 1: case "LABEL_OPTIONAL": return FieldDescriptorProto_Label.LABEL_OPTIONAL; case 3: case "LABEL_REPEATED": return FieldDescriptorProto_Label.LABEL_REPEATED; case 2: case "LABEL_REQUIRED": return FieldDescriptorProto_Label.LABEL_REQUIRED; case -1: case "UNRECOGNIZED": default: return FieldDescriptorProto_Label.UNRECOGNIZED; } } export function fieldDescriptorProto_LabelToJSON(object: FieldDescriptorProto_Label): string { switch (object) { case FieldDescriptorProto_Label.LABEL_OPTIONAL: return "LABEL_OPTIONAL"; case FieldDescriptorProto_Label.LABEL_REPEATED: return "LABEL_REPEATED"; case FieldDescriptorProto_Label.LABEL_REQUIRED: return "LABEL_REQUIRED"; case FieldDescriptorProto_Label.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** Describes a oneof. */ export interface OneofDescriptorProto { name: string; options?: OneofOptions | undefined; } /** Describes an enum type. */ export interface EnumDescriptorProto { name: string; value: EnumValueDescriptorProto[]; options?: | EnumOptions | undefined; /** * Range of reserved numeric values. Reserved numeric values may not be used * by enum values in the same enum declaration. Reserved ranges may not * overlap. */ reservedRange: EnumDescriptorProto_EnumReservedRange[]; /** * Reserved enum value names, which may not be reused. A given name may only * be reserved once. */ reservedName: string[]; } /** * Range of reserved numeric values. Reserved values may not be used by * entries in the same enum. Reserved ranges may not overlap. * * Note that this is distinct from DescriptorProto.ReservedRange in that it * is inclusive such that it can appropriately represent the entire int32 * domain. */ export interface EnumDescriptorProto_EnumReservedRange { /** Inclusive. */ start: number; /** Inclusive. */ end: number; } /** Describes a value within an enum. */ export interface EnumValueDescriptorProto { name: string; number: number; options?: EnumValueOptions | undefined; } /** Describes a service. */ export interface ServiceDescriptorProto { name: string; method: MethodDescriptorProto[]; options?: ServiceOptions | undefined; } /** Describes a method of a service. */ export interface MethodDescriptorProto { name: string; /** * Input and output type names. These are resolved in the same way as * FieldDescriptorProto.type_name, but must refer to a message type. */ inputType: string; outputType: string; options?: | MethodOptions | undefined; /** Identifies if client streams multiple client messages */ clientStreaming: boolean; /** Identifies if server streams multiple server messages */ serverStreaming: boolean; } export interface FileOptions { /** * Sets the Java package where classes generated from this .proto will be * placed. By default, the proto package is used, but this is often * inappropriate because proto packages do not normally start with backwards * domain names. */ javaPackage: string; /** * Controls the name of the wrapper Java class generated for the .proto file. * That class will always contain the .proto file's getDescriptor() method as * well as any top-level extensions defined in the .proto file. * If java_multiple_files is disabled, then all the other classes from the * .proto file will be nested inside the single wrapper outer class. */ javaOuterClassname: string; /** * If enabled, then the Java code generator will generate a separate .java * file for each top-level message, enum, and service defined in the .proto * file. Thus, these types will *not* be nested inside the wrapper class * named by java_outer_classname. However, the wrapper class will still be * generated to contain the file's getDescriptor() method as well as any * top-level extensions defined in the file. */ javaMultipleFiles: boolean; /** * This option does nothing. * * @deprecated */ javaGenerateEqualsAndHash: boolean; /** * A proto2 file can set this to true to opt in to UTF-8 checking for Java, * which will throw an exception if invalid UTF-8 is parsed from the wire or * assigned to a string field. * * TODO: clarify exactly what kinds of field types this option * applies to, and update these docs accordingly. * * Proto3 files already perform these checks. Setting the option explicitly to * false has no effect: it cannot be used to opt proto3 files out of UTF-8 * checks. */ javaStringCheckUtf8: boolean; optimizeFor: FileOptions_OptimizeMode; /** * Sets the Go package where structs generated from this .proto will be * placed. If omitted, the Go package will be derived from the following: * - The basename of the package import path, if provided. * - Otherwise, the package statement in the .proto file, if present. * - Otherwise, the basename of the .proto file, without extension. */ goPackage: string; /** * Should generic services be generated in each language? "Generic" services * are not specific to any particular RPC system. They are generated by the * main code generators in each language (without additional plugins). * Generic services were the only kind of service generation supported by * early versions of google.protobuf. * * Generic services are now considered deprecated in favor of using plugins * that generate code specific to your particular RPC system. Therefore, * these default to false. Old code which depends on generic services should * explicitly set them to true. */ ccGenericServices: boolean; javaGenericServices: boolean; pyGenericServices: boolean; /** * Is this file deprecated? * Depending on the target platform, this can emit Deprecated annotations * for everything in the file, or it will be completely ignored; in the very * least, this is a formalization for deprecating files. */ deprecated: boolean; /** * Enables the use of arenas for the proto messages in this file. This applies * only to generated classes for C++. */ ccEnableArenas: boolean; /** * Sets the objective c class prefix which is prepended to all objective c * generated classes from this .proto. There is no default. */ objcClassPrefix: string; /** Namespace for generated classes; defaults to the package. */ csharpNamespace: string; /** * By default Swift generators will take the proto package and CamelCase it * replacing '.' with underscore and use that to prefix the types/symbols * defined. When this options is provided, they will use this value instead * to prefix the types/symbols defined. */ swiftPrefix: string; /** * Sets the php class prefix which is prepended to all php generated classes * from this .proto. Default is empty. */ phpClassPrefix: string; /** * Use this option to change the namespace of php generated classes. Default * is empty. When this option is empty, the package name will be used for * determining the namespace. */ phpNamespace: string; /** * Use this option to change the namespace of php generated metadata classes. * Default is empty. When this option is empty, the proto file name will be * used for determining the namespace. */ phpMetadataNamespace: string; /** * Use this option to change the package of ruby generated classes. Default * is empty. When this option is not set, the package name will be used for * determining the ruby package. */ rubyPackage: string; /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** * The parser stores options it doesn't recognize here. * See the documentation for the "Options" section above. */ uninterpretedOption: UninterpretedOption[]; } /** Generated classes can be optimized for speed or code size. */ export enum FileOptions_OptimizeMode { /** SPEED - Generate complete code for parsing, serialization, */ SPEED = 1, /** CODE_SIZE - etc. */ CODE_SIZE = 2, /** LITE_RUNTIME - Generate code using MessageLite and the lite runtime. */ LITE_RUNTIME = 3, UNRECOGNIZED = -1, } export function fileOptions_OptimizeModeFromJSON(object: any): FileOptions_OptimizeMode { switch (object) { case 1: case "SPEED": return FileOptions_OptimizeMode.SPEED; case 2: case "CODE_SIZE": return FileOptions_OptimizeMode.CODE_SIZE; case 3: case "LITE_RUNTIME": return FileOptions_OptimizeMode.LITE_RUNTIME; case -1: case "UNRECOGNIZED": default: return FileOptions_OptimizeMode.UNRECOGNIZED; } } export function fileOptions_OptimizeModeToJSON(object: FileOptions_OptimizeMode): string { switch (object) { case FileOptions_OptimizeMode.SPEED: return "SPEED"; case FileOptions_OptimizeMode.CODE_SIZE: return "CODE_SIZE"; case FileOptions_OptimizeMode.LITE_RUNTIME: return "LITE_RUNTIME"; case FileOptions_OptimizeMode.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export interface MessageOptions { /** * Set true to use the old proto1 MessageSet wire format for extensions. * This is provided for backwards-compatibility with the MessageSet wire * format. You should not use this for any other reason: It's less * efficient, has fewer features, and is more complicated. * * The message must be defined exactly as follows: * message Foo { * option message_set_wire_format = true; * extensions 4 to max; * } * Note that the message cannot have any defined fields; MessageSets only * have extensions. * * All extensions of your type must be singular messages; e.g. they cannot * be int32s, enums, or repeated messages. * * Because this is an option, the above two restrictions are not enforced by * the protocol compiler. */ messageSetWireFormat: boolean; /** * Disables the generation of the standard "descriptor()" accessor, which can * conflict with a field of the same name. This is meant to make migration * from proto1 easier; new code should avoid fields named "descriptor". */ noStandardDescriptorAccessor: boolean; /** * Is this message deprecated? * Depending on the target platform, this can emit Deprecated annotations * for the message, or it will be completely ignored; in the very least, * this is a formalization for deprecating messages. */ deprecated: boolean; /** * Whether the message is an automatically generated map entry type for the * maps field. * * For maps fields: * map<KeyType, ValueType> map_field = 1; * The parsed descriptor looks like: * message MapFieldEntry { * option map_entry = true; * optional KeyType key = 1; * optional ValueType value = 2; * } * repeated MapFieldEntry map_field = 1; * * Implementations may choose not to generate the map_entry=true message, but * use a native map in the target language to hold the keys and values. * The reflection APIs in such implementations still need to work as * if the field is a repeated message field. * * NOTE: Do not set the option in .proto files. Always use the maps syntax * instead. The option should only be implicitly set by the proto compiler * parser. */ mapEntry: boolean; /** * Enable the legacy handling of JSON field name conflicts. This lowercases * and strips underscored from the fields before comparison in proto3 only. * The new behavior takes `json_name` into account and applies to proto2 as * well. * * This should only be used as a temporary measure against broken builds due * to the change in behavior for JSON field name conflicts. * * TODO This is legacy behavior we plan to remove once downstream * teams have had time to migrate. * * @deprecated */ deprecatedLegacyJsonFieldConflicts: boolean; /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; } export interface FieldOptions { /** * NOTE: ctype is deprecated. Use `features.(pb.cpp).string_type` instead. * The ctype option instructs the C++ code generator to use a different * representation of the field than it normally would. See the specific * options below. This option is only implemented to support use of * [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of * type "bytes" in the open source release. * TODO: make ctype actually deprecated. */ ctype: FieldOptions_CType; /** * The packed option can be enabled for repeated primitive fields to enable * a more efficient representation on the wire. Rather than repeatedly * writing the tag and type for each element, the entire array is encoded as * a single length-delimited blob. In proto3, only explicit setting it to * false will avoid using packed encoding. This option is prohibited in * Editions, but the `repeated_field_encoding` feature can be used to control * the behavior. */ packed: boolean; /** * The jstype option determines the JavaScript type used for values of the * field. The option is permitted only for 64 bit integral and fixed types * (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING * is represented as JavaScript string, which avoids loss of precision that * can happen when a large value is converted to a floating point JavaScript. * Specifying JS_NUMBER for the jstype causes the generated JavaScript code to * use the JavaScript "number" type. The behavior of the default option * JS_NORMAL is implementation dependent. * * This option is an enum to permit additional types to be added, e.g. * goog.math.Integer. */ jstype: FieldOptions_JSType; /** * Should this field be parsed lazily? Lazy applies only to message-type * fields. It means that when the outer message is initially parsed, the * inner message's contents will not be parsed but instead stored in encoded * form. The inner message will actually be parsed when it is first accessed. * * This is only a hint. Implementations are free to choose whether to use * eager or lazy parsing regardless of the value of this option. However, * setting this option true suggests that the protocol author believes that * using lazy parsing on this field is worth the additional bookkeeping * overhead typically needed to implement it. * * This option does not affect the public interface of any generated code; * all method signatures remain the same. Furthermore, thread-safety of the * interface is not affected by this option; const methods remain safe to * call from multiple threads concurrently, while non-const methods continue * to require exclusive access. * * Note that lazy message fields are still eagerly verified to check * ill-formed wireformat or missing required fields. Calling IsInitialized() * on the outer message would fail if the inner message has missing required * fields. Failed verification would result in parsing failure (except when * uninitialized messages are acceptable). */ lazy: boolean; /** * unverified_lazy does no correctness checks on the byte stream. This should * only be used where lazy with verification is prohibitive for performance * reasons. */ unverifiedLazy: boolean; /** * Is this field deprecated? * Depending on the target platform, this can emit Deprecated annotations * for accessors, or it will be completely ignored; in the very least, this * is a formalization for deprecating fields. */ deprecated: boolean; /** For Google-internal migration only. Do not use. */ weak: boolean; /** * Indicate that the field value should not be printed out when using debug * formats, e.g. when the field contains sensitive credentials. */ debugRedact: boolean; retention: FieldOptions_OptionRetention; targets: FieldOptions_OptionTargetType[]; editionDefaults: FieldOptions_EditionDefault[]; /** Any features defined in the specific edition. */ features?: FeatureSet | undefined; featureSupport?: | FieldOptions_FeatureSupport | undefined; /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; } export enum FieldOptions_CType { /** STRING - Default mode. */ STRING = 0, /** * CORD - The option [ctype=CORD] may be applied to a non-repeated field of type * "bytes". It indicates that in C++, the data should be stored in a Cord * instead of a string. For very large strings, this may reduce memory * fragmentation. It may also allow better performance when parsing from a * Cord, or when parsing with aliasing enabled, as the parsed Cord may then * alias the original buffer. */ CORD = 1, STRING_PIECE = 2, UNRECOGNIZED = -1, } export function fieldOptions_CTypeFromJSON(object: any): FieldOptions_CType { switch (object) { case 0: case "STRING": return FieldOptions_CType.STRING; case 1: case "CORD": return FieldOptions_CType.CORD; case 2: case "STRING_PIECE": return FieldOptions_CType.STRING_PIECE; case -1: case "UNRECOGNIZED": default: return FieldOptions_CType.UNRECOGNIZED; } } export function fieldOptions_CTypeToJSON(object: FieldOptions_CType): string { switch (object) { case FieldOptions_CType.STRING: return "STRING"; case FieldOptions_CType.CORD: return "CORD"; case FieldOptions_CType.STRING_PIECE: return "STRING_PIECE"; case FieldOptions_CType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export enum FieldOptions_JSType { /** JS_NORMAL - Use the default type. */ JS_NORMAL = 0, /** JS_STRING - Use JavaScript strings. */ JS_STRING = 1, /** JS_NUMBER - Use JavaScript numbers. */ JS_NUMBER = 2, UNRECOGNIZED = -1, } export function fieldOptions_JSTypeFromJSON(object: any): FieldOptions_JSType { switch (object) { case 0: case "JS_NORMAL": return FieldOptions_JSType.JS_NORMAL; case 1: case "JS_STRING": return FieldOptions_JSType.JS_STRING; case 2: case "JS_NUMBER": return FieldOptions_JSType.JS_NUMBER; case -1: case "UNRECOGNIZED": default: return FieldOptions_JSType.UNRECOGNIZED; } } export function fieldOptions_JSTypeToJSON(object: FieldOptions_JSType): string { switch (object) { case FieldOptions_JSType.JS_NORMAL: return "JS_NORMAL"; case FieldOptions_JSType.JS_STRING: return "JS_STRING"; case FieldOptions_JSType.JS_NUMBER: return "JS_NUMBER"; case FieldOptions_JSType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** If set to RETENTION_SOURCE, the option will be omitted from the binary. */ export enum FieldOptions_OptionRetention { RETENTION_UNKNOWN = 0, RETENTION_RUNTIME = 1, RETENTION_SOURCE = 2, UNRECOGNIZED = -1, } export function fieldOptions_OptionRetentionFromJSON(object: any): FieldOptions_OptionRetention { switch (object) { case 0: case "RETENTION_UNKNOWN": return FieldOptions_OptionRetention.RETENTION_UNKNOWN; case 1: case "RETENTION_RUNTIME": return FieldOptions_OptionRetention.RETENTION_RUNTIME; case 2: case "RETENTION_SOURCE": return FieldOptions_OptionRetention.RETENTION_SOURCE; case -1: case "UNRECOGNIZED": default: return FieldOptions_OptionRetention.UNRECOGNIZED; } } export function fieldOptions_OptionRetentionToJSON(object: FieldOptions_OptionRetention): string { switch (object) { case FieldOptions_OptionRetention.RETENTION_UNKNOWN: return "RETENTION_UNKNOWN"; case FieldOptions_OptionRetention.RETENTION_RUNTIME: return "RETENTION_RUNTIME"; case FieldOptions_OptionRetention.RETENTION_SOURCE: return "RETENTION_SOURCE"; case FieldOptions_OptionRetention.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** * This indicates the types of entities that the field may apply to when used * as an option. If it is unset, then the field may be freely used as an * option on any kind of entity. */ export enum FieldOptions_OptionTargetType { TARGET_TYPE_UNKNOWN = 0, TARGET_TYPE_FILE = 1, TARGET_TYPE_EXTENSION_RANGE = 2, TARGET_TYPE_MESSAGE = 3, TARGET_TYPE_FIELD = 4, TARGET_TYPE_ONEOF = 5, TARGET_TYPE_ENUM = 6, TARGET_TYPE_ENUM_ENTRY = 7, TARGET_TYPE_SERVICE = 8, TARGET_TYPE_METHOD = 9, UNRECOGNIZED = -1, } export function fieldOptions_OptionTargetTypeFromJSON(object: any): FieldOptions_OptionTargetType { switch (object) { case 0: case "TARGET_TYPE_UNKNOWN": return FieldOptions_OptionTargetType.TARGET_TYPE_UNKNOWN; case 1: case "TARGET_TYPE_FILE": return FieldOptions_OptionTargetType.TARGET_TYPE_FILE; case 2: case "TARGET_TYPE_EXTENSION_RANGE": return FieldOptions_OptionTargetType.TARGET_TYPE_EXTENSION_RANGE; case 3: case "TARGET_TYPE_MESSAGE": return FieldOptions_OptionTargetType.TARGET_TYPE_MESSAGE; case 4: case "TARGET_TYPE_FIELD": return FieldOptions_OptionTargetType.TARGET_TYPE_FIELD; case 5: case "TARGET_TYPE_ONEOF": return FieldOptions_OptionTargetType.TARGET_TYPE_ONEOF; case 6: case "TARGET_TYPE_ENUM": return FieldOptions_OptionTargetType.TARGET_TYPE_ENUM; case 7: case "TARGET_TYPE_ENUM_ENTRY": return FieldOptions_OptionTargetType.TARGET_TYPE_ENUM_ENTRY; case 8: case "TARGET_TYPE_SERVICE": return FieldOptions_OptionTargetType.TARGET_TYPE_SERVICE; case 9: case "TARGET_TYPE_METHOD": return FieldOptions_OptionTargetType.TARGET_TYPE_METHOD; case -1: case "UNRECOGNIZED": default: return FieldOptions_OptionTargetType.UNRECOGNIZED; } } export function fieldOptions_OptionTargetTypeToJSON(object: FieldOptions_OptionTargetType): string { switch (object) { case FieldOptions_OptionTargetType.TARGET_TYPE_UNKNOWN: return "TARGET_TYPE_UNKNOWN"; case FieldOptions_OptionTargetType.TARGET_TYPE_FILE: return "TARGET_TYPE_FILE"; case FieldOptions_OptionTargetType.TARGET_TYPE_EXTENSION_RANGE: return "TARGET_TYPE_EXTENSION_RANGE"; case FieldOptions_OptionTargetType.TARGET_TYPE_MESSAGE: return "TARGET_TYPE_MESSAGE"; case FieldOptions_OptionTargetType.TARGET_TYPE_FIELD: return "TARGET_TYPE_FIELD"; case FieldOptions_OptionTargetType.TARGET_TYPE_ONEOF: return "TARGET_TYPE_ONEOF"; case FieldOptions_OptionTargetType.TARGET_TYPE_ENUM: return "TARGET_TYPE_ENUM"; case FieldOptions_OptionTargetType.TARGET_TYPE_ENUM_ENTRY: return "TARGET_TYPE_ENUM_ENTRY"; case FieldOptions_OptionTargetType.TARGET_TYPE_SERVICE: return "TARGET_TYPE_SERVICE"; case FieldOptions_OptionTargetType.TARGET_TYPE_METHOD: return "TARGET_TYPE_METHOD"; case FieldOptions_OptionTargetType.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export interface FieldOptions_EditionDefault { edition: Edition; /** Textproto value. */ value: string; } /** Information about the support window of a feature. */ export interface FieldOptions_FeatureSupport { /** * The edition that this feature was first available in. In editions * earlier than this one, the default assigned to EDITION_LEGACY will be * used, and proto files will not be able to override it. */ editionIntroduced: Edition; /** * The edition this feature becomes deprecated in. Using this after this * edition may trigger warnings. */ editionDeprecated: Edition; /** * The deprecation warning text if this feature is used after the edition it * was marked deprecated in. */ deprecationWarning: string; /** * The edition this feature is no longer available in. In editions after * this one, the last default assigned will be used, and proto files will * not be able to override it. */ editionRemoved: Edition; } export interface OneofOptions { /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; } export interface EnumOptions { /** * Set this option to true to allow mapping different tag names to the same * value. */ allowAlias: boolean; /** * Is this enum deprecated? * Depending on the target platform, this can emit Deprecated annotations * for the enum, or it will be completely ignored; in the very least, this * is a formalization for deprecating enums. */ deprecated: boolean; /** * Enable the legacy handling of JSON field name conflicts. This lowercases * and strips underscored from the fields before comparison in proto3 only. * The new behavior takes `json_name` into account and applies to proto2 as * well. * TODO Remove this legacy behavior once downstream teams have * had time to migrate. * * @deprecated */ deprecatedLegacyJsonFieldConflicts: boolean; /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; } export interface EnumValueOptions { /** * Is this enum value deprecated? * Depending on the target platform, this can emit Deprecated annotations * for the enum value, or it will be completely ignored; in the very least, * this is a formalization for deprecating enum values. */ deprecated: boolean; /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** * Indicate that fields annotated with this enum value should not be printed * out when using debug formats, e.g. when the field contains sensitive * credentials. */ debugRedact: boolean; /** Information about the support window of a feature value. */ featureSupport?: | FieldOptions_FeatureSupport | undefined; /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; } export interface ServiceOptions { /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** * Is this service deprecated? * Depending on the target platform, this can emit Deprecated annotations * for the service, or it will be completely ignored; in the very least, * this is a formalization for deprecating services. */ deprecated: boolean; /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; } export interface MethodOptions { /** * Is this method deprecated? * Depending on the target platform, this can emit Deprecated annotations * for the method, or it will be completely ignored; in the very least, * this is a formalization for deprecating methods. */ deprecated: boolean; idempotencyLevel: MethodOptions_IdempotencyLevel; /** Any features defined in the specific edition. */ features?: | FeatureSet | undefined; /** The parser stores options it doesn't recognize here. See above. */ uninterpretedOption: UninterpretedOption[]; } /** * Is this method side-effect-free (or safe in HTTP parlance), or idempotent, * or neither? HTTP based RPC implementation may choose GET verb for safe * methods, and PUT verb for idempotent methods instead of the default POST. */ export enum MethodOptions_IdempotencyLevel { IDEMPOTENCY_UNKNOWN = 0, /** NO_SIDE_EFFECTS - implies idempotent */ NO_SIDE_EFFECTS = 1, /** IDEMPOTENT - idempotent, but may have side effects */ IDEMPOTENT = 2, UNRECOGNIZED = -1, } export function methodOptions_IdempotencyLevelFromJSON(object: any): MethodOptions_IdempotencyLevel { switch (object) { case 0: case "IDEMPOTENCY_UNKNOWN": return MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN; case 1: case "NO_SIDE_EFFECTS": return MethodOptions_IdempotencyLevel.NO_SIDE_EFFECTS; case 2: case "IDEMPOTENT": return MethodOptions_IdempotencyLevel.IDEMPOTENT; case -1: case "UNRECOGNIZED": default: return MethodOptions_IdempotencyLevel.UNRECOGNIZED; } } export function methodOptions_IdempotencyLevelToJSON(object: MethodOptions_IdempotencyLevel): string { switch (object) { case MethodOptions_IdempotencyLevel.IDEMPOTENCY_UNKNOWN: return "IDEMPOTENCY_UNKNOWN"; case MethodOptions_IdempotencyLevel.NO_SIDE_EFFECTS: return "NO_SIDE_EFFECTS"; case MethodOptions_IdempotencyLevel.IDEMPOTENT: return "IDEMPOTENT"; case MethodOptions_IdempotencyLevel.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } /** * A message representing a option the parser does not recognize. This only * appears in options protos created by the compiler::Parser class. * DescriptorPool resolves these when building Descriptor objects. Therefore, * options protos in descriptor objects (e.g. returned by Descriptor::options(), * or produced by Descriptor::CopyTo()) will never have UninterpretedOptions * in them. */ export interface UninterpretedOption { name: UninterpretedOption_NamePart[]; /** * The value of the uninterpreted option, in whatever type the tokenizer * identified it as during parsing. Exactly one of these should be set. */ identifierValue: string; positiveIntValue: number; negativeIntValue: number; doubleValue: number; stringValue: Buffer; aggregateValue: string; } /** * The name of the uninterpreted option. Each string represents a segment in * a dot-separated name. is_extension is true iff a segment represents an * extension (denoted with parentheses in options specs in .proto files). * E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents * "foo.(bar.baz).moo". */ export interface UninterpretedOption_NamePart { namePart: string; isExtension: boolean; } /** * TODO Enums in C++ gencode (and potentially other languages) are * not well scoped. This means that each of the feature enums below can clash * with each other. The short names we've chosen maximize call-site * readability, but leave us very open to this scenario. A future feature will * be designed and implemented to handle this, hopefully before we ever hit a * conflict here. */ export interface FeatureSet { fieldPresence: FeatureSet_FieldPresence; enumType: FeatureSet_EnumType; repeatedFieldEncoding: FeatureSet_RepeatedFieldEncoding; utf8Validation: FeatureSet_Utf8Validation; messageEncoding: FeatureSet_MessageEncoding; jsonFormat: FeatureSet_JsonFormat; } export enum FeatureSet_FieldPresence { FIELD_PRESENCE_UNKNOWN = 0, EXPLICIT = 1, IMPLICIT = 2, LEGACY_REQUIRED = 3, UNRECOGNIZED = -1, } export function featureSet_FieldPresenceFromJSON(object: any): FeatureSet_FieldPresence { switch (object) { case 0: case "FIELD_PRESENCE_UNKNOWN": return FeatureSet_FieldPresence.FIELD_PRESENCE_UNKNOWN; case 1: case "EXPLICIT": return FeatureSet_FieldPresence.EXPLICIT; case 2: case "IMPLICIT": return FeatureSet_FieldPresence.IMPLICIT; case 3: case "LEGACY_REQUIRED": return FeatureSet_FieldPresence.LEGACY_REQUIRED; case -1: case "UNRECOGNIZED": default: return FeatureSet_FieldPresence.UNRECOGNIZED; } } export function featureSet_FieldPresenceToJSON(object: FeatureSet_FieldPresence): string { switch (object) { case FeatureSet_FieldPresence.FIELD_PRESENCE_UNKNOWN: return "FIELD_PRESENCE_UNKNOWN"; case FeatureSet_FieldPresence.EXPLICIT: return "EXPLICIT"; case FeatureSet_FieldPresence.IMPLICIT: return "IMPLICIT"; case FeatureSet_FieldPresence.LEGACY_REQUIRED: return "LEGACY_REQUIRED"; case FeatureSet_FieldPresence.UNRECOGNIZED: default: return "UNRECOGNIZED"; } } export enum FeatureSet_EnumType { ENUM_TYPE_UNKNOWN = 0, OPEN = 1, CLOSED = 2, UNRECOGNIZED = -1, } export function featureSet_EnumTypeFromJSON(object: any): FeatureSet_EnumType { switch (object) { case 0: case "ENUM_TYPE_UNKNOWN": return FeatureSet_EnumType.ENUM_TYPE_UNKNOWN;