"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import google.protobuf.descriptor
import google.protobuf.descriptor_pb2
import google.protobuf.internal.extension_dict

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

NAME_FIELD_NUMBER: builtins.int
MESSAGE_ENCODING_FIELD_NUMBER: builtins.int
ENCODING_FIELD_NUMBER: builtins.int
FIELD_NAME_FIELD_NUMBER: builtins.int
DONT_OMITEMPTY_FIELD_NUMBER: builtins.int
name: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str]
"""name is the string used when registering a concrete
type into the Amino type registry, via the Amino codec's
`RegisterConcrete()` method. This string MUST be at most 39
characters long, or else the message will be rejected by the
Ledger hardware device.
"""
message_encoding: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.str]
"""encoding describes the encoding format used by Amino for the given
message. The field type is chosen to be a string for
flexibility, but it should ideally be short and expected to be
machine-readable, for example "base64" or "utf8_json". We
highly recommend to use underscores for word separation instead of spaces.

If left empty, then the Amino encoding is expected to be the same as the
Protobuf one.

This annotation should not be confused with the `encoding`
one which operates on the field level.
"""
encoding: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
"""encoding describes the encoding format used by Amino for
the given field. The field type is chosen to be a string for
flexibility, but it should ideally be short and expected to be
machine-readable, for example "base64" or "utf8_json". We
highly recommend to use underscores for word separation instead of spaces.

If left empty, then the Amino encoding is expected to be the same as the
Protobuf one.

This annotation should not be confused with the
`message_encoding` one which operates on the message level.
"""
field_name: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.str]
"""field_name sets a different field name (i.e. key name) in
the amino JSON object for the given field.

Example:

message Foo {
  string bar = 1 [(amino.field_name) = "baz"];
}

Then the Amino encoding of Foo will be:
`{"baz":"some value"}`
"""
dont_omitempty: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, builtins.bool]
"""dont_omitempty sets the field in the JSON object even if
its value is empty, i.e. equal to the Golang zero value. To learn what
the zero values are, see https://go.dev/ref/spec#The_zero_value.

Fields default to `omitempty`, which is the default behavior when this
annotation is unset. When set to true, then the field value in the
JSON object will be set, i.e. not `undefined`.

Example:

message Foo {
  string bar = 1;
  string baz = 2 [(amino.dont_omitempty) = true];
}

f := Foo{};
out := AminoJSONEncoder(&f);
out == {"baz":""}
"""
