public sealed class ApiMetadata
Provides metadata about an API. This is expected to be constructed with a single instance per API; equality is by simple identity.
Namespace
Google.Api.Gax.GrpcAssembly
Google.Api.Gax.Grpc.dll
Constructors
ApiMetadata(string, IEnumerable<FileDescriptor>)
public ApiMetadata(string name, IEnumerable<FileDescriptor> descriptors)
Creates an API descriptor from a sequence of file descriptors.
Parameters | |
---|---|
Name | Description |
name |
string The name of the API. Must not be null or empty. |
descriptors |
IEnumerableFileDescriptor The protobuf descriptors of the API. Must not be null. |
The sequence is evaluated once, on construction.
ApiMetadata(string, Func<IEnumerable<FileDescriptor>>)
public ApiMetadata(string name, Func<IEnumerable<FileDescriptor>> descriptorsProvider)
Creates an API descriptor which lazily requests the protobuf descriptors when ProtobufDescriptors is first called.
Parameters | |
---|---|
Name | Description |
name |
string The name of the API. Must not be null or empty. |
descriptorsProvider |
FuncIEnumerableFileDescriptor A provider function for the protobuf descriptors of the API. Must not be null, and must not return a null value. This will only be called once by this API descriptor, when first requested. |
Properties
HttpRuleOverrides
public IReadOnlyDictionary<string, ByteString> HttpRuleOverrides { get; }
A dictionary (based on ordinal string comparisons) from fully-qualified RPC names to byte strings representing overrides for the HTTP rule. This is designed to support mixins which are hosted at individual APIs, but which are exposed via different URLs to the original mixin definition. This is never null, but may be empty.
Property Value | |
---|---|
Type | Description |
IReadOnlyDictionarystringByteString |
Name
public string Name { get; }
The name of the API (typically the fully-qualified name of the client library package). This is never null or empty.
Property Value | |
---|---|
Type | Description |
string |
ProtobufDescriptors
public IReadOnlyList<FileDescriptor> ProtobufDescriptors { get; }
The protobuf descriptors used by this API.
Property Value | |
---|---|
Type | Description |
IReadOnlyListFileDescriptor |
RequestNumericEnumJsonEncoding
public bool RequestNumericEnumJsonEncoding { get; }
When true, RestGrpcAdapter will request that enums are encoded as numbers in JSON rather than as strings, preserving unknown values.
Property Value | |
---|---|
Type | Description |
bool |
TypeRegistry
public TypeRegistry TypeRegistry { get; }
A type registry containing all the types in ProtobufDescriptors.
Property Value | |
---|---|
Type | Description |
TypeRegistry |
Methods
WithHttpRuleOverrides(IEnumerable<KeyValuePair<string, ByteString>>)
public ApiMetadata WithHttpRuleOverrides(IEnumerable<KeyValuePair<string, ByteString>> overrides)
Creates a new instance with the same values as this one, other than the given set of HttpRule overrides.
Parameter | |
---|---|
Name | Description |
overrides |
IEnumerableKeyValuePairstringByteString The HttpRule overrides for services in this package; typically used to override URLs for the REST transport. Must not be null. Will be cloned in the form of an immutable dictionary, after which the original sequence is discarded. |
Returns | |
---|---|
Type | Description |
ApiMetadata |
The new instance. |
WithRequestNumericEnumJsonEncoding(bool)
public ApiMetadata WithRequestNumericEnumJsonEncoding(bool value)
Returns a new instance based on this one, but with the specified value for RequestNumericEnumJsonEncoding.
Parameter | |
---|---|
Name | Description |
value |
bool The desired value of RequestNumericEnumJsonEncoding in the new instance. |
Returns | |
---|---|
Type | Description |
ApiMetadata |
The new instance. |