#!/usr/bin/python
#
# Copyright 2018 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.

# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: demo.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()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='demo.proto',
  package='hipstershop',
  syntax='proto3',
  serialized_pb=_b('\n\ndemo.proto\x12\x0bhipstershop\"0\n\x08\x43\x61rtItem\x12\x12\n\nproduct_id\x18\x01 \x01(\t\x12\x10\n\x08quantity\x18\x02 \x01(\x05\"F\n\x0e\x41\x64\x64ItemRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12#\n\x04item\x18\x02 \x01(\x0b\x32\x15.hipstershop.CartItem\"#\n\x10\x45mptyCartRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\"!\n\x0eGetCartRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\"=\n\x04\x43\x61rt\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.hipstershop.CartItem\"\x07\n\x05\x45mpty\"B\n\x1aListRecommendationsRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x13\n\x0bproduct_ids\x18\x02 \x03(\t\"2\n\x1bListRecommendationsResponse\x12\x13\n\x0bproduct_ids\x18\x01 \x03(\t\"p\n\x07Product\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0f\n\x07picture\x18\x04 \x01(\t\x12%\n\tprice_usd\x18\x05 \x01(\x0b\x32\x12.hipstershop.Money\">\n\x14ListProductsResponse\x12&\n\x08products\x18\x01 \x03(\x0b\x32\x14.hipstershop.Product\"\x1f\n\x11GetProductRequest\x12\n\n\x02id\x18\x01 \x01(\t\"&\n\x15SearchProductsRequest\x12\r\n\x05query\x18\x01 \x01(\t\"?\n\x16SearchProductsResponse\x12%\n\x07results\x18\x01 \x03(\x0b\x32\x14.hipstershop.Product\"^\n\x0fGetQuoteRequest\x12%\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x14.hipstershop.Address\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.hipstershop.CartItem\"8\n\x10GetQuoteResponse\x12$\n\x08\x63ost_usd\x18\x01 \x01(\x0b\x32\x12.hipstershop.Money\"_\n\x10ShipOrderRequest\x12%\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x14.hipstershop.Address\x12$\n\x05items\x18\x02 \x03(\x0b\x32\x15.hipstershop.CartItem\"(\n\x11ShipOrderResponse\x12\x13\n\x0btracking_id\x18\x01 \x01(\t\"n\n\x07\x41\x64\x64ress\x12\x18\n\x10street_address_1\x18\x01 \x01(\t\x12\x18\n\x10street_address_2\x18\x02 \x01(\t\x12\x0c\n\x04\x63ity\x18\x03 \x01(\t\x12\x0f\n\x07\x63ountry\x18\x04 \x01(\t\x12\x10\n\x08zip_code\x18\x05 \x01(\x05\"<\n\x05Money\x12\x15\n\rcurrency_code\x18\x01 \x01(\t\x12\r\n\x05units\x18\x02 \x01(\x03\x12\r\n\x05nanos\x18\x03 \x01(\x05\"8\n\x1eGetSupportedCurrenciesResponse\x12\x16\n\x0e\x63urrency_codes\x18\x01 \x03(\t\"N\n\x19\x43urrencyConversionRequest\x12 \n\x04\x66rom\x18\x01 \x01(\x0b\x32\x12.hipstershop.Money\x12\x0f\n\x07to_code\x18\x02 \x01(\t\"\x90\x01\n\x0e\x43reditCardInfo\x12\x1a\n\x12\x63redit_card_number\x18\x01 \x01(\t\x12\x17\n\x0f\x63redit_card_cvv\x18\x02 \x01(\x05\x12#\n\x1b\x63redit_card_expiration_year\x18\x03 \x01(\x05\x12$\n\x1c\x63redit_card_expiration_month\x18\x04 \x01(\x05\"e\n\rChargeRequest\x12\"\n\x06\x61mount\x18\x01 \x01(\x0b\x32\x12.hipstershop.Money\x12\x30\n\x0b\x63redit_card\x18\x02 \x01(\x0b\x32\x1b.hipstershop.CreditCardInfo\"(\n\x0e\x43hargeResponse\x12\x16\n\x0etransaction_id\x18\x01 \x01(\t\"R\n\tOrderItem\x12#\n\x04item\x18\x01 \x01(\x0b\x32\x15.hipstershop.CartItem\x12 \n\x04\x63ost\x18\x02 \x01(\x0b\x32\x12.hipstershop.Money\"\xbf\x01\n\x0bOrderResult\x12\x10\n\x08order_id\x18\x01 \x01(\t\x12\x1c\n\x14shipping_tracking_id\x18\x02 \x01(\t\x12)\n\rshipping_cost\x18\x03 \x01(\x0b\x32\x12.hipstershop.Money\x12.\n\x10shipping_address\x18\x04 \x01(\x0b\x32\x14.hipstershop.Address\x12%\n\x05items\x18\x05 \x03(\x0b\x32\x16.hipstershop.OrderItem\"V\n\x1cSendOrderConfirmationRequest\x12\r\n\x05\x65mail\x18\x01 \x01(\t\x12\'\n\x05order\x18\x02 \x01(\x0b\x32\x18.hipstershop.OrderResult\"c\n\x12\x43reateOrderRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x15\n\ruser_currency\x18\x02 \x01(\t\x12%\n\x07\x61\x64\x64ress\x18\x03 \x01(\x0b\x32\x14.hipstershop.Address\"g\n\x13\x43reateOrderResponse\x12%\n\x05items\x18\x01 \x03(\x0b\x32\x16.hipstershop.OrderItem\x12)\n\rshipping_cost\x18\x02 \x01(\x0b\x32\x12.hipstershop.Money\"\xa3\x01\n\x11PlaceOrderRequest\x12\x0f\n\x07user_id\x18\x01 \x01(\t\x12\x15\n\ruser_currency\x18\x02 \x01(\t\x12%\n\x07\x61\x64\x64ress\x18\x03 \x01(\x0b\x32\x14.hipstershop.Address\x12\r\n\x05\x65mail\x18\x05 \x01(\t\x12\x30\n\x0b\x63redit_card\x18\x06 \x01(\x0b\x32\x1b.hipstershop.CreditCardInfo\"=\n\x12PlaceOrderResponse\x12\'\n\x05order\x18\x01 \x01(\x0b\x32\x18.hipstershop.OrderResult2\xca\x01\n\x0b\x43\x61rtService\x12<\n\x07\x41\x64\x64Item\x12\x1b.hipstershop.AddItemRequest\x1a\x12.hipstershop.Empty\"\x00\x12;\n\x07GetCart\x12\x1b.hipstershop.GetCartRequest\x1a\x11.hipstershop.Cart\"\x00\x12@\n\tEmptyCart\x12\x1d.hipstershop.EmptyCartRequest\x1a\x12.hipstershop.Empty\"\x00\x32\x83\x01\n\x15RecommendationService\x12j\n\x13ListRecommendations\x12\'.hipstershop.ListRecommendationsRequest\x1a(.hipstershop.ListRecommendationsResponse\"\x00\x32\x83\x02\n\x15ProductCatalogService\x12G\n\x0cListProducts\x12\x12.hipstershop.Empty\x1a!.hipstershop.ListProductsResponse\"\x00\x12\x44\n\nGetProduct\x12\x1e.hipstershop.GetProductRequest\x1a\x14.hipstershop.Product\"\x00\x12[\n\x0eSearchProducts\x12\".hipstershop.SearchProductsRequest\x1a#.hipstershop.SearchProductsResponse\"\x00\x32\xaa\x01\n\x0fShippingService\x12I\n\x08GetQuote\x12\x1c.hipstershop.GetQuoteRequest\x1a\x1d.hipstershop.GetQuoteResponse\"\x00\x12L\n\tShipOrder\x12\x1d.hipstershop.ShipOrderRequest\x1a\x1e.hipstershop.ShipOrderResponse\"\x00\x32\xb7\x01\n\x0f\x43urrencyService\x12[\n\x16GetSupportedCurrencies\x12\x12.hipstershop.Empty\x1a+.hipstershop.GetSupportedCurrenciesResponse\"\x00\x12G\n\x07\x43onvert\x12&.hipstershop.CurrencyConversionRequest\x1a\x12.hipstershop.Money\"\x00\x32U\n\x0ePaymentService\x12\x43\n\x06\x43harge\x12\x1a.hipstershop.ChargeRequest\x1a\x1b.hipstershop.ChargeResponse\"\x00\x32h\n\x0c\x45mailService\x12X\n\x15SendOrderConfirmation\x12).hipstershop.SendOrderConfirmationRequest\x1a\x12.hipstershop.Empty\"\x00\x32\xb6\x01\n\x0f\x43heckoutService\x12R\n\x0b\x43reateOrder\x12\x1f.hipstershop.CreateOrderRequest\x1a .hipstershop.CreateOrderResponse\"\x00\x12O\n\nPlaceOrder\x12\x1e.hipstershop.PlaceOrderRequest\x1a\x1f.hipstershop.PlaceOrderResponse\"\x00\x62\x06proto3')
)




