syntax = "proto3"; package ozon.products; import "google/protobuf/timestamp.proto"; option go_package = "./ozon/products"; service ProductsService { // Retrieves a list of products based on the provided request. rpc GetListOfProducts(GetListOfProductsRequest) returns (stream ProductDetails); } message GetListOfProductsRequest{ } message ProductDetails { repeated string barcodes = 1; repeated string color_image = 2; repeated Commission commissions = 3; google.protobuf.Timestamp created_at = 4; string currency_code = 5; int64 description_category_id = 6; int32 discounted_fbo_stocks = 7; repeated Error errors = 8; bool has_discounted_fbo_item = 9; int64 id = 10; repeated string images = 11; repeated string images360 = 12; bool is_archived = 13; bool is_autoarchived = 14; bool is_discounted = 15; bool is_kgt = 16; bool is_prepayment_allowed = 17; bool is_super = 18; string marketing_price = 19; string min_price = 20; ModelInfo model_info = 21; string name = 22; string offer_id = 23; string old_price = 24; string price = 25; PriceIndex price_indexes = 26; repeated string primary_image = 27; repeated Source sources = 28; Status statuses = 29; Stock stocks = 30; int64 type_id = 31; google.protobuf.Timestamp updated_at = 32; string vat = 33; VisibilityDetails visibility_details = 34; double volume_weight = 35; message Error { string code = 1; string message = 2; repeated ErrorText texts = 3; message ErrorText { string lang = 1; string text = 2; } } message ModelInfo { int64 model_id = 1; int64 count = 2; } message Commission { string name = 1; double value = 2; } message PriceIndex { PriceIndexExternal external = 1; PriceIndexOzon ozon = 2; PriceIndexSelfMarketplace self_marketplace = 3; message PriceIndexExternal { double min_price = 1; string currency = 2; double price_index = 3; } message PriceIndexOzon { double min_price = 1; string currency = 2; double price_index = 3; } message PriceIndexSelfMarketplace { double min_price = 1; string currency = 2; double price_index = 3; } } message Source { string source = 1; string source_name = 2; } message Status { string state = 1; string state_name = 2; string state_tooltip = 3; string state_sys_name = 4; } message Stock { repeated StockItem stocks = 1; message StockItem { int32 present = 1; int32 reserved = 2; string type = 3; string shipment_type = 4; int64 sku = 5; } } message VisibilityDetails { bool visible = 1; string reason = 2; } }