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