_CARTITEM = _descriptor.Descriptor(
  name='CartItem',
  full_name='hipstershop.CartItem',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='product_id', full_name='hipstershop.CartItem.product_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='quantity', full_name='hipstershop.CartItem.quantity', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=27,
  serialized_end=75,
)


_ADDITEMREQUEST = _descriptor.Descriptor(
  name='AddItemRequest',
  full_name='hipstershop.AddItemRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='hipstershop.AddItemRequest.user_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='item', full_name='hipstershop.AddItemRequest.item', 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=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=77,
  serialized_end=147,
)


_EMPTYCARTREQUEST = _descriptor.Descriptor(
  name='EmptyCartRequest',
  full_name='hipstershop.EmptyCartRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='hipstershop.EmptyCartRequest.user_id', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=149,
  serialized_end=184,
)


_GETCARTREQUEST = _descriptor.Descriptor(
  name='GetCartRequest',
  full_name='hipstershop.GetCartRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='hipstershop.GetCartRequest.user_id', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=186,
  serialized_end=219,
)


_CART = _descriptor.Descriptor(
  name='Cart',
  full_name='hipstershop.Cart',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='hipstershop.Cart.user_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='items', full_name='hipstershop.Cart.items', index=1,
      number=2, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=221,
  serialized_end=282,
)


