blob: fd6f5310c6ce1b3a4ff63b3c3972c9097291b791 [file] [log] [blame]
Jon Wayne Parrott7d5badb2016-08-16 12:44:29 -07001<html><body>
2<style>
3
4body, h1, h2, h3, div, span, p, pre, a {
5 margin: 0;
6 padding: 0;
7 border: 0;
8 font-weight: inherit;
9 font-style: inherit;
10 font-size: 100%;
11 font-family: inherit;
12 vertical-align: baseline;
13}
14
15body {
16 font-size: 13px;
17 padding: 1em;
18}
19
20h1 {
21 font-size: 26px;
22 margin-bottom: 1em;
23}
24
25h2 {
26 font-size: 24px;
27 margin-bottom: 1em;
28}
29
30h3 {
31 font-size: 20px;
32 margin-bottom: 1em;
33 margin-top: 1em;
34}
35
36pre, code {
37 line-height: 1.5;
38 font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
39}
40
41pre {
42 margin-top: 0.5em;
43}
44
45h1, h2, h3, p {
46 font-family: Arial, sans serif;
47}
48
49h1, h2, h3 {
50 border-bottom: solid #CCC 1px;
51}
52
53.toc_element {
54 margin-top: 0.5em;
55}
56
57.firstline {
58 margin-left: 2 em;
59}
60
61.method {
62 margin-top: 1em;
63 border: solid 1px #CCC;
64 padding: 1em;
65 background: #EEE;
66}
67
68.details {
69 font-weight: bold;
70 font-size: 14px;
71}
72
73</style>
74
75<h1><a href="servicecontrol_v1.html">Google Service Control API</a> . <a href="servicecontrol_v1.services.html">services</a></h1>
76<h2>Instance Methods</h2>
77<p class="toc_element">
78 <code><a href="#check">check(serviceName=None, body, x__xgafv=None)</a></code></p>
79<p class="firstline">Checks an operation with Google Service Control to decide whether</p>
80<p class="toc_element">
81 <code><a href="#report">report(serviceName=None, body, x__xgafv=None)</a></code></p>
82<p class="firstline">Reports operations to Google Service Control. It should be called</p>
83<h3>Method Details</h3>
84<div class="method">
85 <code class="details" id="check">check(serviceName=None, body, x__xgafv=None)</code>
86 <pre>Checks an operation with Google Service Control to decide whether
87the given operation should proceed. It should be called before the
88operation is executed.
89
90This method requires the `servicemanagement.services.check` permission
91on the specified service. For more information, see
92[Google Cloud IAM](https://cloud.google.com/iam).
93
94Args:
95 serviceName: string, The service name as specified in its service configuration. For example,
96`"pubsub.googleapis.com"`.
97
98See google.api.Service for the definition of a service name. (required)
99 body: object, The request body. (required)
100 The object takes the form of:
101
102{ # Request message for the Check method.
103 "operation": { # Represents information regarding an operation. # The operation to be checked.
104 "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
105 "metricValueSets": [ # Represents information about this operation. Each MetricValueSet
106 # corresponds to a metric defined in the service configuration.
107 # The data type used in the MetricValueSet must agree with
108 # the data type specified in the metric definition.
109 #
110 # Within a single operation, it is not allowed to have more than one
111 # MetricValue instances that have the same metric names and identical
112 # label value combinations. If a request has such duplicated MetricValue
113 # instances, the entire request is rejected with
114 # an invalid argument error.
115 { # Represents a set of metric values in the same metric.
116 # Each metric value in the set should have a unique combination of start time,
117 # end time, and label values.
118 "metricValues": [ # The values in this metric.
119 { # Represents a single metric value.
120 "labels": { # The labels describing the metric value.
121 # See comments on google.api.servicecontrol.v1.Operation.labels for
122 # the overriding relationship.
123 "a_key": "A String",
124 },
125 "doubleValue": 3.14, # A double precision floating point value.
126 "boolValue": True or False, # A boolean value.
127 "startTime": "A String", # The start of the time period over which this metric value's measurement
128 # applies. The time period has different semantics for different metric
129 # types (cumulative, delta, and gauge). See the metric definition
130 # documentation in the service configuration for details.
131 "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
132 # points. It contains the size of the population of sample points plus
133 # additional optional information:
134 #
135 # - the arithmetic mean of the samples
136 # - the minimum and maximum of the samples
137 # - the sum-squared-deviation of the samples, used to compute variance
138 # - a histogram of the values of the sample points
139 "count": "A String", # The total number of samples in the distribution. Must be >= 0.
140 "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
141 # optional. If present, they must sum to the `count` value.
142 #
143 # The buckets are defined below in `bucket_option`. There are N buckets.
144 # `bucket_counts[0]` is the number of samples in the underflow bucket.
145 # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
146 # in each of the finite buckets. And `bucket_counts[N] is the number
147 # of samples in the overflow bucket. See the comments of `bucket_option`
148 # below for more details.
149 #
150 # Any suffix of trailing zeros may be omitted.
151 "A String",
152 ],
153 "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
154 "scale": 3.14, # The i'th exponential bucket covers the interval
155 # [scale * growth_factor^(i-1), scale * growth_factor^i)
156 # where i ranges from 1 to num_finite_buckets inclusive.
157 # Must be > 0.
158 "growthFactor": 3.14, # The i'th exponential bucket covers the interval
159 # [scale * growth_factor^(i-1), scale * growth_factor^i)
160 # where i ranges from 1 to num_finite_buckets inclusive.
161 # Must be larger than 1.0.
162 "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
163 # the total number of buckets is `num_finite_buckets` + 2.
164 # See comments on `bucket_options` for details.
165 },
166 "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
167 "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
168 "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
169 # Sum[i=1..count]((x_i - mean)^2)
170 # where each x_i is a sample values. If `count` is zero then this field
171 # must be zero, otherwise validation of the request fails.
172 "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
173 "width": 3.14, # The i'th linear bucket covers the interval
174 # [offset + (i-1) * width, offset + i * width)
175 # where i ranges from 1 to num_finite_buckets, inclusive.
176 # Must be strictly positive.
177 "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
178 # the total number of buckets is `num_finite_buckets` + 2.
179 # See comments on `bucket_options` for details.
180 "offset": 3.14, # The i'th linear bucket covers the interval
181 # [offset + (i-1) * width, offset + i * width)
182 # where i ranges from 1 to num_finite_buckets, inclusive.
183 },
184 "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
185 "bounds": [ # 'bound' is a list of strictly increasing boundaries between
186 # buckets. Note that a list of length N-1 defines N buckets because
187 # of fenceposting. See comments on `bucket_options` for details.
188 #
189 # The i'th finite bucket covers the interval
190 # [bound[i-1], bound[i])
191 # where i ranges from 1 to bound_size() - 1. Note that there are no
192 # finite buckets at all if 'bound' only contains a single element; in
193 # that special case the single bound defines the boundary between the
194 # underflow and overflow buckets.
195 #
196 # bucket number lower bound upper bound
197 # i == 0 (underflow) -inf bound[i]
198 # 0 < i < bound_size() bound[i-1] bound[i]
199 # i == bound_size() (overflow) bound[i-1] +inf
200 3.14,
201 ],
202 },
203 "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
204 # zero then this field must be zero.
205 },
206 "stringValue": "A String", # A text string value.
207 "int64Value": "A String", # A signed 64-bit integer value.
208 "endTime": "A String", # The end of the time period over which this metric value's measurement
209 # applies.
210 },
211 ],
212 "metricName": "A String", # The metric name defined in the service configuration.
213 },
214 ],
215 "importance": "A String", # The importance of the data contained in the operation.
216 "labels": { # Labels describing the operation. Only the following labels are allowed:
217 #
218 # - Labels describing monitored resources as defined in
219 # the service configuration.
220 # - Default labels of metric values. When specified, labels defined in the
221 # metric value override these default.
222 # - The following labels defined by Google Cloud Platform:
223 # - `cloud.googleapis.com/location` describing the location where the
224 # operation happened,
225 # - `servicecontrol.googleapis.com/user_agent` describing the user agent
226 # of the API request,
227 # - `servicecontrol.googleapis.com/service_agent` describing the service
228 # used to handle the API request (e.g. ESP),
229 # - `servicecontrol.googleapis.com/platform` describing the platform
230 # where the API is served (e.g. GAE, GCE, GKE).
231 "a_key": "A String",
232 },
233 "consumerId": "A String", # Identity of the consumer who is using the service.
234 # This field should be filled in for the operations initiated by a
235 # consumer, but not for service-initiated operations that are
236 # not related to a specific consumer.
237 #
238 # This can be in one of the following formats:
239 # project:<project_id>,
240 # project_number:<project_number>,
241 # api_key:<api_key>.
242 "logEntries": [ # Represents information to be logged.
243 { # An individual log entry.
244 "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
245 # `"book_log"`.
246 "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
247 "timestamp": "A String", # The time the event described by the log entry occurred. If
248 # omitted, defaults to operation start time.
249 "labels": { # A set of user-defined (key, value) data that provides additional
250 # information about the log entry.
251 "a_key": "A String",
252 },
253 "structPayload": { # The log entry payload, represented as a structure that
254 # is expressed as a JSON object.
255 "a_key": "", # Properties of the object.
256 },
257 "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
258 # the implementation will generate one based on operation_id.
259 "protoPayload": { # The log entry payload, represented as a protocol buffer that is
260 # expressed as a JSON object. You can only pass `protoPayload`
261 # values that belong to a set of approved types.
262 "a_key": "", # Properties of the object. Contains field @type with type URL.
263 },
264 "severity": "A String", # The severity of the log entry. The default value is
265 # `LogSeverity.DEFAULT`.
266 },
267 ],
268 "startTime": "A String", # Required. Start time of the operation.
269 "endTime": "A String", # End time of the operation.
270 # Required when the operation is used in ServiceController.Report,
271 # but optional when the operation is used in ServiceController.Check.
272 "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
273 # service that generated the operation. If the service calls
274 # Check() and Report() on the same operation, the two calls should carry
275 # the same id.
276 #
277 # UUID version 4 is recommended, though not required.
278 # In scenarios where an operation is computed from existing information
279 # and an idempotent id is desirable for deduplication purpose, UUID version 5
280 # is recommended. See RFC 4122 for details.
281 },
282 }
283
284 x__xgafv: string, V1 error format.
285 Allowed values
286 1 - v1 error format
287 2 - v2 error format
288
289Returns:
290 An object of the form:
291
292 { # Response message for the Check method.
293 "checkErrors": [ # Indicate the decision of the check.
294 #
295 # If no check errors are present, the service should process the operation.
296 # Otherwise the service should use the list of errors to determine the
297 # appropriate action.
298 { # Defines the errors to be returned in
299 # google.api.servicecontrol.v1.CheckResponse.check_errors.
300 "code": "A String", # The error code.
301 "detail": "A String", # Free-form text providing details on the error cause of the error.
302 },
303 ],
304 "operationId": "A String", # The same operation_id value used in the CheckRequest.
305 # Used for logging and diagnostics purposes.
306 }</pre>
307</div>
308
309<div class="method">
310 <code class="details" id="report">report(serviceName=None, body, x__xgafv=None)</code>
311 <pre>Reports operations to Google Service Control. It should be called
312after the operation is completed.
313
314This method requires the `servicemanagement.services.report` permission
315on the specified service. For more information, see
316[Google Cloud IAM](https://cloud.google.com/iam).
317
318Args:
319 serviceName: string, The service name as specified in its service configuration. For example,
320`"pubsub.googleapis.com"`.
321
322See google.api.Service for the definition of a service name. (required)
323 body: object, The request body. (required)
324 The object takes the form of:
325
326{ # Request message for the Report method.
327 "operations": [ # Operations to be reported.
328 #
329 # Typically the service should report one operation per request.
330 # Putting multiple operations into a single request is allowed, but should
331 # be used only when multiple operations are natually available at the time
332 # of the report.
333 #
334 # If multiple operations are in a single request, the total request size
335 # should be no larger than 1MB. See ReportResponse.report_errors for
336 # partial failure behavior.
337 { # Represents information regarding an operation.
338 "operationName": "A String", # Fully qualified name of the operation. Reserved for future use.
339 "metricValueSets": [ # Represents information about this operation. Each MetricValueSet
340 # corresponds to a metric defined in the service configuration.
341 # The data type used in the MetricValueSet must agree with
342 # the data type specified in the metric definition.
343 #
344 # Within a single operation, it is not allowed to have more than one
345 # MetricValue instances that have the same metric names and identical
346 # label value combinations. If a request has such duplicated MetricValue
347 # instances, the entire request is rejected with
348 # an invalid argument error.
349 { # Represents a set of metric values in the same metric.
350 # Each metric value in the set should have a unique combination of start time,
351 # end time, and label values.
352 "metricValues": [ # The values in this metric.
353 { # Represents a single metric value.
354 "labels": { # The labels describing the metric value.
355 # See comments on google.api.servicecontrol.v1.Operation.labels for
356 # the overriding relationship.
357 "a_key": "A String",
358 },
359 "doubleValue": 3.14, # A double precision floating point value.
360 "boolValue": True or False, # A boolean value.
361 "startTime": "A String", # The start of the time period over which this metric value's measurement
362 # applies. The time period has different semantics for different metric
363 # types (cumulative, delta, and gauge). See the metric definition
364 # documentation in the service configuration for details.
365 "distributionValue": { # Distribution represents a frequency distribution of double-valued sample # A distribution value.
366 # points. It contains the size of the population of sample points plus
367 # additional optional information:
368 #
369 # - the arithmetic mean of the samples
370 # - the minimum and maximum of the samples
371 # - the sum-squared-deviation of the samples, used to compute variance
372 # - a histogram of the values of the sample points
373 "count": "A String", # The total number of samples in the distribution. Must be >= 0.
374 "bucketCounts": [ # The number of samples in each histogram bucket. `bucket_counts` are
375 # optional. If present, they must sum to the `count` value.
376 #
377 # The buckets are defined below in `bucket_option`. There are N buckets.
378 # `bucket_counts[0]` is the number of samples in the underflow bucket.
379 # `bucket_counts[1]` to `bucket_counts[N-1]` are the numbers of samples
380 # in each of the finite buckets. And `bucket_counts[N] is the number
381 # of samples in the overflow bucket. See the comments of `bucket_option`
382 # below for more details.
383 #
384 # Any suffix of trailing zeros may be omitted.
385 "A String",
386 ],
387 "exponentialBuckets": { # Describing buckets with exponentially growing width. # Buckets with exponentially growing width.
388 "scale": 3.14, # The i'th exponential bucket covers the interval
389 # [scale * growth_factor^(i-1), scale * growth_factor^i)
390 # where i ranges from 1 to num_finite_buckets inclusive.
391 # Must be > 0.
392 "growthFactor": 3.14, # The i'th exponential bucket covers the interval
393 # [scale * growth_factor^(i-1), scale * growth_factor^i)
394 # where i ranges from 1 to num_finite_buckets inclusive.
395 # Must be larger than 1.0.
396 "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
397 # the total number of buckets is `num_finite_buckets` + 2.
398 # See comments on `bucket_options` for details.
399 },
400 "minimum": 3.14, # The minimum of the population of values. Ignored if `count` is zero.
401 "maximum": 3.14, # The maximum of the population of values. Ignored if `count` is zero.
402 "sumOfSquaredDeviation": 3.14, # The sum of squared deviations from the mean:
403 # Sum[i=1..count]((x_i - mean)^2)
404 # where each x_i is a sample values. If `count` is zero then this field
405 # must be zero, otherwise validation of the request fails.
406 "linearBuckets": { # Describing buckets with constant width. # Buckets with constant width.
407 "width": 3.14, # The i'th linear bucket covers the interval
408 # [offset + (i-1) * width, offset + i * width)
409 # where i ranges from 1 to num_finite_buckets, inclusive.
410 # Must be strictly positive.
411 "numFiniteBuckets": 42, # The number of finite buckets. With the underflow and overflow buckets,
412 # the total number of buckets is `num_finite_buckets` + 2.
413 # See comments on `bucket_options` for details.
414 "offset": 3.14, # The i'th linear bucket covers the interval
415 # [offset + (i-1) * width, offset + i * width)
416 # where i ranges from 1 to num_finite_buckets, inclusive.
417 },
418 "explicitBuckets": { # Describing buckets with arbitrary user-provided width. # Buckets with arbitrary user-provided width.
419 "bounds": [ # 'bound' is a list of strictly increasing boundaries between
420 # buckets. Note that a list of length N-1 defines N buckets because
421 # of fenceposting. See comments on `bucket_options` for details.
422 #
423 # The i'th finite bucket covers the interval
424 # [bound[i-1], bound[i])
425 # where i ranges from 1 to bound_size() - 1. Note that there are no
426 # finite buckets at all if 'bound' only contains a single element; in
427 # that special case the single bound defines the boundary between the
428 # underflow and overflow buckets.
429 #
430 # bucket number lower bound upper bound
431 # i == 0 (underflow) -inf bound[i]
432 # 0 < i < bound_size() bound[i-1] bound[i]
433 # i == bound_size() (overflow) bound[i-1] +inf
434 3.14,
435 ],
436 },
437 "mean": 3.14, # The arithmetic mean of the samples in the distribution. If `count` is
438 # zero then this field must be zero.
439 },
440 "stringValue": "A String", # A text string value.
441 "int64Value": "A String", # A signed 64-bit integer value.
442 "endTime": "A String", # The end of the time period over which this metric value's measurement
443 # applies.
444 },
445 ],
446 "metricName": "A String", # The metric name defined in the service configuration.
447 },
448 ],
449 "importance": "A String", # The importance of the data contained in the operation.
450 "labels": { # Labels describing the operation. Only the following labels are allowed:
451 #
452 # - Labels describing monitored resources as defined in
453 # the service configuration.
454 # - Default labels of metric values. When specified, labels defined in the
455 # metric value override these default.
456 # - The following labels defined by Google Cloud Platform:
457 # - `cloud.googleapis.com/location` describing the location where the
458 # operation happened,
459 # - `servicecontrol.googleapis.com/user_agent` describing the user agent
460 # of the API request,
461 # - `servicecontrol.googleapis.com/service_agent` describing the service
462 # used to handle the API request (e.g. ESP),
463 # - `servicecontrol.googleapis.com/platform` describing the platform
464 # where the API is served (e.g. GAE, GCE, GKE).
465 "a_key": "A String",
466 },
467 "consumerId": "A String", # Identity of the consumer who is using the service.
468 # This field should be filled in for the operations initiated by a
469 # consumer, but not for service-initiated operations that are
470 # not related to a specific consumer.
471 #
472 # This can be in one of the following formats:
473 # project:<project_id>,
474 # project_number:<project_number>,
475 # api_key:<api_key>.
476 "logEntries": [ # Represents information to be logged.
477 { # An individual log entry.
478 "name": "A String", # Required. The log to which this log entry belongs. Examples: `"syslog"`,
479 # `"book_log"`.
480 "textPayload": "A String", # The log entry payload, represented as a Unicode string (UTF-8).
481 "timestamp": "A String", # The time the event described by the log entry occurred. If
482 # omitted, defaults to operation start time.
483 "labels": { # A set of user-defined (key, value) data that provides additional
484 # information about the log entry.
485 "a_key": "A String",
486 },
487 "structPayload": { # The log entry payload, represented as a structure that
488 # is expressed as a JSON object.
489 "a_key": "", # Properties of the object.
490 },
491 "insertId": "A String", # A unique ID for the log entry used for deduplication. If omitted,
492 # the implementation will generate one based on operation_id.
493 "protoPayload": { # The log entry payload, represented as a protocol buffer that is
494 # expressed as a JSON object. You can only pass `protoPayload`
495 # values that belong to a set of approved types.
496 "a_key": "", # Properties of the object. Contains field @type with type URL.
497 },
498 "severity": "A String", # The severity of the log entry. The default value is
499 # `LogSeverity.DEFAULT`.
500 },
501 ],
502 "startTime": "A String", # Required. Start time of the operation.
503 "endTime": "A String", # End time of the operation.
504 # Required when the operation is used in ServiceController.Report,
505 # but optional when the operation is used in ServiceController.Check.
506 "operationId": "A String", # Identity of the operation. This must be unique within the scope of the
507 # service that generated the operation. If the service calls
508 # Check() and Report() on the same operation, the two calls should carry
509 # the same id.
510 #
511 # UUID version 4 is recommended, though not required.
512 # In scenarios where an operation is computed from existing information
513 # and an idempotent id is desirable for deduplication purpose, UUID version 5
514 # is recommended. See RFC 4122 for details.
515 },
516 ],
517 }
518
519 x__xgafv: string, V1 error format.
520 Allowed values
521 1 - v1 error format
522 2 - v2 error format
523
524Returns:
525 An object of the form:
526
527 { # Response message for the Report method.
528 "reportErrors": [ # Partial failures, one for each `Operation` in the request that failed
529 # processing. There are three possible combinations of the RPC status:
530 #
531 # 1. The combination of a successful RPC status and an empty `report_errors`
532 # list indicates a complete success where all `Operations` in the
533 # request are processed successfully.
534 # 2. The combination of a successful RPC status and a non-empty
535 # `report_errors` list indicates a partial success where some
536 # `Operations` in the request succeeded. Each
537 # `Operation` that failed processing has a corresponding item
538 # in this list.
539 # 3. A failed RPC status indicates a complete failure where none of the
540 # `Operations` in the request succeeded.
541 { # Represents the processing error of one `Operation` in the request.
542 "status": { # The `Status` type defines a logical error model that is suitable for different # Details of the error when processing the `Operation`.
543 # programming environments, including REST APIs and RPC APIs. It is used by
544 # [gRPC](https://github.com/grpc). The error model is designed to be:
545 #
546 # - Simple to use and understand for most users
547 # - Flexible enough to meet unexpected needs
548 #
549 # # Overview
550 #
551 # The `Status` message contains three pieces of data: error code, error message,
552 # and error details. The error code should be an enum value of
553 # google.rpc.Code, but it may accept additional error codes if needed. The
554 # error message should be a developer-facing English message that helps
555 # developers *understand* and *resolve* the error. If a localized user-facing
556 # error message is needed, put the localized message in the error details or
557 # localize it in the client. The optional error details may contain arbitrary
558 # information about the error. There is a predefined set of error detail types
559 # in the package `google.rpc` which can be used for common error conditions.
560 #
561 # # Language mapping
562 #
563 # The `Status` message is the logical representation of the error model, but it
564 # is not necessarily the actual wire format. When the `Status` message is
565 # exposed in different client libraries and different wire protocols, it can be
566 # mapped differently. For example, it will likely be mapped to some exceptions
567 # in Java, but more likely mapped to some error codes in C.
568 #
569 # # Other uses
570 #
571 # The error model and the `Status` message can be used in a variety of
572 # environments, either with or without APIs, to provide a
573 # consistent developer experience across different environments.
574 #
575 # Example uses of this error model include:
576 #
577 # - Partial errors. If a service needs to return partial errors to the client,
578 # it may embed the `Status` in the normal response to indicate the partial
579 # errors.
580 #
581 # - Workflow errors. A typical workflow has multiple steps. Each step may
582 # have a `Status` message for error reporting purpose.
583 #
584 # - Batch operations. If a client uses batch request and batch response, the
585 # `Status` message should be used directly inside batch response, one for
586 # each error sub-response.
587 #
588 # - Asynchronous operations. If an API call embeds asynchronous operation
589 # results in its response, the status of those operations should be
590 # represented directly using the `Status` message.
591 #
592 # - Logging. If some API errors are stored in logs, the message `Status` could
593 # be used directly after any stripping needed for security/privacy reasons.
594 "message": "A String", # A developer-facing error message, which should be in English. Any
595 # user-facing error message should be localized and sent in the
596 # google.rpc.Status.details field, or localized by the client.
597 "code": 42, # The status code, which should be an enum value of google.rpc.Code.
598 "details": [ # A list of messages that carry the error details. There will be a
599 # common set of message types for APIs to use.
600 {
601 "a_key": "", # Properties of the object. Contains field @type with type URL.
602 },
603 ],
604 },
605 "operationId": "A String", # The Operation.operation_id value from the request.
606 },
607 ],
608 }</pre>
609</div>
610
611</body></html>