1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.channel.v1;
18
19import "google/api/field_behavior.proto";
20import "google/api/resource.proto";
21import "google/cloud/channel/v1/common.proto";
22import "google/protobuf/timestamp.proto";
23import "google/type/postal_address.proto";
24
25option go_package = "cloud.google.com/go/channel/apiv1/channelpb;channelpb";
26option java_multiple_files = true;
27option java_outer_classname = "CustomersProto";
28option java_package = "com.google.cloud.channel.v1";
29
30// Entity representing a customer of a reseller or distributor.
31message Customer {
32  option (google.api.resource) = {
33    type: "cloudchannel.googleapis.com/Customer"
34    pattern: "accounts/{account}/customers/{customer}"
35  };
36
37  // Output only. Resource name of the customer.
38  // Format: accounts/{account_id}/customers/{customer_id}
39  string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
40
41  // Required. Name of the organization that the customer entity represents.
42  string org_display_name = 2 [(google.api.field_behavior) = REQUIRED];
43
44  // Required. The organization address for the customer. To enforce US laws and
45  // embargoes, we require a region and zip code. You must provide valid
46  // addresses for every customer. To set the customer's language, use the
47  // Customer-level language code.
48  google.type.PostalAddress org_postal_address = 3
49      [(google.api.field_behavior) = REQUIRED];
50
51  // Primary contact info.
52  ContactInfo primary_contact_info = 4;
53
54  // Secondary contact email. You need to provide an alternate email to create
55  // different domains if a primary contact email already exists. Users will
56  // receive a notification with credentials when you create an admin.google.com
57  // account. Secondary emails are also recovery email addresses. Alternate
58  // emails are optional when you create Team customers.
59  string alternate_email = 5;
60
61  // Required. The customer's primary domain. Must match the primary contact
62  // email's domain.
63  string domain = 6 [(google.api.field_behavior) = REQUIRED];
64
65  // Output only. Time when the customer was created.
66  google.protobuf.Timestamp create_time = 7
67      [(google.api.field_behavior) = OUTPUT_ONLY];
68
69  // Output only. Time when the customer was updated.
70  google.protobuf.Timestamp update_time = 8
71      [(google.api.field_behavior) = OUTPUT_ONLY];
72
73  // Output only. The customer's Cloud Identity ID if the customer has a Cloud
74  // Identity resource.
75  string cloud_identity_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
76
77  // Optional. The BCP-47 language code, such as "en-US" or "sr-Latn". For more
78  // information, see
79  // https://www.unicode.org/reports/tr35/#Unicode_locale_identifier.
80  string language_code = 10 [(google.api.field_behavior) = OPTIONAL];
81
82  // Output only. Cloud Identity information for the customer.
83  // Populated only if a Cloud Identity account exists for this customer.
84  CloudIdentityInfo cloud_identity_info = 12
85      [(google.api.field_behavior) = OUTPUT_ONLY];
86
87  // Cloud Identity ID of the customer's channel partner.
88  // Populated only if a channel partner exists for this customer.
89  string channel_partner_id = 13;
90
91  // Optional. External CRM ID for the customer.
92  // Populated only if a CRM ID exists for this customer.
93  string correlation_id = 14 [(google.api.field_behavior) = OPTIONAL];
94}
95
96// Contact information for a customer account.
97message ContactInfo {
98  // The customer account contact's first name. Optional for Team customers.
99  string first_name = 1;
100
101  // The customer account contact's last name. Optional for Team customers.
102  string last_name = 2;
103
104  // Output only. The customer account contact's display name, formatted as a
105  // combination of the customer's first and last name.
106  string display_name = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
107
108  // The customer account's contact email. Required for entitlements that create
109  // admin.google.com accounts, and serves as the customer's username for those
110  // accounts. Use this email to invite Team customers.
111  string email = 5;
112
113  // Optional. The customer account contact's job title.
114  string title = 6 [(google.api.field_behavior) = OPTIONAL];
115
116  // The customer account's contact phone number.
117  string phone = 7;
118}
119