public static readonly Extension<ServiceOptions, string> ApiVersion
The API version of this service, which should be sent by version-aware
clients to the service. This allows services to abide by the schema and
behavior of the service at the time this API version was deployed.
The format of the API version must be treated as opaque by clients.
Services may use a format with an apparent structure, but clients must
not rely on this to determine components within an API version, or attempt
to construct other valid API versions. Note that this is for upcoming
functionality and may not be implemented for all services.
Example:
service Foo {
option (google.api.api_version) = "v1_20230821_preview";
}
public static readonly RepeatedExtension<MethodOptions, string> MethodSignature
A definition of a client library method signature.
In client libraries, each proto RPC corresponds to one or more methods
which the end user is able to call, and calls the underlying RPC.
Normally, this method receives a single argument (a struct or instance
corresponding to the RPC request object). Defining this field will
add one or more overloads providing flattened or simpler method signatures
in some languages.
The fields on the method signature are provided as a comma-separated
string.
Would add the following Java overload (in addition to the method accepting
the request object):
public final Subscription createSubscription(String name, String topic)
The following backwards-compatibility guidelines apply:
Adding this annotation to an unannotated method is backwards
compatible.
Adding this annotation to a method which already has existing
method signature annotations is backwards compatible if and only if
the new method signature annotation is last in the sequence.
Modifying or removing an existing method signature annotation is
a breaking change.
Re-ordering existing method signature annotations is a breaking
change.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-28 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eClientExtensions\u003c/code\u003e class in the \u003ccode\u003eGoogle.Api\u003c/code\u003e namespace serves as a holder for extension identifiers generated from the top level of \u003ccode\u003egoogle/api/client.proto\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eApiVersion\u003c/code\u003e field defines the API version of a service, allowing version-aware clients to communicate with the service according to the correct schema and behavior.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eDefaultHost\u003c/code\u003e field specifies the hostname for a service without any prefix or protocol, which is critical for client connections.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eMethodSignature\u003c/code\u003e field defines method signatures for client libraries, allowing for the addition of overloads with flattened or simpler method signatures in various programming languages.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eOauthScopes\u003c/code\u003e field specifies the necessary OAuth scopes required for client interaction with a service, which can be a single scope or multiple comma-separated scopes.\u003c/p\u003e\n"]]],[],null,["# Class ClientExtensions (2.17.0)\n\nVersion latestkeyboard_arrow_down\n\n- [2.17.0 (latest)](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api.ClientExtensions)\n- [2.15.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.15.0/Google.Api.ClientExtensions)\n- [2.10.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.10.0/Google.Api.ClientExtensions)\n- [2.2.0](/dotnet/docs/reference/Google.Api.CommonProtos/2.2.0/Google.Api.ClientExtensions) \n\n public static class ClientExtensions\n\nHolder for extension identifiers generated from the top level of google/api/client.proto \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e ClientExtensions \n\nInherited Members\n-----------------\n\n[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)) \n[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)) \n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone) \n[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Api](/dotnet/docs/reference/Google.Api.CommonProtos/latest/Google.Api)\n\nAssembly\n--------\n\nGoogle.Api.CommonProtos.dll\n\nFields\n------\n\n### ApiVersion\n\n public static readonly Extension\u003cServiceOptions, string\u003e ApiVersion\n\nThe API version of this service, which should be sent by version-aware\nclients to the service. This allows services to abide by the schema and\nbehavior of the service at the time this API version was deployed.\nThe format of the API version must be treated as opaque by clients.\nServices may use a format with an apparent structure, but clients must\nnot rely on this to determine components within an API version, or attempt\nto construct other valid API versions. Note that this is for upcoming\nfunctionality and may not be implemented for all services.\n\nExample:\n\nservice Foo {\noption (google.api.api_version) = \"v1_20230821_preview\";\n}\n\n### DefaultHost\n\n public static readonly Extension\u003cServiceOptions, string\u003e DefaultHost\n\nThe hostname for this service.\nThis should be specified with no prefix or protocol.\n\nExample:\n\nservice Foo {\noption (google.api.default_host) = \"foo.googleapi.com\";\n...\n}\n\n### MethodSignature\n\n public static readonly RepeatedExtension\u003cMethodOptions, string\u003e MethodSignature\n\nA definition of a client library method signature.\n\nIn client libraries, each proto RPC corresponds to one or more methods\nwhich the end user is able to call, and calls the underlying RPC.\nNormally, this method receives a single argument (a struct or instance\ncorresponding to the RPC request object). Defining this field will\nadd one or more overloads providing flattened or simpler method signatures\nin some languages.\n\nThe fields on the method signature are provided as a comma-separated\nstring.\n\nFor example, the proto RPC and annotation:\n\nrpc CreateSubscription(CreateSubscriptionRequest)\nreturns (Subscription) {\noption (google.api.method_signature) = \"name,topic\";\n}\n\nWould add the following Java overload (in addition to the method accepting\nthe request object):\n\npublic final Subscription createSubscription(String name, String topic)\n\nThe following backwards-compatibility guidelines apply:\n\n- Adding this annotation to an unannotated method is backwards compatible.\n- Adding this annotation to a method which already has existing method signature annotations is backwards compatible if and only if the new method signature annotation is last in the sequence.\n- Modifying or removing an existing method signature annotation is a breaking change.\n- Re-ordering existing method signature annotations is a breaking change.\n\n### OauthScopes\n\n public static readonly Extension\u003cServiceOptions, string\u003e OauthScopes\n\nOAuth scopes needed for the client.\n\nExample:\n\nservice Foo {\noption (google.api.oauth_scopes) = \\\\\n\"\u003chttps://www.googleapis.com/auth/cloud-platform\u003e\";\n...\n}\n\nIf there is more than one scope, use a comma-separated string:\n\nExample:\n\nservice Foo {\noption (google.api.oauth_scopes) = \\\\\n\"\u003chttps://www.googleapis.com/auth/cloud-platform\u003e,\"\n\"\u003chttps://www.googleapis.com/auth/monitoring\u003e\";\n...\n}"]]