_EMPTY = _descriptor.Descriptor(
  name='Empty',
  full_name='hipstershop.Empty',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=284,
  serialized_end=291,
)


_LISTRECOMMENDATIONSREQUEST = _descriptor.Descriptor(
  name='ListRecommendationsRequest',
  full_name='hipstershop.ListRecommendationsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='hipstershop.ListRecommendationsRequest.user_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='product_ids', full_name='hipstershop.ListRecommendationsRequest.product_ids', index=1,
      number=2, type=9, cpp_type=9, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=293,
  serialized_end=359,
)


_LISTRECOMMENDATIONSRESPONSE = _descriptor.Descriptor(
  name='ListRecommendationsResponse',
  full_name='hipstershop.ListRecommendationsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='product_ids', full_name='hipstershop.ListRecommendationsResponse.product_ids', index=0,
      number=1, type=9, cpp_type=9, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=361,
  serialized_end=411,
)


_PRODUCT = _descriptor.Descriptor(
  name='Product',
  full_name='hipstershop.Product',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='hipstershop.Product.id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='name', full_name='hipstershop.Product.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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='description', full_name='hipstershop.Product.description', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='picture', full_name='hipstershop.Product.picture', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='price_usd', full_name='hipstershop.Product.price_usd', index=4,
      number=5, 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=413,
  serialized_end=525,
)


_LISTPRODUCTSRESPONSE = _descriptor.Descriptor(
  name='ListProductsResponse',
  full_name='hipstershop.ListProductsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='products', full_name='hipstershop.ListProductsResponse.products', index=0,
      number=1, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=527,
  serialized_end=589,
)


_GETPRODUCTREQUEST = _descriptor.Descriptor(
  name='GetProductRequest',
  full_name='hipstershop.GetProductRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='hipstershop.GetProductRequest.id', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=591,
  serialized_end=622,
)


_SEARCHPRODUCTSREQUEST = _descriptor.Descriptor(
  name='SearchProductsRequest',
  full_name='hipstershop.SearchProductsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='query', full_name='hipstershop.SearchProductsRequest.query', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=624,
  serialized_end=662,
)


_SEARCHPRODUCTSRESPONSE = _descriptor.Descriptor(
  name='SearchProductsResponse',
  full_name='hipstershop.SearchProductsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='results', full_name='hipstershop.SearchProductsResponse.results', index=0,
      number=1, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=664,
  serialized_end=727,
)


_GETQUOTEREQUEST = _descriptor.Descriptor(
  name='GetQuoteRequest',
  full_name='hipstershop.GetQuoteRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='address', full_name='hipstershop.GetQuoteRequest.address', 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='items', full_name='hipstershop.GetQuoteRequest.items', index=1,
      number=2, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=729,
  serialized_end=823,
)


_GETQUOTERESPONSE = _descriptor.Descriptor(
  name='GetQuoteResponse',
  full_name='hipstershop.GetQuoteResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cost_usd', full_name='hipstershop.GetQuoteResponse.cost_usd', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=825,
  serialized_end=881,
)


_SHIPORDERREQUEST = _descriptor.Descriptor(
  name='ShipOrderRequest',
  full_name='hipstershop.ShipOrderRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='address', full_name='hipstershop.ShipOrderRequest.address', 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='items', full_name='hipstershop.ShipOrderRequest.items', index=1,
      number=2, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=883,
  serialized_end=978,
)


_SHIPORDERRESPONSE = _descriptor.Descriptor(
  name='ShipOrderResponse',
  full_name='hipstershop.ShipOrderResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='tracking_id', full_name='hipstershop.ShipOrderResponse.tracking_id', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=980,
  serialized_end=1020,
)


_ADDRESS = _descriptor.Descriptor(
  name='Address',
  full_name='hipstershop.Address',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='street_address_1', full_name='hipstershop.Address.street_address_1', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='street_address_2', full_name='hipstershop.Address.street_address_2', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='city', full_name='hipstershop.Address.city', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='country', full_name='hipstershop.Address.country', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='zip_code', full_name='hipstershop.Address.zip_code', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1022,
  serialized_end=1132,
)


_MONEY = _descriptor.Descriptor(
  name='Money',
  full_name='hipstershop.Money',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='currency_code', full_name='hipstershop.Money.currency_code', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='units', full_name='hipstershop.Money.units', index=1,
      number=2, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nanos', full_name='hipstershop.Money.nanos', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1134,
  serialized_end=1194,
)


