# Copyright (c) 2025-2026 Buf Technologies, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Generated from google/protobuf/struct.proto. DO NOT EDIT. # Generated by protoc-gen-py v0.1.1 with parameter "no_fmt_off". # ruff: noqa: PGH004 # ruff: noqa from __future__ import annotations from typing import Literal, TYPE_CHECKING, TypeAlias from protobuf import Enum, Message from protobuf._codegen import file_desc from protobuf.wkt._mixin import ListValueMixin, StructMixin, ValueMixin if TYPE_CHECKING: from protobuf import DescFile, Oneof _StructFields: TypeAlias = Literal["fields"] class Struct(Message[_StructFields], StructMixin): """ Represents a JSON object. An unordered key-value map, intending to perfectly capture the semantics of a JSON object. This enables parsing any arbitrary JSON payload as a message field in ProtoJSON format. This follows RFC 8259 guidelines for interoperable JSON: notably this type cannot represent large Int64 values or `NaN`/`Infinity` numbers, since the JSON format generally does not support those values in its number type. If you do not intend to parse arbitrary JSON into your message, a custom typed message should be preferred instead of using this type. ```proto message google.protobuf.Struct ``` Attributes: fields: Unordered map of dynamically typed values. ```proto map fields = 1; ``` """ __slots__ = ("fields",) if TYPE_CHECKING: def __init__(self, *, fields: dict[str, Value] | None = None) -> None: pass fields: dict[str, Value] _ValueFields: TypeAlias = Literal[ "null_value", "number_value", "string_value", "bool_value", "struct_value", "list_value", ] class Value(Message[_ValueFields], ValueMixin): """ Represents a JSON value. `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant is an invalid state. ```proto message google.protobuf.Value ``` Attributes: kind: The kind of value. ```proto oneof kind ``` """ __slots__ = ("kind",) if TYPE_CHECKING: def __init__( self, *, kind: Oneof[Literal["null_value"], NullValue] | Oneof[Literal["number_value"], float] | Oneof[Literal["string_value"], str] | Oneof[Literal["bool_value"], bool] | Oneof[Literal["struct_value"], Struct] | Oneof[Literal["list_value"], ListValue] | None = None, ) -> None: pass kind: ( Oneof[Literal["null_value"], NullValue] | Oneof[Literal["number_value"], float] | Oneof[Literal["string_value"], str] | Oneof[Literal["bool_value"], bool] | Oneof[Literal["struct_value"], Struct] | Oneof[Literal["list_value"], ListValue] | None ) _ListValueFields: TypeAlias = Literal["values"] class ListValue(Message[_ListValueFields], ListValueMixin): """ Represents a JSON array. ```proto message google.protobuf.ListValue ``` Attributes: values: Repeated field of dynamically typed values. ```proto repeated google.protobuf.Value values = 1; ``` """ __slots__ = ("values",) if TYPE_CHECKING: def __init__(self, *, values: list[Value] | None = None) -> None: pass values: list[Value] class NullValue(Enum): """ Represents a JSON `null`. `NullValue` is a sentinel, using an enum with only one value to represent the null value for the `Value` type union. A field of type `NullValue` with any value other than `0` is considered invalid. Most ProtoJSON serializers will emit a Value with a `null_value` set as a JSON `null` regardless of the integer value, and so will round trip to a `0` value. ```proto enum google.protobuf.NullValue ``` Attributes: NULL_VALUE: Null value. ```proto NULL_VALUE = 0 ``` """ NULL_VALUE = 0 _DESC = file_desc( b'\n\x1cgoogle/protobuf/struct.proto\x12\x0fgoogle.protobuf"\x98\x01\n\x06Struct\x12;\n\x06fields\x18\x01 \x03(\x0b2#.google.protobuf.Struct.FieldsEntryR\x06fields\x1aQ\n\x0bFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12,\n\x05value\x18\x02 \x01(\x0b2\x16.google.protobuf.ValueR\x05value:\x028\x01"\xb2\x02\n\x05Value\x12;\n\nnull_value\x18\x01 \x01(\x0e2\x1a.google.protobuf.NullValueH\x00R\tnullValue\x12#\n\x0cnumber_value\x18\x02 \x01(\x01H\x00R\x0bnumberValue\x12#\n\x0cstring_value\x18\x03 \x01(\tH\x00R\x0bstringValue\x12\x1f\n\nbool_value\x18\x04 \x01(\x08H\x00R\tboolValue\x12<\n\x0cstruct_value\x18\x05 \x01(\x0b2\x17.google.protobuf.StructH\x00R\x0bstructValue\x12;\n\nlist_value\x18\x06 \x01(\x0b2\x1a.google.protobuf.ListValueH\x00R\tlistValueB\x06\n\x04kind";\n\tListValue\x12.\n\x06values\x18\x01 \x03(\x0b2\x16.google.protobuf.ValueR\x06values*\x1b\n\tNullValue\x12\x0e\n\nNULL_VALUE\x10\x00B\x7f\n\x13com.google.protobufB\x0bStructProtoP\x01Z/google.golang.org/protobuf/types/known/structpb\xf8\x01\x01\xa2\x02\x03GPB\xaa\x02\x1eGoogle.Protobuf.WellKnownTypesb\x06proto3', [], {"Struct": Struct, "Value": Value, "ListValue": ListValue, "NullValue": NullValue}, ) def desc() -> DescFile: """Returns the descriptor for the file `google/protobuf/struct.proto`.""" return _DESC