summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/cloud/channel/v1/service.proto
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/cloud/channel/v1/service.proto')
-rw-r--r--third_party/googleapis/google/cloud/channel/v1/service.proto2451
1 files changed, 2451 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/channel/v1/service.proto b/third_party/googleapis/google/cloud/channel/v1/service.proto
new file mode 100644
index 0000000..7a6b3f0
--- /dev/null
+++ b/third_party/googleapis/google/cloud/channel/v1/service.proto
@@ -0,0 +1,2451 @@
+// Copyright 2022 Google LLC
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+syntax = "proto3";
+
+package google.cloud.channel.v1;
+
+import "google/api/annotations.proto";
+import "google/api/client.proto";
+import "google/api/field_behavior.proto";
+import "google/api/resource.proto";
+import "google/cloud/channel/v1/channel_partner_links.proto";
+import "google/cloud/channel/v1/common.proto";
+import "google/cloud/channel/v1/customers.proto";
+import "google/cloud/channel/v1/entitlements.proto";
+import "google/cloud/channel/v1/offers.proto";
+import "google/cloud/channel/v1/products.proto";
+import "google/cloud/channel/v1/repricing.proto";
+import "google/longrunning/operations.proto";
+import "google/protobuf/empty.proto";
+import "google/protobuf/field_mask.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/channel/v1;channel";
+option java_multiple_files = true;
+option java_outer_classname = "ServiceProto";
+option java_package = "com.google.cloud.channel.v1";
+
+// CloudChannelService lets Google cloud resellers and distributors manage
+// their customers, channel partners, entitlements, and reports.
+//
+// Using this service:
+// 1. Resellers and distributors can manage a customer entity.
+// 2. Distributors can register an authorized reseller in their channel and
+// provide them with delegated admin access.
+// 3. Resellers and distributors can manage customer entitlements.
+//
+// CloudChannelService exposes the following resources:
+// - [Customer][google.cloud.channel.v1.Customer]s: An entity—usually an enterprise—managed by a reseller or
+// distributor.
+//
+// - [Entitlement][google.cloud.channel.v1.Entitlement]s: An entity that provides a customer with the means to use
+// a service. Entitlements are created or updated as a result of a successful
+// fulfillment.
+//
+// - [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s: An entity that identifies links between
+// distributors and their indirect resellers in a channel.
+service CloudChannelService {
+ option (google.api.default_host) = "cloudchannel.googleapis.com";
+ option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/apps.order";
+
+ // List [Customer][google.cloud.channel.v1.Customer]s.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ //
+ // Return value:
+ // List of [Customer][google.cloud.channel.v1.Customer]s, or an empty list if there are no customers.
+ rpc ListCustomers(ListCustomersRequest) returns (ListCustomersResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=accounts/*}/customers"
+ additional_bindings {
+ get: "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers"
+ }
+ };
+ }
+
+ // Returns the requested [Customer][google.cloud.channel.v1.Customer] resource.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: The customer resource doesn't exist. Usually the result of an
+ // invalid name parameter.
+ //
+ // Return value:
+ // The [Customer][google.cloud.channel.v1.Customer] resource.
+ rpc GetCustomer(GetCustomerRequest) returns (Customer) {
+ option (google.api.http) = {
+ get: "/v1/{name=accounts/*/customers/*}"
+ additional_bindings {
+ get: "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}"
+ }
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Confirms the existence of Cloud Identity accounts based on the domain and
+ // if the Cloud Identity accounts are owned by the reseller.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * INVALID_VALUE: Invalid domain value in the request.
+ //
+ // Return value:
+ // A list of [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount] resources for the domain (may be
+ // empty)
+ //
+ // Note: in the v1alpha1 version of the API, a NOT_FOUND error returns if
+ // no [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount] resources match the domain.
+ rpc CheckCloudIdentityAccountsExist(CheckCloudIdentityAccountsExistRequest) returns (CheckCloudIdentityAccountsExistResponse) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*}:checkCloudIdentityAccountsExist"
+ body: "*"
+ };
+ }
+
+ // Creates a new [Customer][google.cloud.channel.v1.Customer] resource under the reseller or distributor
+ // account.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT:
+ // * Required request parameters are missing or invalid.
+ // * Domain field value doesn't match the primary email domain.
+ //
+ // Return value:
+ // The newly created [Customer][google.cloud.channel.v1.Customer] resource.
+ rpc CreateCustomer(CreateCustomerRequest) returns (Customer) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*}/customers"
+ body: "customer"
+ additional_bindings {
+ post: "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers"
+ body: "customer"
+ }
+ };
+ }
+
+ // Updates an existing [Customer][google.cloud.channel.v1.Customer] resource for the reseller or
+ // distributor.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found for the name in the request.
+ //
+ // Return value:
+ // The updated [Customer][google.cloud.channel.v1.Customer] resource.
+ rpc UpdateCustomer(UpdateCustomerRequest) returns (Customer) {
+ option (google.api.http) = {
+ patch: "/v1/{customer.name=accounts/*/customers/*}"
+ body: "customer"
+ additional_bindings {
+ patch: "/v1/{customer.name=accounts/*/channelPartnerLinks/*/customers/*}"
+ body: "customer"
+ }
+ };
+ }
+
+ // Deletes the given [Customer][google.cloud.channel.v1.Customer] permanently.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The account making the request does not own
+ // this customer.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * FAILED_PRECONDITION: The customer has existing entitlements.
+ // * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found for the name in the request.
+ rpc DeleteCustomer(DeleteCustomerRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/{name=accounts/*/customers/*}"
+ additional_bindings {
+ delete: "/v1/{name=accounts/*/channelPartnerLinks/*/customers/*}"
+ }
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Imports a [Customer][google.cloud.channel.v1.Customer] from the Cloud Identity associated with the provided
+ // Cloud Identity ID or domain before a TransferEntitlements call. If a
+ // linked Customer already exists and overwrite_if_exists is true, it will
+ // update that Customer's data.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * NOT_FOUND: Cloud Identity doesn't exist or was deleted.
+ // * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is
+ // expired or invalid.
+ // * ALREADY_EXISTS: A customer already exists and has conflicting critical
+ // fields. Requires an overwrite.
+ //
+ // Return value:
+ // The [Customer][google.cloud.channel.v1.Customer].
+ rpc ImportCustomer(ImportCustomerRequest) returns (Customer) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*}/customers:import"
+ body: "*"
+ additional_bindings {
+ post: "/v1/{parent=accounts/*/channelPartnerLinks/*}/customers:import"
+ body: "*"
+ }
+ };
+ }
+
+ // Creates a Cloud Identity for the given customer using the customer's
+ // information, or the information provided here.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: The customer was not found.
+ // * ALREADY_EXISTS: The customer's primary email already exists. Retry
+ // after changing the customer's primary contact email.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata contains an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc ProvisionCloudIdentity(ProvisionCloudIdentityRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{customer=accounts/*/customers/*}:provisionCloudIdentity"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Customer"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Lists [Entitlement][google.cloud.channel.v1.Entitlement]s belonging to a customer.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ //
+ // Return value:
+ // A list of the customer's [Entitlement][google.cloud.channel.v1.Entitlement]s.
+ rpc ListEntitlements(ListEntitlementsRequest) returns (ListEntitlementsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=accounts/*/customers/*}/entitlements"
+ };
+ }
+
+ // List [TransferableSku][google.cloud.channel.v1.TransferableSku]s of a customer based on the Cloud Identity ID or
+ // Customer Name in the request.
+ //
+ // Use this method to list the entitlements information of an
+ // unowned customer. You should provide the customer's
+ // Cloud Identity ID or Customer Name.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED:
+ // * The customer doesn't belong to the reseller and has no auth token.
+ // * The supplied auth token is invalid.
+ // * The reseller account making the request is different
+ // from the reseller account in the query.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ //
+ // Return value:
+ // A list of the customer's [TransferableSku][google.cloud.channel.v1.TransferableSku].
+ rpc ListTransferableSkus(ListTransferableSkusRequest) returns (ListTransferableSkusResponse) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*}:listTransferableSkus"
+ body: "*"
+ };
+ }
+
+ // List [TransferableOffer][google.cloud.channel.v1.TransferableOffer]s of a customer based on Cloud Identity ID or
+ // Customer Name in the request.
+ //
+ // Use this method when a reseller gets the entitlement information of an
+ // unowned customer. The reseller should provide the customer's
+ // Cloud Identity ID or Customer Name.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED:
+ // * The customer doesn't belong to the reseller and has no auth token.
+ // * The supplied auth token is invalid.
+ // * The reseller account making the request is different
+ // from the reseller account in the query.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ //
+ // Return value:
+ // List of [TransferableOffer][google.cloud.channel.v1.TransferableOffer] for the given customer and SKU.
+ rpc ListTransferableOffers(ListTransferableOffersRequest) returns (ListTransferableOffersResponse) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*}:listTransferableOffers"
+ body: "*"
+ };
+ }
+
+ // Returns the requested [Entitlement][google.cloud.channel.v1.Entitlement] resource.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: The customer entitlement was not found.
+ //
+ // Return value:
+ // The requested [Entitlement][google.cloud.channel.v1.Entitlement] resource.
+ rpc GetEntitlement(GetEntitlementRequest) returns (Entitlement) {
+ option (google.api.http) = {
+ get: "/v1/{name=accounts/*/customers/*/entitlements/*}"
+ };
+ }
+
+ // Creates an entitlement for a customer.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT:
+ // * Required request parameters are missing or invalid.
+ // * There is already a customer entitlement for a SKU from the same
+ // product family.
+ // * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact
+ // Google Channel support for further troubleshooting.
+ // * NOT_FOUND: The customer or offer resource was not found.
+ // * ALREADY_EXISTS:
+ // * The SKU was already purchased for the customer.
+ // * The customer's primary email already exists. Retry
+ // after changing the customer's primary contact email.
+ // * CONDITION_NOT_MET or FAILED_PRECONDITION:
+ // * The domain required for purchasing a SKU has not been verified.
+ // * A pre-requisite SKU required to purchase an Add-On SKU is missing.
+ // For example, Google Workspace Business Starter is required to purchase
+ // Vault or Drive.
+ // * (Developer accounts only) Reseller and resold domain must meet the
+ // following naming requirements:
+ // * Domain names must start with goog-test.
+ // * Domain names must include the reseller domain.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc CreateEntitlement(CreateEntitlementRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*/customers/*}/entitlements"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Entitlement"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Change parameters of the entitlement.
+ //
+ // An entitlement update is a long-running operation and it updates the
+ // entitlement as a result of fulfillment.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // For example, the number of seats being changed is greater than the allowed
+ // number of max seats, or decreasing seats for a commitment based plan.
+ // * NOT_FOUND: Entitlement resource not found.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc ChangeParameters(ChangeParametersRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=accounts/*/customers/*/entitlements/*}:changeParameters"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Entitlement"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates the renewal settings for an existing customer entitlement.
+ //
+ // An entitlement update is a long-running operation and it updates the
+ // entitlement as a result of fulfillment.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: Entitlement resource not found.
+ // * NOT_COMMITMENT_PLAN: Renewal Settings are only applicable for a
+ // commitment plan. Can't enable or disable renewals for non-commitment plans.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc ChangeRenewalSettings(ChangeRenewalSettingsRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=accounts/*/customers/*/entitlements/*}:changeRenewalSettings"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Entitlement"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Updates the Offer for an existing customer entitlement.
+ //
+ // An entitlement update is a long-running operation and it updates the
+ // entitlement as a result of fulfillment.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: Offer or Entitlement resource not found.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc ChangeOffer(ChangeOfferRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=accounts/*/customers/*/entitlements/*}:changeOffer"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Entitlement"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Starts paid service for a trial entitlement.
+ //
+ // Starts paid service for a trial entitlement immediately. This method is
+ // only applicable if a plan is set up for a trial entitlement but has some
+ // trial days remaining.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: Entitlement resource not found.
+ // * FAILED_PRECONDITION/NOT_IN_TRIAL: This method only works for
+ // entitlement on trial plans.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc StartPaidService(StartPaidServiceRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=accounts/*/customers/*/entitlements/*}:startPaidService"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Entitlement"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Suspends a previously fulfilled entitlement.
+ //
+ // An entitlement suspension is a long-running operation.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: Entitlement resource not found.
+ // * NOT_ACTIVE: Entitlement is not active.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc SuspendEntitlement(SuspendEntitlementRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=accounts/*/customers/*/entitlements/*}:suspend"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Entitlement"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Cancels a previously fulfilled entitlement.
+ //
+ // An entitlement cancellation is a long-running operation.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * FAILED_PRECONDITION: There are Google Cloud projects linked to the
+ // Google Cloud entitlement's Cloud Billing subaccount.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: Entitlement resource not found.
+ // * DELETION_TYPE_NOT_ALLOWED: Cancel is only allowed for Google Workspace
+ // add-ons, or entitlements for Google Cloud's development platform.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The response will contain
+ // google.protobuf.Empty on success. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc CancelEntitlement(CancelEntitlementRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=accounts/*/customers/*/entitlements/*}:cancel"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Activates a previously suspended entitlement. Entitlements suspended for
+ // pending ToS acceptance can't be activated using this method.
+ //
+ // An entitlement activation is a long-running operation and it updates
+ // the state of the customer entitlement.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: Entitlement resource not found.
+ // * SUSPENSION_NOT_RESELLER_INITIATED: Can only activate reseller-initiated
+ // suspensions and entitlements that have accepted the TOS.
+ // * NOT_SUSPENDED: Can only activate suspended entitlements not in an ACTIVE
+ // state.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc ActivateEntitlement(ActivateEntitlementRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{name=accounts/*/customers/*/entitlements/*}:activate"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "Entitlement"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Transfers customer entitlements to new reseller.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: The customer or offer resource was not found.
+ // * ALREADY_EXISTS: The SKU was already transferred for the customer.
+ // * CONDITION_NOT_MET or FAILED_PRECONDITION:
+ // * The SKU requires domain verification to transfer, but the domain is
+ // not verified.
+ // * An Add-On SKU (example, Vault or Drive) is missing the
+ // pre-requisite SKU (example, G Suite Basic).
+ // * (Developer accounts only) Reseller and resold domain must meet the
+ // following naming requirements:
+ // * Domain names must start with goog-test.
+ // * Domain names must include the reseller domain.
+ // * Specify all transferring entitlements.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc TransferEntitlements(TransferEntitlementsRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*/customers/*}:transferEntitlements"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "TransferEntitlementsResponse"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // Transfers customer entitlements from their current reseller to Google.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: The customer or offer resource was not found.
+ // * ALREADY_EXISTS: The SKU was already transferred for the customer.
+ // * CONDITION_NOT_MET or FAILED_PRECONDITION:
+ // * The SKU requires domain verification to transfer, but the domain is
+ // not verified.
+ // * An Add-On SKU (example, Vault or Drive) is missing the
+ // pre-requisite SKU (example, G Suite Basic).
+ // * (Developer accounts only) Reseller and resold domain must meet the
+ // following naming requirements:
+ // * Domain names must start with goog-test.
+ // * Domain names must include the reseller domain.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The ID of a long-running operation.
+ //
+ // To get the results of the operation, call the GetOperation method of
+ // CloudChannelOperationsService. The response will contain
+ // google.protobuf.Empty on success. The Operation metadata will contain an
+ // instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata].
+ rpc TransferEntitlementsToGoogle(TransferEntitlementsToGoogleRequest) returns (google.longrunning.Operation) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*/customers/*}:transferEntitlementsToGoogle"
+ body: "*"
+ };
+ option (google.longrunning.operation_info) = {
+ response_type: "google.protobuf.Empty"
+ metadata_type: "OperationMetadata"
+ };
+ }
+
+ // List [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s belonging to a distributor.
+ // You must be a distributor to call this method.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ //
+ // Return value:
+ // The list of the distributor account's [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resources.
+ rpc ListChannelPartnerLinks(ListChannelPartnerLinksRequest) returns (ListChannelPartnerLinksResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=accounts/*}/channelPartnerLinks"
+ };
+ }
+
+ // Returns the requested [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
+ // You must be a distributor to call this method.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: ChannelPartnerLink resource not found because of an
+ // invalid channel partner link name.
+ //
+ // Return value:
+ // The [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
+ rpc GetChannelPartnerLink(GetChannelPartnerLinkRequest) returns (ChannelPartnerLink) {
+ option (google.api.http) = {
+ get: "/v1/{name=accounts/*/channelPartnerLinks/*}"
+ };
+ }
+
+ // Initiates a channel partner link between a distributor and a reseller, or
+ // between resellers in an n-tier reseller channel.
+ // Invited partners need to follow the invite_link_uri provided in the
+ // response to accept. After accepting the invitation, a link is set up
+ // between the two parties.
+ // You must be a distributor to call this method.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * ALREADY_EXISTS: The ChannelPartnerLink sent in the request already
+ // exists.
+ // * NOT_FOUND: No Cloud Identity customer exists for provided domain.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The new [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
+ rpc CreateChannelPartnerLink(CreateChannelPartnerLinkRequest) returns (ChannelPartnerLink) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*}/channelPartnerLinks"
+ body: "channel_partner_link"
+ };
+ }
+
+ // Updates a channel partner link. Distributors call this method to change a
+ // link's status. For example, to suspend a partner link.
+ // You must be a distributor to call this method.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request is different
+ // from the reseller account in the API request.
+ // * INVALID_ARGUMENT:
+ // * Required request parameters are missing or invalid.
+ // * Link state cannot change from invited to active or suspended.
+ // * Cannot send reseller_cloud_identity_id, invite_url, or name in update
+ // mask.
+ // * NOT_FOUND: ChannelPartnerLink resource not found.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The updated [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource.
+ rpc UpdateChannelPartnerLink(UpdateChannelPartnerLinkRequest) returns (ChannelPartnerLink) {
+ option (google.api.http) = {
+ patch: "/v1/{name=accounts/*/channelPartnerLinks/*}"
+ body: "*"
+ };
+ }
+
+ // Gets information about how a Reseller modifies their bill before sending
+ // it to a Customer.
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] was not found.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resource, otherwise returns
+ // an error.
+ rpc GetCustomerRepricingConfig(GetCustomerRepricingConfigRequest) returns (CustomerRepricingConfig) {
+ option (google.api.http) = {
+ get: "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Lists information about how a Reseller modifies their bill before sending
+ // it to a Customer.
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] specified does not exist or is
+ // not associated with the given account.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resources. The
+ // data for each resource is displayed in the ascending order of:
+ // * customer ID
+ // * [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement]
+ // * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
+ // * [CustomerRepricingConfig.update_time][google.cloud.channel.v1.CustomerRepricingConfig.update_time]
+ //
+ // If unsuccessful, returns an error.
+ rpc ListCustomerRepricingConfigs(ListCustomerRepricingConfigsRequest) returns (ListCustomerRepricingConfigsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Creates a CustomerRepricingConfig. Call this method to set modifications
+ // for a specific customer's bill. You can only create configs if the
+ // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a
+ // future month. If needed, you can create a config for the current month,
+ // with some restrictions.
+ //
+ // When creating a config for a future month, make sure there are no existing
+ // configs for that
+ // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
+ //
+ // The following restrictions are for creating configs in the current month.
+ //
+ // * This functionality is reserved for recovering from an erroneous config,
+ // and should not be used for regular business cases.
+ // * The new config will not modify exports used with other configs.
+ // Changes to the config may be immediate, but may take up to 24 hours.
+ // * There is a limit of ten configs for any
+ // [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement]
+ // or [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
+ // * The contained [CustomerRepricingConfig.repricing_config][google.cloud.channel.v1.CustomerRepricingConfig.repricing_config] vaule must be
+ // different from the value used in the current config for a
+ // [RepricingConfig.EntitlementGranularity.entitlement][google.cloud.channel.v1.RepricingConfig.EntitlementGranularity.entitlement].
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * INVALID_ARGUMENT: Missing or invalid required parameters in the
+ // request. Also displays if the updated config is for the current month or
+ // past months.
+ // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] specified does not exist or is
+ // not associated with the given account.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the updated [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resource, otherwise
+ // returns an error.
+ rpc CreateCustomerRepricingConfig(CreateCustomerRepricingConfigRequest) returns (CustomerRepricingConfig) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*/customers/*}/customerRepricingConfigs"
+ body: "customer_repricing_config"
+ };
+ option (google.api.method_signature) = "parent,customer_repricing_config";
+ }
+
+ // Updates a CustomerRepricingConfig. Call this method to set modifications
+ // for a specific customer's bill. This method overwrites the existing
+ // CustomerRepricingConfig.
+ //
+ // You can only update configs if the
+ // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a
+ // future month. To make changes to configs for the current month, use
+ // [CreateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig], taking note of its restrictions. You
+ // cannot update the [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
+ //
+ // When updating a config in the future:
+ //
+ // * This config must already exist.
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * INVALID_ARGUMENT: Missing or invalid required parameters in the
+ // request. Also displays if the updated config is for the current month or
+ // past months.
+ // * NOT_FOUND: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] specified does not exist or is
+ // not associated with the given account.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the updated [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] resource, otherwise
+ // returns an error.
+ rpc UpdateCustomerRepricingConfig(UpdateCustomerRepricingConfigRequest) returns (CustomerRepricingConfig) {
+ option (google.api.http) = {
+ patch: "/v1/{customer_repricing_config.name=accounts/*/customers/*/customerRepricingConfigs/*}"
+ body: "customer_repricing_config"
+ };
+ option (google.api.method_signature) = "customer_repricing_config";
+ }
+
+ // Deletes the given [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] permanently. You can only
+ // delete configs if their [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is set
+ // to a date after the current month.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The account making the request does not own
+ // this customer.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * FAILED_PRECONDITION: The [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] is active or in the
+ // past.
+ // * NOT_FOUND: No [CustomerRepricingConfig][google.cloud.channel.v1.CustomerRepricingConfig] found for the name in the
+ // request.
+ rpc DeleteCustomerRepricingConfig(DeleteCustomerRepricingConfigRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/{name=accounts/*/customers/*/customerRepricingConfigs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Gets information about how a Distributor modifies their bill before sending
+ // it to a ChannelPartner.
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] was not found.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resource, otherwise
+ // returns an error.
+ rpc GetChannelPartnerRepricingConfig(GetChannelPartnerRepricingConfigRequest) returns (ChannelPartnerRepricingConfig) {
+ option (google.api.http) = {
+ get: "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Lists information about how a Reseller modifies their bill before sending
+ // it to a ChannelPartner.
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] specified does not exist
+ // or is not associated with the given account.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resources.
+ // The data for each resource is displayed in the ascending order of:
+ // * channel partner ID
+ // * [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month]
+ // * [ChannelPartnerRepricingConfig.update_time][google.cloud.channel.v1.ChannelPartnerRepricingConfig.update_time]
+ //
+ // If unsuccessful, returns an error.
+ rpc ListChannelPartnerRepricingConfigs(ListChannelPartnerRepricingConfigsRequest) returns (ListChannelPartnerRepricingConfigsResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs"
+ };
+ option (google.api.method_signature) = "parent";
+ }
+
+ // Creates a ChannelPartnerRepricingConfig. Call this method to set
+ // modifications for a specific ChannelPartner's bill. You can only create
+ // configs if the [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a future
+ // month. If needed, you can create a config for the current month, with some
+ // restrictions.
+ //
+ // When creating a config for a future month, make sure there are no existing
+ // configs for that
+ // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
+ //
+ // The following restrictions are for creating configs in the current month.
+ //
+ // * This functionality is reserved for recovering from an erroneous config,
+ // and should not be used for regular business cases.
+ // * The new config will not modify exports used with other configs.
+ // Changes to the config may be immediate, but may take up to 24 hours.
+ // * There is a limit of ten configs for any ChannelPartner or
+ // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
+ // * The contained [ChannelPartnerRepricingConfig.repricing_config][google.cloud.channel.v1.ChannelPartnerRepricingConfig.repricing_config] vaule
+ // must be different from the value used in the current config for a
+ // ChannelPartner.
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * INVALID_ARGUMENT: Missing or invalid required parameters in the
+ // request. Also displays if the updated config is for the current month or
+ // past months.
+ // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] specified does not exist
+ // or is not associated with the given account.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the updated [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resource,
+ // otherwise returns an error.
+ rpc CreateChannelPartnerRepricingConfig(CreateChannelPartnerRepricingConfigRequest) returns (ChannelPartnerRepricingConfig) {
+ option (google.api.http) = {
+ post: "/v1/{parent=accounts/*/channelPartnerLinks/*}/channelPartnerRepricingConfigs"
+ body: "channel_partner_repricing_config"
+ };
+ option (google.api.method_signature) = "parent,channel_partner_repricing_config";
+ }
+
+ // Updates a ChannelPartnerRepricingConfig. Call this method to set
+ // modifications for a specific ChannelPartner's bill. This method overwrites
+ // the existing CustomerRepricingConfig.
+ //
+ // You can only update configs if the
+ // [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is a
+ // future month. To make changes to configs for the current month, use
+ // [CreateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig], taking note of its restrictions.
+ // You cannot update the [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month].
+ //
+ // When updating a config in the future:
+ //
+ // * This config must already exist.
+ //
+ // Possible Error Codes:
+ //
+ // * PERMISSION_DENIED: If the account making the request and the account
+ // being queried are different.
+ // * INVALID_ARGUMENT: Missing or invalid required parameters in the
+ // request. Also displays if the updated config is for the current month or
+ // past months.
+ // * NOT_FOUND: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] specified does not exist
+ // or is not associated with the given account.
+ // * INTERNAL: Any non-user error related to technical issues in the
+ // backend. In this case, contact Cloud Channel support.
+ //
+ // Return Value:
+ // If successful, the updated [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] resource,
+ // otherwise returns an error.
+ rpc UpdateChannelPartnerRepricingConfig(UpdateChannelPartnerRepricingConfigRequest) returns (ChannelPartnerRepricingConfig) {
+ option (google.api.http) = {
+ patch: "/v1/{channel_partner_repricing_config.name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}"
+ body: "channel_partner_repricing_config"
+ };
+ option (google.api.method_signature) = "channel_partner_repricing_config";
+ }
+
+ // Deletes the given [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] permanently. You can
+ // only delete configs if their [RepricingConfig.effective_invoice_month][google.cloud.channel.v1.RepricingConfig.effective_invoice_month] is
+ // set to a date after the current month.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The account making the request does not own
+ // this customer.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * FAILED_PRECONDITION: The [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] is active or
+ // in the past.
+ // * NOT_FOUND: No [ChannelPartnerRepricingConfig][google.cloud.channel.v1.ChannelPartnerRepricingConfig] found for the name in the
+ // request.
+ rpc DeleteChannelPartnerRepricingConfig(DeleteChannelPartnerRepricingConfigRequest) returns (google.protobuf.Empty) {
+ option (google.api.http) = {
+ delete: "/v1/{name=accounts/*/channelPartnerLinks/*/channelPartnerRepricingConfigs/*}"
+ };
+ option (google.api.method_signature) = "name";
+ }
+
+ // Returns the requested [Offer][google.cloud.channel.v1.Offer] resource.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The entitlement doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: Entitlement or offer was not found.
+ //
+ // Return value:
+ // The [Offer][google.cloud.channel.v1.Offer] resource.
+ rpc LookupOffer(LookupOfferRequest) returns (Offer) {
+ option (google.api.http) = {
+ get: "/v1/{entitlement=accounts/*/customers/*/entitlements/*}:lookupOffer"
+ };
+ }
+
+ // Lists the Products the reseller is authorized to sell.
+ //
+ // Possible error codes:
+ //
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ rpc ListProducts(ListProductsRequest) returns (ListProductsResponse) {
+ option (google.api.http) = {
+ get: "/v1/products"
+ };
+ }
+
+ // Lists the SKUs for a product the reseller is authorized to sell.
+ //
+ // Possible error codes:
+ //
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ rpc ListSkus(ListSkusRequest) returns (ListSkusResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=products/*}/skus"
+ };
+ }
+
+ // Lists the Offers the reseller can sell.
+ //
+ // Possible error codes:
+ //
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ rpc ListOffers(ListOffersRequest) returns (ListOffersResponse) {
+ option (google.api.http) = {
+ get: "/v1/{parent=accounts/*}/offers"
+ };
+ }
+
+ // Lists the following:
+ //
+ // * SKUs that you can purchase for a customer
+ // * SKUs that you can upgrade or downgrade for an entitlement.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ rpc ListPurchasableSkus(ListPurchasableSkusRequest) returns (ListPurchasableSkusResponse) {
+ option (google.api.http) = {
+ get: "/v1/{customer=accounts/*/customers/*}:listPurchasableSkus"
+ };
+ }
+
+ // Lists the following:
+ //
+ // * Offers that you can purchase for a customer.
+ // * Offers that you can change for an entitlement.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The customer doesn't belong to the reseller
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ rpc ListPurchasableOffers(ListPurchasableOffersRequest) returns (ListPurchasableOffersResponse) {
+ option (google.api.http) = {
+ get: "/v1/{customer=accounts/*/customers/*}:listPurchasableOffers"
+ };
+ }
+
+ // Registers a service account with subscriber privileges on the Cloud Pub/Sub
+ // topic for this Channel Services account. After you create a
+ // subscriber, you get the events through [SubscriberEvent][google.cloud.channel.v1.SubscriberEvent]
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request and the
+ // provided reseller account are different, or the impersonated user
+ // is not a super admin.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The topic name with the registered service email address.
+ rpc RegisterSubscriber(RegisterSubscriberRequest) returns (RegisterSubscriberResponse) {
+ option (google.api.http) = {
+ post: "/v1/{account=accounts/*}:register"
+ body: "*"
+ };
+ }
+
+ // Unregisters a service account with subscriber privileges on the Cloud
+ // Pub/Sub topic created for this Channel Services account. If there are no
+ // service accounts left with subscriber privileges, this deletes the topic.
+ // You can call ListSubscribers to check for these accounts.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request and the
+ // provided reseller account are different, or the impersonated user
+ // is not a super admin.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: The topic resource doesn't exist.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // The topic name that unregistered the service email address.
+ // Returns a success response if the service email address wasn't registered
+ // with the topic.
+ rpc UnregisterSubscriber(UnregisterSubscriberRequest) returns (UnregisterSubscriberResponse) {
+ option (google.api.http) = {
+ post: "/v1/{account=accounts/*}:unregister"
+ body: "*"
+ };
+ }
+
+ // Lists service accounts with subscriber privileges on the Cloud Pub/Sub
+ // topic created for this Channel Services account.
+ //
+ // Possible error codes:
+ //
+ // * PERMISSION_DENIED: The reseller account making the request and the
+ // provided reseller account are different, or the impersonated user
+ // is not a super admin.
+ // * INVALID_ARGUMENT: Required request parameters are missing or invalid.
+ // * NOT_FOUND: The topic resource doesn't exist.
+ // * INTERNAL: Any non-user error related to a technical issue in the
+ // backend. Contact Cloud Channel support.
+ // * UNKNOWN: Any non-user error related to a technical issue in the backend.
+ // Contact Cloud Channel support.
+ //
+ // Return value:
+ // A list of service email addresses.
+ rpc ListSubscribers(ListSubscribersRequest) returns (ListSubscribersResponse) {
+ option (google.api.http) = {
+ get: "/v1/{account=accounts/*}:listSubscribers"
+ };
+ }
+}
+
+// Request message for [CloudChannelService.CheckCloudIdentityAccountsExist][google.cloud.channel.v1.CloudChannelService.CheckCloudIdentityAccountsExist].
+message CheckCloudIdentityAccountsExistRequest {
+ // Required. The reseller account's resource name.
+ // Parent uses the format: accounts/{account_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Domain to fetch for Cloud Identity account customer.
+ string domain = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Entity representing a Cloud Identity account that may be
+// associated with a Channel Services API partner.
+message CloudIdentityCustomerAccount {
+ // Returns true if a Cloud Identity account exists for a specific domain.
+ bool existing = 1;
+
+ // Returns true if the Cloud Identity account is associated with a customer
+ // of the Channel Services partner.
+ bool owned = 2;
+
+ // If owned = true, the name of the customer that owns the Cloud Identity
+ // account.
+ // Customer_name uses the format:
+ // accounts/{account_id}/customers/{customer_id}
+ string customer_name = 3;
+
+ // If existing = true, the Cloud Identity ID of the customer.
+ string customer_cloud_identity_id = 4;
+}
+
+// Response message for
+// [CloudChannelService.CheckCloudIdentityAccountsExist][google.cloud.channel.v1.CloudChannelService.CheckCloudIdentityAccountsExist].
+message CheckCloudIdentityAccountsExistResponse {
+ // The Cloud Identity accounts associated with the domain.
+ repeated CloudIdentityCustomerAccount cloud_identity_accounts = 1;
+}
+
+// Request message for [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers]
+message ListCustomersRequest {
+ // Required. The resource name of the reseller account to list customers from.
+ // Parent uses the format: accounts/{account_id}.
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The maximum number of customers to return. The service may return fewer
+ // than this value. If unspecified, returns at most 10 customers. The
+ // maximum value is 50.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token identifying a page of results other than the first page.
+ // Obtained through
+ // [ListCustomersResponse.next_page_token][google.cloud.channel.v1.ListCustomersResponse.next_page_token] of the previous
+ // [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers] call.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Filters applied to the [CloudChannelService.ListCustomers] results. See
+ // https://cloud.google.com/channel/docs/concepts/google-cloud/filter-customers
+ // for more information.
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for [CloudChannelService.ListCustomers][google.cloud.channel.v1.CloudChannelService.ListCustomers].
+message ListCustomersResponse {
+ // The customers belonging to a reseller or distributor.
+ repeated Customer customers = 1;
+
+ // A token to retrieve the next page of results.
+ // Pass to [ListCustomersRequest.page_token][google.cloud.channel.v1.ListCustomersRequest.page_token] to obtain that page.
+ string next_page_token = 2;
+}
+
+// Request message for [CloudChannelService.GetCustomer][google.cloud.channel.v1.CloudChannelService.GetCustomer].
+message GetCustomerRequest {
+ // Required. The resource name of the customer to retrieve.
+ // Name uses the format: accounts/{account_id}/customers/{customer_id}
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+}
+
+// Request message for [CloudChannelService.CreateCustomer][google.cloud.channel.v1.CloudChannelService.CreateCustomer]
+message CreateCustomerRequest {
+ // Required. The resource name of reseller account in which to create the customer.
+ // Parent uses the format: accounts/{account_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The customer to create.
+ Customer customer = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request message for [CloudChannelService.UpdateCustomer][google.cloud.channel.v1.CloudChannelService.UpdateCustomer].
+message UpdateCustomerRequest {
+ // Required. New contents of the customer.
+ Customer customer = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The update mask that applies to the resource.
+ // Optional.
+ google.protobuf.FieldMask update_mask = 3;
+}
+
+// Request message for [CloudChannelService.DeleteCustomer][google.cloud.channel.v1.CloudChannelService.DeleteCustomer].
+message DeleteCustomerRequest {
+ // Required. The resource name of the customer to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+}
+
+// Request message for [CloudChannelService.ImportCustomer][google.cloud.channel.v1.CloudChannelService.ImportCustomer]
+message ImportCustomerRequest {
+ // Specifies the identity of the transfer customer.
+ // A customer's cloud_identity_id or domain is required to look up the
+ // customer's Cloud Identity. For Team customers, only the cloud_identity_id
+ // option is valid.
+ oneof customer_identity {
+ // Required. Customer domain.
+ string domain = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Customer's Cloud Identity ID
+ string cloud_identity_id = 3 [(google.api.field_behavior) = REQUIRED];
+ }
+
+ // Required. The resource name of the reseller's account.
+ // Parent takes the format: accounts/{account_id} or
+ // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The super admin of the resold customer generates this token to
+ // authorize a reseller to access their Cloud Identity and purchase
+ // entitlements on their behalf. You can omit this token after authorization.
+ // See https://support.google.com/a/answer/7643790 for more details.
+ string auth_token = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Required. Choose to overwrite an existing customer if found.
+ // This must be set to true if there is an existing customer with a
+ // conflicting region code or domain.
+ bool overwrite_if_exists = 5 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. Cloud Identity ID of a channel partner who will be the direct reseller for
+ // the customer's order. This field is required for 2-tier transfer scenarios
+ // and can be provided via the request Parent binding as well.
+ string channel_partner_id = 6 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Specifies the customer that will receive imported Cloud Identity
+ // information.
+ // Format: accounts/{account_id}/customers/{customer_id}
+ string customer = 7 [
+ (google.api.field_behavior) = OPTIONAL,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+}
+
+// Request message for [CloudChannelService.ProvisionCloudIdentity][google.cloud.channel.v1.CloudChannelService.ProvisionCloudIdentity]
+message ProvisionCloudIdentityRequest {
+ // Required. Resource name of the customer.
+ // Format: accounts/{account_id}/customers/{customer_id}
+ string customer = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+
+ // CloudIdentity-specific customer information.
+ CloudIdentityInfo cloud_identity_info = 2;
+
+ // Admin user information.
+ AdminUser user = 3;
+
+ // Validate the request and preview the review, but do not post it.
+ bool validate_only = 4;
+}
+
+// Request message for [CloudChannelService.ListEntitlements][google.cloud.channel.v1.CloudChannelService.ListEntitlements]
+message ListEntitlementsRequest {
+ // Required. The resource name of the reseller's customer account to list
+ // entitlements for.
+ // Parent uses the format: accounts/{account_id}/customers/{customer_id}
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+
+ // Optional. Requested page size. Server might return fewer results than requested.
+ // If unspecified, return at most 50 entitlements.
+ // The maximum value is 100; the server will coerce values above 100.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token for a page of results other than the first page.
+ // Obtained using
+ // [ListEntitlementsResponse.next_page_token][google.cloud.channel.v1.ListEntitlementsResponse.next_page_token] of the previous
+ // [CloudChannelService.ListEntitlements][google.cloud.channel.v1.CloudChannelService.ListEntitlements] call.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for [CloudChannelService.ListEntitlements][google.cloud.channel.v1.CloudChannelService.ListEntitlements].
+message ListEntitlementsResponse {
+ // The reseller customer's entitlements.
+ repeated Entitlement entitlements = 1;
+
+ // A token to list the next page of results.
+ // Pass to [ListEntitlementsRequest.page_token][google.cloud.channel.v1.ListEntitlementsRequest.page_token] to obtain that page.
+ string next_page_token = 2;
+}
+
+// Request message for [CloudChannelService.ListTransferableSkus][google.cloud.channel.v1.CloudChannelService.ListTransferableSkus]
+message ListTransferableSkusRequest {
+ // Specifies the identity of transferred customer.
+ // Either a cloud_identity_id of the customer or the customer name is
+ // required to look up transferable SKUs.
+ oneof transferred_customer_identity {
+ // Customer's Cloud Identity ID
+ string cloud_identity_id = 4;
+
+ // A reseller is required to create a customer and use the resource name of
+ // the created customer here.
+ // Customer_name uses the format:
+ // accounts/{account_id}/customers/{customer_id}
+ string customer_name = 7;
+ }
+
+ // Required. The reseller account's resource name.
+ // Parent uses the format: accounts/{account_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // The requested page size. Server might return fewer results than requested.
+ // If unspecified, returns at most 100 SKUs.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ // Optional.
+ int32 page_size = 2;
+
+ // A token for a page of results other than the first page.
+ // Obtained using
+ // [ListTransferableSkusResponse.next_page_token][google.cloud.channel.v1.ListTransferableSkusResponse.next_page_token] of the previous
+ // [CloudChannelService.ListTransferableSkus][google.cloud.channel.v1.CloudChannelService.ListTransferableSkus] call.
+ // Optional.
+ string page_token = 3;
+
+ // The super admin of the resold customer generates this token to
+ // authorize a reseller to access their Cloud Identity and purchase
+ // entitlements on their behalf. You can omit this token after authorization.
+ // See https://support.google.com/a/answer/7643790 for more details.
+ string auth_token = 5;
+
+ // The BCP-47 language code. For example, "en-US". The
+ // response will localize in the corresponding language code, if specified.
+ // The default value is "en-US".
+ // Optional.
+ string language_code = 6;
+}
+
+// Response message for [CloudChannelService.ListTransferableSkus][google.cloud.channel.v1.CloudChannelService.ListTransferableSkus].
+message ListTransferableSkusResponse {
+ // Information about existing SKUs for a customer that needs a transfer.
+ repeated TransferableSku transferable_skus = 1;
+
+ // A token to retrieve the next page of results.
+ // Pass to [ListTransferableSkusRequest.page_token][google.cloud.channel.v1.ListTransferableSkusRequest.page_token] to obtain
+ // that page.
+ string next_page_token = 2;
+}
+
+// Request message for [CloudChannelService.ListTransferableOffers][google.cloud.channel.v1.CloudChannelService.ListTransferableOffers]
+message ListTransferableOffersRequest {
+ // Specifies the identity of transferred customer.
+ // Either a cloud_identity_id of the customer or the customer name is
+ // required to look up transferrable Offers.
+ oneof transferred_customer_identity {
+ // Customer's Cloud Identity ID
+ string cloud_identity_id = 4;
+
+ // A reseller should create a customer and use the resource name of
+ // that customer here.
+ string customer_name = 5;
+ }
+
+ // Required. The resource name of the reseller's account.
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Requested page size. Server might return fewer results than requested.
+ // If unspecified, returns at most 100 offers.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ int32 page_size = 2;
+
+ // A token for a page of results other than the first page.
+ // Obtained using
+ // [ListTransferableOffersResponse.next_page_token][google.cloud.channel.v1.ListTransferableOffersResponse.next_page_token] of the previous
+ // [CloudChannelService.ListTransferableOffers][google.cloud.channel.v1.CloudChannelService.ListTransferableOffers] call.
+ string page_token = 3;
+
+ // Required. The SKU to look up Offers for.
+ string sku = 6 [(google.api.field_behavior) = REQUIRED];
+
+ // The BCP-47 language code. For example, "en-US". The
+ // response will localize in the corresponding language code, if specified.
+ // The default value is "en-US".
+ string language_code = 7;
+}
+
+// Response message for [CloudChannelService.ListTransferableOffers][google.cloud.channel.v1.CloudChannelService.ListTransferableOffers].
+message ListTransferableOffersResponse {
+ // Information about Offers for a customer that can be used for
+ // transfer.
+ repeated TransferableOffer transferable_offers = 1;
+
+ // A token to retrieve the next page of results.
+ // Pass to [ListTransferableOffersRequest.page_token][google.cloud.channel.v1.ListTransferableOffersRequest.page_token] to obtain
+ // that page.
+ string next_page_token = 2;
+}
+
+// TransferableOffer represents an Offer that can be used in Transfer.
+// Read-only.
+message TransferableOffer {
+ // Offer with parameter constraints updated to allow the Transfer.
+ Offer offer = 1;
+}
+
+// Request message for [CloudChannelService.GetEntitlement][google.cloud.channel.v1.CloudChannelService.GetEntitlement].
+message GetEntitlementRequest {
+ // Required. The resource name of the entitlement to retrieve.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Entitlement"
+ }
+ ];
+}
+
+// Request message for [CloudChannelService.ListChannelPartnerLinks][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks]
+message ListChannelPartnerLinksRequest {
+ // Required. The resource name of the reseller account for listing channel partner
+ // links.
+ // Parent uses the format: accounts/{account_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. Requested page size. Server might return fewer results than requested.
+ // If unspecified, server will pick a default size (25).
+ // The maximum value is 200; the server will coerce values above 200.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token for a page of results other than the first page.
+ // Obtained using
+ // [ListChannelPartnerLinksResponse.next_page_token][google.cloud.channel.v1.ListChannelPartnerLinksResponse.next_page_token] of the previous
+ // [CloudChannelService.ListChannelPartnerLinks][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks] call.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The level of granularity the ChannelPartnerLink will display.
+ ChannelPartnerLinkView view = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for [CloudChannelService.ListChannelPartnerLinks][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerLinks].
+message ListChannelPartnerLinksResponse {
+ // The Channel partner links for a reseller.
+ repeated ChannelPartnerLink channel_partner_links = 1;
+
+ // A token to retrieve the next page of results.
+ // Pass to [ListChannelPartnerLinksRequest.page_token][google.cloud.channel.v1.ListChannelPartnerLinksRequest.page_token] to obtain that page.
+ string next_page_token = 2;
+}
+
+// Request message for [CloudChannelService.GetChannelPartnerLink][google.cloud.channel.v1.CloudChannelService.GetChannelPartnerLink].
+message GetChannelPartnerLinkRequest {
+ // Required. The resource name of the channel partner link to retrieve.
+ // Name uses the format: accounts/{account_id}/channelPartnerLinks/{id}
+ // where {id} is the Cloud Identity ID of the partner.
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The level of granularity the ChannelPartnerLink will display.
+ ChannelPartnerLinkView view = 2 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.CreateChannelPartnerLink][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerLink]
+message CreateChannelPartnerLinkRequest {
+ // Required. Create a channel partner link for the provided reseller account's
+ // resource name.
+ // Parent uses the format: accounts/{account_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The channel partner link to create.
+ // Either channel_partner_link.reseller_cloud_identity_id or domain can be
+ // used to create a link.
+ ChannelPartnerLink channel_partner_link = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request message for [CloudChannelService.UpdateChannelPartnerLink][google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerLink]
+message UpdateChannelPartnerLinkRequest {
+ // Required. The resource name of the channel partner link to cancel.
+ // Name uses the format: accounts/{account_id}/channelPartnerLinks/{id}
+ // where {id} is the Cloud Identity ID of the partner.
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The channel partner link to update. Only channel_partner_link.link_state
+ // is allowed for updates.
+ ChannelPartnerLink channel_partner_link = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The update mask that applies to the resource.
+ // The only allowable value for an update mask is
+ // channel_partner_link.link_state.
+ google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request message for [CloudChannelService.GetCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.GetCustomerRepricingConfig].
+message GetCustomerRepricingConfigRequest {
+ // Required. The resource name of the CustomerRepricingConfig.
+ // Format:
+ // accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/CustomerRepricingConfig"
+ }
+ ];
+}
+
+// Request message for [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs].
+message ListCustomerRepricingConfigsRequest {
+ // Required. The resource name of the customer.
+ // Parent uses the format: accounts/{account_id}/customers/{customer_id}.
+ // Supports accounts/{account_id}/customers/- to retrieve configs for all
+ // customers.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+
+ // Optional. The maximum number of repricing configs to return. The service may return
+ // fewer than this value. If unspecified, returns a maximum of 50 rules. The
+ // maximum value is 100; values above 100 will be coerced to 100.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token identifying a page of results beyond the first page.
+ // Obtained through
+ // [ListCustomerRepricingConfigsResponse.next_page_token][google.cloud.channel.v1.ListCustomerRepricingConfigsResponse.next_page_token] of the previous
+ // [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs] call.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A filter for [CloudChannelService.ListCustomerRepricingConfigs]
+ // results (customer only). You can use this filter when you support
+ // a BatchGet-like query.
+ // To use the filter, you must set `parent=accounts/{account_id}/customers/-`.
+ //
+ // Example: customer = accounts/account_id/customers/c1 OR
+ // customer = accounts/account_id/customers/c2.
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for [CloudChannelService.ListCustomerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListCustomerRepricingConfigs].
+message ListCustomerRepricingConfigsResponse {
+ // The repricing configs for this channel partner.
+ repeated CustomerRepricingConfig customer_repricing_configs = 1;
+
+ // A token to retrieve the next page of results.
+ // Pass to [ListCustomerRepricingConfigsRequest.page_token][google.cloud.channel.v1.ListCustomerRepricingConfigsRequest.page_token] to obtain that
+ // page.
+ string next_page_token = 2;
+}
+
+// Request message for [CloudChannelService.CreateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateCustomerRepricingConfig].
+message CreateCustomerRepricingConfigRequest {
+ // Required. The resource name of the customer that will receive this repricing config.
+ // Parent uses the format: accounts/{account_id}/customers/{customer_id}
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+
+ // Required. The CustomerRepricingConfig object to update.
+ CustomerRepricingConfig customer_repricing_config = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request message for [CloudChannelService.UpdateCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.UpdateCustomerRepricingConfig].
+message UpdateCustomerRepricingConfigRequest {
+ // Required. The CustomerRepricingConfig object to update.
+ CustomerRepricingConfig customer_repricing_config = 1 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request message for [CloudChannelService.DeleteCustomerRepricingConfig][google.cloud.channel.v1.CloudChannelService.DeleteCustomerRepricingConfig].
+message DeleteCustomerRepricingConfigRequest {
+ // Required. The resource name of the customer repricing config rule to delete.
+ // Format:
+ // accounts/{account_id}/customers/{customer_id}/customerRepricingConfigs/{id}.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/CustomerRepricingConfig"
+ }
+ ];
+}
+
+// Request message for [CloudChannelService.GetChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.GetChannelPartnerRepricingConfig]
+message GetChannelPartnerRepricingConfigRequest {
+ // Required. The resource name of the ChannelPartnerRepricingConfig
+ // Format:
+ // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}/channelPartnerRepricingConfigs/{id}.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/ChannelPartnerRepricingConfig"
+ }
+ ];
+}
+
+// Request message for
+// [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs].
+message ListChannelPartnerRepricingConfigsRequest {
+ // Required. The resource name of the account's [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink].
+ // Parent uses the format:
+ // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}.
+ // Supports accounts/{account_id}/channelPartnerLinks/- to retrieve configs
+ // for all channel partners.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/ChannelPartnerLink"
+ }
+ ];
+
+ // Optional. The maximum number of repricing configs to return. The service may return
+ // fewer than this value. If unspecified, returns a maximum of 50 rules. The
+ // maximum value is 100; values above 100 will be coerced to 100.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token identifying a page of results beyond the first page.
+ // Obtained through
+ // [ListChannelPartnerRepricingConfigsResponse.next_page_token][google.cloud.channel.v1.ListChannelPartnerRepricingConfigsResponse.next_page_token] of the
+ // previous [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs] call.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A filter for [CloudChannelService.ListChannelPartnerRepricingConfigs]
+ // results (channel_partner_link only). You can use this filter when you
+ // support a BatchGet-like query.
+ // To use the filter, you must set
+ // `parent=accounts/{account_id}/channelPartnerLinks/-`.
+ //
+ // Example: `channel_partner_link =
+ // accounts/account_id/channelPartnerLinks/c1` OR `channel_partner_link =
+ // accounts/account_id/channelPartnerLinks/c2`.
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for
+// [CloudChannelService.ListChannelPartnerRepricingConfigs][google.cloud.channel.v1.CloudChannelService.ListChannelPartnerRepricingConfigs].
+message ListChannelPartnerRepricingConfigsResponse {
+ // The repricing configs for this channel partner.
+ repeated ChannelPartnerRepricingConfig channel_partner_repricing_configs = 1;
+
+ // A token to retrieve the next page of results.
+ // Pass to [ListChannelPartnerRepricingConfigsRequest.page_token][google.cloud.channel.v1.ListChannelPartnerRepricingConfigsRequest.page_token] to obtain
+ // that page.
+ string next_page_token = 2;
+}
+
+// Request message for
+// [CloudChannelService.CreateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.CreateChannelPartnerRepricingConfig].
+message CreateChannelPartnerRepricingConfigRequest {
+ // Required. The resource name of the ChannelPartner that will receive the repricing
+ // config. Parent uses the format:
+ // accounts/{account_id}/channelPartnerLinks/{channel_partner_id}
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/ChannelPartnerLink"
+ }
+ ];
+
+ // Required. The ChannelPartnerRepricingConfig object to update.
+ ChannelPartnerRepricingConfig channel_partner_repricing_config = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request message for
+// [CloudChannelService.UpdateChannelPartnerRepricingConfig][google.cloud.channel.v1.CloudChannelService.UpdateChannelPartnerRepricingConfig].
+message UpdateChannelPartnerRepricingConfigRequest {
+ // Required. The ChannelPartnerRepricingConfig object to update.
+ ChannelPartnerRepricingConfig channel_partner_repricing_config = 1 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Request message for DeleteChannelPartnerRepricingConfig.
+message DeleteChannelPartnerRepricingConfigRequest {
+ // Required. The resource name of the channel partner repricing config rule to delete.
+ string name = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/ChannelPartnerRepricingConfig"
+ }
+ ];
+}
+
+// Request message for [CloudChannelService.CreateEntitlement][google.cloud.channel.v1.CloudChannelService.CreateEntitlement]
+message CreateEntitlementRequest {
+ // Required. The resource name of the reseller's customer account in which to create the
+ // entitlement.
+ // Parent uses the format: accounts/{account_id}/customers/{customer_id}
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+
+ // Required. The entitlement to create.
+ Entitlement entitlement = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 5 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.TransferEntitlements][google.cloud.channel.v1.CloudChannelService.TransferEntitlements].
+message TransferEntitlementsRequest {
+ // Required. The resource name of the reseller's customer account that will receive
+ // transferred entitlements.
+ // Parent uses the format: accounts/{account_id}/customers/{customer_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The new entitlements to create or transfer.
+ repeated Entitlement entitlements = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // The super admin of the resold customer generates this token to
+ // authorize a reseller to access their Cloud Identity and purchase
+ // entitlements on their behalf. You can omit this token after authorization.
+ // See https://support.google.com/a/answer/7643790 for more details.
+ string auth_token = 4;
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 6 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for [CloudChannelService.TransferEntitlements][google.cloud.channel.v1.CloudChannelService.TransferEntitlements].
+// This is put in the response field of google.longrunning.Operation.
+message TransferEntitlementsResponse {
+ // The transferred entitlements.
+ repeated Entitlement entitlements = 1;
+}
+
+// Request message for [CloudChannelService.TransferEntitlementsToGoogle][google.cloud.channel.v1.CloudChannelService.TransferEntitlementsToGoogle].
+message TransferEntitlementsToGoogleRequest {
+ // Required. The resource name of the reseller's customer account where the entitlements
+ // transfer from.
+ // Parent uses the format: accounts/{account_id}/customers/{customer_id}
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. The entitlements to transfer to Google.
+ repeated Entitlement entitlements = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.ChangeParametersRequest][].
+message ChangeParametersRequest {
+ // Required. The name of the entitlement to update.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Entitlement parameters to update. You can only change editable parameters.
+ //
+ // To view the available Parameters for a request, refer to the
+ // [Offer.parameter_definitions][google.cloud.channel.v1.Offer.parameter_definitions] from the desired offer.
+ repeated Parameter parameters = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Purchase order ID provided by the reseller.
+ string purchase_order_id = 5 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.ChangeRenewalSettings][google.cloud.channel.v1.CloudChannelService.ChangeRenewalSettings].
+message ChangeRenewalSettingsRequest {
+ // Required. The name of the entitlement to update.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. New renewal settings.
+ RenewalSettings renewal_settings = 4 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 5 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.ChangeOffer][google.cloud.channel.v1.CloudChannelService.ChangeOffer].
+message ChangeOfferRequest {
+ // Required. The resource name of the entitlement to update.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. New Offer.
+ // Format: accounts/{account_id}/offers/{offer_id}.
+ string offer = 2 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Offer"
+ }
+ ];
+
+ // Optional. Parameters needed to purchase the Offer. To view the available Parameters
+ // refer to the [Offer.parameter_definitions][google.cloud.channel.v1.Offer.parameter_definitions] from the desired offer.
+ repeated Parameter parameters = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. Purchase order id provided by the reseller.
+ string purchase_order_id = 5 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 6 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.StartPaidService][google.cloud.channel.v1.CloudChannelService.StartPaidService].
+message StartPaidServiceRequest {
+ // Required. The name of the entitlement to start a paid service for.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.CancelEntitlement][google.cloud.channel.v1.CloudChannelService.CancelEntitlement].
+message CancelEntitlementRequest {
+ // Required. The resource name of the entitlement to cancel.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.SuspendEntitlement][google.cloud.channel.v1.CloudChannelService.SuspendEntitlement].
+message SuspendEntitlementRequest {
+ // Required. The resource name of the entitlement to suspend.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for [CloudChannelService.ActivateEntitlement][google.cloud.channel.v1.CloudChannelService.ActivateEntitlement].
+message ActivateEntitlementRequest {
+ // Required. The resource name of the entitlement to activate.
+ // Name uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string name = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. You can specify an optional unique request ID, and if you need to retry
+ // your request, the server will know to ignore the request if it's complete.
+ //
+ // For example, you make an initial request and the request times out. If you
+ // make the request again with the same request ID, the server can check if
+ // it received the original operation with the same request ID. If it did, it
+ // will ignore the second request.
+ //
+ // The request ID must be a valid [UUID](https://tools.ietf.org/html/rfc4122)
+ // with the exception that zero UUID is not supported
+ // (`00000000-0000-0000-0000-000000000000`).
+ string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Request message for LookupOffer.
+message LookupOfferRequest {
+ // Required. The resource name of the entitlement to retrieve the Offer.
+ // Entitlement uses the format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string entitlement = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Entitlement"
+ }
+ ];
+}
+
+// Request message for ListProducts.
+message ListProductsRequest {
+ // Required. The resource name of the reseller account.
+ // Format: accounts/{account_id}.
+ string account = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. Requested page size. Server might return fewer results than requested.
+ // If unspecified, returns at most 100 Products.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token for a page of results other than the first page.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The BCP-47 language code. For example, "en-US". The
+ // response will localize in the corresponding language code, if specified.
+ // The default value is "en-US".
+ string language_code = 4 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for ListProducts.
+message ListProductsResponse {
+ // List of Products requested.
+ repeated Product products = 1;
+
+ // A token to retrieve the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for ListSkus.
+message ListSkusRequest {
+ // Required. The resource name of the Product to list SKUs for.
+ // Parent uses the format: products/{product_id}.
+ // Supports products/- to retrieve SKUs for all products.
+ string parent = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Product"
+ }
+ ];
+
+ // Required. Resource name of the reseller.
+ // Format: accounts/{account_id}.
+ string account = 2 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. Requested page size. Server might return fewer results than requested.
+ // If unspecified, returns at most 100 SKUs.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token for a page of results other than the first page.
+ // Optional.
+ string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The BCP-47 language code. For example, "en-US". The
+ // response will localize in the corresponding language code, if specified.
+ // The default value is "en-US".
+ string language_code = 5 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for ListSkus.
+message ListSkusResponse {
+ // The list of SKUs requested.
+ repeated Sku skus = 1;
+
+ // A token to retrieve the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for ListOffers.
+message ListOffersRequest {
+ // Required. The resource name of the reseller account from which to list Offers.
+ // Parent uses the format: accounts/{account_id}.
+ string parent = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. Requested page size. Server might return fewer results than requested.
+ // If unspecified, returns at most 500 Offers.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token for a page of results other than the first page.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The expression to filter results by name (name of
+ // the Offer), sku.name (name of the SKU), or sku.product.name (name of the
+ // Product).
+ // Example 1: sku.product.name=products/p1 AND sku.name!=products/p1/skus/s1
+ // Example 2: name=accounts/a1/offers/o1
+ string filter = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The BCP-47 language code. For example, "en-US". The
+ // response will localize in the corresponding language code, if specified.
+ // The default value is "en-US".
+ string language_code = 5 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for ListOffers.
+message ListOffersResponse {
+ // The list of Offers requested.
+ repeated Offer offers = 1;
+
+ // A token to retrieve the next page of results.
+ string next_page_token = 2;
+}
+
+// Request message for ListPurchasableSkus.
+message ListPurchasableSkusRequest {
+ // List SKUs for a new entitlement. Make the purchase using
+ // [CloudChannelService.CreateEntitlement][google.cloud.channel.v1.CloudChannelService.CreateEntitlement].
+ message CreateEntitlementPurchase {
+ // Required. List SKUs belonging to this Product.
+ // Format: products/{product_id}.
+ // Supports products/- to retrieve SKUs for all products.
+ string product = 1 [(google.api.field_behavior) = REQUIRED];
+ }
+
+ // List SKUs for upgrading or downgrading an entitlement. Make the purchase
+ // using [CloudChannelService.ChangeOffer][google.cloud.channel.v1.CloudChannelService.ChangeOffer].
+ message ChangeOfferPurchase {
+ // Change Type enum.
+ enum ChangeType {
+ // Not used.
+ CHANGE_TYPE_UNSPECIFIED = 0;
+
+ // SKU is an upgrade on the current entitlement.
+ UPGRADE = 1;
+
+ // SKU is a downgrade on the current entitlement.
+ DOWNGRADE = 2;
+ }
+
+ // Required. Resource name of the entitlement.
+ // Format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string entitlement = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Change Type for the entitlement.
+ ChangeType change_type = 2 [(google.api.field_behavior) = REQUIRED];
+ }
+
+ // Defines the intended purchase.
+ oneof purchase_option {
+ // List SKUs for CreateEntitlement purchase.
+ CreateEntitlementPurchase create_entitlement_purchase = 2;
+
+ // List SKUs for ChangeOffer purchase with a new SKU.
+ ChangeOfferPurchase change_offer_purchase = 3;
+ }
+
+ // Required. The resource name of the customer to list SKUs for.
+ // Format: accounts/{account_id}/customers/{customer_id}.
+ string customer = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+
+ // Optional. Requested page size. Server might return fewer results than requested.
+ // If unspecified, returns at most 100 SKUs.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token for a page of results other than the first page.
+ string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The BCP-47 language code. For example, "en-US". The
+ // response will localize in the corresponding language code, if specified.
+ // The default value is "en-US".
+ string language_code = 6 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for ListPurchasableSkus.
+message ListPurchasableSkusResponse {
+ // The list of SKUs requested.
+ repeated PurchasableSku purchasable_skus = 1;
+
+ // A token to retrieve the next page of results.
+ string next_page_token = 2;
+}
+
+// SKU that you can purchase. This is used in ListPurchasableSku API
+// response.
+message PurchasableSku {
+ // SKU
+ Sku sku = 1;
+}
+
+// Request message for ListPurchasableOffers.
+message ListPurchasableOffersRequest {
+ // List Offers for CreateEntitlement purchase.
+ message CreateEntitlementPurchase {
+ // Required. SKU that the result should be restricted to.
+ // Format: products/{product_id}/skus/{sku_id}.
+ string sku = 1 [(google.api.field_behavior) = REQUIRED];
+ }
+
+ // List Offers for ChangeOffer purchase.
+ message ChangeOfferPurchase {
+ // Required. Resource name of the entitlement.
+ // Format:
+ // accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}
+ string entitlement = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. Resource name of the new target SKU. Provide this SKU when
+ // upgrading or downgrading an entitlement. Format:
+ // products/{product_id}/skus/{sku_id}
+ string new_sku = 2 [(google.api.field_behavior) = OPTIONAL];
+ }
+
+ // Defines the intended purchase.
+ oneof purchase_option {
+ // List Offers for CreateEntitlement purchase.
+ CreateEntitlementPurchase create_entitlement_purchase = 2;
+
+ // List Offers for ChangeOffer purchase.
+ ChangeOfferPurchase change_offer_purchase = 3;
+ }
+
+ // Required. The resource name of the customer to list Offers for.
+ // Format: accounts/{account_id}/customers/{customer_id}.
+ string customer = 1 [
+ (google.api.field_behavior) = REQUIRED,
+ (google.api.resource_reference) = {
+ type: "cloudchannel.googleapis.com/Customer"
+ }
+ ];
+
+ // Optional. Requested page size. Server might return fewer results than requested.
+ // If unspecified, returns at most 100 Offers.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ int32 page_size = 4 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A token for a page of results other than the first page.
+ string page_token = 5 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. The BCP-47 language code. For example, "en-US". The
+ // response will localize in the corresponding language code, if specified.
+ // The default value is "en-US".
+ string language_code = 6 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response message for ListPurchasableOffers.
+message ListPurchasableOffersResponse {
+ // The list of Offers requested.
+ repeated PurchasableOffer purchasable_offers = 1;
+
+ // A token to retrieve the next page of results.
+ string next_page_token = 2;
+}
+
+// Offer that you can purchase for a customer. This is used in the
+// ListPurchasableOffer API response.
+message PurchasableOffer {
+ // Offer.
+ Offer offer = 1;
+}
+
+// Request Message for RegisterSubscriber.
+message RegisterSubscriberRequest {
+ // Required. Resource name of the account.
+ string account = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Service account that provides subscriber access to the registered topic.
+ string service_account = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Response Message for RegisterSubscriber.
+message RegisterSubscriberResponse {
+ // Name of the topic the subscriber will listen to.
+ string topic = 1;
+}
+
+// Request Message for UnregisterSubscriber.
+message UnregisterSubscriberRequest {
+ // Required. Resource name of the account.
+ string account = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Required. Service account to unregister from subscriber access to the topic.
+ string service_account = 2 [(google.api.field_behavior) = REQUIRED];
+}
+
+// Response Message for UnregisterSubscriber.
+message UnregisterSubscriberResponse {
+ // Name of the topic the service account subscriber access was removed from.
+ string topic = 1;
+}
+
+// Request Message for ListSubscribers.
+message ListSubscribersRequest {
+ // Required. Resource name of the account.
+ string account = 1 [(google.api.field_behavior) = REQUIRED];
+
+ // Optional. The maximum number of service accounts to return. The service may return
+ // fewer than this value.
+ // If unspecified, returns at most 100 service accounts.
+ // The maximum value is 1000; the server will coerce values above 1000.
+ int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL];
+
+ // Optional. A page token, received from a previous `ListSubscribers` call.
+ // Provide this to retrieve the subsequent page.
+ //
+ // When paginating, all other parameters provided to `ListSubscribers` must
+ // match the call that provided the page token.
+ string page_token = 3 [(google.api.field_behavior) = OPTIONAL];
+}
+
+// Response Message for ListSubscribers.
+message ListSubscribersResponse {
+ // Name of the topic registered with the reseller.
+ string topic = 1;
+
+ // List of service accounts which have subscriber access to the topic.
+ repeated string service_accounts = 2;
+
+ // A token that can be sent as `page_token` to retrieve the next page.
+ // If this field is omitted, there are no subsequent pages.
+ string next_page_token = 3;
+}