_GETSUPPORTEDCURRENCIESRESPONSE = _descriptor.Descriptor(
  name='GetSupportedCurrenciesResponse',
  full_name='hipstershop.GetSupportedCurrenciesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='currency_codes', full_name='hipstershop.GetSupportedCurrenciesResponse.currency_codes', index=0,
      number=1, type=9, cpp_type=9, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1196,
  serialized_end=1252,
)


_CURRENCYCONVERSIONREQUEST = _descriptor.Descriptor(
  name='CurrencyConversionRequest',
  full_name='hipstershop.CurrencyConversionRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='from', full_name='hipstershop.CurrencyConversionRequest.from', 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='to_code', full_name='hipstershop.CurrencyConversionRequest.to_code', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1254,
  serialized_end=1332,
)


_CREDITCARDINFO = _descriptor.Descriptor(
  name='CreditCardInfo',
  full_name='hipstershop.CreditCardInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='credit_card_number', full_name='hipstershop.CreditCardInfo.credit_card_number', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='credit_card_cvv', full_name='hipstershop.CreditCardInfo.credit_card_cvv', 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='credit_card_expiration_year', full_name='hipstershop.CreditCardInfo.credit_card_expiration_year', 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='credit_card_expiration_month', full_name='hipstershop.CreditCardInfo.credit_card_expiration_month', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1335,
  serialized_end=1479,
)


_CHARGEREQUEST = _descriptor.Descriptor(
  name='ChargeRequest',
  full_name='hipstershop.ChargeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='amount', full_name='hipstershop.ChargeRequest.amount', 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='credit_card', full_name='hipstershop.ChargeRequest.credit_card', 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=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1481,
  serialized_end=1582,
)


_CHARGERESPONSE = _descriptor.Descriptor(
  name='ChargeResponse',
  full_name='hipstershop.ChargeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='transaction_id', full_name='hipstershop.ChargeResponse.transaction_id', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1584,
  serialized_end=1624,
)


_ORDERITEM = _descriptor.Descriptor(
  name='OrderItem',
  full_name='hipstershop.OrderItem',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='item', full_name='hipstershop.OrderItem.item', 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='cost', full_name='hipstershop.OrderItem.cost', 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=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1626,
  serialized_end=1708,
)


_ORDERRESULT = _descriptor.Descriptor(
  name='OrderResult',
  full_name='hipstershop.OrderResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='order_id', full_name='hipstershop.OrderResult.order_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='shipping_tracking_id', full_name='hipstershop.OrderResult.shipping_tracking_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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='shipping_cost', full_name='hipstershop.OrderResult.shipping_cost', 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='shipping_address', full_name='hipstershop.OrderResult.shipping_address', 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='items', full_name='hipstershop.OrderResult.items', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1711,
  serialized_end=1902,
)


_SENDORDERCONFIRMATIONREQUEST = _descriptor.Descriptor(
  name='SendOrderConfirmationRequest',
  full_name='hipstershop.SendOrderConfirmationRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='email', full_name='hipstershop.SendOrderConfirmationRequest.email', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='order', full_name='hipstershop.SendOrderConfirmationRequest.order', 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=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1904,
  serialized_end=1990,
)


_CREATEORDERREQUEST = _descriptor.Descriptor(
  name='CreateOrderRequest',
  full_name='hipstershop.CreateOrderRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='hipstershop.CreateOrderRequest.user_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='user_currency', full_name='hipstershop.CreateOrderRequest.user_currency', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='address', full_name='hipstershop.CreateOrderRequest.address', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1992,
  serialized_end=2091,
)


_CREATEORDERRESPONSE = _descriptor.Descriptor(
  name='CreateOrderResponse',
  full_name='hipstershop.CreateOrderResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='hipstershop.CreateOrderResponse.items', index=0,
      number=1, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='shipping_cost', full_name='hipstershop.CreateOrderResponse.shipping_cost', 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=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2093,
  serialized_end=2196,
)


_PLACEORDERREQUEST = _descriptor.Descriptor(
  name='PlaceOrderRequest',
  full_name='hipstershop.PlaceOrderRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='hipstershop.PlaceOrderRequest.user_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='user_currency', full_name='hipstershop.PlaceOrderRequest.user_currency', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='address', full_name='hipstershop.PlaceOrderRequest.address', 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='email', full_name='hipstershop.PlaceOrderRequest.email', index=3,
      number=5, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='credit_card', full_name='hipstershop.PlaceOrderRequest.credit_card', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2199,
  serialized_end=2362,
)


_PLACEORDERRESPONSE = _descriptor.Descriptor(
  name='PlaceOrderResponse',
  full_name='hipstershop.PlaceOrderResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='order', full_name='hipstershop.PlaceOrderResponse.order', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2364,
  serialized_end=2425,
)

