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