Class ApiMetadata (4.2.0)

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.

Inheritance

Object > ApiMetadata

Namespace

Google.Api.Gax.Grpc

Assembly

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
NameDescription
nameString

The name of the API. Must not be null or empty.

descriptorsIEnumerable<FileDescriptor>

The protobuf descriptors of the API. Must not be null.

Remarks

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
NameDescription
nameString

The name of the API. Must not be null or empty.

descriptorsProviderFunc<IEnumerable<FileDescriptor>>

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
TypeDescription
IReadOnlyDictionary<String, ByteString>

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
TypeDescription
String

ProtobufDescriptors

public IReadOnlyList<FileDescriptor> ProtobufDescriptors { get; }

The protobuf descriptors used by this API.

Property Value
TypeDescription
IReadOnlyList<FileDescriptor>

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
TypeDescription
Boolean

TypeRegistry

public TypeRegistry TypeRegistry { get; }

A type registry containing all the types in ProtobufDescriptors.

Property Value
TypeDescription
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
NameDescription
overridesIEnumerable<KeyValuePair<String, ByteString>>

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
TypeDescription
ApiMetadata

The new instance.

WithRequestNumericEnumJsonEncoding(Boolean)

public ApiMetadata WithRequestNumericEnumJsonEncoding(bool value)

Returns a new instance based on this one, but with the specified value for RequestNumericEnumJsonEncoding.

Parameter
NameDescription
valueBoolean

The desired value of RequestNumericEnumJsonEncoding in the new instance.

Returns
TypeDescription
ApiMetadata

The new instance.