agones.dev/agones@v1.53.0/sdks/csharp/proto/googleapis/google/api/client.proto (about)

     1  // Copyright 2018 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  
    15  syntax = "proto3";
    16  
    17  package google.api;
    18  
    19  import "google/api/launch_stage.proto";
    20  import "google/protobuf/descriptor.proto";
    21  import "google/protobuf/duration.proto";
    22  
    23  option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations";
    24  option java_multiple_files = true;
    25  option java_outer_classname = "ClientProto";
    26  option java_package = "com.google.api";
    27  option objc_class_prefix = "GAPI";
    28  
    29  extend google.protobuf.MethodOptions {
    30    // A definition of a client library method signature.
    31    //
    32    // In client libraries, each proto RPC corresponds to one or more methods
    33    // which the end user is able to call, and calls the underlying RPC.
    34    // Normally, this method receives a single argument (a struct or instance
    35    // corresponding to the RPC request object). Defining this field will
    36    // add one or more overloads providing flattened or simpler method signatures
    37    // in some languages.
    38    //
    39    // The fields on the method signature are provided as a comma-separated
    40    // string.
    41    //
    42    // For example, the proto RPC and annotation:
    43    //
    44    //   rpc CreateSubscription(CreateSubscriptionRequest)
    45    //       returns (Subscription) {
    46    //     option (google.api.method_signature) = "name,topic";
    47    //   }
    48    //
    49    // Would add the following Java overload (in addition to the method accepting
    50    // the request object):
    51    //
    52    //   public final Subscription createSubscription(String name, String topic)
    53    //
    54    // The following backwards-compatibility guidelines apply:
    55    //
    56    //   * Adding this annotation to an unannotated method is backwards
    57    //     compatible.
    58    //   * Adding this annotation to a method which already has existing
    59    //     method signature annotations is backwards compatible if and only if
    60    //     the new method signature annotation is last in the sequence.
    61    //   * Modifying or removing an existing method signature annotation is
    62    //     a breaking change.
    63    //   * Re-ordering existing method signature annotations is a breaking
    64    //     change.
    65    repeated string method_signature = 1051;
    66  }
    67  
    68  extend google.protobuf.ServiceOptions {
    69    // The hostname for this service.
    70    // This should be specified with no prefix or protocol.
    71    //
    72    // Example:
    73    //
    74    //   service Foo {
    75    //     option (google.api.default_host) = "foo.googleapi.com";
    76    //     ...
    77    //   }
    78    string default_host = 1049;
    79  
    80    // OAuth scopes needed for the client.
    81    //
    82    // Example:
    83    //
    84    //   service Foo {
    85    //     option (google.api.oauth_scopes) = \
    86    //       "https://www.googleapis.com/auth/cloud-platform";
    87    //     ...
    88    //   }
    89    //
    90    // If there is more than one scope, use a comma-separated string:
    91    //
    92    // Example:
    93    //
    94    //   service Foo {
    95    //     option (google.api.oauth_scopes) = \
    96    //       "https://www.googleapis.com/auth/cloud-platform,"
    97    //       "https://www.googleapis.com/auth/monitoring";
    98    //     ...
    99    //   }
   100    string oauth_scopes = 1050;
   101  }
   102  
   103  // Required information for every language.
   104  message CommonLanguageSettings {
   105    // Link to automatically generated reference documentation.  Example:
   106    // https://cloud.google.com/nodejs/docs/reference/asset/latest
   107    string reference_docs_uri = 1 [deprecated = true];
   108  
   109    // The destination where API teams want this client library to be published.
   110    repeated ClientLibraryDestination destinations = 2;
   111  }
   112  
   113  // Details about how and where to publish client libraries.
   114  message ClientLibrarySettings {
   115    // Version of the API to apply these settings to.
   116    string version = 1;
   117  
   118    // Launch stage of this version of the API.
   119    LaunchStage launch_stage = 2;
   120  
   121    // When using transport=rest, the client request will encode enums as
   122    // numbers rather than strings.
   123    bool rest_numeric_enums = 3;
   124  
   125    // Settings for legacy Java features, supported in the Service YAML.
   126    JavaSettings java_settings = 21;
   127  
   128    // Settings for C++ client libraries.
   129    CppSettings cpp_settings = 22;
   130  
   131    // Settings for PHP client libraries.
   132    PhpSettings php_settings = 23;
   133  
   134    // Settings for Python client libraries.
   135    PythonSettings python_settings = 24;
   136  
   137    // Settings for Node client libraries.
   138    NodeSettings node_settings = 25;
   139  
   140    // Settings for .NET client libraries.
   141    DotnetSettings dotnet_settings = 26;
   142  
   143    // Settings for Ruby client libraries.
   144    RubySettings ruby_settings = 27;
   145  
   146    // Settings for Go client libraries.
   147    GoSettings go_settings = 28;
   148  }
   149  
   150  // This message configures the settings for publishing [Google Cloud Client
   151  // libraries](https://cloud.google.com/apis/docs/cloud-client-libraries)
   152  // generated from the service config.
   153  message Publishing {
   154    // A list of API method settings, e.g. the behavior for methods that use the
   155    // long-running operation pattern.
   156    repeated MethodSettings method_settings = 2;
   157  
   158    // Link to a place that API users can report issues.  Example:
   159    // https://issuetracker.google.com/issues/new?component=190865&template=1161103
   160    string new_issue_uri = 101;
   161  
   162    // Link to product home page.  Example:
   163    // https://cloud.google.com/asset-inventory/docs/overview
   164    string documentation_uri = 102;
   165  
   166    // Used as a tracking tag when collecting data about the APIs developer
   167    // relations artifacts like docs, packages delivered to package managers,
   168    // etc.  Example: "speech".
   169    string api_short_name = 103;
   170  
   171    // GitHub label to apply to issues and pull requests opened for this API.
   172    string github_label = 104;
   173  
   174    // GitHub teams to be added to CODEOWNERS in the directory in GitHub
   175    // containing source code for the client libraries for this API.
   176    repeated string codeowner_github_teams = 105;
   177  
   178    // A prefix used in sample code when demarking regions to be included in
   179    // documentation.
   180    string doc_tag_prefix = 106;
   181  
   182    // For whom the client library is being published.
   183    ClientLibraryOrganization organization = 107;
   184  
   185    // Client library settings.  If the same version string appears multiple
   186    // times in this list, then the last one wins.  Settings from earlier
   187    // settings with the same version string are discarded.
   188    repeated ClientLibrarySettings library_settings = 109;
   189  }
   190  
   191  // Settings for Java client libraries.
   192  message JavaSettings {
   193    // The package name to use in Java. Clobbers the java_package option
   194    // set in the protobuf. This should be used **only** by APIs
   195    // who have already set the language_settings.java.package_name" field
   196    // in gapic.yaml. API teams should use the protobuf java_package option
   197    // where possible.
   198    //
   199    // Example of a YAML configuration::
   200    //
   201    //  publishing:
   202    //    java_settings:
   203    //      library_package: com.google.cloud.pubsub.v1
   204    string library_package = 1;
   205  
   206    // Configure the Java class name to use instead of the service's for its
   207    // corresponding generated GAPIC client. Keys are fully-qualified
   208    // service names as they appear in the protobuf (including the full
   209    // the language_settings.java.interface_names" field in gapic.yaml. API
   210    // teams should otherwise use the service name as it appears in the
   211    // protobuf.
   212    //
   213    // Example of a YAML configuration::
   214    //
   215    //  publishing:
   216    //    java_settings:
   217    //      service_class_names:
   218    //        - google.pubsub.v1.Publisher: TopicAdmin
   219    //        - google.pubsub.v1.Subscriber: SubscriptionAdmin
   220    map<string, string> service_class_names = 2;
   221  
   222    // Some settings.
   223    CommonLanguageSettings common = 3;
   224  }
   225  
   226  // Settings for C++ client libraries.
   227  message CppSettings {
   228    // Some settings.
   229    CommonLanguageSettings common = 1;
   230  }
   231  
   232  // Settings for Php client libraries.
   233  message PhpSettings {
   234    // Some settings.
   235    CommonLanguageSettings common = 1;
   236  }
   237  
   238  // Settings for Python client libraries.
   239  message PythonSettings {
   240    // Some settings.
   241    CommonLanguageSettings common = 1;
   242  }
   243  
   244  // Settings for Node client libraries.
   245  message NodeSettings {
   246    // Some settings.
   247    CommonLanguageSettings common = 1;
   248  }
   249  
   250  // Settings for Dotnet client libraries.
   251  message DotnetSettings {
   252    // Some settings.
   253    CommonLanguageSettings common = 1;
   254  }
   255  
   256  // Settings for Ruby client libraries.
   257  message RubySettings {
   258    // Some settings.
   259    CommonLanguageSettings common = 1;
   260  }
   261  
   262  // Settings for Go client libraries.
   263  message GoSettings {
   264    // Some settings.
   265    CommonLanguageSettings common = 1;
   266  }
   267  
   268  // Describes the generator configuration for a method.
   269  message MethodSettings {
   270    // Describes settings to use when generating API methods that use the
   271    // long-running operation pattern.
   272    // All default values below are from those used in the client library
   273    // generators (e.g.
   274    // [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).
   275    message LongRunning {
   276      // Initial delay after which the first poll request will be made.
   277      // Default value: 5 seconds.
   278      google.protobuf.Duration initial_poll_delay = 1;
   279  
   280      // Multiplier to gradually increase delay between subsequent polls until it
   281      // reaches max_poll_delay.
   282      // Default value: 1.5.
   283      float poll_delay_multiplier = 2;
   284  
   285      // Maximum time between two subsequent poll requests.
   286      // Default value: 45 seconds.
   287      google.protobuf.Duration max_poll_delay = 3;
   288  
   289      // Total polling timeout.
   290      // Default value: 5 minutes.
   291      google.protobuf.Duration total_poll_timeout = 4;
   292    }
   293  
   294    // The fully qualified name of the method, for which the options below apply.
   295    // This is used to find the method to apply the options.
   296    string selector = 1;
   297  
   298    // Describes settings to use for long-running operations when generating
   299    // API methods for RPCs. Complements RPCs that use the annotations in
   300    // google/longrunning/operations.proto.
   301    //
   302    // Example of a YAML configuration::
   303    //
   304    //  publishing:
   305    //    method_behavior:
   306    //      - selector: CreateAdDomain
   307    //        long_running:
   308    //          initial_poll_delay:
   309    //            seconds: 60 # 1 minute
   310    //          poll_delay_multiplier: 1.5
   311    //          max_poll_delay:
   312    //            seconds: 360 # 6 minutes
   313    //          total_poll_timeout:
   314    //             seconds: 54000 # 90 minutes
   315    LongRunning long_running = 2;
   316  }
   317  
   318  // The organization for which the client libraries are being published.
   319  // Affects the url where generated docs are published, etc.
   320  enum ClientLibraryOrganization {
   321    // Not useful.
   322    CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0;
   323  
   324    // Google Cloud Platform Org.
   325    CLOUD = 1;
   326  
   327    // Ads (Advertising) Org.
   328    ADS = 2;
   329  
   330    // Photos Org.
   331    PHOTOS = 3;
   332  
   333    // Street View Org.
   334    STREET_VIEW = 4;
   335  }
   336  
   337  // To where should client libraries be published?
   338  enum ClientLibraryDestination {
   339    // Client libraries will neither be generated nor published to package
   340    // managers.
   341    CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0;
   342  
   343    // Generate the client library in a repo under github.com/googleapis,
   344    // but don't publish it to package managers.
   345    GITHUB = 10;
   346  
   347    // Publish the library to package managers like nuget.org and npmjs.com.
   348    PACKAGE_MANAGER = 20;
   349  }