_ADDITEMREQUEST.fields_by_name['item'].message_type = _CARTITEM
_CART.fields_by_name['items'].message_type = _CARTITEM
_PRODUCT.fields_by_name['price_usd'].message_type = _MONEY
_LISTPRODUCTSRESPONSE.fields_by_name['products'].message_type = _PRODUCT
_SEARCHPRODUCTSRESPONSE.fields_by_name['results'].message_type = _PRODUCT
_GETQUOTEREQUEST.fields_by_name['address'].message_type = _ADDRESS
_GETQUOTEREQUEST.fields_by_name['items'].message_type = _CARTITEM
_GETQUOTERESPONSE.fields_by_name['cost_usd'].message_type = _MONEY
_SHIPORDERREQUEST.fields_by_name['address'].message_type = _ADDRESS
_SHIPORDERREQUEST.fields_by_name['items'].message_type = _CARTITEM
_CURRENCYCONVERSIONREQUEST.fields_by_name['from'].message_type = _MONEY
_CHARGEREQUEST.fields_by_name['amount'].message_type = _MONEY
_CHARGEREQUEST.fields_by_name['credit_card'].message_type = _CREDITCARDINFO
_ORDERITEM.fields_by_name['item'].message_type = _CARTITEM
_ORDERITEM.fields_by_name['cost'].message_type = _MONEY
_ORDERRESULT.fields_by_name['shipping_cost'].message_type = _MONEY
_ORDERRESULT.fields_by_name['shipping_address'].message_type = _ADDRESS
_ORDERRESULT.fields_by_name['items'].message_type = _ORDERITEM
_SENDORDERCONFIRMATIONREQUEST.fields_by_name['order'].message_type = _ORDERRESULT
_CREATEORDERREQUEST.fields_by_name['address'].message_type = _ADDRESS
_CREATEORDERRESPONSE.fields_by_name['items'].message_type = _ORDERITEM
_CREATEORDERRESPONSE.fields_by_name['shipping_cost'].message_type = _MONEY
_PLACEORDERREQUEST.fields_by_name['address'].message_type = _ADDRESS
_PLACEORDERREQUEST.fields_by_name['credit_card'].message_type = _CREDITCARDINFO
_PLACEORDERRESPONSE.fields_by_name['order'].message_type = _ORDERRESULT
DESCRIPTOR.message_types_by_name['CartItem'] = _CARTITEM
DESCRIPTOR.message_types_by_name['AddItemRequest'] = _ADDITEMREQUEST
DESCRIPTOR.message_types_by_name['EmptyCartRequest'] = _EMPTYCARTREQUEST
DESCRIPTOR.message_types_by_name['GetCartRequest'] = _GETCARTREQUEST
DESCRIPTOR.message_types_by_name['Cart'] = _CART
DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
DESCRIPTOR.message_types_by_name['ListRecommendationsRequest'] = _LISTRECOMMENDATIONSREQUEST
DESCRIPTOR.message_types_by_name['ListRecommendationsResponse'] = _LISTRECOMMENDATIONSRESPONSE
DESCRIPTOR.message_types_by_name['Product'] = _PRODUCT
DESCRIPTOR.message_types_by_name['ListProductsResponse'] = _LISTPRODUCTSRESPONSE
DESCRIPTOR.message_types_by_name['GetProductRequest'] = _GETPRODUCTREQUEST
DESCRIPTOR.message_types_by_name['SearchProductsRequest'] = _SEARCHPRODUCTSREQUEST
DESCRIPTOR.message_types_by_name['SearchProductsResponse'] = _SEARCHPRODUCTSRESPONSE
DESCRIPTOR.message_types_by_name['GetQuoteRequest'] = _GETQUOTEREQUEST
DESCRIPTOR.message_types_by_name['GetQuoteResponse'] = _GETQUOTERESPONSE
DESCRIPTOR.message_types_by_name['ShipOrderRequest'] = _SHIPORDERREQUEST
DESCRIPTOR.message_types_by_name['ShipOrderResponse'] = _SHIPORDERRESPONSE
DESCRIPTOR.message_types_by_name['Address'] = _ADDRESS
DESCRIPTOR.message_types_by_name['Money'] = _MONEY
DESCRIPTOR.message_types_by_name['GetSupportedCurrenciesResponse'] = _GETSUPPORTEDCURRENCIESRESPONSE
DESCRIPTOR.message_types_by_name['CurrencyConversionRequest'] = _CURRENCYCONVERSIONREQUEST
DESCRIPTOR.message_types_by_name['CreditCardInfo'] = _CREDITCARDINFO
DESCRIPTOR.message_types_by_name['ChargeRequest'] = _CHARGEREQUEST
DESCRIPTOR.message_types_by_name['ChargeResponse'] = _CHARGERESPONSE
DESCRIPTOR.message_types_by_name['OrderItem'] = _ORDERITEM
DESCRIPTOR.message_types_by_name['OrderResult'] = _ORDERRESULT
DESCRIPTOR.message_types_by_name['SendOrderConfirmationRequest'] = _SENDORDERCONFIRMATIONREQUEST
DESCRIPTOR.message_types_by_name['CreateOrderRequest'] = _CREATEORDERREQUEST
DESCRIPTOR.message_types_by_name['CreateOrderResponse'] = _CREATEORDERRESPONSE
DESCRIPTOR.message_types_by_name['PlaceOrderRequest'] = _PLACEORDERREQUEST
DESCRIPTOR.message_types_by_name['PlaceOrderResponse'] = _PLACEORDERRESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

