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/annotations.proto";
20import "google/api/client.proto";
21import "google/api/field_behavior.proto";
22import "google/api/resource.proto";
23import "google/cloud/channel/v1/channel_partner_links.proto";
24import "google/cloud/channel/v1/common.proto";
25import "google/cloud/channel/v1/customers.proto";
26import "google/cloud/channel/v1/entitlement_changes.proto";
27import "google/cloud/channel/v1/entitlements.proto";
28import "google/cloud/channel/v1/offers.proto";
29import "google/cloud/channel/v1/operations.proto";
30import "google/cloud/channel/v1/products.proto";
31import "google/cloud/channel/v1/repricing.proto";
32import "google/longrunning/operations.proto";
33import "google/protobuf/empty.proto";
34import "google/protobuf/field_mask.proto";
35
36option go_package = "cloud.google.com/go/channel/apiv1/channelpb;channelpb";
37option java_multiple_files = true;
38option java_outer_classname = "ServiceProto";
39option java_package = "com.google.cloud.channel.v1";
40
41// CloudChannelService lets Google cloud resellers and distributors manage
42// their customers, channel partners, entitlements, and reports.
43//
44// Using this service:
45// 1. Resellers and distributors can manage a customer entity.
46// 2. Distributors can register an authorized reseller in their channel and
47//    provide them with delegated admin access.
48// 3. Resellers and distributors can manage customer entitlements.
49//
50// CloudChannelService exposes the following resources:
51// - [Customer][google.cloud.channel.v1.Customer]s: An entity-usually an
52// enterprise-managed by a reseller or distributor.
53//
54// - [Entitlement][google.cloud.channel.v1.Entitlement]s: An entity that
55// provides a customer with the means to use a service. Entitlements are created
56// or updated as a result of a successful fulfillment.
57//
58// - [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s: An
59// entity that identifies links between distributors and their indirect
60// resellers in a channel.
61service CloudChannelService {
62  option (google.api.default_host) = "cloudchannel.googleapis.com";
63  option (google.api.oauth_scopes) =
64      "https://www.googleapis.com/auth/apps.order";
65
66  // List [Customer][google.cloud.channel.v1.Customer]s.
67  //
68  // Possible error codes:
69  //
70  // * PERMISSION_DENIED: The reseller account making the request is different
71  // from the reseller account in the API request.
72  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
73  //
74  // Return value:
75  // List of [Customer][google.cloud.channel.v1.Customer]s, or an empty list if
76  // there are no customers.
77  rpc ListCustomers(ListCustomersRequest) returns (ListCustomersResponse) {
78    option (google.api.http) = {
79      get: "/v1/{parent=accounts/*}/customers"
80      additional_bindings {
81        get: "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers"
82      }
83    };
84  }
85
86  // Returns the requested [Customer][google.cloud.channel.v1.Customer]
87  // resource.
88  //
89  // Possible error codes:
90  //
91  // * PERMISSION_DENIED: The reseller account making the request is different
92  // from the reseller account in the API request.
93  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
94  // * NOT_FOUND: The customer resource doesn't exist. Usually the result of an
95  // invalid name parameter.
96  //
97  // Return value:
98  // The [Customer][google.cloud.channel.v1.Customer] resource.
99  rpc GetCustomer(GetCustomerRequest) returns (Customer) {
100    option (google.api.http) = {
101      get: "/v1/{name=accounts/*/customers/*}"
102      additional_bindings {
103        get: "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}"
104      }
105    };
106    option (google.api.method_signature) = "name";
107  }
108
109  // Confirms the existence of Cloud Identity accounts based on the domain and
110  // if the Cloud Identity accounts are owned by the reseller.
111  //
112  // Possible error codes:
113  //
114  // * PERMISSION_DENIED: The reseller account making the request is different
115  // from the reseller account in the API request.
116  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
117  // * INVALID_VALUE: Invalid domain value in the request.
118  //
119  // Return value:
120  // A list of
121  // [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount]
122  // resources for the domain (may be empty)
123  //
124  // Note: in the v1alpha1 version of the API, a NOT_FOUND error returns if
125  // no
126  // [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount]
127  // resources match the domain.
128  rpc CheckCloudIdentityAccountsExist(CheckCloudIdentityAccountsExistRequest)
129      returns (CheckCloudIdentityAccountsExistResponse) {
130    option (google.api.http) = {
131      post: "/v1/{parent=accounts/*}:checkCloudIdentityAccountsExist"
132      body: "*"
133    };
134  }
135
136  // Creates a new [Customer][google.cloud.channel.v1.Customer] resource under
137  // the reseller or distributor account.
138  //
139  // Possible error codes:
140  //
141  // * PERMISSION_DENIED: The reseller account making the request is different
142  // from the reseller account in the API request.
143  // * INVALID_ARGUMENT:
144  //     * Required request parameters are missing or invalid.
145  //     * Domain field value doesn't match the primary email domain.
146  //
147  // Return value:
148  // The newly created [Customer][google.cloud.channel.v1.Customer] resource.
149  rpc CreateCustomer(CreateCustomerRequest) returns (Customer) {
150    option (google.api.http) = {
151      post: "/v1/{parent=accounts/*}/customers"
152      body: "customer"
153      additional_bindings {
154        post: "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers"
155        body: "customer"
156      }
157    };
158  }
159
160  // Updates an existing [Customer][google.cloud.channel.v1.Customer] resource
161  // for the reseller or distributor.
162  //
163  // Possible error codes:
164  //
165  // * PERMISSION_DENIED: The reseller account making the request is different
166  // from the reseller account in the API request.
167  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
168  // * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found
169  // for the name in the request.
170  //
171  // Return value:
172  // The updated [Customer][google.cloud.channel.v1.Customer] resource.
173  rpc UpdateCustomer(UpdateCustomerRequest) returns (Customer) {
174    option (google.api.http) = {
175      patch: "/v1/{customer.name=accounts/*/customers/*}"
176      body: "customer"
177      additional_bindings {
178        patch: "/v1/{customer.name=accounts/*/channelPartnerLinks/*/customers/*}"
179        body: "customer"
180      }
181    };
182  }
183
184  // Deletes the given [Customer][google.cloud.channel.v1.Customer] permanently.
185  //
186  // Possible error codes:
187  //
188  // * PERMISSION_DENIED: The account making the request does not own
189  // this customer.
190  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
191  // * FAILED_PRECONDITION: The customer has existing entitlements.
192  // * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found
193  // for the name in the request.
194  rpc DeleteCustomer(DeleteCustomerRequest) returns (google.protobuf.Empty) {
195    option (google.api.http) = {
196      delete: "/v1/{name=accounts/*/customers/*}"
197      additional_bindings {
198        delete: "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}"
199      }
200    };
201    option (google.api.method_signature) = "name";
202  }
203
204  // Imports a [Customer][google.cloud.channel.v1.Customer] from the Cloud
205  // Identity associated with the provided Cloud Identity ID or domain before a
206  // TransferEntitlements call. If a linked Customer already exists and
207  // overwrite_if_exists is true, it will update that Customer's data.
208  //
209  // Possible error codes:
210  //
211  // * PERMISSION_DENIED: The reseller account making the request is different
212  // from the reseller account in the API request.
213  // * NOT_FOUND: Cloud Identity doesn't exist or was deleted.
214  // * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is
215  // expired or invalid.
216  // * ALREADY_EXISTS: A customer already exists and has conflicting critical
217  // fields. Requires an overwrite.
218  //
219  // Return value:
220  // The [Customer][google.cloud.channel.v1.Customer].
221  rpc ImportCustomer(ImportCustomerRequest) returns (Customer) {
222    option (google.api.http) = {
223      post: "/v1/{parent=accounts/*}/customers:import"
224      body: "*"
225      additional_bindings {
226        post: "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers:import"
227        body: "*"
228      }
229    };
230  }
231
232  // Creates a Cloud Identity for the given customer using the customer's
233  // information, or the information provided here.
234  //
235  // Possible error codes:
236  //
237  // *  PERMISSION_DENIED: The customer doesn't belong to the reseller.
238  // *  INVALID_ARGUMENT: Required request parameters are missing or invalid.
239  // *  NOT_FOUND: The customer was not found.
240  // *  ALREADY_EXISTS: The customer's primary email already exists. Retry
241  //    after changing the customer's primary contact email.
242  // * INTERNAL: Any non-user error related to a technical issue in the
243  // backend. Contact Cloud Channel support.
244  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
245  // Contact Cloud Channel support.
246  //
247  // Return value:
248  // The ID of a long-running operation.
249  //
250  // To get the results of the operation, call the GetOperation method of
251  // CloudChannelOperationsService. The Operation metadata contains an
252  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
253  rpc ProvisionCloudIdentity(ProvisionCloudIdentityRequest)
254      returns (google.longrunning.Operation) {
255    option (google.api.http) = {
256      post: "/v1/{customer=accounts/*/customers/*}:provisionCloudIdentity"
257      body: "*"
258    };
259    option (google.longrunning.operation_info) = {
260      response_type: "Customer"
261      metadata_type: "OperationMetadata"
262    };
263  }
264
265  // Lists [Entitlement][google.cloud.channel.v1.Entitlement]s belonging to a
266  // customer.
267  //
268  // Possible error codes:
269  //
270  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
271  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
272  //
273  // Return value:
274  // A list of the customer's
275  // [Entitlement][google.cloud.channel.v1.Entitlement]s.
276  rpc ListEntitlements(ListEntitlementsRequest)
277      returns (ListEntitlementsResponse) {
278    option (google.api.http) = {
279      get: "/v1/{parent=accounts/*/customers/*}/entitlements"
280    };
281  }
282
283  // List [TransferableSku][google.cloud.channel.v1.TransferableSku]s of a
284  // customer based on the Cloud Identity ID or Customer Name in the request.
285  //
286  // Use this method to list the entitlements information of an
287  // unowned customer. You should provide the customer's
288  // Cloud Identity ID or Customer Name.
289  //
290  // Possible error codes:
291  //
292  // * PERMISSION_DENIED:
293  //     * The customer doesn't belong to the reseller and has no auth token.
294  //     * The supplied auth token is invalid.
295  //     * The reseller account making the request is different
296  //     from the reseller account in the query.
297  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
298  //
299  // Return value:
300  // A list of the customer's
301  // [TransferableSku][google.cloud.channel.v1.TransferableSku].
302  rpc ListTransferableSkus(ListTransferableSkusRequest)
303      returns (ListTransferableSkusResponse) {
304    option (google.api.http) = {
305      post: "/v1/{parent=accounts/*}:listTransferableSkus"
306      body: "*"
307    };
308  }
309
310  // List [TransferableOffer][google.cloud.channel.v1.TransferableOffer]s of a
311  // customer based on Cloud Identity ID or Customer Name in the request.
312  //
313  // Use this method when a reseller gets the entitlement information of an
314  // unowned customer. The reseller should provide the customer's
315  // Cloud Identity ID or Customer Name.
316  //
317  // Possible error codes:
318  //
319  // * PERMISSION_DENIED:
320  //     * The customer doesn't belong to the reseller and has no auth token.
321  //     * The customer provided incorrect reseller information when generating
322  //     auth token.
323  //     * The reseller account making the request is different
324  //     from the reseller account in the query.
325  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
326  //
327  // Return value:
328  // List of [TransferableOffer][google.cloud.channel.v1.TransferableOffer] for
329  // the given customer and SKU.
330  rpc ListTransferableOffers(ListTransferableOffersRequest)
331      returns (ListTransferableOffersResponse) {
332    option (google.api.http) = {
333      post: "/v1/{parent=accounts/*}:listTransferableOffers"
334      body: "*"
335    };
336  }
337
338  // Returns the requested [Entitlement][google.cloud.channel.v1.Entitlement]
339  // resource.
340  //
341  // Possible error codes:
342  //
343  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
344  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
345  // * NOT_FOUND: The customer entitlement was not found.
346  //
347  // Return value:
348  // The requested [Entitlement][google.cloud.channel.v1.Entitlement] resource.
349  rpc GetEntitlement(GetEntitlementRequest) returns (Entitlement) {
350    option (google.api.http) = {
351      get: "/v1/{name=accounts/*/customers/*/entitlements/*}"
352    };
353  }
354
355  // Creates an entitlement for a customer.
356  //
357  // Possible error codes:
358  //
359  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
360  // * INVALID_ARGUMENT:
361  //     * Required request parameters are missing or invalid.
362  //     * There is already a customer entitlement for a SKU from the same
363  //     product family.
364  // * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact
365  // Google Channel support for further troubleshooting.
366  // * NOT_FOUND: The customer or offer resource was not found.
367  // * ALREADY_EXISTS:
368  //     * The SKU was already purchased for the customer.
369  //     * The customer's primary email already exists. Retry
370  //     after changing the customer's primary contact email.
371  // * CONDITION_NOT_MET or FAILED_PRECONDITION:
372  //     * The domain required for purchasing a SKU has not been verified.
373  //     * A pre-requisite SKU required to purchase an Add-On SKU is missing.
374  //     For example, Google Workspace Business Starter is required to purchase
375  //     Vault or Drive.
376  //     * (Developer accounts only) Reseller and resold domain must meet the
377  //     following naming requirements:
378  //         * Domain names must start with goog-test.
379  //         * Domain names must include the reseller domain.
380  // * INTERNAL: Any non-user error related to a technical issue in the
381  // backend. Contact Cloud Channel support.
382  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
383  // Contact Cloud Channel support.
384  //
385  // Return value:
386  // The ID of a long-running operation.
387  //
388  // To get the results of the operation, call the GetOperation method of
389  // CloudChannelOperationsService. The Operation metadata will contain an
390  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
391  rpc CreateEntitlement(CreateEntitlementRequest)
392      returns (google.longrunning.Operation) {
393    option (google.api.http) = {
394      post: "/v1/{parent=accounts/*/customers/*}/entitlements"
395      body: "*"
396    };
397    option (google.longrunning.operation_info) = {
398      response_type: "Entitlement"
399      metadata_type: "OperationMetadata"
400    };
401  }
402
403  // Change parameters of the entitlement.
404  //
405  // An entitlement update is a long-running operation and it updates the
406  // entitlement as a result of fulfillment.
407  //
408  // Possible error codes:
409  //
410  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
411  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
412  // For example, the number of seats being changed is greater than the allowed
413  // number of max seats, or decreasing seats for a commitment based plan.
414  // * NOT_FOUND: Entitlement resource not found.
415  // * INTERNAL: Any non-user error related to a technical issue in the
416  // backend. Contact Cloud Channel support.
417  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
418  // Contact Cloud Channel support.
419  //
420  // Return value:
421  // The ID of a long-running operation.
422  //
423  // To get the results of the operation, call the GetOperation method of
424  // CloudChannelOperationsService. The Operation metadata will contain an
425  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
426  rpc ChangeParameters(ChangeParametersRequest)
427      returns (google.longrunning.Operation) {
428    option (google.api.http) = {
429      post: "/v1/{name=accounts/*/customers/*/entitlements/*}:changeParameters"
430      body: "*"
431    };
432    option (google.longrunning.operation_info) = {
433      response_type: "Entitlement"
434      metadata_type: "OperationMetadata"
435    };
436  }
437
438  // Updates the renewal settings for an existing customer entitlement.
439  //
440  // An entitlement update is a long-running operation and it updates the
441  // entitlement as a result of fulfillment.
442  //
443  // Possible error codes:
444  //
445  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
446  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
447  // * NOT_FOUND: Entitlement resource not found.
448  // * NOT_COMMITMENT_PLAN: Renewal Settings are only applicable for a
449  // commitment plan. Can't enable or disable renewals for non-commitment plans.
450  // * INTERNAL: Any non-user error related to a technical issue in the
451  // backend. Contact Cloud Channel support.
452  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
453  //   Contact Cloud Channel support.
454  //
455  // Return value:
456  // The ID of a long-running operation.
457  //
458  // To get the results of the operation, call the GetOperation method of
459  // CloudChannelOperationsService. The Operation metadata will contain an
460  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
461  rpc ChangeRenewalSettings(ChangeRenewalSettingsRequest)
462      returns (google.longrunning.Operation) {
463    option (google.api.http) = {
464      post: "/v1/{name=accounts/*/customers/*/entitlements/*}:changeRenewalSettings"
465      body: "*"
466    };
467    option (google.longrunning.operation_info) = {
468      response_type: "Entitlement"
469      metadata_type: "OperationMetadata"
470    };
471  }
472
473  // Updates the Offer for an existing customer entitlement.
474  //
475  // An entitlement update is a long-running operation and it updates the
476  // entitlement as a result of fulfillment.
477  //
478  // Possible error codes:
479  //
480  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
481  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
482  // * NOT_FOUND: Offer or Entitlement resource not found.
483  // * INTERNAL: Any non-user error related to a technical issue in the
484  // backend. Contact Cloud Channel support.
485  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
486  // Contact Cloud Channel support.
487  //
488  // Return value:
489  // The ID of a long-running operation.
490  //
491  // To get the results of the operation, call the GetOperation method of
492  // CloudChannelOperationsService. The Operation metadata will contain an
493  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
494  rpc ChangeOffer(ChangeOfferRequest) returns (google.longrunning.Operation) {
495    option (google.api.http) = {
496      post: "/v1/{name=accounts/*/customers/*/entitlements/*}:changeOffer"
497      body: "*"
498    };
499    option (google.longrunning.operation_info) = {
500      response_type: "Entitlement"
501      metadata_type: "OperationMetadata"
502    };
503  }
504
505  // Starts paid service for a trial entitlement.
506  //
507  // Starts paid service for a trial entitlement immediately. This method is
508  // only applicable if a plan is set up for a trial entitlement but has some
509  // trial days remaining.
510  //
511  // Possible error codes:
512  //
513  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
514  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
515  // * NOT_FOUND: Entitlement resource not found.
516  // * FAILED_PRECONDITION/NOT_IN_TRIAL: This method only works for
517  // entitlement on trial plans.
518  // * INTERNAL: Any non-user error related to a technical issue in the
519  // backend. Contact Cloud Channel support.
520  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
521  // Contact Cloud Channel support.
522  //
523  // Return value:
524  // The ID of a long-running operation.
525  //
526  // To get the results of the operation, call the GetOperation method of
527  // CloudChannelOperationsService. The Operation metadata will contain an
528  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
529  rpc StartPaidService(StartPaidServiceRequest)
530      returns (google.longrunning.Operation) {
531    option (google.api.http) = {
532      post: "/v1/{name=accounts/*/customers/*/entitlements/*}:startPaidService"
533      body: "*"
534    };
535    option (google.longrunning.operation_info) = {
536      response_type: "Entitlement"
537      metadata_type: "OperationMetadata"
538    };
539  }
540
541  // Suspends a previously fulfilled entitlement.
542  //
543  // An entitlement suspension is a long-running operation.
544  //
545  // Possible error codes:
546  //
547  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
548  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
549  // * NOT_FOUND: Entitlement resource not found.
550  // * NOT_ACTIVE: Entitlement is not active.
551  // * INTERNAL: Any non-user error related to a technical issue in the
552  // backend. Contact Cloud Channel support.
553  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
554  // Contact Cloud Channel support.
555  //
556  // Return value:
557  // The ID of a long-running operation.
558  //
559  // To get the results of the operation, call the GetOperation method of
560  // CloudChannelOperationsService. The Operation metadata will contain an
561  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
562  rpc SuspendEntitlement(SuspendEntitlementRequest)
563      returns (google.longrunning.Operation) {
564    option (google.api.http) = {
565      post: "/v1/{name=accounts/*/customers/*/entitlements/*}:suspend"
566      body: "*"
567    };
568    option (google.longrunning.operation_info) = {
569      response_type: "Entitlement"
570      metadata_type: "OperationMetadata"
571    };
572  }
573
574  // Cancels a previously fulfilled entitlement.
575  //
576  // An entitlement cancellation is a long-running operation.
577  //
578  // Possible error codes:
579  //
580  // * PERMISSION_DENIED: The reseller account making the request is different
581  // from the reseller account in the API request.
582  // * FAILED_PRECONDITION: There are Google Cloud projects linked to the
583  // Google Cloud entitlement's Cloud Billing subaccount.
584  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
585  // * NOT_FOUND: Entitlement resource not found.
586  // * DELETION_TYPE_NOT_ALLOWED: Cancel is only allowed for Google Workspace
587  // add-ons, or entitlements for Google Cloud's development platform.
588  // * INTERNAL: Any non-user error related to a technical issue in the
589  // backend. Contact Cloud Channel support.
590  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
591  // Contact Cloud Channel support.
592  //
593  // Return value:
594  // The ID of a long-running operation.
595  //
596  // To get the results of the operation, call the GetOperation method of
597  // CloudChannelOperationsService. The response will contain
598  // google.protobuf.Empty on success. The Operation metadata will contain an
599  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
600  rpc CancelEntitlement(CancelEntitlementRequest)
601      returns (google.longrunning.Operation) {
602    option (google.api.http) = {
603      post: "/v1/{name=accounts/*/customers/*/entitlements/*}:cancel"
604      body: "*"
605    };
606    option (google.longrunning.operation_info) = {
607      response_type: "google.protobuf.Empty"
608      metadata_type: "OperationMetadata"
609    };
610  }
611
612  // Activates a previously suspended entitlement. Entitlements suspended for
613  // pending ToS acceptance can't be activated using this method.
614  //
615  // An entitlement activation is a long-running operation and it updates
616  // the state of the customer entitlement.
617  //
618  // Possible error codes:
619  //
620  // * PERMISSION_DENIED: The reseller account making the request is different
621  // from the reseller account in the API request.
622  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
623  // * NOT_FOUND: Entitlement resource not found.
624  // * SUSPENSION_NOT_RESELLER_INITIATED: Can only activate reseller-initiated
625  // suspensions and entitlements that have accepted the TOS.
626  // * NOT_SUSPENDED: Can only activate suspended entitlements not in an ACTIVE
627  // state.
628  // * INTERNAL: Any non-user error related to a technical issue in the
629  // backend. Contact Cloud Channel support.
630  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
631  // Contact Cloud Channel support.
632  //
633  // Return value:
634  // The ID of a long-running operation.
635  //
636  // To get the results of the operation, call the GetOperation method of
637  // CloudChannelOperationsService. The Operation metadata will contain an
638  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
639  rpc ActivateEntitlement(ActivateEntitlementRequest)
640      returns (google.longrunning.Operation) {
641    option (google.api.http) = {
642      post: "/v1/{name=accounts/*/customers/*/entitlements/*}:activate"
643      body: "*"
644    };
645    option (google.longrunning.operation_info) = {
646      response_type: "Entitlement"
647      metadata_type: "OperationMetadata"
648    };
649  }
650
651  // Transfers customer entitlements to new reseller.
652  //
653  // Possible error codes:
654  //
655  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
656  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
657  // * NOT_FOUND: The customer or offer resource was not found.
658  // * ALREADY_EXISTS: The SKU was already transferred for the customer.
659  // * CONDITION_NOT_MET or FAILED_PRECONDITION:
660  //     * The SKU requires domain verification to transfer, but the domain is
661  //     not verified.
662  //     * An Add-On SKU (example, Vault or Drive) is missing the
663  //     pre-requisite SKU (example, G Suite Basic).
664  //     * (Developer accounts only) Reseller and resold domain must meet the
665  //     following naming requirements:
666  //         * Domain names must start with goog-test.
667  //         * Domain names must include the reseller domain.
668  //     * Specify all transferring entitlements.
669  // * INTERNAL: Any non-user error related to a technical issue in the
670  // backend. Contact Cloud Channel support.
671  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
672  // Contact Cloud Channel support.
673  //
674  // Return value:
675  // The ID of a long-running operation.
676  //
677  // To get the results of the operation, call the GetOperation method of
678  // CloudChannelOperationsService. The Operation metadata will contain an
679  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
680  rpc TransferEntitlements(TransferEntitlementsRequest)
681      returns (google.longrunning.Operation) {
682    option (google.api.http) = {
683      post: "/v1/{parent=accounts/*/customers/*}:transferEntitlements"
684      body: "*"
685    };
686    option (google.longrunning.operation_info) = {
687      response_type: "TransferEntitlementsResponse"
688      metadata_type: "OperationMetadata"
689    };
690  }
691
692  // Transfers customer entitlements from their current reseller to Google.
693  //
694  // Possible error codes:
695  //
696  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
697  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
698  // * NOT_FOUND: The customer or offer resource was not found.
699  // * ALREADY_EXISTS: The SKU was already transferred for the customer.
700  // * CONDITION_NOT_MET or FAILED_PRECONDITION:
701  //     * The SKU requires domain verification to transfer, but the domain is
702  //     not verified.
703  //     * An Add-On SKU (example, Vault or Drive) is missing the
704  //     pre-requisite SKU (example, G Suite Basic).
705  //     * (Developer accounts only) Reseller and resold domain must meet the
706  //     following naming requirements:
707  //         * Domain names must start with goog-test.
708  //         * Domain names must include the reseller domain.
709  // * INTERNAL: Any non-user error related to a technical issue in the
710  // backend. Contact Cloud Channel support.
711  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
712  // Contact Cloud Channel support.
713  //
714  // Return value:
715  // The ID of a long-running operation.
716  //
717  // To get the results of the operation, call the GetOperation method of
718  // CloudChannelOperationsService. The response will contain
719  // google.protobuf.Empty on success. The Operation metadata will contain an
720  // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
721  rpc TransferEntitlementsToGoogle(TransferEntitlementsToGoogleRequest)
722      returns (google.longrunning.Operation) {
723    option (google.api.http) = {
724      post: "/v1/{parent=accounts/*/customers/*}:transferEntitlementsToGoogle"
725      body: "*"
726    };
727    option (google.longrunning.operation_info) = {
728      response_type: "google.protobuf.Empty"
729      metadata_type: "OperationMetadata"
730    };
731  }
732
733  // List [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s
734  // belonging to a distributor. You must be a distributor to call this method.
735  //
736  // Possible error codes:
737  //
738  // * PERMISSION_DENIED: The reseller account making the request is different
739  // from the reseller account in the API request.
740  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
741  //
742  // Return value:
743  // The list of the distributor account's
744  // [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resources.
745  rpc ListChannelPartnerLinks(ListChannelPartnerLinksRequest)
746      returns (ListChannelPartnerLinksResponse) {
747    option (google.api.http) = {
748      get: "/v1/{parent=accounts/*}/channelPartnerLinks"
749    };
750  }
751
752  // Returns the requested
753  // [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
754  // You must be a distributor to call this method.
755  //
756  // Possible error codes:
757  //
758  // * PERMISSION_DENIED: The reseller account making the request is different
759  // from the reseller account in the API request.
760  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
761  // * NOT_FOUND: ChannelPartnerLink resource not found because of an
762  // invalid channel partner link name.
763  //
764  // Return value:
765  // The [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]
766  // resource.
767  rpc GetChannelPartnerLink(GetChannelPartnerLinkRequest)
768      returns (ChannelPartnerLink) {
769    option (google.api.http) = {
770      get: "/v1/{name=accounts/*/channelPartnerLinks/*}"
771    };
772  }
773
774  // Initiates a channel partner link between a distributor and a reseller, or
775  // between resellers in an n-tier reseller channel.
776  // Invited partners need to follow the invite_link_uri provided in the
777  // response to accept. After accepting the invitation, a link is set up
778  // between the two parties.
779  // You must be a distributor to call this method.
780  //
781  // Possible error codes:
782  //
783  // * PERMISSION_DENIED: The reseller account making the request is different
784  // from the reseller account in the API request.
785  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
786  // * ALREADY_EXISTS: The ChannelPartnerLink sent in the request already
787  // exists.
788  // * NOT_FOUND: No Cloud Identity customer exists for provided domain.
789  // * INTERNAL: Any non-user error related to a technical issue in the
790  // backend. Contact Cloud Channel support.
791  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
792  // Contact Cloud Channel support.
793  //
794  // Return value:
795  // The new [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]
796  // resource.
797  rpc CreateChannelPartnerLink(CreateChannelPartnerLinkRequest)
798      returns (ChannelPartnerLink) {
799    option (google.api.http) = {
800      post: "/v1/{parent=accounts/*}/channelPartnerLinks"
801      body: "channel_partner_link"
802    };
803  }
804
805  // Updates a channel partner link. Distributors call this method to change a
806  // link's status. For example, to suspend a partner link.
807  // You must be a distributor to call this method.
808  //
809  // Possible error codes:
810  //
811  // * PERMISSION_DENIED: The reseller account making the request is different
812  // from the reseller account in the API request.
813  // * INVALID_ARGUMENT:
814  //     * Required request parameters are missing or invalid.
815  //     * Link state cannot change from invited to active or suspended.
816  //     * Cannot send reseller_cloud_identity_id, invite_url, or name in update
817  //     mask.
818  // * NOT_FOUND: ChannelPartnerLink resource not found.
819  // * INTERNAL: Any non-user error related to a technical issue in the
820  // backend. Contact Cloud Channel support.
821  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
822  // Contact Cloud Channel support.
823  //
824  // Return value:
825  // The updated
826  // [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
827  rpc UpdateChannelPartnerLink(UpdateChannelPartnerLinkRequest)
828      returns (ChannelPartnerLink) {
829    option (google.api.http) = {
830      patch: "/v1/{name=accounts/*/channelPartnerLinks/*}"
831      body: "*"
832    };
833  }
834
835  // Gets information about how a Reseller modifies their bill before sending
836  // it to a Customer.
837  //
838  // Possible Error Codes:
839  //
840  // * PERMISSION_DENIED: If the account making the request and the account
841  // being queried are different.
842  // * NOT_FOUND: The
843  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
844  // was not found.
845  // * INTERNAL: Any non-user error related to technical issues in the
846  // backend. In this case, contact Cloud Channel support.
847  //
848  // Return Value:
849  // If successful, the
850  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
851  // resource, otherwise returns an error.
852  rpc GetCustomerRepricingConfig(GetCustomerRepricingConfigRequest)
853      returns (CustomerRepricingConfig) {
854    option (google.api.http) = {
855      get: "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}"
856    };
857    option (google.api.method_signature) = "name";
858  }
859
860  // Lists information about how a Reseller modifies their bill before sending
861  // it to a Customer.
862  //
863  // Possible Error Codes:
864  //
865  // * PERMISSION_DENIED: If the account making the request and the account
866  // being queried are different.
867  // * NOT_FOUND: The
868  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
869  // specified does not exist or is not associated with the given account.
870  // * INTERNAL: Any non-user error related to technical issues in the
871  // backend. In this case, contact Cloud Channel support.
872  //
873  // Return Value:
874  // If successful, the
875  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
876  // resources. The data for each resource is displayed in the ascending order
877  // of:
878  //
879  // * Customer ID
880  // * [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement]
881  // * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
882  // * [CustomerRepricingConfig.update_time][google.cloud.channel.v1.CustomerRepricingConfig.update_time]
883  //
884  // If unsuccessful, returns an error.
885  rpc ListCustomerRepricingConfigs(ListCustomerRepricingConfigsRequest)
886      returns (ListCustomerRepricingConfigsResponse) {
887    option (google.api.http) = {
888      get: "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs"
889    };
890    option (google.api.method_signature) = "parent";
891  }
892
893  // Creates a CustomerRepricingConfig. Call this method to set modifications
894  // for a specific customer's bill. You can only create configs if the
895  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
896  // is a future month. If needed, you can create a config for the current
897  // month, with some restrictions.
898  //
899  // When creating a config for a future month, make sure there are no existing
900  // configs for that
901  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
902  //
903  // The following restrictions are for creating configs in the current month.
904  //
905  // * This functionality is reserved for recovering from an erroneous config,
906  // and should not be used for regular business cases.
907  // * The new config will not modify exports used with other configs.
908  // Changes to the config may be immediate, but may take up to 24 hours.
909  // * There is a limit of ten configs for any
910  // [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement]
911  // or
912  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
913  // * The contained
914  // [CustomerRepricingConfig.repricing_config][google.cloud.channel.v1.CustomerRepricingConfig.repricing_config]
915  // vaule must be different from the value used in the current config for a
916  // [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement].
917  //
918  // Possible Error Codes:
919  //
920  // * PERMISSION_DENIED: If the account making the request and the account
921  // being queried are different.
922  // * INVALID_ARGUMENT: Missing or invalid required parameters in the
923  // request. Also displays if the updated config is for the current month or
924  // past months.
925  // * NOT_FOUND: The
926  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
927  // specified does not exist or is not associated with the given account.
928  // * INTERNAL: Any non-user error related to technical issues in the
929  // backend. In this case, contact Cloud Channel support.
930  //
931  // Return Value:
932  // If successful, the updated
933  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
934  // resource, otherwise returns an error.
935  rpc CreateCustomerRepricingConfig(CreateCustomerRepricingConfigRequest)
936      returns (CustomerRepricingConfig) {
937    option (google.api.http) = {
938      post: "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs"
939      body: "customer_repricing_config"
940    };
941    option (google.api.method_signature) = "parent,customer_repricing_config";
942  }
943
944  // Updates a CustomerRepricingConfig. Call this method to set modifications
945  // for a specific customer's bill. This method overwrites the existing
946  // CustomerRepricingConfig.
947  //
948  // You can only update configs if the
949  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
950  // is a future month. To make changes to configs for the current month, use
951  // [CreateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig],
952  // taking note of its restrictions. You cannot update the
953  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
954  //
955  // When updating a config in the future:
956  //
957  // * This config must already exist.
958  //
959  // Possible Error Codes:
960  //
961  // * PERMISSION_DENIED: If the account making the request and the account
962  // being queried are different.
963  // * INVALID_ARGUMENT: Missing or invalid required parameters in the
964  // request. Also displays if the updated config is for the current month or
965  // past months.
966  // * NOT_FOUND: The
967  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
968  // specified does not exist or is not associated with the given account.
969  // * INTERNAL: Any non-user error related to technical issues in the
970  // backend. In this case, contact Cloud Channel support.
971  //
972  // Return Value:
973  // If successful, the updated
974  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
975  // resource, otherwise returns an error.
976  rpc UpdateCustomerRepricingConfig(UpdateCustomerRepricingConfigRequest)
977      returns (CustomerRepricingConfig) {
978    option (google.api.http) = {
979      patch: "/v1/{customer_repricing_config.name=accounts/*/customers/*/customerRepricingConfigs/*}"
980      body: "customer_repricing_config"
981    };
982    option (google.api.method_signature) = "customer_repricing_config";
983  }
984
985  // Deletes the given
986  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
987  // permanently. You can only delete configs if their
988  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
989  // is set to a date after the current month.
990  //
991  // Possible error codes:
992  //
993  // * PERMISSION_DENIED: The account making the request does not own
994  // this customer.
995  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
996  // * FAILED_PRECONDITION: The
997  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
998  // is active or in the past.
999  // * NOT_FOUND: No
1000  // [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig]
1001  // found for the name in the request.
1002  rpc DeleteCustomerRepricingConfig(DeleteCustomerRepricingConfigRequest)
1003      returns (google.protobuf.Empty) {
1004    option (google.api.http) = {
1005      delete: "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}"
1006    };
1007    option (google.api.method_signature) = "name";
1008  }
1009
1010  // Gets information about how a Distributor modifies their bill before sending
1011  // it to a ChannelPartner.
1012  //
1013  // Possible Error Codes:
1014  //
1015  // * PERMISSION_DENIED: If the account making the request and the account
1016  // being queried are different.
1017  // * NOT_FOUND: The
1018  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1019  // was not found.
1020  // * INTERNAL: Any non-user error related to technical issues in the
1021  // backend. In this case, contact Cloud Channel support.
1022  //
1023  // Return Value:
1024  // If successful, the
1025  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1026  // resource, otherwise returns an error.
1027  rpc GetChannelPartnerRepricingConfig(GetChannelPartnerRepricingConfigRequest)
1028      returns (ChannelPartnerRepricingConfig) {
1029    option (google.api.http) = {
1030      get: "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}"
1031    };
1032    option (google.api.method_signature) = "name";
1033  }
1034
1035  // Lists information about how a Reseller modifies their bill before sending
1036  // it to a ChannelPartner.
1037  //
1038  // Possible Error Codes:
1039  //
1040  // * PERMISSION_DENIED: If the account making the request and the account
1041  // being queried are different.
1042  // * NOT_FOUND: The
1043  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1044  // specified does not exist or is not associated with the given account.
1045  // * INTERNAL: Any non-user error related to technical issues in the
1046  // backend. In this case, contact Cloud Channel support.
1047  //
1048  // Return Value:
1049  // If successful, the
1050  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1051  // resources. The data for each resource is displayed in the ascending order
1052  // of:
1053  //
1054  // * Channel Partner ID
1055  // * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
1056  // * [ChannelPartnerRepricingConfig.update_time][google.cloud.channel.v1.ChannelPartnerRepricingConfig.update_time]
1057  //
1058  // If unsuccessful, returns an error.
1059  rpc ListChannelPartnerRepricingConfigs(
1060      ListChannelPartnerRepricingConfigsRequest)
1061      returns (ListChannelPartnerRepricingConfigsResponse) {
1062    option (google.api.http) = {
1063      get: "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs"
1064    };
1065    option (google.api.method_signature) = "parent";
1066  }
1067
1068  // Creates a ChannelPartnerRepricingConfig. Call this method to set
1069  // modifications for a specific ChannelPartner's bill. You can only create
1070  // configs if the
1071  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
1072  // is a future month. If needed, you can create a config for the current
1073  // month, with some restrictions.
1074  //
1075  // When creating a config for a future month, make sure there are no existing
1076  // configs for that
1077  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
1078  //
1079  // The following restrictions are for creating configs in the current month.
1080  //
1081  // * This functionality is reserved for recovering from an erroneous config,
1082  // and should not be used for regular business cases.
1083  // * The new config will not modify exports used with other configs.
1084  // Changes to the config may be immediate, but may take up to 24 hours.
1085  // * There is a limit of ten configs for any ChannelPartner or
1086  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
1087  // * The contained
1088  // [ChannelPartnerRepricingConfig.repricing_config][google.cloud.channel.v1.ChannelPartnerRepricingConfig.repricing_config]
1089  // vaule must be different from the value used in the current config for a
1090  // ChannelPartner.
1091  //
1092  // Possible Error Codes:
1093  //
1094  // * PERMISSION_DENIED: If the account making the request and the account
1095  // being queried are different.
1096  // * INVALID_ARGUMENT: Missing or invalid required parameters in the
1097  // request. Also displays if the updated config is for the current month or
1098  // past months.
1099  // * NOT_FOUND: The
1100  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1101  // specified does not exist or is not associated with the given account.
1102  // * INTERNAL: Any non-user error related to technical issues in the
1103  // backend. In this case, contact Cloud Channel support.
1104  //
1105  // Return Value:
1106  // If successful, the updated
1107  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1108  // resource, otherwise returns an error.
1109  rpc CreateChannelPartnerRepricingConfig(
1110      CreateChannelPartnerRepricingConfigRequest)
1111      returns (ChannelPartnerRepricingConfig) {
1112    option (google.api.http) = {
1113      post: "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs"
1114      body: "channel_partner_repricing_config"
1115    };
1116    option (google.api.method_signature) =
1117        "parent,channel_partner_repricing_config";
1118  }
1119
1120  // Updates a ChannelPartnerRepricingConfig. Call this method to set
1121  // modifications for a specific ChannelPartner's bill. This method overwrites
1122  // the existing CustomerRepricingConfig.
1123  //
1124  // You can only update configs if the
1125  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
1126  // is a future month. To make changes to configs for the current month, use
1127  // [CreateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig],
1128  // taking note of its restrictions. You cannot update the
1129  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
1130  //
1131  // When updating a config in the future:
1132  //
1133  // * This config must already exist.
1134  //
1135  // Possible Error Codes:
1136  //
1137  // * PERMISSION_DENIED: If the account making the request and the account
1138  // being queried are different.
1139  // * INVALID_ARGUMENT: Missing or invalid required parameters in the
1140  // request. Also displays if the updated config is for the current month or
1141  // past months.
1142  // * NOT_FOUND: The
1143  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1144  // specified does not exist or is not associated with the given account.
1145  // * INTERNAL: Any non-user error related to technical issues in the
1146  // backend. In this case, contact Cloud Channel support.
1147  //
1148  // Return Value:
1149  // If successful, the updated
1150  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1151  // resource, otherwise returns an error.
1152  rpc UpdateChannelPartnerRepricingConfig(
1153      UpdateChannelPartnerRepricingConfigRequest)
1154      returns (ChannelPartnerRepricingConfig) {
1155    option (google.api.http) = {
1156      patch: "/v1/{channel_partner_repricing_config.name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}"
1157      body: "channel_partner_repricing_config"
1158    };
1159    option (google.api.method_signature) = "channel_partner_repricing_config";
1160  }
1161
1162  // Deletes the given
1163  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1164  // permanently. You can only delete configs if their
1165  // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
1166  // is set to a date after the current month.
1167  //
1168  // Possible error codes:
1169  //
1170  // * PERMISSION_DENIED: The account making the request does not own
1171  // this customer.
1172  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1173  // * FAILED_PRECONDITION: The
1174  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1175  // is active or in the past.
1176  // * NOT_FOUND: No
1177  // [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig]
1178  // found for the name in the request.
1179  rpc DeleteChannelPartnerRepricingConfig(
1180      DeleteChannelPartnerRepricingConfigRequest)
1181      returns (google.protobuf.Empty) {
1182    option (google.api.http) = {
1183      delete: "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}"
1184    };
1185    option (google.api.method_signature) = "name";
1186  }
1187
1188  // Returns the requested [Offer][google.cloud.channel.v1.Offer] resource.
1189  //
1190  // Possible error codes:
1191  //
1192  // * PERMISSION_DENIED: The entitlement doesn't belong to the reseller.
1193  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1194  // * NOT_FOUND: Entitlement or offer was not found.
1195  //
1196  // Return value:
1197  // The [Offer][google.cloud.channel.v1.Offer] resource.
1198  rpc LookupOffer(LookupOfferRequest) returns (Offer) {
1199    option (google.api.http) = {
1200      get: "/v1/{entitlement=accounts/*/customers/*/entitlements/*}:lookupOffer"
1201    };
1202  }
1203
1204  // Lists the Products the reseller is authorized to sell.
1205  //
1206  // Possible error codes:
1207  //
1208  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1209  rpc ListProducts(ListProductsRequest) returns (ListProductsResponse) {
1210    option (google.api.http) = {
1211      get: "/v1/products"
1212    };
1213  }
1214
1215  // Lists the SKUs for a product the reseller is authorized to sell.
1216  //
1217  // Possible error codes:
1218  //
1219  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1220  rpc ListSkus(ListSkusRequest) returns (ListSkusResponse) {
1221    option (google.api.http) = {
1222      get: "/v1/{parent=products/*}/skus"
1223    };
1224  }
1225
1226  // Lists the Offers the reseller can sell.
1227  //
1228  // Possible error codes:
1229  //
1230  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1231  rpc ListOffers(ListOffersRequest) returns (ListOffersResponse) {
1232    option (google.api.http) = {
1233      get: "/v1/{parent=accounts/*}/offers"
1234    };
1235  }
1236
1237  // Lists the following:
1238  //
1239  // * SKUs that you can purchase for a customer
1240  // * SKUs that you can upgrade or downgrade for an entitlement.
1241  //
1242  // Possible error codes:
1243  //
1244  // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
1245  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1246  rpc ListPurchasableSkus(ListPurchasableSkusRequest)
1247      returns (ListPurchasableSkusResponse) {
1248    option (google.api.http) = {
1249      get: "/v1/{customer=accounts/*/customers/*}:listPurchasableSkus"
1250    };
1251  }
1252
1253  // Lists the following:
1254  //
1255  // * Offers that you can purchase for a customer.
1256  // * Offers that you can change for an entitlement.
1257  //
1258  // Possible error codes:
1259  //
1260  // * PERMISSION_DENIED: The customer doesn't belong to the reseller
1261  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1262  rpc ListPurchasableOffers(ListPurchasableOffersRequest)
1263      returns (ListPurchasableOffersResponse) {
1264    option (google.api.http) = {
1265      get: "/v1/{customer=accounts/*/customers/*}:listPurchasableOffers"
1266    };
1267  }
1268
1269  // Registers a service account with subscriber privileges on the Cloud Pub/Sub
1270  // topic for this Channel Services account. After you create a
1271  // subscriber, you get the events through
1272  // [SubscriberEvent][google.cloud.channel.v1.SubscriberEvent]
1273  //
1274  // Possible error codes:
1275  //
1276  // * PERMISSION_DENIED: The reseller account making the request and the
1277  // provided reseller account are different, or the impersonated user
1278  // is not a super admin.
1279  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1280  // * INTERNAL: Any non-user error related to a technical issue in the
1281  // backend. Contact Cloud Channel support.
1282  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
1283  // Contact Cloud Channel support.
1284  //
1285  // Return value:
1286  // The topic name with the registered service email address.
1287  rpc RegisterSubscriber(RegisterSubscriberRequest)
1288      returns (RegisterSubscriberResponse) {
1289    option (google.api.http) = {
1290      post: "/v1/{account=accounts/*}:register"
1291      body: "*"
1292    };
1293  }
1294
1295  // Unregisters a service account with subscriber privileges on the Cloud
1296  // Pub/Sub topic created for this Channel Services account. If there are no
1297  // service accounts left with subscriber privileges, this deletes the topic.
1298  // You can call ListSubscribers to check for these accounts.
1299  //
1300  // Possible error codes:
1301  //
1302  // * PERMISSION_DENIED: The reseller account making the request and the
1303  // provided reseller account are different, or the impersonated user
1304  // is not a super admin.
1305  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1306  // * NOT_FOUND: The topic resource doesn't exist.
1307  // * INTERNAL: Any non-user error related to a technical issue in the
1308  // backend. Contact Cloud Channel support.
1309  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
1310  // Contact Cloud Channel support.
1311  //
1312  // Return value:
1313  // The topic name that unregistered the service email address.
1314  // Returns a success response if the service email address wasn't registered
1315  // with the topic.
1316  rpc UnregisterSubscriber(UnregisterSubscriberRequest)
1317      returns (UnregisterSubscriberResponse) {
1318    option (google.api.http) = {
1319      post: "/v1/{account=accounts/*}:unregister"
1320      body: "*"
1321    };
1322  }
1323
1324  // Lists service accounts with subscriber privileges on the Cloud Pub/Sub
1325  // topic created for this Channel Services account.
1326  //
1327  // Possible error codes:
1328  //
1329  // * PERMISSION_DENIED: The reseller account making the request and the
1330  // provided reseller account are different, or the impersonated user
1331  // is not a super admin.
1332  // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
1333  // * NOT_FOUND: The topic resource doesn't exist.
1334  // * INTERNAL: Any non-user error related to a technical issue in the
1335  // backend. Contact Cloud Channel support.
1336  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
1337  // Contact Cloud Channel support.
1338  //
1339  // Return value:
1340  // A list of service email addresses.
1341  rpc ListSubscribers(ListSubscribersRequest)
1342      returns (ListSubscribersResponse) {
1343    option (google.api.http) = {
1344      get: "/v1/{account=accounts/*}:listSubscribers"
1345    };
1346  }
1347
1348  // List entitlement history.
1349  //
1350  // Possible error codes:
1351  //
1352  // * PERMISSION_DENIED: The reseller account making the request and the
1353  // provided reseller account are different.
1354  // * INVALID_ARGUMENT: Missing or invalid required fields in the request.
1355  // * NOT_FOUND: The parent resource doesn't exist. Usually the result of an
1356  // invalid name parameter.
1357  // * INTERNAL: Any non-user error related to a technical issue in the backend.
1358  // In this case, contact CloudChannel support.
1359  // * UNKNOWN: Any non-user error related to a technical issue in the backend.
1360  // In this case, contact Cloud Channel support.
1361  //
1362  // Return value:
1363  // List of [EntitlementChange][google.cloud.channel.v1.EntitlementChange]s.
1364  rpc ListEntitlementChanges(ListEntitlementChangesRequest)
1365      returns (ListEntitlementChangesResponse) {
1366    option (google.api.http) = {
1367      get: "/v1/{parent=accounts/*/customers/*/entitlements/*}:listEntitlementChanges"
1368    };
1369    option (google.api.method_signature) = "parent";
1370  }
1371}
1372
1373// Request message for
1374// [CloudChannelService.CheckCloudIdentityAccountsExist][google.cloud.channel.v1.CloudChannelService.CheckCloudIdentityAccountsExist].
1375message CheckCloudIdentityAccountsExistRequest {
1376  // Required. The reseller account's resource name.
1377  // Parent uses the format: accounts/{account_id}
1378  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1379
1380  // Required. Domain to fetch for Cloud Identity account customer.
1381  string domain = 2 [(google.api.field_behavior) = REQUIRED];
1382}
1383
1384// Entity representing a Cloud Identity account that may be
1385// associated with a Channel Services API partner.
1386message CloudIdentityCustomerAccount {
1387  // Returns true if a Cloud Identity account exists for a specific domain.
1388  bool existing = 1;
1389
1390  // Returns true if the Cloud Identity account is associated with a customer
1391  // of the Channel Services partner.
1392  bool owned = 2;
1393
1394  // If owned = true, the name of the customer that owns the Cloud Identity
1395  // account.
1396  // Customer_name uses the format:
1397  // accounts/{account_id}/customers/{customer_id}
1398  string customer_name = 3;
1399
1400  // If existing = true, the Cloud Identity ID of the customer.
1401  string customer_cloud_identity_id = 4;
1402}
1403
1404// Response message for
1405// [CloudChannelService.CheckCloudIdentityAccountsExist][google.cloud.channel.v1.CloudChannelService.CheckCloudIdentityAccountsExist].
1406message CheckCloudIdentityAccountsExistResponse {
1407  // The Cloud Identity accounts associated with the domain.
1408  repeated CloudIdentityCustomerAccount cloud_identity_accounts = 1;
1409}
1410
1411// Request message for
1412// [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers]
1413message ListCustomersRequest {
1414  // Required. The resource name of the reseller account to list customers from.
1415  // Parent uses the format: accounts/{account_id}.
1416  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1417
1418  // Optional. The maximum number of customers to return. The service may return
1419  // fewer than this value. If unspecified, returns at most 10 customers. The
1420  // maximum value is 50.
1421  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1422
1423  // Optional. A token identifying a page of results other than the first page.
1424  // Obtained through
1425  // [ListCustomersResponse.next_page_token][google.cloud.channel.v1.ListCustomersResponse.next_page_token]
1426  // of the previous
1427  // [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers]
1428  // call.
1429  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1430
1431  // Optional. Filters applied to the [CloudChannelService.ListCustomers]
1432  // results. See
1433  // https://cloud.google.com/channel/docs/concepts/google-cloud/filter-customers
1434  // for more information.
1435  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
1436}
1437
1438// Response message for
1439// [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers].
1440message ListCustomersResponse {
1441  // The customers belonging to a reseller or distributor.
1442  repeated Customer customers = 1;
1443
1444  // A token to retrieve the next page of results.
1445  // Pass to
1446  // [ListCustomersRequest.page_token][google.cloud.channel.v1.ListCustomersRequest.page_token]
1447  // to obtain that page.
1448  string next_page_token = 2;
1449}
1450
1451// Request message for
1452// [CloudChannelService.GetCustomer][google.cloud.channel.v1.CloudChannelService.GetCustomer].
1453message GetCustomerRequest {
1454  // Required. The resource name of the customer to retrieve.
1455  // Name uses the format: accounts/{account_id}/customers/{customer_id}
1456  string name = 1 [
1457    (google.api.field_behavior) = REQUIRED,
1458    (google.api.resource_reference) = {
1459      type: "cloudchannel.googleapis.com/Customer"
1460    }
1461  ];
1462}
1463
1464// Request message for
1465// [CloudChannelService.CreateCustomer][google.cloud.channel.v1.CloudChannelService.CreateCustomer]
1466message CreateCustomerRequest {
1467  // Required. The resource name of reseller account in which to create the
1468  // customer. Parent uses the format: accounts/{account_id}
1469  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1470
1471  // Required. The customer to create.
1472  Customer customer = 2 [(google.api.field_behavior) = REQUIRED];
1473}
1474
1475// Request message for
1476// [CloudChannelService.UpdateCustomer][google.cloud.channel.v1.CloudChannelService.UpdateCustomer].
1477message UpdateCustomerRequest {
1478  // Required. New contents of the customer.
1479  Customer customer = 2 [(google.api.field_behavior) = REQUIRED];
1480
1481  // The update mask that applies to the resource.
1482  // Optional.
1483  google.protobuf.FieldMask update_mask = 3;
1484}
1485
1486// Request message for
1487// [CloudChannelService.DeleteCustomer][google.cloud.channel.v1.CloudChannelService.DeleteCustomer].
1488message DeleteCustomerRequest {
1489  // Required. The resource name of the customer to delete.
1490  string name = 1 [
1491    (google.api.field_behavior) = REQUIRED,
1492    (google.api.resource_reference) = {
1493      type: "cloudchannel.googleapis.com/Customer"
1494    }
1495  ];
1496}
1497
1498// Request message for
1499// [CloudChannelService.ImportCustomer][google.cloud.channel.v1.CloudChannelService.ImportCustomer]
1500message ImportCustomerRequest {
1501  // Specifies the identity of the transfer customer.
1502  // A customer's cloud_identity_id or domain is required to look up the
1503  // customer's Cloud Identity. For Team customers, only the cloud_identity_id
1504  // option is valid.
1505  oneof customer_identity {
1506    // Required. Customer domain.
1507    string domain = 2 [(google.api.field_behavior) = REQUIRED];
1508
1509    // Required. Customer's Cloud Identity ID
1510    string cloud_identity_id = 3 [(google.api.field_behavior) = REQUIRED];
1511  }
1512
1513  // Required. The resource name of the reseller's account.
1514  // Parent takes the format: accounts/{account_id} or
1515  // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}
1516  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1517
1518  // Optional. The super admin of the resold customer generates this token to
1519  // authorize a reseller to access their Cloud Identity and purchase
1520  // entitlements on their behalf. You can omit this token after authorization.
1521  // See https://support.google.com/a/answer/7643790 for more details.
1522  string auth_token = 4 [(google.api.field_behavior) = OPTIONAL];
1523
1524  // Required. Choose to overwrite an existing customer if found.
1525  // This must be set to true if there is an existing customer with a
1526  // conflicting region code or domain.
1527  bool overwrite_if_exists = 5 [(google.api.field_behavior) = REQUIRED];
1528
1529  // Optional. Cloud Identity ID of a channel partner who will be the direct
1530  // reseller for the customer's order. This field is required for 2-tier
1531  // transfer scenarios and can be provided via the request Parent binding as
1532  // well.
1533  string channel_partner_id = 6 [(google.api.field_behavior) = OPTIONAL];
1534
1535  // Optional. Specifies the customer that will receive imported Cloud Identity
1536  // information.
1537  // Format: accounts/{account_id}/customers/{customer_id}
1538  string customer = 7 [
1539    (google.api.field_behavior) = OPTIONAL,
1540    (google.api.resource_reference) = {
1541      type: "cloudchannel.googleapis.com/Customer"
1542    }
1543  ];
1544}
1545
1546// Request message for
1547// [CloudChannelService.ProvisionCloudIdentity][google.cloud.channel.v1.CloudChannelService.ProvisionCloudIdentity]
1548message ProvisionCloudIdentityRequest {
1549  // Required. Resource name of the customer.
1550  // Format: accounts/{account_id}/customers/{customer_id}
1551  string customer = 1 [
1552    (google.api.field_behavior) = REQUIRED,
1553    (google.api.resource_reference) = {
1554      type: "cloudchannel.googleapis.com/Customer"
1555    }
1556  ];
1557
1558  // CloudIdentity-specific customer information.
1559  CloudIdentityInfo cloud_identity_info = 2;
1560
1561  // Admin user information.
1562  AdminUser user = 3;
1563
1564  // Validate the request and preview the review, but do not post it.
1565  bool validate_only = 4;
1566}
1567
1568// Request message for
1569// [CloudChannelService.ListEntitlements][google.cloud.channel.v1.CloudChannelService.ListEntitlements]
1570message ListEntitlementsRequest {
1571  // Required. The resource name of the reseller's customer account to list
1572  // entitlements for.
1573  // Parent uses the format: accounts/{account_id}/customers/{customer_id}
1574  string parent = 1 [
1575    (google.api.field_behavior) = REQUIRED,
1576    (google.api.resource_reference) = {
1577      type: "cloudchannel.googleapis.com/Customer"
1578    }
1579  ];
1580
1581  // Optional. Requested page size. Server might return fewer results than
1582  // requested. If unspecified, return at most 50 entitlements. The maximum
1583  // value is 100; the server will coerce values above 100.
1584  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1585
1586  // Optional. A token for a page of results other than the first page.
1587  // Obtained using
1588  // [ListEntitlementsResponse.next_page_token][google.cloud.channel.v1.ListEntitlementsResponse.next_page_token]
1589  // of the previous
1590  // [CloudChannelService.ListEntitlements][google.cloud.channel.v1.CloudChannelService.ListEntitlements]
1591  // call.
1592  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1593}
1594
1595// Response message for
1596// [CloudChannelService.ListEntitlements][google.cloud.channel.v1.CloudChannelService.ListEntitlements].
1597message ListEntitlementsResponse {
1598  // The reseller customer's entitlements.
1599  repeated Entitlement entitlements = 1;
1600
1601  // A token to list the next page of results.
1602  // Pass to
1603  // [ListEntitlementsRequest.page_token][google.cloud.channel.v1.ListEntitlementsRequest.page_token]
1604  // to obtain that page.
1605  string next_page_token = 2;
1606}
1607
1608// Request message for
1609// [CloudChannelService.ListTransferableSkus][google.cloud.channel.v1.CloudChannelService.ListTransferableSkus]
1610message ListTransferableSkusRequest {
1611  // Specifies the identity of transferred customer.
1612  // Either a cloud_identity_id of the customer or the customer name is
1613  // required to look up transferable SKUs.
1614  oneof transferred_customer_identity {
1615    // Customer's Cloud Identity ID
1616    string cloud_identity_id = 4;
1617
1618    // A reseller is required to create a customer and use the resource name of
1619    // the created customer here.
1620    // Customer_name uses the format:
1621    // accounts/{account_id}/customers/{customer_id}
1622    string customer_name = 7;
1623  }
1624
1625  // Required. The reseller account's resource name.
1626  // Parent uses the format: accounts/{account_id}
1627  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1628
1629  // The requested page size. Server might return fewer results than requested.
1630  // If unspecified, returns at most 100 SKUs.
1631  // The maximum value is 1000; the server will coerce values above 1000.
1632  // Optional.
1633  int32 page_size = 2;
1634
1635  // A token for a page of results other than the first page.
1636  // Obtained using
1637  // [ListTransferableSkusResponse.next_page_token][google.cloud.channel.v1.ListTransferableSkusResponse.next_page_token]
1638  // of the previous
1639  // [CloudChannelService.ListTransferableSkus][google.cloud.channel.v1.CloudChannelService.ListTransferableSkus]
1640  // call. Optional.
1641  string page_token = 3;
1642
1643  // Optional. The super admin of the resold customer generates this token to
1644  // authorize a reseller to access their Cloud Identity and purchase
1645  // entitlements on their behalf. You can omit this token after authorization.
1646  // See https://support.google.com/a/answer/7643790 for more details.
1647  string auth_token = 5 [(google.api.field_behavior) = OPTIONAL];
1648
1649  // The BCP-47 language code. For example, "en-US". The
1650  // response will localize in the corresponding language code, if specified.
1651  // The default value is "en-US".
1652  // Optional.
1653  string language_code = 6;
1654}
1655
1656// Response message for
1657// [CloudChannelService.ListTransferableSkus][google.cloud.channel.v1.CloudChannelService.ListTransferableSkus].
1658message ListTransferableSkusResponse {
1659  // Information about existing SKUs for a customer that needs a transfer.
1660  repeated TransferableSku transferable_skus = 1;
1661
1662  // A token to retrieve the next page of results.
1663  // Pass to
1664  // [ListTransferableSkusRequest.page_token][google.cloud.channel.v1.ListTransferableSkusRequest.page_token]
1665  // to obtain that page.
1666  string next_page_token = 2;
1667}
1668
1669// Request message for
1670// [CloudChannelService.ListTransferableOffers][google.cloud.channel.v1.CloudChannelService.ListTransferableOffers]
1671message ListTransferableOffersRequest {
1672  // Specifies the identity of transferred customer.
1673  // Either a cloud_identity_id of the customer or the customer name is
1674  // required to look up transferrable Offers.
1675  oneof transferred_customer_identity {
1676    // Customer's Cloud Identity ID
1677    string cloud_identity_id = 4;
1678
1679    // A reseller should create a customer and use the resource name of
1680    // that customer here.
1681    string customer_name = 5;
1682  }
1683
1684  // Required. The resource name of the reseller's account.
1685  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1686
1687  // Requested page size. Server might return fewer results than requested.
1688  // If unspecified, returns at most 100 offers.
1689  // The maximum value is 1000; the server will coerce values above 1000.
1690  int32 page_size = 2;
1691
1692  // A token for a page of results other than the first page.
1693  // Obtained using
1694  // [ListTransferableOffersResponse.next_page_token][google.cloud.channel.v1.ListTransferableOffersResponse.next_page_token]
1695  // of the previous
1696  // [CloudChannelService.ListTransferableOffers][google.cloud.channel.v1.CloudChannelService.ListTransferableOffers]
1697  // call.
1698  string page_token = 3;
1699
1700  // Required. The SKU to look up Offers for.
1701  string sku = 6 [(google.api.field_behavior) = REQUIRED];
1702
1703  // Optional. The BCP-47 language code. For example, "en-US". The
1704  // response will localize in the corresponding language code, if specified.
1705  // The default value is "en-US".
1706  string language_code = 7 [(google.api.field_behavior) = OPTIONAL];
1707}
1708
1709// Response message for
1710// [CloudChannelService.ListTransferableOffers][google.cloud.channel.v1.CloudChannelService.ListTransferableOffers].
1711message ListTransferableOffersResponse {
1712  // Information about Offers for a customer that can be used for
1713  // transfer.
1714  repeated TransferableOffer transferable_offers = 1;
1715
1716  // A token to retrieve the next page of results.
1717  // Pass to
1718  // [ListTransferableOffersRequest.page_token][google.cloud.channel.v1.ListTransferableOffersRequest.page_token]
1719  // to obtain that page.
1720  string next_page_token = 2;
1721}
1722
1723// TransferableOffer represents an Offer that can be used in Transfer.
1724// Read-only.
1725message TransferableOffer {
1726  // Offer with parameter constraints updated to allow the Transfer.
1727  Offer offer = 1;
1728}
1729
1730// Request message for
1731// [CloudChannelService.GetEntitlement][google.cloud.channel.v1.CloudChannelService.GetEntitlement].
1732message GetEntitlementRequest {
1733  // Required. The resource name of the entitlement to retrieve.
1734  // Name uses the format:
1735  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
1736  string name = 1 [
1737    (google.api.field_behavior) = REQUIRED,
1738    (google.api.resource_reference) = {
1739      type: "cloudchannel.googleapis.com/Entitlement"
1740    }
1741  ];
1742}
1743
1744// Request message for
1745// [CloudChannelService.ListChannelPartnerLinks][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks]
1746message ListChannelPartnerLinksRequest {
1747  // Required. The resource name of the reseller account for listing channel
1748  // partner links. Parent uses the format: accounts/{account_id}
1749  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1750
1751  // Optional. Requested page size. Server might return fewer results than
1752  // requested. If unspecified, server will pick a default size (25). The
1753  // maximum value is 200; the server will coerce values above 200.
1754  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1755
1756  // Optional. A token for a page of results other than the first page.
1757  // Obtained using
1758  // [ListChannelPartnerLinksResponse.next_page_token][google.cloud.channel.v1.ListChannelPartnerLinksResponse.next_page_token]
1759  // of the previous
1760  // [CloudChannelService.ListChannelPartnerLinks][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks]
1761  // call.
1762  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1763
1764  // Optional. The level of granularity the ChannelPartnerLink will display.
1765  ChannelPartnerLinkView view = 4 [(google.api.field_behavior) = OPTIONAL];
1766}
1767
1768// Response message for
1769// [CloudChannelService.ListChannelPartnerLinks][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks].
1770message ListChannelPartnerLinksResponse {
1771  // The Channel partner links for a reseller.
1772  repeated ChannelPartnerLink channel_partner_links = 1;
1773
1774  // A token to retrieve the next page of results.
1775  // Pass to
1776  // [ListChannelPartnerLinksRequest.page_token][google.cloud.channel.v1.ListChannelPartnerLinksRequest.page_token]
1777  // to obtain that page.
1778  string next_page_token = 2;
1779}
1780
1781// Request message for
1782// [CloudChannelService.GetChannelPartnerLink][google.cloud.channel.v1.CloudChannelService.GetChannelPartnerLink].
1783message GetChannelPartnerLinkRequest {
1784  // Required. The resource name of the channel partner link to retrieve.
1785  // Name uses the format: accounts/{account_id}/channelPartnerLinks/{id}
1786  // where {id} is the Cloud Identity ID of the partner.
1787  string name = 1 [(google.api.field_behavior) = REQUIRED];
1788
1789  // Optional. The level of granularity the ChannelPartnerLink will display.
1790  ChannelPartnerLinkView view = 2 [(google.api.field_behavior) = OPTIONAL];
1791}
1792
1793// Request message for
1794// [CloudChannelService.CreateChannelPartnerLink][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerLink]
1795message CreateChannelPartnerLinkRequest {
1796  // Required. Create a channel partner link for the provided reseller account's
1797  // resource name.
1798  // Parent uses the format: accounts/{account_id}
1799  string parent = 1 [(google.api.field_behavior) = REQUIRED];
1800
1801  // Required. The channel partner link to create.
1802  // Either channel_partner_link.reseller_cloud_identity_id or domain can be
1803  // used to create a link.
1804  ChannelPartnerLink channel_partner_link = 2
1805      [(google.api.field_behavior) = REQUIRED];
1806}
1807
1808// Request message for
1809// [CloudChannelService.UpdateChannelPartnerLink][google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerLink]
1810message UpdateChannelPartnerLinkRequest {
1811  // Required. The resource name of the channel partner link to cancel.
1812  // Name uses the format: accounts/{account_id}/channelPartnerLinks/{id}
1813  // where {id} is the Cloud Identity ID of the partner.
1814  string name = 1 [(google.api.field_behavior) = REQUIRED];
1815
1816  // Required. The channel partner link to update. Only
1817  // channel_partner_link.link_state is allowed for updates.
1818  ChannelPartnerLink channel_partner_link = 2
1819      [(google.api.field_behavior) = REQUIRED];
1820
1821  // Required. The update mask that applies to the resource.
1822  // The only allowable value for an update mask is
1823  // channel_partner_link.link_state.
1824  google.protobuf.FieldMask update_mask = 3
1825      [(google.api.field_behavior) = REQUIRED];
1826}
1827
1828// Request message for
1829// [CloudChannelService.GetCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.GetCustomerRepricingConfig].
1830message GetCustomerRepricingConfigRequest {
1831  // Required. The resource name of the CustomerRepricingConfig.
1832  // Format:
1833  // accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.
1834  string name = 1 [
1835    (google.api.field_behavior) = REQUIRED,
1836    (google.api.resource_reference) = {
1837      type: "cloudchannel.googleapis.com/CustomerRepricingConfig"
1838    }
1839  ];
1840}
1841
1842// Request message for
1843// [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs].
1844message ListCustomerRepricingConfigsRequest {
1845  // Required. The resource name of the customer.
1846  // Parent uses the format: accounts/{account_id}/customers/{customer_id}.
1847  // Supports accounts/{account_id}/customers/- to retrieve configs for all
1848  // customers.
1849  string parent = 1 [
1850    (google.api.field_behavior) = REQUIRED,
1851    (google.api.resource_reference) = {
1852      type: "cloudchannel.googleapis.com/Customer"
1853    }
1854  ];
1855
1856  // Optional. The maximum number of repricing configs to return. The service
1857  // may return fewer than this value. If unspecified, returns a maximum of 50
1858  // rules. The maximum value is 100; values above 100 will be coerced to 100.
1859  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1860
1861  // Optional. A token identifying a page of results beyond the first page.
1862  // Obtained through
1863  // [ListCustomerRepricingConfigsResponse.next_page_token][google.cloud.channel.v1.ListCustomerRepricingConfigsResponse.next_page_token]
1864  // of the previous
1865  // [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs]
1866  // call.
1867  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1868
1869  // Optional. A filter for [CloudChannelService.ListCustomerRepricingConfigs]
1870  // results (customer only). You can use this filter when you support
1871  // a BatchGet-like query.
1872  // To use the filter, you must set `parent=accounts/{account_id}/customers/-`.
1873  //
1874  // Example: customer = accounts/account_id/customers/c1 OR
1875  // customer = accounts/account_id/customers/c2.
1876  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
1877}
1878
1879// Response message for
1880// [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs].
1881message ListCustomerRepricingConfigsResponse {
1882  // The repricing configs for this channel partner.
1883  repeated CustomerRepricingConfig customer_repricing_configs = 1;
1884
1885  // A token to retrieve the next page of results.
1886  // Pass to
1887  // [ListCustomerRepricingConfigsRequest.page_token][google.cloud.channel.v1.ListCustomerRepricingConfigsRequest.page_token]
1888  // to obtain that page.
1889  string next_page_token = 2;
1890}
1891
1892// Request message for
1893// [CloudChannelService.CreateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig].
1894message CreateCustomerRepricingConfigRequest {
1895  // Required. The resource name of the customer that will receive this
1896  // repricing config. Parent uses the format:
1897  // accounts/{account_id}/customers/{customer_id}
1898  string parent = 1 [
1899    (google.api.field_behavior) = REQUIRED,
1900    (google.api.resource_reference) = {
1901      type: "cloudchannel.googleapis.com/Customer"
1902    }
1903  ];
1904
1905  // Required. The CustomerRepricingConfig object to update.
1906  CustomerRepricingConfig customer_repricing_config = 2
1907      [(google.api.field_behavior) = REQUIRED];
1908}
1909
1910// Request message for
1911// [CloudChannelService.UpdateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.UpdateCustomerRepricingConfig].
1912message UpdateCustomerRepricingConfigRequest {
1913  // Required. The CustomerRepricingConfig object to update.
1914  CustomerRepricingConfig customer_repricing_config = 1
1915      [(google.api.field_behavior) = REQUIRED];
1916}
1917
1918// Request message for
1919// [CloudChannelService.DeleteCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.DeleteCustomerRepricingConfig].
1920message DeleteCustomerRepricingConfigRequest {
1921  // Required. The resource name of the customer repricing config rule to
1922  // delete. Format:
1923  // accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.
1924  string name = 1 [
1925    (google.api.field_behavior) = REQUIRED,
1926    (google.api.resource_reference) = {
1927      type: "cloudchannel.googleapis.com/CustomerRepricingConfig"
1928    }
1929  ];
1930}
1931
1932// Request message for
1933// [CloudChannelService.GetChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.GetChannelPartnerRepricingConfig]
1934message GetChannelPartnerRepricingConfigRequest {
1935  // Required. The resource name of the ChannelPartnerRepricingConfig
1936  // Format:
1937  // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}/channelPartnerRepricingConfigs/{id}.
1938  string name = 1 [
1939    (google.api.field_behavior) = REQUIRED,
1940    (google.api.resource_reference) = {
1941      type: "cloudchannel.googleapis.com/ChannelPartnerRepricingConfig"
1942    }
1943  ];
1944}
1945
1946// Request message for
1947// [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs].
1948message ListChannelPartnerRepricingConfigsRequest {
1949  // Required. The resource name of the account's
1950  // [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]. Parent
1951  // uses the format:
1952  // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}.
1953  // Supports accounts/{account_id}/channelPartnerLinks/- to retrieve configs
1954  // for all channel partners.
1955  string parent = 1 [
1956    (google.api.field_behavior) = REQUIRED,
1957    (google.api.resource_reference) = {
1958      type: "cloudchannel.googleapis.com/ChannelPartnerLink"
1959    }
1960  ];
1961
1962  // Optional. The maximum number of repricing configs to return. The service
1963  // may return fewer than this value. If unspecified, returns a maximum of 50
1964  // rules. The maximum value is 100; values above 100 will be coerced to 100.
1965  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
1966
1967  // Optional. A token identifying a page of results beyond the first page.
1968  // Obtained through
1969  // [ListChannelPartnerRepricingConfigsResponse.next_page_token][google.cloud.channel.v1.ListChannelPartnerRepricingConfigsResponse.next_page_token]
1970  // of the previous
1971  // [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs]
1972  // call.
1973  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
1974
1975  // Optional. A filter for
1976  // [CloudChannelService.ListChannelPartnerRepricingConfigs] results
1977  // (channel_partner_link only). You can use this filter when you support a
1978  // BatchGet-like query. To use the filter, you must set
1979  // `parent=accounts/{account_id}/channelPartnerLinks/-`.
1980  //
1981  // Example: `channel_partner_link =
1982  // accounts/account_id/channelPartnerLinks/c1` OR `channel_partner_link =
1983  // accounts/account_id/channelPartnerLinks/c2`.
1984  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
1985}
1986
1987// Response message for
1988// [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs].
1989message ListChannelPartnerRepricingConfigsResponse {
1990  // The repricing configs for this channel partner.
1991  repeated ChannelPartnerRepricingConfig channel_partner_repricing_configs = 1;
1992
1993  // A token to retrieve the next page of results.
1994  // Pass to
1995  // [ListChannelPartnerRepricingConfigsRequest.page_token][google.cloud.channel.v1.ListChannelPartnerRepricingConfigsRequest.page_token]
1996  // to obtain that page.
1997  string next_page_token = 2;
1998}
1999
2000// Request message for
2001// [CloudChannelService.CreateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig].
2002message CreateChannelPartnerRepricingConfigRequest {
2003  // Required. The resource name of the ChannelPartner that will receive the
2004  // repricing config. Parent uses the format:
2005  // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}
2006  string parent = 1 [
2007    (google.api.field_behavior) = REQUIRED,
2008    (google.api.resource_reference) = {
2009      type: "cloudchannel.googleapis.com/ChannelPartnerLink"
2010    }
2011  ];
2012
2013  // Required. The ChannelPartnerRepricingConfig object to update.
2014  ChannelPartnerRepricingConfig channel_partner_repricing_config = 2
2015      [(google.api.field_behavior) = REQUIRED];
2016}
2017
2018// Request message for
2019// [CloudChannelService.UpdateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerRepricingConfig].
2020message UpdateChannelPartnerRepricingConfigRequest {
2021  // Required. The ChannelPartnerRepricingConfig object to update.
2022  ChannelPartnerRepricingConfig channel_partner_repricing_config = 1
2023      [(google.api.field_behavior) = REQUIRED];
2024}
2025
2026// Request message for DeleteChannelPartnerRepricingConfig.
2027message DeleteChannelPartnerRepricingConfigRequest {
2028  // Required. The resource name of the channel partner repricing config rule to
2029  // delete.
2030  string name = 1 [
2031    (google.api.field_behavior) = REQUIRED,
2032    (google.api.resource_reference) = {
2033      type: "cloudchannel.googleapis.com/ChannelPartnerRepricingConfig"
2034    }
2035  ];
2036}
2037
2038// Request message for
2039// [CloudChannelService.CreateEntitlement][google.cloud.channel.v1.CloudChannelService.CreateEntitlement]
2040message CreateEntitlementRequest {
2041  // Required. The resource name of the reseller's customer account in which to
2042  // create the entitlement. Parent uses the format:
2043  // accounts/{account_id}/customers/{customer_id}
2044  string parent = 1 [
2045    (google.api.field_behavior) = REQUIRED,
2046    (google.api.resource_reference) = {
2047      type: "cloudchannel.googleapis.com/Customer"
2048    }
2049  ];
2050
2051  // Required. The entitlement to create.
2052  Entitlement entitlement = 2 [(google.api.field_behavior) = REQUIRED];
2053
2054  // Optional. You can specify an optional unique request ID, and if you need to
2055  // retry your request, the server will know to ignore the request if it's
2056  // complete.
2057  //
2058  // For example, you make an initial request and the request times out. If you
2059  // make the request again with the same request ID, the server can check if
2060  // it received the original operation with the same request ID. If it did, it
2061  // will ignore the second request.
2062  //
2063  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2064  // with the exception that zero UUID is not supported
2065  // (`00000000-0000-0000-0000-000000000000`).
2066  string request_id = 5 [(google.api.field_behavior) = OPTIONAL];
2067}
2068
2069// Request message for
2070// [CloudChannelService.TransferEntitlements][google.cloud.channel.v1.CloudChannelService.TransferEntitlements].
2071message TransferEntitlementsRequest {
2072  // Required. The resource name of the reseller's customer account that will
2073  // receive transferred entitlements. Parent uses the format:
2074  // accounts/{account_id}/customers/{customer_id}
2075  string parent = 1 [(google.api.field_behavior) = REQUIRED];
2076
2077  // Required. The new entitlements to create or transfer.
2078  repeated Entitlement entitlements = 2
2079      [(google.api.field_behavior) = REQUIRED];
2080
2081  // The super admin of the resold customer generates this token to
2082  // authorize a reseller to access their Cloud Identity and purchase
2083  // entitlements on their behalf. You can omit this token after authorization.
2084  // See https://support.google.com/a/answer/7643790 for more details.
2085  string auth_token = 4;
2086
2087  // Optional. You can specify an optional unique request ID, and if you need to
2088  // retry your request, the server will know to ignore the request if it's
2089  // complete.
2090  //
2091  // For example, you make an initial request and the request times out. If you
2092  // make the request again with the same request ID, the server can check if
2093  // it received the original operation with the same request ID. If it did, it
2094  // will ignore the second request.
2095  //
2096  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2097  // with the exception that zero UUID is not supported
2098  // (`00000000-0000-0000-0000-000000000000`).
2099  string request_id = 6 [(google.api.field_behavior) = OPTIONAL];
2100}
2101
2102// Response message for
2103// [CloudChannelService.TransferEntitlements][google.cloud.channel.v1.CloudChannelService.TransferEntitlements].
2104// This is put in the response field of google.longrunning.Operation.
2105message TransferEntitlementsResponse {
2106  // The transferred entitlements.
2107  repeated Entitlement entitlements = 1;
2108}
2109
2110// Request message for
2111// [CloudChannelService.TransferEntitlementsToGoogle][google.cloud.channel.v1.CloudChannelService.TransferEntitlementsToGoogle].
2112message TransferEntitlementsToGoogleRequest {
2113  // Required. The resource name of the reseller's customer account where the
2114  // entitlements transfer from. Parent uses the format:
2115  // accounts/{account_id}/customers/{customer_id}
2116  string parent = 1 [(google.api.field_behavior) = REQUIRED];
2117
2118  // Required. The entitlements to transfer to Google.
2119  repeated Entitlement entitlements = 2
2120      [(google.api.field_behavior) = REQUIRED];
2121
2122  // Optional. You can specify an optional unique request ID, and if you need to
2123  // retry your request, the server will know to ignore the request if it's
2124  // complete.
2125  //
2126  // For example, you make an initial request and the request times out. If you
2127  // make the request again with the same request ID, the server can check if
2128  // it received the original operation with the same request ID. If it did, it
2129  // will ignore the second request.
2130  //
2131  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2132  // with the exception that zero UUID is not supported
2133  // (`00000000-0000-0000-0000-000000000000`).
2134  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2135}
2136
2137// Request message for [CloudChannelService.ChangeParametersRequest][].
2138message ChangeParametersRequest {
2139  // Required. The name of the entitlement to update.
2140  // Name uses the format:
2141  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2142  string name = 1 [(google.api.field_behavior) = REQUIRED];
2143
2144  // Required. Entitlement parameters to update. You can only change editable
2145  // parameters.
2146  //
2147  // To view the available Parameters for a request, refer to the
2148  // [Offer.parameter_definitions][google.cloud.channel.v1.Offer.parameter_definitions]
2149  // from the desired offer.
2150  repeated Parameter parameters = 2 [(google.api.field_behavior) = REQUIRED];
2151
2152  // Optional. You can specify an optional unique request ID, and if you need to
2153  // retry your request, the server will know to ignore the request if it's
2154  // complete.
2155  //
2156  // For example, you make an initial request and the request times out. If you
2157  // make the request again with the same request ID, the server can check if
2158  // it received the original operation with the same request ID. If it did, it
2159  // will ignore the second request.
2160  //
2161  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2162  // with the exception that zero UUID is not supported
2163  // (`00000000-0000-0000-0000-000000000000`).
2164  string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
2165
2166  // Optional. Purchase order ID provided by the reseller.
2167  string purchase_order_id = 5 [(google.api.field_behavior) = OPTIONAL];
2168}
2169
2170// Request message for
2171// [CloudChannelService.ChangeRenewalSettings][google.cloud.channel.v1.CloudChannelService.ChangeRenewalSettings].
2172message ChangeRenewalSettingsRequest {
2173  // Required. The name of the entitlement to update.
2174  // Name uses the format:
2175  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2176  string name = 1 [(google.api.field_behavior) = REQUIRED];
2177
2178  // Required. New renewal settings.
2179  RenewalSettings renewal_settings = 4 [(google.api.field_behavior) = REQUIRED];
2180
2181  // Optional. You can specify an optional unique request ID, and if you need to
2182  // retry your request, the server will know to ignore the request if it's
2183  // complete.
2184  //
2185  // For example, you make an initial request and the request times out. If you
2186  // make the request again with the same request ID, the server can check if
2187  // it received the original operation with the same request ID. If it did, it
2188  // will ignore the second request.
2189  //
2190  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2191  // with the exception that zero UUID is not supported
2192  // (`00000000-0000-0000-0000-000000000000`).
2193  string request_id = 5 [(google.api.field_behavior) = OPTIONAL];
2194}
2195
2196// Request message for
2197// [CloudChannelService.ChangeOffer][google.cloud.channel.v1.CloudChannelService.ChangeOffer].
2198message ChangeOfferRequest {
2199  // Required. The resource name of the entitlement to update.
2200  // Name uses the format:
2201  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2202  string name = 1 [(google.api.field_behavior) = REQUIRED];
2203
2204  // Required. New Offer.
2205  // Format: accounts/{account_id}/offers/{offer_id}.
2206  string offer = 2 [
2207    (google.api.field_behavior) = REQUIRED,
2208    (google.api.resource_reference) = {
2209      type: "cloudchannel.googleapis.com/Offer"
2210    }
2211  ];
2212
2213  // Optional. Parameters needed to purchase the Offer. To view the available
2214  // Parameters refer to the
2215  // [Offer.parameter_definitions][google.cloud.channel.v1.Offer.parameter_definitions]
2216  // from the desired offer.
2217  repeated Parameter parameters = 3 [(google.api.field_behavior) = OPTIONAL];
2218
2219  // Optional. Purchase order id provided by the reseller.
2220  string purchase_order_id = 5 [(google.api.field_behavior) = OPTIONAL];
2221
2222  // Optional. You can specify an optional unique request ID, and if you need to
2223  // retry your request, the server will know to ignore the request if it's
2224  // complete.
2225  //
2226  // For example, you make an initial request and the request times out. If you
2227  // make the request again with the same request ID, the server can check if
2228  // it received the original operation with the same request ID. If it did, it
2229  // will ignore the second request.
2230  //
2231  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2232  // with the exception that zero UUID is not supported
2233  // (`00000000-0000-0000-0000-000000000000`).
2234  string request_id = 6 [(google.api.field_behavior) = OPTIONAL];
2235}
2236
2237// Request message for
2238// [CloudChannelService.StartPaidService][google.cloud.channel.v1.CloudChannelService.StartPaidService].
2239message StartPaidServiceRequest {
2240  // Required. The name of the entitlement to start a paid service for.
2241  // Name uses the format:
2242  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2243  string name = 1 [(google.api.field_behavior) = REQUIRED];
2244
2245  // Optional. You can specify an optional unique request ID, and if you need to
2246  // retry your request, the server will know to ignore the request if it's
2247  // complete.
2248  //
2249  // For example, you make an initial request and the request times out. If you
2250  // make the request again with the same request ID, the server can check if
2251  // it received the original operation with the same request ID. If it did, it
2252  // will ignore the second request.
2253  //
2254  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2255  // with the exception that zero UUID is not supported
2256  // (`00000000-0000-0000-0000-000000000000`).
2257  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2258}
2259
2260// Request message for
2261// [CloudChannelService.CancelEntitlement][google.cloud.channel.v1.CloudChannelService.CancelEntitlement].
2262message CancelEntitlementRequest {
2263  // Required. The resource name of the entitlement to cancel.
2264  // Name uses the format:
2265  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2266  string name = 1 [(google.api.field_behavior) = REQUIRED];
2267
2268  // Optional. You can specify an optional unique request ID, and if you need to
2269  // retry your request, the server will know to ignore the request if it's
2270  // complete.
2271  //
2272  // For example, you make an initial request and the request times out. If you
2273  // make the request again with the same request ID, the server can check if
2274  // it received the original operation with the same request ID. If it did, it
2275  // will ignore the second request.
2276  //
2277  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2278  // with the exception that zero UUID is not supported
2279  // (`00000000-0000-0000-0000-000000000000`).
2280  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2281}
2282
2283// Request message for
2284// [CloudChannelService.SuspendEntitlement][google.cloud.channel.v1.CloudChannelService.SuspendEntitlement].
2285message SuspendEntitlementRequest {
2286  // Required. The resource name of the entitlement to suspend.
2287  // Name uses the format:
2288  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2289  string name = 1 [(google.api.field_behavior) = REQUIRED];
2290
2291  // Optional. You can specify an optional unique request ID, and if you need to
2292  // retry your request, the server will know to ignore the request if it's
2293  // complete.
2294  //
2295  // For example, you make an initial request and the request times out. If you
2296  // make the request again with the same request ID, the server can check if
2297  // it received the original operation with the same request ID. If it did, it
2298  // will ignore the second request.
2299  //
2300  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2301  // with the exception that zero UUID is not supported
2302  // (`00000000-0000-0000-0000-000000000000`).
2303  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2304}
2305
2306// Request message for
2307// [CloudChannelService.ActivateEntitlement][google.cloud.channel.v1.CloudChannelService.ActivateEntitlement].
2308message ActivateEntitlementRequest {
2309  // Required. The resource name of the entitlement to activate.
2310  // Name uses the format:
2311  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2312  string name = 1 [(google.api.field_behavior) = REQUIRED];
2313
2314  // Optional. You can specify an optional unique request ID, and if you need to
2315  // retry your request, the server will know to ignore the request if it's
2316  // complete.
2317  //
2318  // For example, you make an initial request and the request times out. If you
2319  // make the request again with the same request ID, the server can check if
2320  // it received the original operation with the same request ID. If it did, it
2321  // will ignore the second request.
2322  //
2323  // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
2324  // with the exception that zero UUID is not supported
2325  // (`00000000-0000-0000-0000-000000000000`).
2326  string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
2327}
2328
2329// Request message for LookupOffer.
2330message LookupOfferRequest {
2331  // Required. The resource name of the entitlement to retrieve the Offer.
2332  // Entitlement uses the format:
2333  // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2334  string entitlement = 1 [
2335    (google.api.field_behavior) = REQUIRED,
2336    (google.api.resource_reference) = {
2337      type: "cloudchannel.googleapis.com/Entitlement"
2338    }
2339  ];
2340}
2341
2342// Request message for ListProducts.
2343message ListProductsRequest {
2344  // Required. The resource name of the reseller account.
2345  // Format: accounts/{account_id}.
2346  string account = 1 [(google.api.field_behavior) = REQUIRED];
2347
2348  // Optional. Requested page size. Server might return fewer results than
2349  // requested. If unspecified, returns at most 100 Products. The maximum value
2350  // is 1000; the server will coerce values above 1000.
2351  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
2352
2353  // Optional. A token for a page of results other than the first page.
2354  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
2355
2356  // Optional. The BCP-47 language code. For example, "en-US". The
2357  // response will localize in the corresponding language code, if specified.
2358  // The default value is "en-US".
2359  string language_code = 4 [(google.api.field_behavior) = OPTIONAL];
2360}
2361
2362// Response message for ListProducts.
2363message ListProductsResponse {
2364  // List of Products requested.
2365  repeated Product products = 1;
2366
2367  // A token to retrieve the next page of results.
2368  string next_page_token = 2;
2369}
2370
2371// Request message for ListSkus.
2372message ListSkusRequest {
2373  // Required. The resource name of the Product to list SKUs for.
2374  // Parent uses the format: products/{product_id}.
2375  // Supports products/- to retrieve SKUs for all products.
2376  string parent = 1 [
2377    (google.api.field_behavior) = REQUIRED,
2378    (google.api.resource_reference) = {
2379      type: "cloudchannel.googleapis.com/Product"
2380    }
2381  ];
2382
2383  // Required. Resource name of the reseller.
2384  // Format: accounts/{account_id}.
2385  string account = 2 [(google.api.field_behavior) = REQUIRED];
2386
2387  // Optional. Requested page size. Server might return fewer results than
2388  // requested. If unspecified, returns at most 100 SKUs. The maximum value is
2389  // 1000; the server will coerce values above 1000.
2390  int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
2391
2392  // Optional. A token for a page of results other than the first page.
2393  // Optional.
2394  string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
2395
2396  // Optional. The BCP-47 language code. For example, "en-US". The
2397  // response will localize in the corresponding language code, if specified.
2398  // The default value is "en-US".
2399  string language_code = 5 [(google.api.field_behavior) = OPTIONAL];
2400}
2401
2402// Response message for ListSkus.
2403message ListSkusResponse {
2404  // The list of SKUs requested.
2405  repeated Sku skus = 1;
2406
2407  // A token to retrieve the next page of results.
2408  string next_page_token = 2;
2409}
2410
2411// Request message for ListOffers.
2412message ListOffersRequest {
2413  // Required. The resource name of the reseller account from which to list
2414  // Offers. Parent uses the format: accounts/{account_id}.
2415  string parent = 1 [(google.api.field_behavior) = REQUIRED];
2416
2417  // Optional. Requested page size. Server might return fewer results than
2418  // requested. If unspecified, returns at most 500 Offers. The maximum value is
2419  // 1000; the server will coerce values above 1000.
2420  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
2421
2422  // Optional. A token for a page of results other than the first page.
2423  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
2424
2425  // Optional. The expression to filter results by name (name of
2426  // the Offer), sku.name (name of the SKU), or sku.product.name (name of the
2427  // Product).
2428  // Example 1: sku.product.name=products/p1 AND sku.name!=products/p1/skus/s1
2429  // Example 2: name=accounts/a1/offers/o1
2430  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
2431
2432  // Optional. The BCP-47 language code. For example, "en-US". The
2433  // response will localize in the corresponding language code, if specified.
2434  // The default value is "en-US".
2435  string language_code = 5 [(google.api.field_behavior) = OPTIONAL];
2436
2437  // Optional. A boolean flag that determines if a response returns future
2438  // offers 30 days from now. If the show_future_offers is true, the response
2439  // will only contain offers that are scheduled to be available 30 days from
2440  // now.
2441  bool show_future_offers = 7 [(google.api.field_behavior) = OPTIONAL];
2442}
2443
2444// Response message for ListOffers.
2445message ListOffersResponse {
2446  // The list of Offers requested.
2447  repeated Offer offers = 1;
2448
2449  // A token to retrieve the next page of results.
2450  string next_page_token = 2;
2451}
2452
2453// Request message for ListPurchasableSkus.
2454message ListPurchasableSkusRequest {
2455  // List SKUs for a new entitlement. Make the purchase using
2456  // [CloudChannelService.CreateEntitlement][google.cloud.channel.v1.CloudChannelService.CreateEntitlement].
2457  message CreateEntitlementPurchase {
2458    // Required. List SKUs belonging to this Product.
2459    // Format: products/{product_id}.
2460    // Supports products/- to retrieve SKUs for all products.
2461    string product = 1 [(google.api.field_behavior) = REQUIRED];
2462  }
2463
2464  // List SKUs for upgrading or downgrading an entitlement. Make the purchase
2465  // using
2466  // [CloudChannelService.ChangeOffer][google.cloud.channel.v1.CloudChannelService.ChangeOffer].
2467  message ChangeOfferPurchase {
2468    // Change Type enum.
2469    enum ChangeType {
2470      // Not used.
2471      CHANGE_TYPE_UNSPECIFIED = 0;
2472
2473      // SKU is an upgrade on the current entitlement.
2474      UPGRADE = 1;
2475
2476      // SKU is a downgrade on the current entitlement.
2477      DOWNGRADE = 2;
2478    }
2479
2480    // Required. Resource name of the entitlement.
2481    // Format:
2482    // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2483    string entitlement = 1 [(google.api.field_behavior) = REQUIRED];
2484
2485    // Required. Change Type for the entitlement.
2486    ChangeType change_type = 2 [(google.api.field_behavior) = REQUIRED];
2487  }
2488
2489  // Defines the intended purchase.
2490  oneof purchase_option {
2491    // List SKUs for CreateEntitlement purchase.
2492    CreateEntitlementPurchase create_entitlement_purchase = 2;
2493
2494    // List SKUs for ChangeOffer purchase with a new SKU.
2495    ChangeOfferPurchase change_offer_purchase = 3;
2496  }
2497
2498  // Required. The resource name of the customer to list SKUs for.
2499  // Format: accounts/{account_id}/customers/{customer_id}.
2500  string customer = 1 [
2501    (google.api.field_behavior) = REQUIRED,
2502    (google.api.resource_reference) = {
2503      type: "cloudchannel.googleapis.com/Customer"
2504    }
2505  ];
2506
2507  // Optional. Requested page size. Server might return fewer results than
2508  // requested. If unspecified, returns at most 100 SKUs. The maximum value is
2509  // 1000; the server will coerce values above 1000.
2510  int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
2511
2512  // Optional. A token for a page of results other than the first page.
2513  string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
2514
2515  // Optional. The BCP-47 language code. For example, "en-US". The
2516  // response will localize in the corresponding language code, if specified.
2517  // The default value is "en-US".
2518  string language_code = 6 [(google.api.field_behavior) = OPTIONAL];
2519}
2520
2521// Response message for ListPurchasableSkus.
2522message ListPurchasableSkusResponse {
2523  // The list of SKUs requested.
2524  repeated PurchasableSku purchasable_skus = 1;
2525
2526  // A token to retrieve the next page of results.
2527  string next_page_token = 2;
2528}
2529
2530// SKU that you can purchase. This is used in ListPurchasableSku API
2531// response.
2532message PurchasableSku {
2533  // SKU
2534  Sku sku = 1;
2535}
2536
2537// Request message for ListPurchasableOffers.
2538message ListPurchasableOffersRequest {
2539  // List Offers for CreateEntitlement purchase.
2540  message CreateEntitlementPurchase {
2541    // Required. SKU that the result should be restricted to.
2542    // Format: products/{product_id}/skus/{sku_id}.
2543    string sku = 1 [(google.api.field_behavior) = REQUIRED];
2544  }
2545
2546  // List Offers for ChangeOffer purchase.
2547  message ChangeOfferPurchase {
2548    // Required. Resource name of the entitlement.
2549    // Format:
2550    // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2551    string entitlement = 1 [(google.api.field_behavior) = REQUIRED];
2552
2553    // Optional. Resource name of the new target SKU. Provide this SKU when
2554    // upgrading or downgrading an entitlement. Format:
2555    // products/{product_id}/skus/{sku_id}
2556    string new_sku = 2 [(google.api.field_behavior) = OPTIONAL];
2557  }
2558
2559  // Defines the intended purchase.
2560  oneof purchase_option {
2561    // List Offers for CreateEntitlement purchase.
2562    CreateEntitlementPurchase create_entitlement_purchase = 2;
2563
2564    // List Offers for ChangeOffer purchase.
2565    ChangeOfferPurchase change_offer_purchase = 3;
2566  }
2567
2568  // Required. The resource name of the customer to list Offers for.
2569  // Format: accounts/{account_id}/customers/{customer_id}.
2570  string customer = 1 [
2571    (google.api.field_behavior) = REQUIRED,
2572    (google.api.resource_reference) = {
2573      type: "cloudchannel.googleapis.com/Customer"
2574    }
2575  ];
2576
2577  // Optional. Requested page size. Server might return fewer results than
2578  // requested. If unspecified, returns at most 100 Offers. The maximum value is
2579  // 1000; the server will coerce values above 1000.
2580  int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
2581
2582  // Optional. A token for a page of results other than the first page.
2583  string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
2584
2585  // Optional. The BCP-47 language code. For example, "en-US". The
2586  // response will localize in the corresponding language code, if specified.
2587  // The default value is "en-US".
2588  string language_code = 6 [(google.api.field_behavior) = OPTIONAL];
2589}
2590
2591// Response message for ListPurchasableOffers.
2592message ListPurchasableOffersResponse {
2593  // The list of Offers requested.
2594  repeated PurchasableOffer purchasable_offers = 1;
2595
2596  // A token to retrieve the next page of results.
2597  string next_page_token = 2;
2598}
2599
2600// Offer that you can purchase for a customer. This is used in the
2601// ListPurchasableOffer API response.
2602message PurchasableOffer {
2603  // Offer.
2604  Offer offer = 1;
2605}
2606
2607// Request Message for RegisterSubscriber.
2608message RegisterSubscriberRequest {
2609  // Required. Resource name of the account.
2610  string account = 1 [(google.api.field_behavior) = REQUIRED];
2611
2612  // Required. Service account that provides subscriber access to the registered
2613  // topic.
2614  string service_account = 2 [(google.api.field_behavior) = REQUIRED];
2615}
2616
2617// Response Message for RegisterSubscriber.
2618message RegisterSubscriberResponse {
2619  // Name of the topic the subscriber will listen to.
2620  string topic = 1;
2621}
2622
2623// Request Message for UnregisterSubscriber.
2624message UnregisterSubscriberRequest {
2625  // Required. Resource name of the account.
2626  string account = 1 [(google.api.field_behavior) = REQUIRED];
2627
2628  // Required. Service account to unregister from subscriber access to the
2629  // topic.
2630  string service_account = 2 [(google.api.field_behavior) = REQUIRED];
2631}
2632
2633// Response Message for UnregisterSubscriber.
2634message UnregisterSubscriberResponse {
2635  // Name of the topic the service account subscriber access was removed from.
2636  string topic = 1;
2637}
2638
2639// Request Message for ListSubscribers.
2640message ListSubscribersRequest {
2641  // Required. Resource name of the account.
2642  string account = 1 [(google.api.field_behavior) = REQUIRED];
2643
2644  // Optional. The maximum number of service accounts to return. The service may
2645  // return fewer than this value. If unspecified, returns at most 100 service
2646  // accounts. The maximum value is 1000; the server will coerce values above
2647  // 1000.
2648  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
2649
2650  // Optional. A page token, received from a previous `ListSubscribers` call.
2651  // Provide this to retrieve the subsequent page.
2652  //
2653  // When paginating, all other parameters provided to `ListSubscribers` must
2654  // match the call that provided the page token.
2655  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
2656}
2657
2658// Response Message for ListSubscribers.
2659message ListSubscribersResponse {
2660  // Name of the topic registered with the reseller.
2661  string topic = 1;
2662
2663  // List of service accounts which have subscriber access to the topic.
2664  repeated string service_accounts = 2;
2665
2666  // A token that can be sent as `page_token` to retrieve the next page.
2667  // If this field is omitted, there are no subsequent pages.
2668  string next_page_token = 3;
2669}
2670
2671// Request message for
2672// [CloudChannelService.ListEntitlementChanges][google.cloud.channel.v1.CloudChannelService.ListEntitlementChanges]
2673message ListEntitlementChangesRequest {
2674  // Required. The resource name of the entitlement for which to list
2675  // entitlement changes. The `-` wildcard may be used to match entitlements
2676  // across a customer. Formats:
2677  //
2678  //   * accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
2679  //   * accounts/{account_id}/customers/{customer_id}/entitlements/-
2680  string parent = 1 [
2681    (google.api.field_behavior) = REQUIRED,
2682    (google.api.resource_reference) = {
2683      type: "cloudchannel.googleapis.com/Entitlement"
2684    }
2685  ];
2686
2687  // Optional. The maximum number of entitlement changes to return. The service
2688  // may return fewer than this value. If unspecified, returns at most 10
2689  // entitlement changes. The maximum value is 50; the server will coerce values
2690  // above 50.
2691  int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
2692
2693  // Optional. A page token, received from a previous
2694  // [CloudChannelService.ListEntitlementChanges][google.cloud.channel.v1.CloudChannelService.ListEntitlementChanges]
2695  // call. Provide this to retrieve the subsequent page.
2696  //
2697  // When paginating, all other parameters provided to
2698  // [CloudChannelService.ListEntitlementChanges][google.cloud.channel.v1.CloudChannelService.ListEntitlementChanges]
2699  // must match the call that provided the page token.
2700  string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
2701
2702  // Optional. Filters applied to the list results.
2703  string filter = 4 [(google.api.field_behavior) = OPTIONAL];
2704}
2705
2706// Response message for
2707// [CloudChannelService.ListEntitlementChanges][google.cloud.channel.v1.CloudChannelService.ListEntitlementChanges]
2708message ListEntitlementChangesResponse {
2709  // The list of entitlement changes.
2710  repeated EntitlementChange entitlement_changes = 1;
2711
2712  // A token to list the next page of results.
2713  string next_page_token = 2;
2714}
2715