# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: build.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
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()

from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
import common_pb2 as common__pb2
import step_pb2 as step__pb2

DESCRIPTOR = _descriptor.FileDescriptor(
    name='build.proto',
    package='buildbucket.v2',
    syntax='proto3',
    serialized_pb=_b(
        '\n\x0b\x62uild.proto\x12\x0e\x62uildbucket.v2\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x0c\x63ommon.proto\x1a\nstep.proto\"\xf4\x07\n\x05\x42uild\x12\n\n\x02id\x18\x01 \x01(\x03\x12*\n\x07\x62uilder\x18\x02 \x01(\x0b\x32\x19.buildbucket.v2.BuilderID\x12\x0e\n\x06number\x18\x03 \x01(\x05\x12\x12\n\ncreated_by\x18\x04 \x01(\t\x12/\n\x0b\x63reate_time\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstart_time\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0bupdate_time\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x06status\x18\x0c \x01(\x0e\x32\x16.buildbucket.v2.Status\x12\x42\n\x14infra_failure_reason\x18\r \x01(\x0b\x32\".buildbucket.v2.InfraFailureReasonH\x00\x12\x35\n\rcancel_reason\x18\x0e \x01(\x0b\x32\x1c.buildbucket.v2.CancelReasonH\x00\x12*\n\x05input\x18\x0f \x01(\x0b\x32\x1b.buildbucket.v2.Build.Input\x12,\n\x06output\x18\x10 \x01(\x0b\x32\x1c.buildbucket.v2.Build.Output\x12#\n\x05steps\x18\x11 \x03(\x0b\x32\x14.buildbucket.v2.Step\x12)\n\x05infra\x18\x12 \x01(\x0b\x32\x1a.buildbucket.v2.BuildInfra\x12(\n\x04tags\x18\x13 \x03(\x0b\x32\x1a.buildbucket.v2.StringPair\x1a\xb7\x01\n\x05Input\x12+\n\nproperties\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x35\n\x0egitiles_commit\x18\x02 \x01(\x0b\x32\x1d.buildbucket.v2.GitilesCommit\x12\x34\n\x0egerrit_changes\x18\x03 \x03(\x0b\x32\x1c.buildbucket.v2.GerritChange\x12\x14\n\x0c\x65xperimental\x18\x05 \x01(\x08\x1a\x86\x01\n\x06Output\x12+\n\nproperties\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\x12\x18\n\x10summary_markdown\x18\x02 \x01(\t\x12\x35\n\x0egitiles_commit\x18\x03 \x01(\x0b\x32\x1d.buildbucket.v2.GitilesCommitB\x0f\n\rstatus_reasonJ\x04\x08\x05\x10\x06\"4\n\x0c\x43\x61ncelReason\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x13\n\x0b\x63\x61nceled_by\x18\x02 \x01(\t\"B\n\x12InfraFailureReason\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x1b\n\x13resource_exhaustion\x18\x02 \x01(\x08\"\xda\x04\n\nBuildInfra\x12;\n\x0b\x62uildbucket\x18\x01 \x01(\x0b\x32&.buildbucket.v2.BuildInfra.Buildbucket\x12\x35\n\x08swarming\x18\x02 \x01(\x0b\x32#.buildbucket.v2.BuildInfra.Swarming\x12\x31\n\x06logdog\x18\x03 \x01(\x0b\x32!.buildbucket.v2.BuildInfra.LogDog\x12\x31\n\x06recipe\x18\x04 \x01(\x0b\x32!.buildbucket.v2.BuildInfra.Recipe\x1a>\n\x0b\x42uildbucket\x12\x1f\n\x17service_config_revision\x18\x02 \x01(\t\x12\x0e\n\x06\x63\x61nary\x18\x04 \x01(\x08\x1a\xc6\x01\n\x08Swarming\x12\x10\n\x08hostname\x18\x01 \x01(\t\x12\x0f\n\x07task_id\x18\x02 \x01(\t\x12\x1c\n\x14task_service_account\x18\x03 \x01(\t\x12\x10\n\x08priority\x18\x04 \x01(\x05\x12\x33\n\x0ftask_dimensions\x18\x05 \x03(\x0b\x32\x1a.buildbucket.v2.StringPair\x12\x32\n\x0e\x62ot_dimensions\x18\x06 \x03(\x0b\x32\x1a.buildbucket.v2.StringPair\x1a;\n\x06LogDog\x12\x10\n\x08hostname\x18\x01 \x01(\t\x12\x0f\n\x07project\x18\x02 \x01(\t\x12\x0e\n\x06prefix\x18\x03 \x01(\t\x1a,\n\x06Recipe\x12\x14\n\x0c\x63ipd_package\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\"=\n\tBuilderID\x12\x0f\n\x07project\x18\x01 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x0f\n\x07\x62uilder\x18\x03 \x01(\tB6Z4go.chromium.org/luci/buildbucket/proto;buildbucketpbb\x06proto3'
    ),
    dependencies=[
        google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,
        common__pb2.DESCRIPTOR,
        step__pb2.DESCRIPTOR,
    ]
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

_BUILD_INPUT = _descriptor.Descriptor(
    name='Input',
    full_name='buildbucket.v2.Build.Input',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='properties',
            full_name='buildbucket.v2.Build.Input.properties',
            index=0,
            number=1,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='gitiles_commit',
            full_name='buildbucket.v2.Build.Input.gitiles_commit',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='gerrit_changes',
            full_name='buildbucket.v2.Build.Input.gerrit_changes',
            index=2,
            number=3,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='experimental',
            full_name='buildbucket.v2.Build.Input.experimental',
            index=3,
            number=5,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=790,
    serialized_end=973,
)

_BUILD_OUTPUT = _descriptor.Descriptor(
    name='Output',
    full_name='buildbucket.v2.Build.Output',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='properties',
            full_name='buildbucket.v2.Build.Output.properties',
            index=0,
            number=1,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='summary_markdown',
            full_name='buildbucket.v2.Build.Output.summary_markdown',
            index=1,
            number=2,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='gitiles_commit',
            full_name='buildbucket.v2.Build.Output.gitiles_commit',
            index=2,
            number=3,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=976,
    serialized_end=1110,
)

_BUILD = _descriptor.Descriptor(
    name='Build',
    full_name='buildbucket.v2.Build',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='id',
            full_name='buildbucket.v2.Build.id',
            index=0,
            number=1,
            type=3,
            cpp_type=2,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='builder',
            full_name='buildbucket.v2.Build.builder',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='number',
            full_name='buildbucket.v2.Build.number',
            index=2,
            number=3,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='created_by',
            full_name='buildbucket.v2.Build.created_by',
            index=3,
            number=4,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='create_time',
            full_name='buildbucket.v2.Build.create_time',
            index=4,
            number=6,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='start_time',
            full_name='buildbucket.v2.Build.start_time',
            index=5,
            number=7,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='end_time',
            full_name='buildbucket.v2.Build.end_time',
            index=6,
            number=8,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='update_time',
            full_name='buildbucket.v2.Build.update_time',
            index=7,
            number=9,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='status',
            full_name='buildbucket.v2.Build.status',
            index=8,
            number=12,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='infra_failure_reason',
            full_name='buildbucket.v2.Build.infra_failure_reason',
            index=9,
            number=13,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='cancel_reason',
            full_name='buildbucket.v2.Build.cancel_reason',
            index=10,
            number=14,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='input',
            full_name='buildbucket.v2.Build.input',
            index=11,
            number=15,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='output',
            full_name='buildbucket.v2.Build.output',
            index=12,
            number=16,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='steps',
            full_name='buildbucket.v2.Build.steps',
            index=13,
            number=17,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='infra',
            full_name='buildbucket.v2.Build.infra',
            index=14,
            number=18,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='tags',
            full_name='buildbucket.v2.Build.tags',
            index=15,
            number=19,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[
        _BUILD_INPUT,
        _BUILD_OUTPUT,
    ],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name='status_reason',
            full_name='buildbucket.v2.Build.status_reason',
            index=0,
            containing_type=None,
            fields=[]
        ),
    ],
    serialized_start=121,
    serialized_end=1133,
)

