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