# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/firestore/admin_v1/proto/field.proto

import sys

_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode("latin1"))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database

# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.cloud.firestore_admin_v1.proto import (
    index_pb2 as google_dot_cloud_dot_firestore_dot_admin__v1_dot_proto_dot_index__pb2,
)
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
    name="google/cloud/firestore/admin_v1/proto/field.proto",
    package="google.firestore.admin.v1",
    syntax="proto3",
    serialized_options=_b(
        "\n\035com.google.firestore.admin.v1B\nFieldProtoP\001Z>google.golang.org/genproto/googleapis/firestore/admin/v1;admin\242\002\004GCFS\252\002\037Google.Cloud.Firestore.Admin.V1\312\002\037Google\\Cloud\\Firestore\\Admin\\V1"
    ),
    serialized_pb=_b(
        '\n1google/cloud/firestore/admin_v1/proto/field.proto\x12\x19google.firestore.admin.v1\x1a\x31google/cloud/firestore/admin_v1/proto/index.proto\x1a\x1cgoogle/api/annotations.proto"\xe5\x01\n\x05\x46ield\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x42\n\x0cindex_config\x18\x02 \x01(\x0b\x32,.google.firestore.admin.v1.Field.IndexConfig\x1a\x89\x01\n\x0bIndexConfig\x12\x31\n\x07indexes\x18\x01 \x03(\x0b\x32 .google.firestore.admin.v1.Index\x12\x1c\n\x14uses_ancestor_config\x18\x02 \x01(\x08\x12\x16\n\x0e\x61ncestor_field\x18\x03 \x01(\t\x12\x11\n\treverting\x18\x04 \x01(\x08\x42\xb8\x01\n\x1d\x63om.google.firestore.admin.v1B\nFieldProtoP\x01Z>google.golang.org/genproto/googleapis/firestore/admin/v1;admin\xa2\x02\x04GCFS\xaa\x02\x1fGoogle.Cloud.Firestore.Admin.V1\xca\x02\x1fGoogle\\Cloud\\Firestore\\Admin\\V1b\x06proto3'
    ),
    dependencies=[
        google_dot_cloud_dot_firestore_dot_admin__v1_dot_proto_dot_index__pb2.DESCRIPTOR,
        google_dot_api_dot_annotations__pb2.DESCRIPTOR,
    ],
)


_FIELD_INDEXCONFIG = _descriptor.Descriptor(
    name="IndexConfig",
    full_name="google.firestore.admin.v1.Field.IndexConfig",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="indexes",
            full_name="google.firestore.admin.v1.Field.IndexConfig.indexes",
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="uses_ancestor_config",
            full_name="google.firestore.admin.v1.Field.IndexConfig.uses_ancestor_config",
            index=1,
            number=2,
            type=8,
            cpp_type=7,
            label=1,
            has_default_value=False,
            default_value=False,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="ancestor_field",
            full_name="google.firestore.admin.v1.Field.IndexConfig.ancestor_field",
            index=2,
            number=3,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="reverting",
            full_name="google.firestore.admin.v1.Field.IndexConfig.reverting",
            index=3,
            number=4,
            type=8,
            cpp_type=7,
            label=1,
            has_default_value=False,
            default_value=False,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=254,
    serialized_end=391,
)

_FIELD = _descriptor.Descriptor(
    name="Field",
    full_name="google.firestore.admin.v1.Field",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.firestore.admin.v1.Field.name",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="index_config",
            full_name="google.firestore.admin.v1.Field.index_config",
            index=1,
            number=2,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[_FIELD_INDEXCONFIG],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=162,
    serialized_end=391,
)

_FIELD_INDEXCONFIG.fields_by_name[
    "indexes"
].message_type = (
    google_dot_cloud_dot_firestore_dot_admin__v1_dot_proto_dot_index__pb2._INDEX
)
_FIELD_INDEXCONFIG.containing_type = _FIELD
_FIELD.fields_by_name["index_config"].message_type = _FIELD_INDEXCONFIG
DESCRIPTOR.message_types_by_name["Field"] = _FIELD
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Field = _reflection.GeneratedProtocolMessageType(
    "Field",
    (_message.Message,),
    dict(
        IndexConfig=_reflection.GeneratedProtocolMessageType(
            "IndexConfig",
            (_message.Message,),
            dict(
                DESCRIPTOR=_FIELD_INDEXCONFIG,
                __module__="google.cloud.firestore.admin_v1.proto.field_pb2",
                __doc__="""The index configuration for this field.
    
    
    Attributes:
        indexes:
            The indexes supported for this field.
        uses_ancestor_config:
            Output only. When true, the ``Field``'s index configuration is
            set from the configuration specified by the
            ``ancestor_field``. When false, the ``Field``'s index
            configuration is defined explicitly.
        ancestor_field:
            Output only. Specifies the resource name of the ``Field`` from
            which this field's index configuration is set (when
            ``uses_ancestor_config`` is true), or from which it *would* be
            set if this field had no index configuration (when
            ``uses_ancestor_config`` is false).
        reverting:
            Output only When true, the ``Field``'s index configuration is
            in the process of being reverted. Once complete, the index
            config will transition to the same state as the field
            specified by ``ancestor_field``, at which point
            ``uses_ancestor_config`` will be ``true`` and ``reverting``
            will be ``false``.
    """,
                # @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Field.IndexConfig)
            ),
        ),
        DESCRIPTOR=_FIELD,
        __module__="google.cloud.firestore.admin_v1.proto.field_pb2",
        __doc__="""Represents a single field in the database.
  
  Fields are grouped by their "Collection Group", which represent all
  collections in the database with the same id.
  
  
  Attributes:
      name:
          A field name of the form ``projects/{project_id}/databases/{da
          tabase_id}/collectionGroups/{collection_id}/fields/{field_path
          }``  A field path may be a simple field name, e.g. ``address``
          or a path to fields within map\_value , e.g. ``address.city``,
          or a special field path. The only valid special field is
          ``*``, which represents any field.  Field paths may be quoted
          using ``(backtick). The only character that needs to be
          escaped within a quoted field path is the backtick character
          itself, escaped using a backslash. Special characters in field
          paths that must be quoted include:``\ \*\ ``,``.\ ``, ```
          (backtick),``\ [``,``]\`, as well as any ascii symbolic
          characters.  Examples: (Note: Comments here are written in
          markdown syntax, so there is an additional layer of backticks
          to represent a code block) ``\``\ address.city\`\ ``represents
          a field named``\ address.city\ ``, not the map key``\ city\
          ``in the field``\ address\ ``.``\ \`\ *\`\ ``represents a
          field named``*\ \`, not any field.  A special ``Field``
          contains the default indexing settings for all fields. This
          field's resource name is: ``projects/{project_id}/databases/{d
          atabase_id}/collectionGroups/__default__/fields/*`` Indexes
          defined on this ``Field`` will be applied to all fields which
          do not have their own ``Field`` index configuration.
      index_config:
          The index configuration for this field. If unset, field
          indexing will revert to the configuration defined by the
          ``ancestor_field``. To explicitly remove all indexes for this
          field, specify an index config with an empty list of indexes.
  """,
        # @@protoc_insertion_point(class_scope:google.firestore.admin.v1.Field)
    ),
)
_sym_db.RegisterMessage(Field)
_sym_db.RegisterMessage(Field.IndexConfig)


DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
