# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: routing/v1alpha1/dest_policy.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 any_pb2 as google_dot_protobuf_dot_any__pb2
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from routing.v1alpha1 import route_rule_pb2 as routing_dot_v1alpha1_dot_route__rule__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='routing/v1alpha1/dest_policy.proto',
  package='istio.routing.v1alpha1',
  syntax='proto3',
  serialized_pb=_b('\n\"routing/v1alpha1/dest_policy.proto\x12\x16istio.routing.v1alpha1\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a!routing/v1alpha1/route_rule.proto\"\xaa\x02\n\x11\x44\x65stinationPolicy\x12\x39\n\x0b\x64\x65stination\x18\x01 \x01(\x0b\x32$.istio.routing.v1alpha1.IstioService\x12\x34\n\x06source\x18\x02 \x01(\x0b\x32$.istio.routing.v1alpha1.IstioService\x12=\n\x0eload_balancing\x18\x03 \x01(\x0b\x32%.istio.routing.v1alpha1.LoadBalancing\x12?\n\x0f\x63ircuit_breaker\x18\x04 \x01(\x0b\x32&.istio.routing.v1alpha1.CircuitBreaker\x12$\n\x06\x63ustom\x18\x64 \x01(\x0b\x32\x14.google.protobuf.Any\"\xc9\x01\n\rLoadBalancing\x12\x44\n\x04name\x18\x01 \x01(\x0e\x32\x34.istio.routing.v1alpha1.LoadBalancing.SimpleLBPolicyH\x00\x12&\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\"=\n\x0eSimpleLBPolicy\x12\x0f\n\x0bROUND_ROBIN\x10\x00\x12\x0e\n\nLEAST_CONN\x10\x01\x12\n\n\x06RANDOM\x10\x02\x42\x0b\n\tlb_policy\"\x88\x04\n\x0e\x43ircuitBreaker\x12V\n\tsimple_cb\x18\x01 \x01(\x0b\x32\x41.istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicyH\x00\x12&\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00\x1a\xe8\x02\n\x1aSimpleCircuitBreakerPolicy\x12\x17\n\x0fmax_connections\x18\x01 \x01(\x05\x12!\n\x19http_max_pending_requests\x18\x02 \x01(\x05\x12\x19\n\x11http_max_requests\x18\x03 \x01(\x05\x12/\n\x0csleep_window\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1f\n\x17http_consecutive_errors\x18\x05 \x01(\x05\x12:\n\x17http_detection_interval\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n http_max_requests_per_connection\x18\x07 \x01(\x05\x12!\n\x19http_max_ejection_percent\x18\x08 \x01(\x05\x12\x18\n\x10http_max_retries\x18\t \x01(\x05\x42\x0b\n\tcb_policyB\x1fZ\x1distio.io/api/routing/v1alpha1b\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,routing_dot_v1alpha1_dot_route__rule__pb2.DESCRIPTOR,])



_LOADBALANCING_SIMPLELBPOLICY = _descriptor.EnumDescriptor(
  name='SimpleLBPolicy',
  full_name='istio.routing.v1alpha1.LoadBalancing.SimpleLBPolicy',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ROUND_ROBIN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LEAST_CONN', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RANDOM', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=585,
  serialized_end=646,
)
_sym_db.RegisterEnumDescriptor(_LOADBALANCING_SIMPLELBPOLICY)


_DESTINATIONPOLICY = _descriptor.Descriptor(
  name='DestinationPolicy',
  full_name='istio.routing.v1alpha1.DestinationPolicy',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='destination', full_name='istio.routing.v1alpha1.DestinationPolicy.destination', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='source', full_name='istio.routing.v1alpha1.DestinationPolicy.source', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='load_balancing', full_name='istio.routing.v1alpha1.DestinationPolicy.load_balancing', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='circuit_breaker', full_name='istio.routing.v1alpha1.DestinationPolicy.circuit_breaker', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom', full_name='istio.routing.v1alpha1.DestinationPolicy.custom', index=4,
      number=100, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=157,
  serialized_end=455,
)


_LOADBALANCING = _descriptor.Descriptor(
  name='LoadBalancing',
  full_name='istio.routing.v1alpha1.LoadBalancing',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='istio.routing.v1alpha1.LoadBalancing.name', index=0,
      number=1, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom', full_name='istio.routing.v1alpha1.LoadBalancing.custom', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _LOADBALANCING_SIMPLELBPOLICY,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='lb_policy', full_name='istio.routing.v1alpha1.LoadBalancing.lb_policy',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=458,
  serialized_end=659,
)


_CIRCUITBREAKER_SIMPLECIRCUITBREAKERPOLICY = _descriptor.Descriptor(
  name='SimpleCircuitBreakerPolicy',
  full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='max_connections', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.max_connections', index=0,
      number=1, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='http_max_pending_requests', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.http_max_pending_requests', index=1,
      number=2, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='http_max_requests', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.http_max_requests', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sleep_window', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.sleep_window', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='http_consecutive_errors', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.http_consecutive_errors', index=4,
      number=5, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='http_detection_interval', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.http_detection_interval', index=5,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='http_max_requests_per_connection', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.http_max_requests_per_connection', index=6,
      number=7, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='http_max_ejection_percent', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.http_max_ejection_percent', index=7,
      number=8, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='http_max_retries', full_name='istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy.http_max_retries', index=8,
      number=9, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=809,
  serialized_end=1169,
)

_CIRCUITBREAKER = _descriptor.Descriptor(
  name='CircuitBreaker',
  full_name='istio.routing.v1alpha1.CircuitBreaker',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='simple_cb', full_name='istio.routing.v1alpha1.CircuitBreaker.simple_cb', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='custom', full_name='istio.routing.v1alpha1.CircuitBreaker.custom', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_CIRCUITBREAKER_SIMPLECIRCUITBREAKERPOLICY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='cb_policy', full_name='istio.routing.v1alpha1.CircuitBreaker.cb_policy',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=662,
  serialized_end=1182,
)

_DESTINATIONPOLICY.fields_by_name['destination'].message_type = routing_dot_v1alpha1_dot_route__rule__pb2._ISTIOSERVICE
_DESTINATIONPOLICY.fields_by_name['source'].message_type = routing_dot_v1alpha1_dot_route__rule__pb2._ISTIOSERVICE
_DESTINATIONPOLICY.fields_by_name['load_balancing'].message_type = _LOADBALANCING
_DESTINATIONPOLICY.fields_by_name['circuit_breaker'].message_type = _CIRCUITBREAKER
_DESTINATIONPOLICY.fields_by_name['custom'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_LOADBALANCING.fields_by_name['name'].enum_type = _LOADBALANCING_SIMPLELBPOLICY
_LOADBALANCING.fields_by_name['custom'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_LOADBALANCING_SIMPLELBPOLICY.containing_type = _LOADBALANCING
_LOADBALANCING.oneofs_by_name['lb_policy'].fields.append(
  _LOADBALANCING.fields_by_name['name'])
_LOADBALANCING.fields_by_name['name'].containing_oneof = _LOADBALANCING.oneofs_by_name['lb_policy']
_LOADBALANCING.oneofs_by_name['lb_policy'].fields.append(
  _LOADBALANCING.fields_by_name['custom'])
_LOADBALANCING.fields_by_name['custom'].containing_oneof = _LOADBALANCING.oneofs_by_name['lb_policy']
_CIRCUITBREAKER_SIMPLECIRCUITBREAKERPOLICY.fields_by_name['sleep_window'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_CIRCUITBREAKER_SIMPLECIRCUITBREAKERPOLICY.fields_by_name['http_detection_interval'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_CIRCUITBREAKER_SIMPLECIRCUITBREAKERPOLICY.containing_type = _CIRCUITBREAKER
_CIRCUITBREAKER.fields_by_name['simple_cb'].message_type = _CIRCUITBREAKER_SIMPLECIRCUITBREAKERPOLICY
_CIRCUITBREAKER.fields_by_name['custom'].message_type = google_dot_protobuf_dot_any__pb2._ANY
_CIRCUITBREAKER.oneofs_by_name['cb_policy'].fields.append(
  _CIRCUITBREAKER.fields_by_name['simple_cb'])
_CIRCUITBREAKER.fields_by_name['simple_cb'].containing_oneof = _CIRCUITBREAKER.oneofs_by_name['cb_policy']
_CIRCUITBREAKER.oneofs_by_name['cb_policy'].fields.append(
  _CIRCUITBREAKER.fields_by_name['custom'])
_CIRCUITBREAKER.fields_by_name['custom'].containing_oneof = _CIRCUITBREAKER.oneofs_by_name['cb_policy']
DESCRIPTOR.message_types_by_name['DestinationPolicy'] = _DESTINATIONPOLICY
DESCRIPTOR.message_types_by_name['LoadBalancing'] = _LOADBALANCING
DESCRIPTOR.message_types_by_name['CircuitBreaker'] = _CIRCUITBREAKER
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

DestinationPolicy = _reflection.GeneratedProtocolMessageType('DestinationPolicy', (_message.Message,), dict(
  DESCRIPTOR = _DESTINATIONPOLICY,
  __module__ = 'routing.v1alpha1.dest_policy_pb2'
  # @@protoc_insertion_point(class_scope:istio.routing.v1alpha1.DestinationPolicy)
  ))
_sym_db.RegisterMessage(DestinationPolicy)

LoadBalancing = _reflection.GeneratedProtocolMessageType('LoadBalancing', (_message.Message,), dict(
  DESCRIPTOR = _LOADBALANCING,
  __module__ = 'routing.v1alpha1.dest_policy_pb2'
  # @@protoc_insertion_point(class_scope:istio.routing.v1alpha1.LoadBalancing)
  ))
_sym_db.RegisterMessage(LoadBalancing)

CircuitBreaker = _reflection.GeneratedProtocolMessageType('CircuitBreaker', (_message.Message,), dict(

  SimpleCircuitBreakerPolicy = _reflection.GeneratedProtocolMessageType('SimpleCircuitBreakerPolicy', (_message.Message,), dict(
    DESCRIPTOR = _CIRCUITBREAKER_SIMPLECIRCUITBREAKERPOLICY,
    __module__ = 'routing.v1alpha1.dest_policy_pb2'
    # @@protoc_insertion_point(class_scope:istio.routing.v1alpha1.CircuitBreaker.SimpleCircuitBreakerPolicy)
    ))
  ,
  DESCRIPTOR = _CIRCUITBREAKER,
  __module__ = 'routing.v1alpha1.dest_policy_pb2'
  # @@protoc_insertion_point(class_scope:istio.routing.v1alpha1.CircuitBreaker)
  ))
_sym_db.RegisterMessage(CircuitBreaker)
_sym_db.RegisterMessage(CircuitBreaker.SimpleCircuitBreakerPolicy)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('Z\035istio.io/api/routing/v1alpha1'))
# @@protoc_insertion_point(module_scope)