_CANCELREASON = _descriptor.Descriptor(
    name='CancelReason',
    full_name='buildbucket.v2.CancelReason',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='message',
            full_name='buildbucket.v2.CancelReason.message',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='canceled_by',
            full_name='buildbucket.v2.CancelReason.canceled_by',
            index=1,
            number=2,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1135,
    serialized_end=1187,
)

_INFRAFAILUREREASON = _descriptor.Descriptor(
    name='InfraFailureReason',
    full_name='buildbucket.v2.InfraFailureReason',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='message',
            full_name='buildbucket.v2.InfraFailureReason.message',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='resource_exhaustion',
            full_name='buildbucket.v2.InfraFailureReason.resource_exhaustion',
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1189,
    serialized_end=1255,
)

_BUILDINFRA_BUILDBUCKET = _descriptor.Descriptor(
    name='Buildbucket',
    full_name='buildbucket.v2.BuildInfra.Buildbucket',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='service_config_revision',
            full_name=
            'buildbucket.v2.BuildInfra.Buildbucket.service_config_revision',
            index=0,
            number=2,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='canary',
            full_name='buildbucket.v2.BuildInfra.Buildbucket.canary',
            index=1,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1490,
    serialized_end=1552,
)

_BUILDINFRA_SWARMING = _descriptor.Descriptor(
    name='Swarming',
    full_name='buildbucket.v2.BuildInfra.Swarming',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='hostname',
            full_name='buildbucket.v2.BuildInfra.Swarming.hostname',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='task_id',
            full_name='buildbucket.v2.BuildInfra.Swarming.task_id',
            index=1,
            number=2,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='task_service_account',
            full_name='buildbucket.v2.BuildInfra.Swarming.task_service_account',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='priority',
            full_name='buildbucket.v2.BuildInfra.Swarming.priority',
            index=3,
            number=4,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='task_dimensions',
            full_name='buildbucket.v2.BuildInfra.Swarming.task_dimensions',
            index=4,
            number=5,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='bot_dimensions',
            full_name='buildbucket.v2.BuildInfra.Swarming.bot_dimensions',
            index=5,
            number=6,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1555,
    serialized_end=1753,
)

