google.shopping.merchant.accounts.v1beta.accounts.proto Maven / Gradle / Ivy
// Copyright 2024 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.accounts.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";
import "google/protobuf/field_mask.proto";
import "google/shopping/merchant/accounts/v1beta/accountservices.proto";
import "google/shopping/merchant/accounts/v1beta/user.proto";
import "google/type/datetime.proto";
option go_package = "cloud.google.com/go/shopping/merchant/accounts/apiv1beta/accountspb;accountspb";
option java_multiple_files = true;
option java_outer_classname = "AccountsProto";
option java_package = "com.google.shopping.merchant.accounts.v1beta";
// Service to support Accounts API.
service AccountsService {
option (google.api.default_host) = "merchantapi.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/content";
// Retrieves an account from your Merchant Center account.
// After inserting, updating, or deleting an account, it may take several
// minutes before changes take effect.
rpc GetAccount(GetAccountRequest) returns (Account) {
option (google.api.http) = {
get: "/accounts/v1beta/{name=accounts/*}"
};
option (google.api.method_signature) = "name";
}
// Creates a standalone Merchant Center account with additional configuration.
// Adds the user that makes the request as an admin for the new account.
rpc CreateAndConfigureAccount(CreateAndConfigureAccountRequest)
returns (Account) {
option (google.api.http) = {
post: "/accounts/v1beta/accounts:createAndConfigure"
body: "*"
};
}
// Deletes the specified account regardless of its type: standalone, MCA or
// sub-account. Deleting an MCA leads to the deletion of all of its
// sub-accounts. Executing this method requires admin access.
// The deletion succeeds only if the account does not provide services
// to any other account and has no processed offers. You can use the `force`
// parameter to override this.
rpc DeleteAccount(DeleteAccountRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
delete: "/accounts/v1beta/{name=accounts/*}"
};
option (google.api.method_signature) = "name";
}
// Updates an account regardless of its type: standalone, MCA or sub-account.
// Executing this method requires admin access.
rpc UpdateAccount(UpdateAccountRequest) returns (Account) {
option (google.api.http) = {
patch: "/accounts/v1beta/{account.name=accounts/*}"
body: "account"
};
option (google.api.method_signature) = "account,update_mask";
}
// Lists accounts accessible to the calling user and matching the
// constraints of the request such as page size or filters.
// This is not just listing the sub-accounts of an MCA, but all accounts the
// calling user has access to including other MCAs, linked accounts,
// standalone accounts and so on. If no filter is provided, then it returns
// accounts the user is directly added to.
rpc ListAccounts(ListAccountsRequest) returns (ListAccountsResponse) {
option (google.api.http) = {
get: "/accounts/v1beta/accounts"
};
}
// List all sub-accounts for a given multi client account. This is a
// convenience wrapper for the more powerful `ListAccounts` method. This
// method will produce the same results as calling `ListsAccounts` with the
// following filter:
// `relationship(providerId={parent} AND service(type="ACCOUNT_AGGREGATION"))`
rpc ListSubAccounts(ListSubAccountsRequest)
returns (ListSubAccountsResponse) {
option (google.api.http) = {
get: "/accounts/v1beta/{provider=accounts/*}:listSubaccounts"
};
option (google.api.method_signature) = "provider";
}
}
// An account.
message Account {
option (google.api.resource) = {
type: "merchantapi.googleapis.com/Account"
pattern: "accounts/{account}"
};
// Identifier. The resource name of the account.
// Format: `accounts/{account}`
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// Output only. The ID of the account.
int64 account_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. A human-readable name of the account. See
// [store name](https://support.google.com/merchants/answer/160556) and
// [business name](https://support.google.com/merchants/answer/12159159) for
// more information.
string account_name = 3 [(google.api.field_behavior) = REQUIRED];
// Whether this account contains adult content.
bool adult_content = 4;
// Output only. Whether this is a test account.
bool test_account = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The time zone of the account.
//
// On writes, `time_zone` sets both the `reporting_time_zone` and the
// `display_time_zone`.
//
// For reads, `time_zone` always returns the `display_time_zone`. If
// `display_time_zone` doesn't exist for your account, `time_zone` is empty.
google.type.TimeZone time_zone = 6 [(google.api.field_behavior) = REQUIRED];
// Required. The account's [BCP-47 language
// code](https://tools.ietf.org/html/bcp47), such as `en-US` or `sr-Latn`.
string language_code = 7 [(google.api.field_behavior) = REQUIRED];
}
// Request message for the `GetAccount` method.
message GetAccountRequest {
// Required. The name of the account to retrieve.
// Format: `accounts/{account}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "merchantapi.googleapis.com/Account"
}
];
}
// Request message for the `CreateAndConfigureAccount` method.
message CreateAndConfigureAccountRequest {
// Reference to a Terms of Service resource.
message AcceptTermsOfService {
// Required. The resource name of the terms of service version in the format
// `termsOfService/{version}`. To retrieve the latest version, use the
// [termsOfService.retrieveLatest](/merchant/api/reference/rest/accounts_v1beta/termsOfService/retrieveLatest)
// method.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "merchantapi.googleapis.com/TermsOfService"
}
];
// Required. Region code as defined by [CLDR](https://cldr.unicode.org/).
// This is either a country when the ToS applies specifically to that
// country or `001` when it applies globally.
string region_code = 3 [(google.api.field_behavior) = REQUIRED];
}
// Additional instructions to add account services during creation of the
// account.
message AddAccountService {
// The service type to be added.
oneof service_type {
// The provider is an
// [aggregator](https://support.google.com/merchants/answer/188487) for
// the account. Payload for service type Account Aggregation.
AccountAggregation account_aggregation = 103;
}
// Optional. The provider of the service.
// Format: `accounts/{account}`
optional string provider = 1 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "merchantapi.googleapis.com/Account"
}
];
}
// Required. The account to be created.
Account account = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. Users to be added to the account.
repeated CreateUserRequest users = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. The Terms of Service (ToS) to be accepted immediately upon
// account creation.
optional AcceptTermsOfService accept_terms_of_service = 3
[(google.api.field_behavior) = OPTIONAL];
// Required. An account service between the account to be created and the
// provider account is initialized as part of the creation. At least one such
// service needs to be provided. Currently exactly one of these needs to be
// `account_aggregation`, which means you can only create sub accounts, not
// standalone account through this method. Additional `account_management` or
// `product_management` services may be provided.
repeated AddAccountService service = 4
[(google.api.field_behavior) = REQUIRED];
}
// Request message for the `DeleteAccount` method.
message DeleteAccountRequest {
// Required. The name of the account to delete.
// Format: `accounts/{account}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "merchantapi.googleapis.com/Account"
}
];
// Optional. If set to `true`, the account is deleted even if it provides
// services to other accounts or has processed offers.
bool force = 2 [(google.api.field_behavior) = OPTIONAL];
}
// Request message for the `UpdateAccount` method.
message UpdateAccountRequest {
// Required. The new version of the account.
Account account = 1 [(google.api.field_behavior) = REQUIRED];
// Required. List of fields being updated.
google.protobuf.FieldMask update_mask = 2
[(google.api.field_behavior) = REQUIRED];
}
// Request message for the `ListAccounts` method.
message ListAccountsRequest {
// Optional. The maximum number of accounts to return. The service may return
// fewer than this value. If unspecified, at most 250 accounts are returned.
// The maximum value is 500; values above 500 are coerced to 500.
int32 page_size = 1 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous `ListAccounts` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListAccounts` must match
// the call that provided the page token.
string page_token = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. Returns only accounts that match the
// [filter](/merchant/api/guides/accounts/filter).
// For more details, see the
// [filter syntax reference](/merchant/api/guides/accounts/filter-syntax).
string filter = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for the `ListAccounts` method.
message ListAccountsResponse {
// The accounts matching the `ListAccountsRequest`.
repeated Account accounts = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for the `ListSubAccounts` method.
message ListSubAccountsRequest {
// Required. The parent account.
// Format: `accounts/{account}`
string provider = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "merchantapi.googleapis.com/Account"
}
];
// Optional. The maximum number of accounts to return. The service may return
// fewer than this value. If unspecified, at most 250 accounts are returned.
// The maximum value is 500; values above 500 are coerced to 500.
int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. A page token, received from a previous `ListAccounts` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `ListAccounts` must match
// the call that provided the page token.
string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for the `ListSubAccounts` method.
message ListSubAccountsResponse {
// The accounts for which the given parent account is an aggregator.
repeated Account accounts = 1;
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy