/* This file was generated by upbc (the upb compiler) from the input
 * file:
 *
 *     envoy/type/v3/http.proto
 *
 * Do not edit -- your changes will be discarded when the file is
 * regenerated. */

#include "upb/def.h"
#include "envoy/type/v3/http.upbdefs.h"

extern upb_def_init udpa_annotations_status_proto_upbdefinit;

static const char descriptor[184] = {'\n', '\030', 'e', 'n', 'v', 'o', 'y', '/', 't', 'y', 'p', 'e', '/', 'v', '3', '/', 'h', 't', 't', 'p', '.', 'p', 'r', 'o', 't', 
'o', '\022', '\r', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 'p', 'e', '.', 'v', '3', '\032', '\035', 'u', 'd', 'p', 'a', '/', 'a', 'n', 
'n', 'o', 't', 'a', 't', 'i', 'o', 'n', 's', '/', 's', 't', 'a', 't', 'u', 's', '.', 'p', 'r', 'o', 't', 'o', '*', '2', '\n', 
'\017', 'C', 'o', 'd', 'e', 'c', 'C', 'l', 'i', 'e', 'n', 't', 'T', 'y', 'p', 'e', '\022', '\t', '\n', '\005', 'H', 'T', 'T', 'P', '1', 
'\020', '\000', '\022', '\t', '\n', '\005', 'H', 'T', 'T', 'P', '2', '\020', '\001', '\022', '\t', '\n', '\005', 'H', 'T', 'T', 'P', '3', '\020', '\002', 'B', 
'2', '\n', '\033', 'i', 'o', '.', 'e', 'n', 'v', 'o', 'y', 'p', 'r', 'o', 'x', 'y', '.', 'e', 'n', 'v', 'o', 'y', '.', 't', 'y', 
'p', 'e', '.', 'v', '3', 'B', '\t', 'H', 't', 't', 'p', 'P', 'r', 'o', 't', 'o', 'P', '\001', '\272', '\200', '\310', '\321', '\006', '\002', '\020', 
'\002', 'b', '\006', 'p', 'r', 'o', 't', 'o', '3', 
};

static upb_def_init *deps[2] = {
  &udpa_annotations_status_proto_upbdefinit,
  NULL
};

upb_def_init envoy_type_v3_http_proto_upbdefinit = {
  deps,
  NULL,
  "envoy/type/v3/http.proto",
  UPB_STRVIEW_INIT(descriptor, 184)
};