_BUILDINFRA_LOGDOG = _descriptor.Descriptor(
    name='LogDog',
    full_name='buildbucket.v2.BuildInfra.LogDog',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='hostname',
            full_name='buildbucket.v2.BuildInfra.LogDog.hostname',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='project',
            full_name='buildbucket.v2.BuildInfra.LogDog.project',
            index=1,
            number=2,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='prefix',
            full_name='buildbucket.v2.BuildInfra.LogDog.prefix',
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1755,
    serialized_end=1814,
)

_BUILDINFRA_RECIPE = _descriptor.Descriptor(
    name='Recipe',
    full_name='buildbucket.v2.BuildInfra.Recipe',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='cipd_package',
            full_name='buildbucket.v2.BuildInfra.Recipe.cipd_package',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='name',
            full_name='buildbucket.v2.BuildInfra.Recipe.name',
            index=1,
            number=2,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1816,
    serialized_end=1860,
)

_BUILDINFRA = _descriptor.Descriptor(
    name='BuildInfra',
    full_name='buildbucket.v2.BuildInfra',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='buildbucket',
            full_name='buildbucket.v2.BuildInfra.buildbucket',
            index=0,
            number=1,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='swarming',
            full_name='buildbucket.v2.BuildInfra.swarming',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='logdog',
            full_name='buildbucket.v2.BuildInfra.logdog',
            index=2,
            number=3,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='recipe',
            full_name='buildbucket.v2.BuildInfra.recipe',
            index=3,
            number=4,
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[
        _BUILDINFRA_BUILDBUCKET,
        _BUILDINFRA_SWARMING,
        _BUILDINFRA_LOGDOG,
        _BUILDINFRA_RECIPE,
    ],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1258,
    serialized_end=1860,
)

_BUILDERID = _descriptor.Descriptor(
    name='BuilderID',
    full_name='buildbucket.v2.BuilderID',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='project',
            full_name='buildbucket.v2.BuilderID.project',
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='bucket',
            full_name='buildbucket.v2.BuilderID.bucket',
            index=1,
            number=2,
            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,
            options=None
        ),
        _descriptor.FieldDescriptor(
            name='builder',
            full_name='buildbucket.v2.BuilderID.builder',
            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,
            options=None
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1862,
    serialized_end=1923,
)

