service.proto 108 KB

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