CartItem = _reflection.GeneratedProtocolMessageType('CartItem', (_message.Message,), dict(
  DESCRIPTOR = _CARTITEM,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.CartItem)
  ))
_sym_db.RegisterMessage(CartItem)

AddItemRequest = _reflection.GeneratedProtocolMessageType('AddItemRequest', (_message.Message,), dict(
  DESCRIPTOR = _ADDITEMREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.AddItemRequest)
  ))
_sym_db.RegisterMessage(AddItemRequest)

EmptyCartRequest = _reflection.GeneratedProtocolMessageType('EmptyCartRequest', (_message.Message,), dict(
  DESCRIPTOR = _EMPTYCARTREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.EmptyCartRequest)
  ))
_sym_db.RegisterMessage(EmptyCartRequest)

GetCartRequest = _reflection.GeneratedProtocolMessageType('GetCartRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETCARTREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.GetCartRequest)
  ))
_sym_db.RegisterMessage(GetCartRequest)

Cart = _reflection.GeneratedProtocolMessageType('Cart', (_message.Message,), dict(
  DESCRIPTOR = _CART,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.Cart)
  ))
_sym_db.RegisterMessage(Cart)

Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), dict(
  DESCRIPTOR = _EMPTY,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.Empty)
  ))
_sym_db.RegisterMessage(Empty)

ListRecommendationsRequest = _reflection.GeneratedProtocolMessageType('ListRecommendationsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTRECOMMENDATIONSREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.ListRecommendationsRequest)
  ))
_sym_db.RegisterMessage(ListRecommendationsRequest)

ListRecommendationsResponse = _reflection.GeneratedProtocolMessageType('ListRecommendationsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTRECOMMENDATIONSRESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.ListRecommendationsResponse)
  ))
_sym_db.RegisterMessage(ListRecommendationsResponse)

Product = _reflection.GeneratedProtocolMessageType('Product', (_message.Message,), dict(
  DESCRIPTOR = _PRODUCT,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.Product)
  ))
_sym_db.RegisterMessage(Product)

ListProductsResponse = _reflection.GeneratedProtocolMessageType('ListProductsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPRODUCTSRESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.ListProductsResponse)
  ))
_sym_db.RegisterMessage(ListProductsResponse)

GetProductRequest = _reflection.GeneratedProtocolMessageType('GetProductRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETPRODUCTREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.GetProductRequest)
  ))
_sym_db.RegisterMessage(GetProductRequest)

SearchProductsRequest = _reflection.GeneratedProtocolMessageType('SearchProductsRequest', (_message.Message,), dict(
  DESCRIPTOR = _SEARCHPRODUCTSREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.SearchProductsRequest)
  ))
_sym_db.RegisterMessage(SearchProductsRequest)

SearchProductsResponse = _reflection.GeneratedProtocolMessageType('SearchProductsResponse', (_message.Message,), dict(
  DESCRIPTOR = _SEARCHPRODUCTSRESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.SearchProductsResponse)
  ))
_sym_db.RegisterMessage(SearchProductsResponse)

GetQuoteRequest = _reflection.GeneratedProtocolMessageType('GetQuoteRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETQUOTEREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.GetQuoteRequest)
  ))
_sym_db.RegisterMessage(GetQuoteRequest)

GetQuoteResponse = _reflection.GeneratedProtocolMessageType('GetQuoteResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETQUOTERESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.GetQuoteResponse)
  ))
_sym_db.RegisterMessage(GetQuoteResponse)

ShipOrderRequest = _reflection.GeneratedProtocolMessageType('ShipOrderRequest', (_message.Message,), dict(
  DESCRIPTOR = _SHIPORDERREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.ShipOrderRequest)
  ))
_sym_db.RegisterMessage(ShipOrderRequest)

ShipOrderResponse = _reflection.GeneratedProtocolMessageType('ShipOrderResponse', (_message.Message,), dict(
  DESCRIPTOR = _SHIPORDERRESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.ShipOrderResponse)
  ))
_sym_db.RegisterMessage(ShipOrderResponse)

Address = _reflection.GeneratedProtocolMessageType('Address', (_message.Message,), dict(
  DESCRIPTOR = _ADDRESS,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.Address)
  ))
_sym_db.RegisterMessage(Address)

Money = _reflection.GeneratedProtocolMessageType('Money', (_message.Message,), dict(
  DESCRIPTOR = _MONEY,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.Money)
  ))
_sym_db.RegisterMessage(Money)

GetSupportedCurrenciesResponse = _reflection.GeneratedProtocolMessageType('GetSupportedCurrenciesResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETSUPPORTEDCURRENCIESRESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.GetSupportedCurrenciesResponse)
  ))
_sym_db.RegisterMessage(GetSupportedCurrenciesResponse)