_BUILD_INPUT.fields_by_name[
    'properties'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_BUILD_INPUT.fields_by_name['gitiles_commit'
                           ].message_type = common__pb2._GITILESCOMMIT
_BUILD_INPUT.fields_by_name['gerrit_changes'
                           ].message_type = common__pb2._GERRITCHANGE
_BUILD_INPUT.containing_type = _BUILD
_BUILD_OUTPUT.fields_by_name[
    'properties'].message_type = google_dot_protobuf_dot_struct__pb2._STRUCT
_BUILD_OUTPUT.fields_by_name['gitiles_commit'
                            ].message_type = common__pb2._GITILESCOMMIT
_BUILD_OUTPUT.containing_type = _BUILD
_BUILD.fields_by_name['builder'].message_type = _BUILDERID
_BUILD.fields_by_name[
    'create_time'
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BUILD.fields_by_name[
    'start_time'
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BUILD.fields_by_name[
    'end_time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BUILD.fields_by_name[
    'update_time'
].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BUILD.fields_by_name['status'].enum_type = common__pb2._STATUS
_BUILD.fields_by_name['infra_failure_reason'].message_type = _INFRAFAILUREREASON
_BUILD.fields_by_name['cancel_reason'].message_type = _CANCELREASON
_BUILD.fields_by_name['input'].message_type = _BUILD_INPUT
_BUILD.fields_by_name['output'].message_type = _BUILD_OUTPUT
_BUILD.fields_by_name['steps'].message_type = step__pb2._STEP
_BUILD.fields_by_name['infra'].message_type = _BUILDINFRA
_BUILD.fields_by_name['tags'].message_type = common__pb2._STRINGPAIR
_BUILD.oneofs_by_name['status_reason'].fields.append(
    _BUILD.fields_by_name['infra_failure_reason']
)
_BUILD.fields_by_name['infra_failure_reason'
                     ].containing_oneof = _BUILD.oneofs_by_name['status_reason']
_BUILD.oneofs_by_name['status_reason'].fields.append(
    _BUILD.fields_by_name['cancel_reason']
)
_BUILD.fields_by_name['cancel_reason'].containing_oneof = _BUILD.oneofs_by_name[
    'status_reason']
_BUILDINFRA_BUILDBUCKET.containing_type = _BUILDINFRA
_BUILDINFRA_SWARMING.fields_by_name['task_dimensions'
                                   ].message_type = common__pb2._STRINGPAIR
_BUILDINFRA_SWARMING.fields_by_name['bot_dimensions'
                                   ].message_type = common__pb2._STRINGPAIR
_BUILDINFRA_SWARMING.containing_type = _BUILDINFRA
_BUILDINFRA_LOGDOG.containing_type = _BUILDINFRA
_BUILDINFRA_RECIPE.containing_type = _BUILDINFRA
_BUILDINFRA.fields_by_name['buildbucket'].message_type = _BUILDINFRA_BUILDBUCKET
_BUILDINFRA.fields_by_name['swarming'].message_type = _BUILDINFRA_SWARMING
_BUILDINFRA.fields_by_name['logdog'].message_type = _BUILDINFRA_LOGDOG
_BUILDINFRA.fields_by_name['recipe'].message_type = _BUILDINFRA_RECIPE
DESCRIPTOR.message_types_by_name['Build'] = _BUILD
DESCRIPTOR.message_types_by_name['CancelReason'] = _CANCELREASON
DESCRIPTOR.message_types_by_name['InfraFailureReason'] = _INFRAFAILUREREASON
DESCRIPTOR.message_types_by_name['BuildInfra'] = _BUILDINFRA
DESCRIPTOR.message_types_by_name['BuilderID'] = _BUILDERID

Build = _reflection.GeneratedProtocolMessageType(
    'Build',
    (_message.Message,),
    dict(
        Input=_reflection.GeneratedProtocolMessageType(
            'Input',
            (_message.Message,),
            dict(
                DESCRIPTOR=_BUILD_INPUT,
                __module__='build_pb2'
                # @@protoc_insertion_point(class_scope:buildbucket.v2.Build.Input)
            )
        ),
        Output=_reflection.GeneratedProtocolMessageType(
            'Output',
            (_message.Message,),
            dict(
                DESCRIPTOR=_BUILD_OUTPUT,
                __module__='build_pb2'
                # @@protoc_insertion_point(class_scope:buildbucket.v2.Build.Output)
            )
        ),
        DESCRIPTOR=_BUILD,
        __module__='build_pb2'
        # @@protoc_insertion_point(class_scope:buildbucket.v2.Build)
    )
)
_sym_db.RegisterMessage(Build)
_sym_db.RegisterMessage(Build.Input)
_sym_db.RegisterMessage(Build.Output)

CancelReason = _reflection.GeneratedProtocolMessageType(
    'CancelReason',
    (_message.Message,),
    dict(
        DESCRIPTOR=_CANCELREASON,
        __module__='build_pb2'
        # @@protoc_insertion_point(class_scope:buildbucket.v2.CancelReason)
    )
)
_sym_db.RegisterMessage(CancelReason)

InfraFailureReason = _reflection.GeneratedProtocolMessageType(
    'InfraFailureReason',
    (_message.Message,),
    dict(
        DESCRIPTOR=_INFRAFAILUREREASON,
        __module__='build_pb2'
        # @@protoc_insertion_point(class_scope:buildbucket.v2.InfraFailureReason)
    )
)
_sym_db.RegisterMessage(InfraFailureReason)

BuildInfra = _reflection.GeneratedProtocolMessageType(
    'BuildInfra',
    (_message.Message,),
    dict(
        Buildbucket=_reflection.GeneratedProtocolMessageType(
            'Buildbucket',
            (_message.Message,),
            dict(
                DESCRIPTOR=_BUILDINFRA_BUILDBUCKET,
                __module__='build_pb2'
                # @@protoc_insertion_point(class_scope:buildbucket.v2.BuildInfra.Buildbucket)
            )
        ),
        Swarming=_reflection.GeneratedProtocolMessageType(
            'Swarming',
            (_message.Message,),
            dict(
                DESCRIPTOR=_BUILDINFRA_SWARMING,
                __module__='build_pb2'
                # @@protoc_insertion_point(class_scope:buildbucket.v2.BuildInfra.Swarming)
            )
        ),
        LogDog=_reflection.GeneratedProtocolMessageType(
            'LogDog',
            (_message.Message,),
            dict(
                DESCRIPTOR=_BUILDINFRA_LOGDOG,
                __module__='build_pb2'
                # @@protoc_insertion_point(class_scope:buildbucket.v2.BuildInfra.LogDog)
            )
        ),
        Recipe=_reflection.GeneratedProtocolMessageType(
            'Recipe',
            (_message.Message,),
            dict(
                DESCRIPTOR=_BUILDINFRA_RECIPE,
                __module__='build_pb2'
                # @@protoc_insertion_point(class_scope:buildbucket.v2.BuildInfra.Recipe)
            )
        ),
        DESCRIPTOR=_BUILDINFRA,
        __module__='build_pb2'
        # @@protoc_insertion_point(class_scope:buildbucket.v2.BuildInfra)
    )
)
_sym_db.RegisterMessage(BuildInfra)
_sym_db.RegisterMessage(BuildInfra.Buildbucket)
_sym_db.RegisterMessage(BuildInfra.Swarming)
_sym_db.RegisterMessage(BuildInfra.LogDog)
_sym_db.RegisterMessage(BuildInfra.Recipe)

BuilderID = _reflection.GeneratedProtocolMessageType(
    'BuilderID',
    (_message.Message,),
    dict(
        DESCRIPTOR=_BUILDERID,
        __module__='build_pb2'
        # @@protoc_insertion_point(class_scope:buildbucket.v2.BuilderID)
    )
)
_sym_db.RegisterMessage(BuilderID)

DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(
    descriptor_pb2.FileOptions(),
    _b('Z4go.chromium.org/luci/buildbucket/proto;buildbucketpb')
)
# @@protoc_insertion_point(module_scope)
