github.com/s7techlab/cckit@v0.10.5/third_party/google/rpc/error_details.proto (about)

     1  // Copyright 2017 Google Inc.
     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  
    15  syntax = "proto3";
    16  
    17  package google.rpc;
    18  
    19  import "google/protobuf/duration.proto";
    20  
    21  option go_package = "google.golang.org/genproto/googleapis/rpc/errdetails;errdetails";
    22  option java_multiple_files = true;
    23  option java_outer_classname = "ErrorDetailsProto";
    24  option java_package = "com.google.rpc";
    25  option objc_class_prefix = "RPC";
    26  
    27  
    28  // Describes when the clients can retry a failed request. Clients could ignore
    29  // the recommendation here or retry when this information is missing from error
    30  // responses.
    31  //
    32  // It's always recommended that clients should use exponential backoff when
    33  // retrying.
    34  //
    35  // Clients should wait until `retry_delay` amount of time has passed since
    36  // receiving the error response before retrying.  If retrying requests also
    37  // fail, clients should use an exponential backoff scheme to gradually increase
    38  // the delay between retries based on `retry_delay`, until either a maximum
    39  // number of retires have been reached or a maximum retry delay cap has been
    40  // reached.
    41  message RetryInfo {
    42      // Clients should wait at least this long between retrying the same request.
    43      google.protobuf.Duration retry_delay = 1;
    44  }
    45  
    46  // Describes additional debugging info.
    47  message DebugInfo {
    48      // The stack trace entries indicating where the error occurred.
    49      repeated string stack_entries = 1;
    50  
    51      // Additional debugging information provided by the server.
    52      string detail = 2;
    53  }
    54  
    55  // Describes how a quota check failed.
    56  //
    57  // For example if a daily limit was exceeded for the calling project,
    58  // a service could respond with a QuotaFailure detail containing the project
    59  // id and the description of the quota limit that was exceeded.  If the
    60  // calling project hasn't enabled the service in the developer console, then
    61  // a service could respond with the project id and set `service_disabled`
    62  // to true.
    63  //
    64  // Also see RetryDetail and Help types for other details about handling a
    65  // quota failure.
    66  message QuotaFailure {
    67      // A message type used to describe a single quota violation.  For example, a
    68      // daily quota or a custom quota that was exceeded.
    69      message Violation {
    70          // The subject on which the quota check failed.
    71          // For example, "clientip:<ip address of client>" or "project:<Google
    72          // developer project id>".
    73          string subject = 1;
    74  
    75          // A description of how the quota check failed. Clients can use this
    76          // description to find more about the quota configuration in the service's
    77          // public documentation, or find the relevant quota limit to adjust through
    78          // developer console.
    79          //
    80          // For example: "Service disabled" or "Daily Limit for read operations
    81          // exceeded".
    82          string description = 2;
    83      }
    84  
    85      // Describes all quota violations.
    86      repeated Violation violations = 1;
    87  }
    88  
    89  // Describes what preconditions have failed.
    90  //
    91  // For example, if an RPC failed because it required the Terms of Service to be
    92  // acknowledged, it could list the terms of service violation in the
    93  // PreconditionFailure message.
    94  message PreconditionFailure {
    95      // A message type used to describe a single precondition failure.
    96      message Violation {
    97          // The type of PreconditionFailure. We recommend using a service-specific
    98          // enum type to define the supported precondition violation types. For
    99          // example, "TOS" for "Terms of Service violation".
   100          string type = 1;
   101  
   102          // The subject, relative to the type, that failed.
   103          // For example, "google.com/cloud" relative to the "TOS" type would
   104          // indicate which terms of service is being referenced.
   105          string subject = 2;
   106  
   107          // A description of how the precondition failed. Developers can use this
   108          // description to understand how to fix the failure.
   109          //
   110          // For example: "Terms of service not accepted".
   111          string description = 3;
   112      }
   113  
   114      // Describes all precondition violations.
   115      repeated Violation violations = 1;
   116  }
   117  
   118  // Describes violations in a client request. This error type focuses on the
   119  // syntactic aspects of the request.
   120  message BadRequest {
   121      // A message type used to describe a single bad request field.
   122      message FieldViolation {
   123          // A path leading to a field in the request body. The value will be a
   124          // sequence of dot-separated identifiers that identify a protocol buffer
   125          // field. E.g., "field_violations.field" would identify this field.
   126          string field = 1;
   127  
   128          // A description of why the request element is bad.
   129          string description = 2;
   130      }
   131  
   132      // Describes all violations in a client request.
   133      repeated FieldViolation field_violations = 1;
   134  }
   135  
   136  // Contains metadata about the request that clients can attach when filing a bug
   137  // or providing other forms of feedback.
   138  message RequestInfo {
   139      // An opaque string that should only be interpreted by the service generating
   140      // it. For example, it can be used to identify requests in the service's logs.
   141      string request_id = 1;
   142  
   143      // Any data that was used to serve this request. For example, an encrypted
   144      // stack trace that can be sent back to the service provider for debugging.
   145      string serving_data = 2;
   146  }
   147  
   148  // Describes the resource that is being accessed.
   149  message ResourceInfo {
   150      // A name for the type of resource being accessed, e.g. "sql table",
   151      // "cloud identity bucket", "file", "Google calendar"; or the type URL
   152      // of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic".
   153      string resource_type = 1;
   154  
   155      // The name of the resource being accessed.  For example, a shared calendar
   156      // name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current
   157      // error is [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
   158      string resource_name = 2;
   159  
   160      // The owner of the resource (optional).
   161      // For example, "user:<owner email>" or "project:<Google developer project
   162      // id>".
   163      string owner = 3;
   164  
   165      // Describes what error is encountered when accessing this resource.
   166      // For example, updating a cloud project may require the `writer` permission
   167      // on the developer console project.
   168      string description = 4;
   169  }
   170  
   171  // Provides links to documentation or for performing an out of band action.
   172  //
   173  // For example, if a quota check failed with an error indicating the calling
   174  // project hasn't enabled the accessed service, this can contain a URL pointing
   175  // directly to the right place in the developer console to flip the bit.
   176  message Help {
   177      // Describes a URL link.
   178      message Link {
   179          // Describes what the link offers.
   180          string description = 1;
   181  
   182          // The URL of the link.
   183          string url = 2;
   184      }
   185  
   186      // URL(s) pointing to additional information on handling the current error.
   187      repeated Link links = 1;
   188  }
   189  
   190  // Provides a localized error message that is safe to return to the user
   191  // which can be attached to an RPC error.
   192  message LocalizedMessage {
   193      // The locale used following the specification defined at
   194      // http://www.rfc-editor.org/rfc/bcp/bcp47.txt.
   195      // Examples are: "en-US", "fr-CH", "es-MX"
   196      string locale = 1;
   197  
   198      // The localized error message in the above locale.
   199      string message = 2;
   200  }