CurrencyConversionRequest = _reflection.GeneratedProtocolMessageType('CurrencyConversionRequest', (_message.Message,), dict(
  DESCRIPTOR = _CURRENCYCONVERSIONREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.CurrencyConversionRequest)
  ))
_sym_db.RegisterMessage(CurrencyConversionRequest)

CreditCardInfo = _reflection.GeneratedProtocolMessageType('CreditCardInfo', (_message.Message,), dict(
  DESCRIPTOR = _CREDITCARDINFO,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.CreditCardInfo)
  ))
_sym_db.RegisterMessage(CreditCardInfo)

ChargeRequest = _reflection.GeneratedProtocolMessageType('ChargeRequest', (_message.Message,), dict(
  DESCRIPTOR = _CHARGEREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.ChargeRequest)
  ))
_sym_db.RegisterMessage(ChargeRequest)

ChargeResponse = _reflection.GeneratedProtocolMessageType('ChargeResponse', (_message.Message,), dict(
  DESCRIPTOR = _CHARGERESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.ChargeResponse)
  ))
_sym_db.RegisterMessage(ChargeResponse)

OrderItem = _reflection.GeneratedProtocolMessageType('OrderItem', (_message.Message,), dict(
  DESCRIPTOR = _ORDERITEM,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.OrderItem)
  ))
_sym_db.RegisterMessage(OrderItem)

OrderResult = _reflection.GeneratedProtocolMessageType('OrderResult', (_message.Message,), dict(
  DESCRIPTOR = _ORDERRESULT,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.OrderResult)
  ))
_sym_db.RegisterMessage(OrderResult)

SendOrderConfirmationRequest = _reflection.GeneratedProtocolMessageType('SendOrderConfirmationRequest', (_message.Message,), dict(
  DESCRIPTOR = _SENDORDERCONFIRMATIONREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.SendOrderConfirmationRequest)
  ))
_sym_db.RegisterMessage(SendOrderConfirmationRequest)

CreateOrderRequest = _reflection.GeneratedProtocolMessageType('CreateOrderRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEORDERREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.CreateOrderRequest)
  ))
_sym_db.RegisterMessage(CreateOrderRequest)

CreateOrderResponse = _reflection.GeneratedProtocolMessageType('CreateOrderResponse', (_message.Message,), dict(
  DESCRIPTOR = _CREATEORDERRESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.CreateOrderResponse)
  ))
_sym_db.RegisterMessage(CreateOrderResponse)

PlaceOrderRequest = _reflection.GeneratedProtocolMessageType('PlaceOrderRequest', (_message.Message,), dict(
  DESCRIPTOR = _PLACEORDERREQUEST,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.PlaceOrderRequest)
  ))
_sym_db.RegisterMessage(PlaceOrderRequest)

PlaceOrderResponse = _reflection.GeneratedProtocolMessageType('PlaceOrderResponse', (_message.Message,), dict(
  DESCRIPTOR = _PLACEORDERRESPONSE,
  __module__ = 'demo_pb2'
  # @@protoc_insertion_point(class_scope:hipstershop.PlaceOrderResponse)
  ))
_sym_db.RegisterMessage(PlaceOrderResponse)



