/*
 * Copyright 2024 Google LLC
 *
 * 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.
 */

/* Automatically generated nanopb header */
/* Generated by nanopb-0.3.9.8 */

#ifndef PB_GOOGLE_API_RESOURCE_NANOPB_H_INCLUDED
#define PB_GOOGLE_API_RESOURCE_NANOPB_H_INCLUDED
#include <pb.h>

#include <string>

namespace firebase {
namespace firestore {

/* @@protoc_insertion_point(includes) */
#if PB_PROTO_HEADER_VERSION != 30
#error Regenerate this file with the current version of nanopb generator.
#endif


/* Enum definitions */
typedef enum _google_api_ResourceDescriptor_History {
    google_api_ResourceDescriptor_History_HISTORY_UNSPECIFIED = 0,
    google_api_ResourceDescriptor_History_ORIGINALLY_SINGLE_PATTERN = 1,
    google_api_ResourceDescriptor_History_FUTURE_MULTI_PATTERN = 2
} google_api_ResourceDescriptor_History;
#define _google_api_ResourceDescriptor_History_MIN google_api_ResourceDescriptor_History_HISTORY_UNSPECIFIED
#define _google_api_ResourceDescriptor_History_MAX google_api_ResourceDescriptor_History_FUTURE_MULTI_PATTERN
#define _google_api_ResourceDescriptor_History_ARRAYSIZE ((google_api_ResourceDescriptor_History)(google_api_ResourceDescriptor_History_FUTURE_MULTI_PATTERN+1))

/* Struct definitions */
typedef struct _google_api_ResourceReference {
    pb_bytes_array_t *type;
    pb_bytes_array_t *child_type;

    std::string ToString(int indent = 0) const;
/* @@protoc_insertion_point(struct:google_api_ResourceReference) */
} google_api_ResourceReference;

typedef struct _google_api_ResourceDescriptor {
    pb_bytes_array_t *type;
    pb_size_t pattern_count;
    pb_bytes_array_t **pattern;
    pb_bytes_array_t *name_field;
    google_api_ResourceDescriptor_History history;
    pb_bytes_array_t *plural;
    pb_bytes_array_t *singular;

    std::string ToString(int indent = 0) const;
/* @@protoc_insertion_point(struct:google_api_ResourceDescriptor) */
} google_api_ResourceDescriptor;

/* Extensions */
/* Extension field google_api_resource_reference was skipped because only "optional"
   type of extension fields is currently supported. */
/* Extension field google_api_resource_definition was skipped because only "optional"
   type of extension fields is currently supported. */
/* Extension field google_api_resource was skipped because only "optional"
   type of extension fields is currently supported. */

/* Default values for struct fields */

/* Initializer values for message structs */
#define google_api_ResourceDescriptor_init_default {NULL, 0, NULL, NULL, _google_api_ResourceDescriptor_History_MIN, NULL, NULL}
#define google_api_ResourceReference_init_default {NULL, NULL}
#define google_api_ResourceDescriptor_init_zero  {NULL, 0, NULL, NULL, _google_api_ResourceDescriptor_History_MIN, NULL, NULL}
#define google_api_ResourceReference_init_zero   {NULL, NULL}

/* Field tags (for use in manual encoding/decoding) */
#define google_api_ResourceReference_type_tag    1
#define google_api_ResourceReference_child_type_tag 2
#define google_api_ResourceDescriptor_type_tag   1
#define google_api_ResourceDescriptor_pattern_tag 2
#define google_api_ResourceDescriptor_name_field_tag 3
#define google_api_ResourceDescriptor_history_tag 4
#define google_api_ResourceDescriptor_plural_tag 5
#define google_api_ResourceDescriptor_singular_tag 6
#define google_api_resource_reference_tag        1055
#define google_api_resource_definition_tag       1053
#define google_api_resource_tag                  1053

/* Struct field encoding specification for nanopb */
extern const pb_field_t google_api_ResourceDescriptor_fields[7];
extern const pb_field_t google_api_ResourceReference_fields[3];

/* Maximum encoded size of messages (where known) */
/* google_api_ResourceDescriptor_size depends on runtime parameters */
/* google_api_ResourceReference_size depends on runtime parameters */

/* Message IDs (where set with "msgid" option) */
#ifdef PB_MSGID

#define RESOURCE_MESSAGES \


#endif

const char* EnumToString(google_api_ResourceDescriptor_History value);
}  // namespace firestore
}  // namespace firebase

/* @@protoc_insertion_point(eof) */

#endif
