error_reason.proto 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. // Copyright 2024 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.api;
  16. option go_package = "google.golang.org/genproto/googleapis/api/error_reason;error_reason";
  17. option java_multiple_files = true;
  18. option java_outer_classname = "ErrorReasonProto";
  19. option java_package = "com.google.api";
  20. option objc_class_prefix = "GAPI";
  21. // Defines the supported values for `google.rpc.ErrorInfo.reason` for the
  22. // `googleapis.com` error domain. This error domain is reserved for [Service
  23. // Infrastructure](https://cloud.google.com/service-infrastructure/docs/overview).
  24. // For each error info of this domain, the metadata key "service" refers to the
  25. // logical identifier of an API service, such as "pubsub.googleapis.com". The
  26. // "consumer" refers to the entity that consumes an API Service. It typically is
  27. // a Google project that owns the client application or the server resource,
  28. // such as "projects/123". Other metadata keys are specific to each error
  29. // reason. For more information, see the definition of the specific error
  30. // reason.
  31. enum ErrorReason {
  32. // Do not use this default value.
  33. ERROR_REASON_UNSPECIFIED = 0;
  34. // The request is calling a disabled service for a consumer.
  35. //
  36. // Example of an ErrorInfo when the consumer "projects/123" contacting
  37. // "pubsub.googleapis.com" service which is disabled:
  38. //
  39. // { "reason": "SERVICE_DISABLED",
  40. // "domain": "googleapis.com",
  41. // "metadata": {
  42. // "consumer": "projects/123",
  43. // "service": "pubsub.googleapis.com"
  44. // }
  45. // }
  46. //
  47. // This response indicates the "pubsub.googleapis.com" has been disabled in
  48. // "projects/123".
  49. SERVICE_DISABLED = 1;
  50. // The request whose associated billing account is disabled.
  51. //
  52. // Example of an ErrorInfo when the consumer "projects/123" fails to contact
  53. // "pubsub.googleapis.com" service because the associated billing account is
  54. // disabled:
  55. //
  56. // { "reason": "BILLING_DISABLED",
  57. // "domain": "googleapis.com",
  58. // "metadata": {
  59. // "consumer": "projects/123",
  60. // "service": "pubsub.googleapis.com"
  61. // }
  62. // }
  63. //
  64. // This response indicates the billing account associated has been disabled.
  65. BILLING_DISABLED = 2;
  66. // The request is denied because the provided [API
  67. // key](https://cloud.google.com/docs/authentication/api-keys) is invalid. It
  68. // may be in a bad format, cannot be found, or has been expired).
  69. //
  70. // Example of an ErrorInfo when the request is contacting
  71. // "storage.googleapis.com" service with an invalid API key:
  72. //
  73. // { "reason": "API_KEY_INVALID",
  74. // "domain": "googleapis.com",
  75. // "metadata": {
  76. // "service": "storage.googleapis.com",
  77. // }
  78. // }
  79. API_KEY_INVALID = 3;
  80. // The request is denied because it violates [API key API
  81. // restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_api_restrictions).
  82. //
  83. // Example of an ErrorInfo when the consumer "projects/123" fails to call the
  84. // "storage.googleapis.com" service because this service is restricted in the
  85. // API key:
  86. //
  87. // { "reason": "API_KEY_SERVICE_BLOCKED",
  88. // "domain": "googleapis.com",
  89. // "metadata": {
  90. // "consumer": "projects/123",
  91. // "service": "storage.googleapis.com"
  92. // }
  93. // }
  94. API_KEY_SERVICE_BLOCKED = 4;
  95. // The request is denied because it violates [API key HTTP
  96. // restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions).
  97. //
  98. // Example of an ErrorInfo when the consumer "projects/123" fails to call
  99. // "storage.googleapis.com" service because the http referrer of the request
  100. // violates API key HTTP restrictions:
  101. //
  102. // { "reason": "API_KEY_HTTP_REFERRER_BLOCKED",
  103. // "domain": "googleapis.com",
  104. // "metadata": {
  105. // "consumer": "projects/123",
  106. // "service": "storage.googleapis.com",
  107. // }
  108. // }
  109. API_KEY_HTTP_REFERRER_BLOCKED = 7;
  110. // The request is denied because it violates [API key IP address
  111. // restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_application_restrictions).
  112. //
  113. // Example of an ErrorInfo when the consumer "projects/123" fails to call
  114. // "storage.googleapis.com" service because the caller IP of the request
  115. // violates API key IP address restrictions:
  116. //
  117. // { "reason": "API_KEY_IP_ADDRESS_BLOCKED",
  118. // "domain": "googleapis.com",
  119. // "metadata": {
  120. // "consumer": "projects/123",
  121. // "service": "storage.googleapis.com",
  122. // }
  123. // }
  124. API_KEY_IP_ADDRESS_BLOCKED = 8;
  125. // The request is denied because it violates [API key Android application
  126. // restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_application_restrictions).
  127. //
  128. // Example of an ErrorInfo when the consumer "projects/123" fails to call
  129. // "storage.googleapis.com" service because the request from the Android apps
  130. // violates the API key Android application restrictions:
  131. //
  132. // { "reason": "API_KEY_ANDROID_APP_BLOCKED",
  133. // "domain": "googleapis.com",
  134. // "metadata": {
  135. // "consumer": "projects/123",
  136. // "service": "storage.googleapis.com"
  137. // }
  138. // }
  139. API_KEY_ANDROID_APP_BLOCKED = 9;
  140. // The request is denied because it violates [API key iOS application
  141. // restrictions](https://cloud.google.com/docs/authentication/api-keys#adding_application_restrictions).
  142. //
  143. // Example of an ErrorInfo when the consumer "projects/123" fails to call
  144. // "storage.googleapis.com" service because the request from the iOS apps
  145. // violates the API key iOS application restrictions:
  146. //
  147. // { "reason": "API_KEY_IOS_APP_BLOCKED",
  148. // "domain": "googleapis.com",
  149. // "metadata": {
  150. // "consumer": "projects/123",
  151. // "service": "storage.googleapis.com"
  152. // }
  153. // }
  154. API_KEY_IOS_APP_BLOCKED = 13;
  155. // The request is denied because there is not enough rate quota for the
  156. // consumer.
  157. //
  158. // Example of an ErrorInfo when the consumer "projects/123" fails to contact
  159. // "pubsub.googleapis.com" service because consumer's rate quota usage has
  160. // reached the maximum value set for the quota limit
  161. // "ReadsPerMinutePerProject" on the quota metric
  162. // "pubsub.googleapis.com/read_requests":
  163. //
  164. // { "reason": "RATE_LIMIT_EXCEEDED",
  165. // "domain": "googleapis.com",
  166. // "metadata": {
  167. // "consumer": "projects/123",
  168. // "service": "pubsub.googleapis.com",
  169. // "quota_metric": "pubsub.googleapis.com/read_requests",
  170. // "quota_limit": "ReadsPerMinutePerProject"
  171. // }
  172. // }
  173. //
  174. // Example of an ErrorInfo when the consumer "projects/123" checks quota on
  175. // the service "dataflow.googleapis.com" and hits the organization quota
  176. // limit "DefaultRequestsPerMinutePerOrganization" on the metric
  177. // "dataflow.googleapis.com/default_requests".
  178. //
  179. // { "reason": "RATE_LIMIT_EXCEEDED",
  180. // "domain": "googleapis.com",
  181. // "metadata": {
  182. // "consumer": "projects/123",
  183. // "service": "dataflow.googleapis.com",
  184. // "quota_metric": "dataflow.googleapis.com/default_requests",
  185. // "quota_limit": "DefaultRequestsPerMinutePerOrganization"
  186. // }
  187. // }
  188. RATE_LIMIT_EXCEEDED = 5;
  189. // The request is denied because there is not enough resource quota for the
  190. // consumer.
  191. //
  192. // Example of an ErrorInfo when the consumer "projects/123" fails to contact
  193. // "compute.googleapis.com" service because consumer's resource quota usage
  194. // has reached the maximum value set for the quota limit "VMsPerProject"
  195. // on the quota metric "compute.googleapis.com/vms":
  196. //
  197. // { "reason": "RESOURCE_QUOTA_EXCEEDED",
  198. // "domain": "googleapis.com",
  199. // "metadata": {
  200. // "consumer": "projects/123",
  201. // "service": "compute.googleapis.com",
  202. // "quota_metric": "compute.googleapis.com/vms",
  203. // "quota_limit": "VMsPerProject"
  204. // }
  205. // }
  206. //
  207. // Example of an ErrorInfo when the consumer "projects/123" checks resource
  208. // quota on the service "dataflow.googleapis.com" and hits the organization
  209. // quota limit "jobs-per-organization" on the metric
  210. // "dataflow.googleapis.com/job_count".
  211. //
  212. // { "reason": "RESOURCE_QUOTA_EXCEEDED",
  213. // "domain": "googleapis.com",
  214. // "metadata": {
  215. // "consumer": "projects/123",
  216. // "service": "dataflow.googleapis.com",
  217. // "quota_metric": "dataflow.googleapis.com/job_count",
  218. // "quota_limit": "jobs-per-organization"
  219. // }
  220. // }
  221. RESOURCE_QUOTA_EXCEEDED = 6;
  222. // The request whose associated billing account address is in a tax restricted
  223. // location, violates the local tax restrictions when creating resources in
  224. // the restricted region.
  225. //
  226. // Example of an ErrorInfo when creating the Cloud Storage Bucket in the
  227. // container "projects/123" under a tax restricted region
  228. // "locations/asia-northeast3":
  229. //
  230. // { "reason": "LOCATION_TAX_POLICY_VIOLATED",
  231. // "domain": "googleapis.com",
  232. // "metadata": {
  233. // "consumer": "projects/123",
  234. // "service": "storage.googleapis.com",
  235. // "location": "locations/asia-northeast3"
  236. // }
  237. // }
  238. //
  239. // This response indicates creating the Cloud Storage Bucket in
  240. // "locations/asia-northeast3" violates the location tax restriction.
  241. LOCATION_TAX_POLICY_VIOLATED = 10;
  242. // The request is denied because the caller does not have required permission
  243. // on the user project "projects/123" or the user project is invalid. For more
  244. // information, check the [userProject System
  245. // Parameters](https://cloud.google.com/apis/docs/system-parameters).
  246. //
  247. // Example of an ErrorInfo when the caller is calling Cloud Storage service
  248. // with insufficient permissions on the user project:
  249. //
  250. // { "reason": "USER_PROJECT_DENIED",
  251. // "domain": "googleapis.com",
  252. // "metadata": {
  253. // "consumer": "projects/123",
  254. // "service": "storage.googleapis.com"
  255. // }
  256. // }
  257. USER_PROJECT_DENIED = 11;
  258. // The request is denied because the consumer "projects/123" is suspended due
  259. // to Terms of Service(Tos) violations. Check [Project suspension
  260. // guidelines](https://cloud.google.com/resource-manager/docs/project-suspension-guidelines)
  261. // for more information.
  262. //
  263. // Example of an ErrorInfo when calling Cloud Storage service with the
  264. // suspended consumer "projects/123":
  265. //
  266. // { "reason": "CONSUMER_SUSPENDED",
  267. // "domain": "googleapis.com",
  268. // "metadata": {
  269. // "consumer": "projects/123",
  270. // "service": "storage.googleapis.com"
  271. // }
  272. // }
  273. CONSUMER_SUSPENDED = 12;
  274. // The request is denied because the associated consumer is invalid. It may be
  275. // in a bad format, cannot be found, or have been deleted.
  276. //
  277. // Example of an ErrorInfo when calling Cloud Storage service with the
  278. // invalid consumer "projects/123":
  279. //
  280. // { "reason": "CONSUMER_INVALID",
  281. // "domain": "googleapis.com",
  282. // "metadata": {
  283. // "consumer": "projects/123",
  284. // "service": "storage.googleapis.com"
  285. // }
  286. // }
  287. CONSUMER_INVALID = 14;
  288. // The request is denied because it violates [VPC Service
  289. // Controls](https://cloud.google.com/vpc-service-controls/docs/overview).
  290. // The 'uid' field is a random generated identifier that customer can use it
  291. // to search the audit log for a request rejected by VPC Service Controls. For
  292. // more information, please refer [VPC Service Controls
  293. // Troubleshooting](https://cloud.google.com/vpc-service-controls/docs/troubleshooting#unique-id)
  294. //
  295. // Example of an ErrorInfo when the consumer "projects/123" fails to call
  296. // Cloud Storage service because the request is prohibited by the VPC Service
  297. // Controls.
  298. //
  299. // { "reason": "SECURITY_POLICY_VIOLATED",
  300. // "domain": "googleapis.com",
  301. // "metadata": {
  302. // "uid": "123456789abcde",
  303. // "consumer": "projects/123",
  304. // "service": "storage.googleapis.com"
  305. // }
  306. // }
  307. SECURITY_POLICY_VIOLATED = 15;
  308. // The request is denied because the provided access token has expired.
  309. //
  310. // Example of an ErrorInfo when the request is calling Cloud Storage service
  311. // with an expired access token:
  312. //
  313. // { "reason": "ACCESS_TOKEN_EXPIRED",
  314. // "domain": "googleapis.com",
  315. // "metadata": {
  316. // "service": "storage.googleapis.com",
  317. // "method": "google.storage.v1.Storage.GetObject"
  318. // }
  319. // }
  320. ACCESS_TOKEN_EXPIRED = 16;
  321. // The request is denied because the provided access token doesn't have at
  322. // least one of the acceptable scopes required for the API. Please check
  323. // [OAuth 2.0 Scopes for Google
  324. // APIs](https://developers.google.com/identity/protocols/oauth2/scopes) for
  325. // the list of the OAuth 2.0 scopes that you might need to request to access
  326. // the API.
  327. //
  328. // Example of an ErrorInfo when the request is calling Cloud Storage service
  329. // with an access token that is missing required scopes:
  330. //
  331. // { "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT",
  332. // "domain": "googleapis.com",
  333. // "metadata": {
  334. // "service": "storage.googleapis.com",
  335. // "method": "google.storage.v1.Storage.GetObject"
  336. // }
  337. // }
  338. ACCESS_TOKEN_SCOPE_INSUFFICIENT = 17;
  339. // The request is denied because the account associated with the provided
  340. // access token is in an invalid state, such as disabled or deleted.
  341. // For more information, see https://cloud.google.com/docs/authentication.
  342. //
  343. // Warning: For privacy reasons, the server may not be able to disclose the
  344. // email address for some accounts. The client MUST NOT depend on the
  345. // availability of the `email` attribute.
  346. //
  347. // Example of an ErrorInfo when the request is to the Cloud Storage API with
  348. // an access token that is associated with a disabled or deleted [service
  349. // account](http://cloud/iam/docs/service-accounts):
  350. //
  351. // { "reason": "ACCOUNT_STATE_INVALID",
  352. // "domain": "googleapis.com",
  353. // "metadata": {
  354. // "service": "storage.googleapis.com",
  355. // "method": "google.storage.v1.Storage.GetObject",
  356. // "email": "user@123.iam.gserviceaccount.com"
  357. // }
  358. // }
  359. ACCOUNT_STATE_INVALID = 18;
  360. // The request is denied because the type of the provided access token is not
  361. // supported by the API being called.
  362. //
  363. // Example of an ErrorInfo when the request is to the Cloud Storage API with
  364. // an unsupported token type.
  365. //
  366. // { "reason": "ACCESS_TOKEN_TYPE_UNSUPPORTED",
  367. // "domain": "googleapis.com",
  368. // "metadata": {
  369. // "service": "storage.googleapis.com",
  370. // "method": "google.storage.v1.Storage.GetObject"
  371. // }
  372. // }
  373. ACCESS_TOKEN_TYPE_UNSUPPORTED = 19;
  374. // The request is denied because the request doesn't have any authentication
  375. // credentials. For more information regarding the supported authentication
  376. // strategies for Google Cloud APIs, see
  377. // https://cloud.google.com/docs/authentication.
  378. //
  379. // Example of an ErrorInfo when the request is to the Cloud Storage API
  380. // without any authentication credentials.
  381. //
  382. // { "reason": "CREDENTIALS_MISSING",
  383. // "domain": "googleapis.com",
  384. // "metadata": {
  385. // "service": "storage.googleapis.com",
  386. // "method": "google.storage.v1.Storage.GetObject"
  387. // }
  388. // }
  389. CREDENTIALS_MISSING = 20;
  390. // The request is denied because the provided project owning the resource
  391. // which acts as the [API
  392. // consumer](https://cloud.google.com/apis/design/glossary#api_consumer) is
  393. // invalid. It may be in a bad format or empty.
  394. //
  395. // Example of an ErrorInfo when the request is to the Cloud Functions API,
  396. // but the offered resource project in the request in a bad format which can't
  397. // perform the ListFunctions method.
  398. //
  399. // { "reason": "RESOURCE_PROJECT_INVALID",
  400. // "domain": "googleapis.com",
  401. // "metadata": {
  402. // "service": "cloudfunctions.googleapis.com",
  403. // "method":
  404. // "google.cloud.functions.v1.CloudFunctionsService.ListFunctions"
  405. // }
  406. // }
  407. RESOURCE_PROJECT_INVALID = 21;
  408. // The request is denied because the provided session cookie is missing,
  409. // invalid or failed to decode.
  410. //
  411. // Example of an ErrorInfo when the request is calling Cloud Storage service
  412. // with a SID cookie which can't be decoded.
  413. //
  414. // { "reason": "SESSION_COOKIE_INVALID",
  415. // "domain": "googleapis.com",
  416. // "metadata": {
  417. // "service": "storage.googleapis.com",
  418. // "method": "google.storage.v1.Storage.GetObject",
  419. // "cookie": "SID"
  420. // }
  421. // }
  422. SESSION_COOKIE_INVALID = 23;
  423. // The request is denied because the user is from a Google Workspace customer
  424. // that blocks their users from accessing a particular service.
  425. //
  426. // Example scenario: https://support.google.com/a/answer/9197205?hl=en
  427. //
  428. // Example of an ErrorInfo when access to Google Cloud Storage service is
  429. // blocked by the Google Workspace administrator:
  430. //
  431. // { "reason": "USER_BLOCKED_BY_ADMIN",
  432. // "domain": "googleapis.com",
  433. // "metadata": {
  434. // "service": "storage.googleapis.com",
  435. // "method": "google.storage.v1.Storage.GetObject",
  436. // }
  437. // }
  438. USER_BLOCKED_BY_ADMIN = 24;
  439. // The request is denied because the resource service usage is restricted
  440. // by administrators according to the organization policy constraint.
  441. // For more information see
  442. // https://cloud.google.com/resource-manager/docs/organization-policy/restricting-services.
  443. //
  444. // Example of an ErrorInfo when access to Google Cloud Storage service is
  445. // restricted by Resource Usage Restriction policy:
  446. //
  447. // { "reason": "RESOURCE_USAGE_RESTRICTION_VIOLATED",
  448. // "domain": "googleapis.com",
  449. // "metadata": {
  450. // "consumer": "projects/project-123",
  451. // "service": "storage.googleapis.com"
  452. // }
  453. // }
  454. RESOURCE_USAGE_RESTRICTION_VIOLATED = 25;
  455. // Unimplemented. Do not use.
  456. //
  457. // The request is denied because it contains unsupported system parameters in
  458. // URL query parameters or HTTP headers. For more information,
  459. // see https://cloud.google.com/apis/docs/system-parameters
  460. //
  461. // Example of an ErrorInfo when access "pubsub.googleapis.com" service with
  462. // a request header of "x-goog-user-ip":
  463. //
  464. // { "reason": "SYSTEM_PARAMETER_UNSUPPORTED",
  465. // "domain": "googleapis.com",
  466. // "metadata": {
  467. // "service": "pubsub.googleapis.com"
  468. // "parameter": "x-goog-user-ip"
  469. // }
  470. // }
  471. SYSTEM_PARAMETER_UNSUPPORTED = 26;
  472. // The request is denied because it violates Org Restriction: the requested
  473. // resource does not belong to allowed organizations specified in
  474. // "X-Goog-Allowed-Resources" header.
  475. //
  476. // Example of an ErrorInfo when accessing a GCP resource that is restricted by
  477. // Org Restriction for "pubsub.googleapis.com" service.
  478. //
  479. // {
  480. // reason: "ORG_RESTRICTION_VIOLATION"
  481. // domain: "googleapis.com"
  482. // metadata {
  483. // "consumer":"projects/123456"
  484. // "service": "pubsub.googleapis.com"
  485. // }
  486. // }
  487. ORG_RESTRICTION_VIOLATION = 27;
  488. // The request is denied because "X-Goog-Allowed-Resources" header is in a bad
  489. // format.
  490. //
  491. // Example of an ErrorInfo when
  492. // accessing "pubsub.googleapis.com" service with an invalid
  493. // "X-Goog-Allowed-Resources" request header.
  494. //
  495. // {
  496. // reason: "ORG_RESTRICTION_HEADER_INVALID"
  497. // domain: "googleapis.com"
  498. // metadata {
  499. // "consumer":"projects/123456"
  500. // "service": "pubsub.googleapis.com"
  501. // }
  502. // }
  503. ORG_RESTRICTION_HEADER_INVALID = 28;
  504. // Unimplemented. Do not use.
  505. //
  506. // The request is calling a service that is not visible to the consumer.
  507. //
  508. // Example of an ErrorInfo when the consumer "projects/123" contacting
  509. // "pubsub.googleapis.com" service which is not visible to the consumer.
  510. //
  511. // { "reason": "SERVICE_NOT_VISIBLE",
  512. // "domain": "googleapis.com",
  513. // "metadata": {
  514. // "consumer": "projects/123",
  515. // "service": "pubsub.googleapis.com"
  516. // }
  517. // }
  518. //
  519. // This response indicates the "pubsub.googleapis.com" is not visible to
  520. // "projects/123" (or it may not exist).
  521. SERVICE_NOT_VISIBLE = 29;
  522. // The request is related to a project for which GCP access is suspended.
  523. //
  524. // Example of an ErrorInfo when the consumer "projects/123" fails to contact
  525. // "pubsub.googleapis.com" service because GCP access is suspended:
  526. //
  527. // { "reason": "GCP_SUSPENDED",
  528. // "domain": "googleapis.com",
  529. // "metadata": {
  530. // "consumer": "projects/123",
  531. // "service": "pubsub.googleapis.com"
  532. // }
  533. // }
  534. //
  535. // This response indicates the associated GCP account has been suspended.
  536. GCP_SUSPENDED = 30;
  537. // The request violates the location policies when creating resources in
  538. // the restricted region.
  539. //
  540. // Example of an ErrorInfo when creating the Cloud Storage Bucket by
  541. // "projects/123" for service storage.googleapis.com:
  542. //
  543. // { "reason": "LOCATION_POLICY_VIOLATED",
  544. // "domain": "googleapis.com",
  545. // "metadata": {
  546. // "consumer": "projects/123",
  547. // "service": "storage.googleapis.com",
  548. // }
  549. // }
  550. //
  551. // This response indicates creating the Cloud Storage Bucket in
  552. // "locations/asia-northeast3" violates at least one location policy.
  553. // The troubleshooting guidance is provided in the Help links.
  554. LOCATION_POLICY_VIOLATED = 31;
  555. }