_CARTSERVICE = _descriptor.ServiceDescriptor(
  name='CartService',
  full_name='hipstershop.CartService',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=2428,
  serialized_end=2630,
  methods=[
  _descriptor.MethodDescriptor(
    name='AddItem',
    full_name='hipstershop.CartService.AddItem',
    index=0,
    containing_service=None,
    input_type=_ADDITEMREQUEST,
    output_type=_EMPTY,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetCart',
    full_name='hipstershop.CartService.GetCart',
    index=1,
    containing_service=None,
    input_type=_GETCARTREQUEST,
    output_type=_CART,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='EmptyCart',
    full_name='hipstershop.CartService.EmptyCart',
    index=2,
    containing_service=None,
    input_type=_EMPTYCARTREQUEST,
    output_type=_EMPTY,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_CARTSERVICE)

DESCRIPTOR.services_by_name['CartService'] = _CARTSERVICE


_RECOMMENDATIONSERVICE = _descriptor.ServiceDescriptor(
  name='RecommendationService',
  full_name='hipstershop.RecommendationService',
  file=DESCRIPTOR,
  index=1,
  options=None,
  serialized_start=2633,
  serialized_end=2764,
  methods=[
  _descriptor.MethodDescriptor(
    name='ListRecommendations',
    full_name='hipstershop.RecommendationService.ListRecommendations',
    index=0,
    containing_service=None,
    input_type=_LISTRECOMMENDATIONSREQUEST,
    output_type=_LISTRECOMMENDATIONSRESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_RECOMMENDATIONSERVICE)

DESCRIPTOR.services_by_name['RecommendationService'] = _RECOMMENDATIONSERVICE


_PRODUCTCATALOGSERVICE = _descriptor.ServiceDescriptor(
  name='ProductCatalogService',
  full_name='hipstershop.ProductCatalogService',
  file=DESCRIPTOR,
  index=2,
  options=None,
  serialized_start=2767,
  serialized_end=3026,
  methods=[
  _descriptor.MethodDescriptor(
    name='ListProducts',
    full_name='hipstershop.ProductCatalogService.ListProducts',
    index=0,
    containing_service=None,
    input_type=_EMPTY,
    output_type=_LISTPRODUCTSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetProduct',
    full_name='hipstershop.ProductCatalogService.GetProduct',
    index=1,
    containing_service=None,
    input_type=_GETPRODUCTREQUEST,
    output_type=_PRODUCT,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='SearchProducts',
    full_name='hipstershop.ProductCatalogService.SearchProducts',
    index=2,
    containing_service=None,
    input_type=_SEARCHPRODUCTSREQUEST,
    output_type=_SEARCHPRODUCTSRESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_PRODUCTCATALOGSERVICE)

DESCRIPTOR.services_by_name['ProductCatalogService'] = _PRODUCTCATALOGSERVICE


_SHIPPINGSERVICE = _descriptor.ServiceDescriptor(
  name='ShippingService',
  full_name='hipstershop.ShippingService',
  file=DESCRIPTOR,
  index=3,
  options=None,
  serialized_start=3029,
  serialized_end=3199,
  methods=[
  _descriptor.MethodDescriptor(
    name='GetQuote',
    full_name='hipstershop.ShippingService.GetQuote',
    index=0,
    containing_service=None,
    input_type=_GETQUOTEREQUEST,
    output_type=_GETQUOTERESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ShipOrder',
    full_name='hipstershop.ShippingService.ShipOrder',
    index=1,
    containing_service=None,
    input_type=_SHIPORDERREQUEST,
    output_type=_SHIPORDERRESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_SHIPPINGSERVICE)

DESCRIPTOR.services_by_name['ShippingService'] = _SHIPPINGSERVICE


_CURRENCYSERVICE = _descriptor.ServiceDescriptor(
  name='CurrencyService',
  full_name='hipstershop.CurrencyService',
  file=DESCRIPTOR,
  index=4,
  options=None,
  serialized_start=3202,
  serialized_end=3385,
  methods=[
  _descriptor.MethodDescriptor(
    name='GetSupportedCurrencies',
    full_name='hipstershop.CurrencyService.GetSupportedCurrencies',
    index=0,
    containing_service=None,
    input_type=_EMPTY,
    output_type=_GETSUPPORTEDCURRENCIESRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='Convert',
    full_name='hipstershop.CurrencyService.Convert',
    index=1,
    containing_service=None,
    input_type=_CURRENCYCONVERSIONREQUEST,
    output_type=_MONEY,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_CURRENCYSERVICE)

DESCRIPTOR.services_by_name['CurrencyService'] = _CURRENCYSERVICE


_PAYMENTSERVICE = _descriptor.ServiceDescriptor(
  name='PaymentService',
  full_name='hipstershop.PaymentService',
  file=DESCRIPTOR,
  index=5,
  options=None,
  serialized_start=3387,
  serialized_end=3472,
  methods=[
  _descriptor.MethodDescriptor(
    name='Charge',
    full_name='hipstershop.PaymentService.Charge',
    index=0,
    containing_service=None,
    input_type=_CHARGEREQUEST,
    output_type=_CHARGERESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_PAYMENTSERVICE)

DESCRIPTOR.services_by_name['PaymentService'] = _PAYMENTSERVICE


_EMAILSERVICE = _descriptor.ServiceDescriptor(
  name='EmailService',
  full_name='hipstershop.EmailService',
  file=DESCRIPTOR,
  index=6,
  options=None,
  serialized_start=3474,
  serialized_end=3578,
  methods=[
  _descriptor.MethodDescriptor(
    name='SendOrderConfirmation',
    full_name='hipstershop.EmailService.SendOrderConfirmation',
    index=0,
    containing_service=None,
    input_type=_SENDORDERCONFIRMATIONREQUEST,
    output_type=_EMPTY,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_EMAILSERVICE)

DESCRIPTOR.services_by_name['EmailService'] = _EMAILSERVICE


_CHECKOUTSERVICE = _descriptor.ServiceDescriptor(
  name='CheckoutService',
  full_name='hipstershop.CheckoutService',
  file=DESCRIPTOR,
  index=7,
  options=None,
  serialized_start=3581,
  serialized_end=3763,
  methods=[
  _descriptor.MethodDescriptor(
    name='CreateOrder',
    full_name='hipstershop.CheckoutService.CreateOrder',
    index=0,
    containing_service=None,
    input_type=_CREATEORDERREQUEST,
    output_type=_CREATEORDERRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='PlaceOrder',
    full_name='hipstershop.CheckoutService.PlaceOrder',
    index=1,
    containing_service=None,
    input_type=_PLACEORDERREQUEST,
    output_type=_PLACEORDERRESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_CHECKOUTSERVICE)

DESCRIPTOR.services_by_name['CheckoutService'] = _CHECKOUTSERVICE

# @@protoc_insertion_point(module_scope)