mirror of
https://github.com/googleapis/googleapis.git
synced 2026-08-19 13:17:47 +02:00
feat: Initial LFP sub-API publication
PiperOrigin-RevId: 623847465
This commit is contained in:
parent
5e42183e68
commit
03e16263ce
6 changed files with 1009 additions and 0 deletions
406
google/shopping/merchant/lfp/v1beta/BUILD.bazel
Normal file
406
google/shopping/merchant/lfp/v1beta/BUILD.bazel
Normal file
|
|
@ -0,0 +1,406 @@
|
|||
# This file was automatically generated by BuildFileGenerator
|
||||
# https://github.com/googleapis/rules_gapic/tree/master/bazel
|
||||
|
||||
# Most of the manual changes to this file will be overwritten.
|
||||
# It's **only** allowed to change the following rule attribute values:
|
||||
# - names of *_gapic_assembly_* rules
|
||||
# - certain parameters of *_gapic_library rules, including but not limited to:
|
||||
# * extra_protoc_parameters
|
||||
# * extra_protoc_file_parameters
|
||||
# The complete list of preserved parameters can be found in the source code.
|
||||
|
||||
# buildifier: disable=load-on-top
|
||||
|
||||
# This is an API workspace, having public visibility by default makes perfect sense.
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
##############################################################################
|
||||
# Common
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load("@com_google_googleapis_imports//:imports.bzl", "proto_library_with_info")
|
||||
load("@rules_proto//proto:defs.bzl", "proto_library")
|
||||
|
||||
proto_library(
|
||||
name = "lfp_proto",
|
||||
srcs = [
|
||||
"lfpinventory.proto",
|
||||
"lfpsale.proto",
|
||||
"lfpstore.proto",
|
||||
],
|
||||
deps = [
|
||||
"//google/api:annotations_proto",
|
||||
"//google/api:client_proto",
|
||||
"//google/api:field_behavior_proto",
|
||||
"//google/api:field_info_proto",
|
||||
"//google/api:resource_proto",
|
||||
"//google/shopping/type:type_proto", # Manual fix. Original :types_proto
|
||||
"@com_google_protobuf//:empty_proto",
|
||||
"@com_google_protobuf//:timestamp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
proto_library_with_info(
|
||||
name = "lfp_proto_with_info",
|
||||
deps = [
|
||||
":lfp_proto",
|
||||
"//google/cloud:common_resources_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Java
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"java_gapic_assembly_gradle_pkg",
|
||||
"java_gapic_library",
|
||||
"java_gapic_test",
|
||||
"java_grpc_library",
|
||||
"java_proto_library",
|
||||
)
|
||||
|
||||
java_proto_library(
|
||||
name = "lfp_java_proto",
|
||||
deps = [":lfp_proto"],
|
||||
)
|
||||
|
||||
java_grpc_library(
|
||||
name = "lfp_java_grpc",
|
||||
srcs = [":lfp_proto"],
|
||||
deps = [":lfp_java_proto"],
|
||||
)
|
||||
|
||||
java_gapic_library(
|
||||
name = "lfp_java_gapic",
|
||||
srcs = [":lfp_proto_with_info"],
|
||||
gapic_yaml = None,
|
||||
grpc_service_config = "lfp_grpc_service_config.json",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "merchantapi_v1beta.yaml",
|
||||
test_deps = [
|
||||
":lfp_java_grpc",
|
||||
"//google/shopping/type:type_proto"
|
||||
],
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":lfp_java_proto",
|
||||
"//google/shopping/type:type_java_proto", # Added manually
|
||||
],
|
||||
)
|
||||
|
||||
java_gapic_test(
|
||||
name = "lfp_java_gapic_test_suite",
|
||||
test_classes = [
|
||||
"com.google.shopping.merchant.lfp.v1beta.LfpInventoryServiceClientHttpJsonTest",
|
||||
"com.google.shopping.merchant.lfp.v1beta.LfpInventoryServiceClientTest",
|
||||
"com.google.shopping.merchant.lfp.v1beta.LfpSaleServiceClientHttpJsonTest",
|
||||
"com.google.shopping.merchant.lfp.v1beta.LfpSaleServiceClientTest",
|
||||
"com.google.shopping.merchant.lfp.v1beta.LfpStoreServiceClientHttpJsonTest",
|
||||
"com.google.shopping.merchant.lfp.v1beta.LfpStoreServiceClientTest",
|
||||
],
|
||||
runtime_deps = [":lfp_java_gapic_test"],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
java_gapic_assembly_gradle_pkg(
|
||||
name = "google-cloud-merchant-lfp-v1beta-java",
|
||||
include_samples = True,
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":lfp_java_gapic",
|
||||
":lfp_java_grpc",
|
||||
":lfp_java_proto",
|
||||
":lfp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Go
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"go_gapic_assembly_pkg",
|
||||
"go_gapic_library",
|
||||
"go_proto_library",
|
||||
)
|
||||
|
||||
go_proto_library(
|
||||
name = "lfp_go_proto",
|
||||
compilers = ["@io_bazel_rules_go//proto:go_grpc"],
|
||||
importpath = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb",
|
||||
protos = [":lfp_proto"],
|
||||
deps = [
|
||||
"//google/api:annotations_go_proto",
|
||||
"//google/shopping/type:type_go_proto", # Manual fix. Original :types_go_proto
|
||||
],
|
||||
)
|
||||
|
||||
go_gapic_library(
|
||||
name = "lfp_go_gapic",
|
||||
srcs = [":lfp_proto_with_info"],
|
||||
grpc_service_config = "lfp_grpc_service_config.json",
|
||||
importpath = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta;lfp",
|
||||
metadata = True,
|
||||
release_level = "beta",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "merchantapi_v1beta.yaml",
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":lfp_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
go_gapic_assembly_pkg(
|
||||
name = "gapi-cloud-merchant-lfp-v1beta-go",
|
||||
deps = [
|
||||
":lfp_go_gapic",
|
||||
":lfp_go_gapic_srcjar-metadata.srcjar",
|
||||
":lfp_go_gapic_srcjar-snippets.srcjar",
|
||||
":lfp_go_gapic_srcjar-test.srcjar",
|
||||
":lfp_go_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Python
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"py_gapic_assembly_pkg",
|
||||
"py_gapic_library",
|
||||
"py_import",
|
||||
)
|
||||
|
||||
py_import(
|
||||
name = "shopping_type",
|
||||
srcs = [
|
||||
"//google/shopping/type:type_py_gapic",
|
||||
],
|
||||
)
|
||||
|
||||
py_gapic_library(
|
||||
name = "lfp_py_gapic",
|
||||
srcs = [":lfp_proto"],
|
||||
grpc_service_config = "lfp_grpc_service_config.json",
|
||||
opt_args = [
|
||||
"proto-plus-deps=google.shopping.type", # Added manually
|
||||
],
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "merchantapi_v1beta.yaml",
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":shopping_type", # Added manually
|
||||
],
|
||||
)
|
||||
|
||||
py_test(
|
||||
name = "lfp_py_gapic_test",
|
||||
srcs = [
|
||||
"lfp_py_gapic_pytest.py",
|
||||
"lfp_py_gapic_test.py",
|
||||
],
|
||||
legacy_create_init = False,
|
||||
deps = [":lfp_py_gapic"],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
py_gapic_assembly_pkg(
|
||||
name = "merchant-lfp-v1beta-py",
|
||||
deps = [
|
||||
":lfp_py_gapic",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# PHP
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"php_gapic_assembly_pkg",
|
||||
"php_gapic_library",
|
||||
"php_proto_library",
|
||||
)
|
||||
|
||||
php_proto_library(
|
||||
name = "lfp_php_proto",
|
||||
deps = [":lfp_proto"],
|
||||
)
|
||||
|
||||
php_gapic_library(
|
||||
name = "lfp_php_gapic",
|
||||
srcs = [":lfp_proto_with_info"],
|
||||
grpc_service_config = "lfp_grpc_service_config.json",
|
||||
migration_mode = "NEW_SURFACE_ONLY",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "merchantapi_v1beta.yaml",
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":lfp_php_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
php_gapic_assembly_pkg(
|
||||
name = "google-cloud-merchant-lfp-v1beta-php",
|
||||
deps = [
|
||||
":lfp_php_gapic",
|
||||
":lfp_php_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Node.js
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"nodejs_gapic_assembly_pkg",
|
||||
"nodejs_gapic_library",
|
||||
)
|
||||
|
||||
nodejs_gapic_library(
|
||||
name = "lfp_nodejs_gapic",
|
||||
package_name = "@google-cloud/lfp",
|
||||
src = ":lfp_proto_with_info",
|
||||
extra_protoc_parameters = ["metadata"],
|
||||
grpc_service_config = "lfp_grpc_service_config.json",
|
||||
package = "google.shopping.merchant.lfp.v1beta",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "merchantapi_v1beta.yaml",
|
||||
transport = "grpc+rest",
|
||||
deps = [],
|
||||
)
|
||||
|
||||
nodejs_gapic_assembly_pkg(
|
||||
name = "merchant-lfp-v1beta-nodejs",
|
||||
deps = [
|
||||
":lfp_nodejs_gapic",
|
||||
":lfp_proto",
|
||||
"//google/shopping/type:type_proto" # Added manually
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# Ruby
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"ruby_cloud_gapic_library",
|
||||
"ruby_gapic_assembly_pkg",
|
||||
"ruby_grpc_library",
|
||||
"ruby_proto_library",
|
||||
)
|
||||
|
||||
ruby_proto_library(
|
||||
name = "lfp_ruby_proto",
|
||||
deps = [":lfp_proto"],
|
||||
)
|
||||
|
||||
ruby_grpc_library(
|
||||
name = "lfp_ruby_grpc",
|
||||
srcs = [":lfp_proto"],
|
||||
deps = [":lfp_ruby_proto"],
|
||||
)
|
||||
|
||||
ruby_cloud_gapic_library(
|
||||
name = "lfp_ruby_gapic",
|
||||
srcs = [":lfp_proto_with_info"],
|
||||
extra_protoc_parameters = [
|
||||
"ruby-cloud-gem-name=google-cloud-merchant-lfp-v1beta",
|
||||
],
|
||||
grpc_service_config = "lfp_grpc_service_config.json",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "merchantapi_v1beta.yaml",
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":lfp_ruby_grpc",
|
||||
":lfp_ruby_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
ruby_gapic_assembly_pkg(
|
||||
name = "google-cloud-merchant-lfp-v1beta-ruby",
|
||||
deps = [
|
||||
":lfp_ruby_gapic",
|
||||
":lfp_ruby_grpc",
|
||||
":lfp_ruby_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C#
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"csharp_gapic_assembly_pkg",
|
||||
"csharp_gapic_library",
|
||||
"csharp_grpc_library",
|
||||
"csharp_proto_library",
|
||||
)
|
||||
|
||||
csharp_proto_library(
|
||||
name = "lfp_csharp_proto",
|
||||
extra_opts = [],
|
||||
deps = [":lfp_proto"],
|
||||
)
|
||||
|
||||
csharp_grpc_library(
|
||||
name = "lfp_csharp_grpc",
|
||||
srcs = [":lfp_proto"],
|
||||
deps = [":lfp_csharp_proto"],
|
||||
)
|
||||
|
||||
csharp_gapic_library(
|
||||
name = "lfp_csharp_gapic",
|
||||
srcs = [":lfp_proto_with_info"],
|
||||
common_resources_config = "@gax_dotnet//:Google.Api.Gax/ResourceNames/CommonResourcesConfig.json",
|
||||
grpc_service_config = "lfp_grpc_service_config.json",
|
||||
rest_numeric_enums = True,
|
||||
service_yaml = "merchantapi_v1beta.yaml",
|
||||
transport = "grpc+rest",
|
||||
deps = [
|
||||
":lfp_csharp_grpc",
|
||||
":lfp_csharp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
# Open Source Packages
|
||||
csharp_gapic_assembly_pkg(
|
||||
name = "google-cloud-merchant-lfp-v1beta-csharp",
|
||||
deps = [
|
||||
":lfp_csharp_gapic",
|
||||
":lfp_csharp_grpc",
|
||||
":lfp_csharp_proto",
|
||||
],
|
||||
)
|
||||
|
||||
##############################################################################
|
||||
# C++
|
||||
##############################################################################
|
||||
# buildifier: disable=same-origin-load
|
||||
load(
|
||||
"@com_google_googleapis_imports//:imports.bzl",
|
||||
"cc_grpc_library",
|
||||
"cc_proto_library",
|
||||
)
|
||||
|
||||
cc_proto_library(
|
||||
name = "lfp_cc_proto",
|
||||
deps = [":lfp_proto"],
|
||||
)
|
||||
|
||||
cc_grpc_library(
|
||||
name = "lfp_cc_grpc",
|
||||
srcs = [":lfp_proto"],
|
||||
grpc_only = True,
|
||||
deps = [":lfp_cc_proto"],
|
||||
)
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"methodConfig": [{
|
||||
"name": [
|
||||
{ "service": "google.shopping.merchant.lfp.v1beta.LfpInventoryService" },
|
||||
{ "service": "google.shopping.merchant.lfp.v1beta.LfpStoreService" },
|
||||
{ "service": "google.shopping.merchant.lfp.v1beta.LfpSaleService" }
|
||||
],
|
||||
"timeout": "60s",
|
||||
"retryPolicy": {
|
||||
"maxAttempts": 5,
|
||||
"initialBackoff": "1s",
|
||||
"maxBackoff": "10s",
|
||||
"backoffMultiplier": 1.3,
|
||||
"retryableStatusCodes": ["UNAVAILABLE"]
|
||||
}
|
||||
}]
|
||||
}
|
||||
149
google/shopping/merchant/lfp/v1beta/lfpinventory.proto
Normal file
149
google/shopping/merchant/lfp/v1beta/lfpinventory.proto
Normal file
|
|
@ -0,0 +1,149 @@
|
|||
// Copyright 2023 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.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.shopping.merchant.lfp.v1beta;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/shopping/type/types.proto";
|
||||
|
||||
option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "LfpInventoryProto";
|
||||
option java_package = "com.google.shopping.merchant.lfp.v1beta";
|
||||
option (google.api.resource_definition) = {
|
||||
type: "merchantapi.googleapis.com/Account"
|
||||
pattern: "accounts/{account}"
|
||||
};
|
||||
|
||||
// Service for a [LFP
|
||||
// partner](https://support.google.com/merchants/answer/7676652) to submit local
|
||||
// inventories for a merchant.
|
||||
service LfpInventoryService {
|
||||
option (google.api.default_host) = "merchantapi.googleapis.com";
|
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
|
||||
|
||||
// Inserts a `LfpInventory` resource for the given target merchant account. If
|
||||
// the resource already exists, it will be replaced. The inventory
|
||||
// automatically expires after 30 days.
|
||||
rpc InsertLfpInventory(InsertLfpInventoryRequest) returns (LfpInventory) {
|
||||
option (google.api.http) = {
|
||||
post: "/lfp/v1beta/{parent=accounts/*}/lfpInventories:insert"
|
||||
body: "lfp_inventory"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// Local Inventory for the merchant.
|
||||
message LfpInventory {
|
||||
option (google.api.resource) = {
|
||||
type: "merchantapi.googleapis.com/LfpInventory"
|
||||
pattern: "accounts/{account}/lfpInventories/{target_merchant}~{store_code}~{offer}"
|
||||
plural: "lfpInventories"
|
||||
singular: "lfpInventory"
|
||||
};
|
||||
|
||||
// Output only. Identifier. The name for the `LfpInventory` resource.
|
||||
// Format:
|
||||
// `accounts/{account}/lfpInventories/{target_merchant}~{store_code}~{offer}`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = OUTPUT_ONLY,
|
||||
(google.api.field_behavior) = IDENTIFIER
|
||||
];
|
||||
|
||||
// Required. The Merchant Center ID of the merchant to submit the inventory
|
||||
// for.
|
||||
int64 target_account = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The identifier of the merchant's store. Either the store code
|
||||
// inserted through `InsertLfpStore` or the store code in the Business
|
||||
// Profile.
|
||||
string store_code = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. Immutable. A unique identifier for the product. If both
|
||||
// inventories and sales are submitted for a merchant, this id should match
|
||||
// for the same product.
|
||||
//
|
||||
// **Note**: if the merchant sells the same product new and used, they should
|
||||
// have different IDs.
|
||||
string offer_id = 4 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.field_behavior) = IMMUTABLE
|
||||
];
|
||||
|
||||
// Required. The [CLDR territory
|
||||
// code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml)
|
||||
// for the country where the product is sold.
|
||||
string region_code = 5 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The two-letter ISO 639-1 language code for the item.
|
||||
string content_language = 6 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. The Global Trade Item Number of the product.
|
||||
optional string gtin = 7 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The current price of the product.
|
||||
google.shopping.type.Price price = 8 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Required. Availability of the product at this store.
|
||||
// For accepted attribute values, see the [local product inventory feed
|
||||
// specification](https://support.google.com/merchants/answer/3061342)
|
||||
string availability = 9 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. Quantity of the product available at this store. Must be greater
|
||||
// than or equal to zero.
|
||||
optional int64 quantity = 10 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The time when the inventory is collected. If not set, it will be
|
||||
// set to the time when the inventory is submitted.
|
||||
google.protobuf.Timestamp collection_time = 11
|
||||
[(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Supported pickup method for this offer. Unless the value is "not
|
||||
// supported", this field must be submitted together with `pickupSla`. For
|
||||
// accepted attribute values, see the [local product inventory feed
|
||||
// specification](https://support.google.com/merchants/answer/3061342).
|
||||
optional string pickup_method = 12 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Expected date that an order will be ready for pickup relative to
|
||||
// the order date. Must be submitted together with `pickupMethod`. For
|
||||
// accepted attribute values, see the [local product inventory feed
|
||||
// specification](https://support.google.com/merchants/answer/3061342).
|
||||
optional string pickup_sla = 13 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The [feed
|
||||
// label](https://developers.google.com/shopping-content/guides/products/feed-labels)
|
||||
// for the product. If this is not set, it will default to `regionCode`.
|
||||
optional string feed_label = 14 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// Request message for the `InsertLfpInventory` method.
|
||||
message InsertLfpInventoryRequest {
|
||||
// Required. The LFP provider account.
|
||||
// Format: `accounts/{account}`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "merchantapi.googleapis.com/LfpInventory"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The inventory to insert.
|
||||
LfpInventory lfp_inventory = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
122
google/shopping/merchant/lfp/v1beta/lfpsale.proto
Normal file
122
google/shopping/merchant/lfp/v1beta/lfpsale.proto
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
// Copyright 2023 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.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.shopping.merchant.lfp.v1beta;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/field_info.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/protobuf/timestamp.proto";
|
||||
import "google/shopping/type/types.proto";
|
||||
|
||||
option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "LfpSaleProto";
|
||||
option java_package = "com.google.shopping.merchant.lfp.v1beta";
|
||||
|
||||
// Service for a [LFP
|
||||
// partner](https://support.google.com/merchants/answer/7676652) to submit sales
|
||||
// data for a merchant.
|
||||
service LfpSaleService {
|
||||
option (google.api.default_host) = "merchantapi.googleapis.com";
|
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
|
||||
|
||||
// Inserts a `LfpSale` for the given merchant.
|
||||
rpc InsertLfpSale(InsertLfpSaleRequest) returns (LfpSale) {
|
||||
option (google.api.http) = {
|
||||
post: "/lfp/v1beta/{parent=accounts/*}/lfpSales:insert"
|
||||
body: "lfp_sale"
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// A sale for the merchant.
|
||||
message LfpSale {
|
||||
option (google.api.resource) = {
|
||||
type: "merchantapi.googleapis.com/LfpSale"
|
||||
pattern: "accounts/{account}/lfpSales/{sale}"
|
||||
plural: "lfpSales"
|
||||
singular: "lfpSale"
|
||||
};
|
||||
|
||||
// Output only. Identifier. The name of the `LfpSale` resource.
|
||||
// Format:
|
||||
// `accounts/{account}/lfpSales/{sale}`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = OUTPUT_ONLY,
|
||||
(google.api.field_behavior) = IDENTIFIER
|
||||
];
|
||||
|
||||
// Required. The Merchant Center ID of the merchant to submit the sale for.
|
||||
int64 target_account = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The identifier of the merchant's store. Either a `storeCode`
|
||||
// inserted through the API or the code of the store in the Business Profile.
|
||||
string store_code = 3 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. A unique identifier for the product. If both inventories and
|
||||
// sales are submitted for a merchant, this id should match for the same
|
||||
// product.
|
||||
//
|
||||
// **Note**: if the merchant sells the same product new and used, they should
|
||||
// have different IDs.
|
||||
string offer_id = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The [CLDR territory
|
||||
// code](https://github.com/unicode-org/cldr/blob/latest/common/main/en.xml)
|
||||
// for the country where the product is sold.
|
||||
string region_code = 5 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The two-letter ISO 639-1 language code for the item.
|
||||
string content_language = 6 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The Global Trade Item Number of the sold product.
|
||||
string gtin = 7 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The unit price of the product.
|
||||
google.shopping.type.Price price = 8 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The relative change of the available quantity. Negative for items
|
||||
// returned.
|
||||
int64 quantity = 9 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The timestamp for the sale.
|
||||
google.protobuf.Timestamp sale_time = 10
|
||||
[(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Output only. System generated globally unique ID for the `LfpSale`.
|
||||
optional string uid = 11 [
|
||||
(google.api.field_info).format = UUID4,
|
||||
(google.api.field_behavior) = OUTPUT_ONLY
|
||||
];
|
||||
|
||||
// Optional. The [feed
|
||||
// label](https://developers.google.com/shopping-content/guides/products/feed-labels)
|
||||
// for the product. If this is not set, it will default to `regionCode`.
|
||||
optional string feed_label = 12 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// Request message for the InsertLfpSale method.
|
||||
message InsertLfpSaleRequest {
|
||||
// Required. The LFP provider account.
|
||||
// Format: `accounts/{lfp_partner}`
|
||||
string parent = 1 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. The sale to insert.
|
||||
LfpSale lfp_sale = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
249
google/shopping/merchant/lfp/v1beta/lfpstore.proto
Normal file
249
google/shopping/merchant/lfp/v1beta/lfpstore.proto
Normal file
|
|
@ -0,0 +1,249 @@
|
|||
// Copyright 2023 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.
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package google.shopping.merchant.lfp.v1beta;
|
||||
|
||||
import "google/api/annotations.proto";
|
||||
import "google/api/client.proto";
|
||||
import "google/api/field_behavior.proto";
|
||||
import "google/api/resource.proto";
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
option go_package = "cloud.google.com/go/shopping/merchant/lfp/apiv1beta/lfppb;lfppb";
|
||||
option java_multiple_files = true;
|
||||
option java_outer_classname = "LfpStoreProto";
|
||||
option java_package = "com.google.shopping.merchant.lfp.v1beta";
|
||||
|
||||
// Service for a [LFP
|
||||
// partner](https://support.google.com/merchants/answer/7676652) to submit local
|
||||
// stores for a merchant.
|
||||
service LfpStoreService {
|
||||
option (google.api.default_host) = "merchantapi.googleapis.com";
|
||||
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
|
||||
|
||||
// Retrieves information about a store.
|
||||
rpc GetLfpStore(GetLfpStoreRequest) returns (LfpStore) {
|
||||
option (google.api.http) = {
|
||||
get: "/lfp/v1beta/{name=accounts/*/lfpStores/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Inserts a store for the target merchant. If the store with the same store
|
||||
// code already exists, it will be replaced.
|
||||
rpc InsertLfpStore(InsertLfpStoreRequest) returns (LfpStore) {
|
||||
option (google.api.http) = {
|
||||
post: "/lfp/v1beta/{parent=accounts/*}/lfpStores:insert"
|
||||
body: "lfp_store"
|
||||
};
|
||||
option (google.api.method_signature) = "parent,lfp_store";
|
||||
}
|
||||
|
||||
// Deletes a store for a target merchant.
|
||||
rpc DeleteLfpStore(DeleteLfpStoreRequest) returns (google.protobuf.Empty) {
|
||||
option (google.api.http) = {
|
||||
delete: "/lfp/v1beta/{name=accounts/*/lfpStores/*}"
|
||||
};
|
||||
option (google.api.method_signature) = "name";
|
||||
}
|
||||
|
||||
// Lists the stores of the target merchant, specified by the filter in
|
||||
// `ListLfpStoresRequest`.
|
||||
rpc ListLfpStores(ListLfpStoresRequest) returns (ListLfpStoresResponse) {
|
||||
option (google.api.http) = {
|
||||
get: "/lfp/v1beta/{parent=accounts/*}/lfpStores"
|
||||
};
|
||||
option (google.api.method_signature) = "parent";
|
||||
}
|
||||
}
|
||||
|
||||
// A store for the merchant. This will be used to match to a Google Business
|
||||
// Profile listing for the target merchant. If a matching listing can't be
|
||||
// found, the inventories or sales submitted with the store code will not be
|
||||
// used.
|
||||
message LfpStore {
|
||||
option (google.api.resource) = {
|
||||
type: "merchantapi.googleapis.com/LfpStore"
|
||||
pattern: "accounts/{account}/lfpStores/{target_merchant}~{store_code}"
|
||||
plural: "lfpStores"
|
||||
singular: "lfpStore"
|
||||
};
|
||||
|
||||
// The state of matching `LfpStore` to a Google Business Profile listing.
|
||||
enum StoreMatchingState {
|
||||
// Store matching state unspecified.
|
||||
STORE_MATCHING_STATE_UNSPECIFIED = 0;
|
||||
|
||||
// The `LfpStore` is successfully matched with a Google Business Profile
|
||||
// store.
|
||||
STORE_MATCHING_STATE_MATCHED = 1;
|
||||
|
||||
// The `LfpStore` is not matched with a Google Business Profile store.
|
||||
STORE_MATCHING_STATE_FAILED = 2;
|
||||
}
|
||||
|
||||
// Output only. Identifier. The name of the `LfpStore` resource.
|
||||
// Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = OUTPUT_ONLY,
|
||||
(google.api.field_behavior) = IDENTIFIER
|
||||
];
|
||||
|
||||
// Required. The Merchant Center id of the merchant to submit the store for.
|
||||
int64 target_account = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Required. Immutable. A store identifier that is unique for the target
|
||||
// merchant.
|
||||
string store_code = 3 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.field_behavior) = IMMUTABLE
|
||||
];
|
||||
|
||||
// Required. The street address of the store.
|
||||
// Example: 1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA.
|
||||
string store_address = 4 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. The merchant or store name.
|
||||
optional string store_name = 5 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The store phone number in
|
||||
// [E.164](https://en.wikipedia.org/wiki/E.164) format. Example:
|
||||
// `+15556767888`
|
||||
optional string phone_number = 6 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The website URL for the store or merchant.
|
||||
optional string website_uri = 7 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. [Google My Business category
|
||||
// id](https://gcid-explorer.corp.google.com/static/gcid.html).
|
||||
repeated string gcid_category = 8 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. The [Google Place
|
||||
// Id](https://developers.google.com/maps/documentation/places/web-service/place-id#id-overview)
|
||||
// of the store location.
|
||||
optional string place_id = 9 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. Output only. The state of matching to a Google Business Profile
|
||||
// listing. See
|
||||
// [matchingStateHint][google.shopping.merchant.lfp.v1beta.LfpStore.matching_state_hint]
|
||||
// for further details if no match is found.
|
||||
StoreMatchingState matching_state = 10 [
|
||||
(google.api.field_behavior) = OPTIONAL,
|
||||
(google.api.field_behavior) = OUTPUT_ONLY
|
||||
];
|
||||
|
||||
// Optional. Output only. The hint of why the matching has failed. This is
|
||||
// only set when
|
||||
// [matchingState][google.shopping.merchant.lfp.v1beta.LfpStore.matching_state]=`STORE_MATCHING_STATE_FAILED`.
|
||||
//
|
||||
// Possible values are:
|
||||
//
|
||||
// - "`linked-store-not-found`": There aren't any Google Business
|
||||
// Profile stores available for matching.
|
||||
// - "`store-match-not-found`": The provided `LfpStore` couldn't be matched to
|
||||
// any of the connected Google Business Profile stores. Merchant Center
|
||||
// account is connected correctly and stores are available on Google Business
|
||||
// Profile, but the `LfpStore` location address does not match with Google
|
||||
// Business Profile stores' addresses. Update the `LfpStore` address or Google
|
||||
// Business Profile store address to match correctly.
|
||||
// - "`store-match-unverified`": The provided `LfpStore` couldn't be matched
|
||||
// to any of the connected Google Business Profile stores, as the matched
|
||||
// Google Business Profile store is unverified. Go through the Google Business
|
||||
// Profile verification process to match correctly.
|
||||
optional string matching_state_hint = 11 [
|
||||
(google.api.field_behavior) = OPTIONAL,
|
||||
(google.api.field_behavior) = OUTPUT_ONLY
|
||||
];
|
||||
}
|
||||
|
||||
// Request message for the `GetLfpStore` method.
|
||||
message GetLfpStoreRequest {
|
||||
// Required. The name of the store to retrieve.
|
||||
// Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "merchantapi.googleapis.com/LfpStore"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Request message for the InsertLfpStore method.
|
||||
message InsertLfpStoreRequest {
|
||||
// Required. The LFP provider account
|
||||
// Format: `accounts/{account}`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "merchantapi.googleapis.com/LfpStore"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The store to insert.
|
||||
LfpStore lfp_store = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
}
|
||||
|
||||
// Request message for the DeleteLfpStore method.
|
||||
message DeleteLfpStoreRequest {
|
||||
// Required. The name of the store to delete for the target merchant account.
|
||||
// Format: `accounts/{account}/lfpStores/{target_merchant}~{store_code}`
|
||||
string name = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
type: "merchantapi.googleapis.com/LfpStore"
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
// Request message for the ListLfpStores method.
|
||||
message ListLfpStoresRequest {
|
||||
// Required. The LFP partner.
|
||||
// Format: `accounts/{account}`
|
||||
string parent = 1 [
|
||||
(google.api.field_behavior) = REQUIRED,
|
||||
(google.api.resource_reference) = {
|
||||
child_type: "merchantapi.googleapis.com/LfpStore"
|
||||
}
|
||||
];
|
||||
|
||||
// Required. The Merchant Center id of the merchant to list stores for.
|
||||
int64 target_account = 2 [(google.api.field_behavior) = REQUIRED];
|
||||
|
||||
// Optional. The maximum number of `LfpStore` resources for the given account
|
||||
// to return. The service returns fewer than this value if the number of
|
||||
// stores for the given account is less than the `pageSize`. The default value
|
||||
// is 250. The maximum value is 1000; If a value higher than the maximum is
|
||||
// specified, then the `pageSize` will default to the maximum.
|
||||
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
|
||||
|
||||
// Optional. A page token, received from a previous `ListLfpStoresRequest`
|
||||
// call. Provide the page token to retrieve the subsequent page. When
|
||||
// paginating, all other parameters provided to `ListLfpStoresRequest` must
|
||||
// match the call that provided the page token. The token returned as
|
||||
// [nextPageToken][google.shopping.merchant.lfp.v1beta.ListLfpStoresResponse.next_page_token]
|
||||
// in the response to the previous request.
|
||||
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
|
||||
}
|
||||
|
||||
// Response message for the ListLfpStores method.
|
||||
message ListLfpStoresResponse {
|
||||
// The stores from the specified merchant.
|
||||
repeated LfpStore lfp_stores = 1;
|
||||
|
||||
// A token, which can be sent as `pageToken` to retrieve the next page.
|
||||
// If this field is omitted, there are no subsequent pages.
|
||||
string next_page_token = 2;
|
||||
}
|
||||
66
google/shopping/merchant/lfp/v1beta/merchantapi_v1beta.yaml
Normal file
66
google/shopping/merchant/lfp/v1beta/merchantapi_v1beta.yaml
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
type: google.api.Service
|
||||
config_version: 3
|
||||
name: merchantapi.googleapis.com
|
||||
title: Merchant API
|
||||
|
||||
apis:
|
||||
- name: google.shopping.merchant.lfp.v1beta.LfpInventoryService
|
||||
- name: google.shopping.merchant.lfp.v1beta.LfpSaleService
|
||||
- name: google.shopping.merchant.lfp.v1beta.LfpStoreService
|
||||
|
||||
documentation:
|
||||
summary: Programmatically manage your Merchant Center accounts.
|
||||
|
||||
authentication:
|
||||
rules:
|
||||
- selector: google.shopping.merchant.lfp.v1beta.LfpInventoryService.InsertLfpInventory
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/content
|
||||
- selector: google.shopping.merchant.lfp.v1beta.LfpSaleService.InsertLfpSale
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/content
|
||||
- selector: 'google.shopping.merchant.lfp.v1beta.LfpStoreService.*'
|
||||
oauth:
|
||||
canonical_scopes: |-
|
||||
https://www.googleapis.com/auth/content
|
||||
|
||||
publishing:
|
||||
new_issue_uri: https://issuetracker.google.com/issues/new?component=171084&template=555201
|
||||
documentation_uri: https://developers.google.com/merchant/api
|
||||
api_short_name: merchantapi
|
||||
github_label: 'api: merchantapi'
|
||||
doc_tag_prefix: merchantapi
|
||||
organization: SHOPPING
|
||||
library_settings:
|
||||
- version: google.shopping.merchant.lfp.v1beta
|
||||
launch_stage: BETA
|
||||
java_settings:
|
||||
common:
|
||||
destinations:
|
||||
- PACKAGE_MANAGER
|
||||
php_settings:
|
||||
common:
|
||||
destinations:
|
||||
- PACKAGE_MANAGER
|
||||
python_settings:
|
||||
common:
|
||||
destinations:
|
||||
- PACKAGE_MANAGER
|
||||
node_settings:
|
||||
common:
|
||||
destinations:
|
||||
- PACKAGE_MANAGER
|
||||
dotnet_settings:
|
||||
common:
|
||||
destinations:
|
||||
- PACKAGE_MANAGER
|
||||
ruby_settings:
|
||||
common:
|
||||
destinations:
|
||||
- PACKAGE_MANAGER
|
||||
go_settings:
|
||||
common:
|
||||
destinations:
|
||||
- PACKAGE_MANAGER
|
||||
Loading…
Add table
Add a link
Reference in a new issue