# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: chromiumos/checkpoint.proto
"""Generated protocol buffer code."""
from chromite.third_party.google.protobuf.internal import builder as _builder
from chromite.third_party.google.protobuf import descriptor as _descriptor
from chromite.third_party.google.protobuf import descriptor_pool as _descriptor_pool
from chromite.third_party.google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x63hromiumos/checkpoint.proto\x12\nchromiumos*\x9e\x02\n\tRetryStep\x12\r\n\tUNDEFINED\x10\x00\x12\x14\n\x10\x43REATE_BUILDSPEC\x10\n\x12\x15\n\x11PUBLIC_BUILD_LKGM\x10\x14\x12\x10\n\x0cRUN_CHILDREN\x10\x1e\x12\x17\n\x13RUN_FAILED_CHILDREN\x10\x1f\x12\x10\n\x0cLAUNCH_TESTS\x10(\x12\x14\n\x0fSTAGE_ARTIFACTS\x10\x96\x01\x12\x10\n\x0bPUSH_IMAGES\x10\xa0\x01\x12\x12\n\rDEBUG_SYMBOLS\x10\xa5\x01\x12\x11\n\x0c\x45\x42UILD_TESTS\x10\xaa\x01\x12\x14\n\x0f\x43OLLECT_SIGNING\x10\xb4\x01\x12\x0b\n\x06PAYGEN\x10\xbe\x01\x12\x13\n\x0eUPLOAD_PAYLOAD\x10\xe8\x07\x12\x11\n\x0cTEST_PAYLOAD\x10\xf2\x07\x42Y\n!com.google.chrome.crosinfra.protoZ4go.chromium.org/chromiumos/infra/proto/go/chromiumosb\x06proto3')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chromiumos.checkpoint_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'\n!com.google.chrome.crosinfra.protoZ4go.chromium.org/chromiumos/infra/proto/go/chromiumos'
  _RETRYSTEP._serialized_start=44
  _RETRYSTEP._serialized_end=330
# @@protoc_insertion_point(module_scope)
