Class Service (2.2.0)

public sealed class Service : Protobuf.IMessage<Service>, Protobuf.IBufferMessage

Service is the root object of Google service configuration schema. It describes basic information about a service, such as the name and the title, and delegates other aspects to sub-sections. Each sub-section is either a proto message or a repeated proto message that configures a specific aspect, such as auth. See each proto message definition for details.

Example:

type: google.api.Service config_version: 3 name: calendar.googleapis.com title: Google Calendar API apis:

Inheritance

Object > Service

Namespace

Google.Api

Assembly

Google.Api.CommonProtos.dll

Constructors

Service()

public Service()

Service(Service)

public Service(Service other)
Parameter
NameDescription
otherService

Fields

ApisFieldNumber

public const int ApisFieldNumber = 3

Field number for the "apis" field.

Field Value
TypeDescription
Int32

AuthenticationFieldNumber

public const int AuthenticationFieldNumber = 11

Field number for the "authentication" field.

Field Value
TypeDescription
Int32

BackendFieldNumber

public const int BackendFieldNumber = 8

Field number for the "backend" field.

Field Value
TypeDescription
Int32

BillingFieldNumber

public const int BillingFieldNumber = 26

Field number for the "billing" field.

Field Value
TypeDescription
Int32

ConfigVersionFieldNumber

public const int ConfigVersionFieldNumber = 20

Field number for the "config_version" field.

Field Value
TypeDescription
Int32

ContextFieldNumber

public const int ContextFieldNumber = 12

Field number for the "context" field.

Field Value
TypeDescription
Int32

ControlFieldNumber

public const int ControlFieldNumber = 21

Field number for the "control" field.

Field Value
TypeDescription
Int32

DocumentationFieldNumber

public const int DocumentationFieldNumber = 6

Field number for the "documentation" field.

Field Value
TypeDescription
Int32

EndpointsFieldNumber

public const int EndpointsFieldNumber = 18

Field number for the "endpoints" field.

Field Value
TypeDescription
Int32

EnumsFieldNumber

public const int EnumsFieldNumber = 5

Field number for the "enums" field.

Field Value
TypeDescription
Int32

HttpFieldNumber

public const int HttpFieldNumber = 9

Field number for the "http" field.

Field Value
TypeDescription
Int32

IdFieldNumber

public const int IdFieldNumber = 33

Field number for the "id" field.

Field Value
TypeDescription
Int32

LoggingFieldNumber

public const int LoggingFieldNumber = 27

Field number for the "logging" field.

Field Value
TypeDescription
Int32

LogsFieldNumber

public const int LogsFieldNumber = 23

Field number for the "logs" field.

Field Value
TypeDescription
Int32

MetricsFieldNumber

public const int MetricsFieldNumber = 24

Field number for the "metrics" field.

Field Value
TypeDescription
Int32

MonitoredResourcesFieldNumber

public const int MonitoredResourcesFieldNumber = 25

Field number for the "monitored_resources" field.

Field Value
TypeDescription
Int32

MonitoringFieldNumber

public const int MonitoringFieldNumber = 28

Field number for the "monitoring" field.

Field Value
TypeDescription
Int32

NameFieldNumber

public const int NameFieldNumber = 1

Field number for the "name" field.

Field Value
TypeDescription
Int32

ProducerProjectIdFieldNumber

public const int ProducerProjectIdFieldNumber = 22

Field number for the "producer_project_id" field.

Field Value
TypeDescription
Int32

QuotaFieldNumber

public const int QuotaFieldNumber = 10

Field number for the "quota" field.

Field Value
TypeDescription
Int32

SourceInfoFieldNumber

public const int SourceInfoFieldNumber = 37

Field number for the "source_info" field.

Field Value
TypeDescription
Int32

SystemParametersFieldNumber

public const int SystemParametersFieldNumber = 29

Field number for the "system_parameters" field.

Field Value
TypeDescription
Int32

TitleFieldNumber

public const int TitleFieldNumber = 2

Field number for the "title" field.

Field Value
TypeDescription
Int32

Types_FieldNumber

public const int Types_FieldNumber = 4

Field number for the "types" field.

Field Value
TypeDescription
Int32

UsageFieldNumber

public const int UsageFieldNumber = 15

Field number for the "usage" field.

Field Value
TypeDescription
Int32

Properties

Apis

public Protobuf.Collections.RepeatedField<Protobuf.WellKnownTypes.Api> Apis { get; }

A list of API interfaces exported by this service. Only the name field of the [google.protobuf.Api][google.protobuf.Api] needs to be provided by the configuration author, as the remaining fields will be derived from the IDL during the normalization process. It is an error to specify an API interface here which cannot be resolved against the associated IDL files.

Property Value
TypeDescription
Protobuf.Collections.RepeatedField<Protobuf.WellKnownTypes.Api>

Authentication

public Authentication Authentication { get; set; }

Auth configuration.

Property Value
TypeDescription
Authentication

Backend

public Backend Backend { get; set; }

API backend configuration.

Property Value
TypeDescription
Backend

Billing

public Billing Billing { get; set; }

Billing configuration.

Property Value
TypeDescription
Billing

ConfigVersion

public uint? ConfigVersion { get; set; }

The semantic version of the service configuration. The config version affects the interpretation of the service configuration. For example, certain features are enabled by default for certain config versions.

The latest config version is 3.

Property Value
TypeDescription
Nullable<UInt32>

Context

public Context Context { get; set; }

Context configuration.

Property Value
TypeDescription
Context

Control

public Control Control { get; set; }

Configuration for the service control plane.

Property Value
TypeDescription
Control

Descriptor

public static Protobuf.Reflection.MessageDescriptor Descriptor { get; }
Property Value
TypeDescription
Protobuf.Reflection.MessageDescriptor

Documentation

public Documentation Documentation { get; set; }

Additional API documentation.

Property Value
TypeDescription
Documentation

Endpoints

public Protobuf.Collections.RepeatedField<Endpoint> Endpoints { get; }

Configuration for network endpoints. If this is empty, then an endpoint with the same name as the service is automatically generated to service all defined APIs.

Property Value
TypeDescription
Protobuf.Collections.RepeatedField<Endpoint>

Enums

public Protobuf.Collections.RepeatedField<Protobuf.WellKnownTypes.Enum> Enums { get; }

A list of all enum types included in this API service. Enums referenced directly or indirectly by the apis are automatically included. Enums which are not referenced but shall be included should be listed here by name. Example:

enums:

  • name: google.someapi.v1.SomeEnum
Property Value
TypeDescription
Protobuf.Collections.RepeatedField<Protobuf.WellKnownTypes.Enum>

Http

public Http Http { get; set; }

HTTP configuration.

Property Value
TypeDescription
Http

Id

public string Id { get; set; }

A unique ID for a specific instance of this message, typically assigned by the client for tracking purpose. Must be no longer than 63 characters and only lower case letters, digits, '.', '_' and '-' are allowed. If empty, the server may choose to generate one instead.

Property Value
TypeDescription
String

Logging

public Logging Logging { get; set; }

Logging configuration.

Property Value
TypeDescription
Logging

Logs

public Protobuf.Collections.RepeatedField<LogDescriptor> Logs { get; }

Defines the logs used by this service.

Property Value
TypeDescription
Protobuf.Collections.RepeatedField<LogDescriptor>

Metrics

public Protobuf.Collections.RepeatedField<MetricDescriptor> Metrics { get; }

Defines the metrics used by this service.

Property Value
TypeDescription
Protobuf.Collections.RepeatedField<MetricDescriptor>

MonitoredResources

public Protobuf.Collections.RepeatedField<MonitoredResourceDescriptor> MonitoredResources { get; }

Defines the monitored resources used by this service. This is required by the [Service.monitoring][google.api.Service.monitoring] and [Service.logging][google.api.Service.logging] configurations.

Property Value
TypeDescription
Protobuf.Collections.RepeatedField<MonitoredResourceDescriptor>

Monitoring

public Monitoring Monitoring { get; set; }

Monitoring configuration.

Property Value
TypeDescription
Monitoring

Name

public string Name { get; set; }

The service name, which is a DNS-like logical identifier for the service, such as calendar.googleapis.com. The service name typically goes through DNS verification to make sure the owner of the service also owns the DNS name.

Property Value
TypeDescription
String

Parser

public static Protobuf.MessageParser<Service> Parser { get; }
Property Value
TypeDescription
Protobuf.MessageParser<Service>

ProducerProjectId

public string ProducerProjectId { get; set; }

The Google project that owns this service.

Property Value
TypeDescription
String

Quota

public Quota Quota { get; set; }

Quota configuration.

Property Value
TypeDescription
Quota

SourceInfo

public SourceInfo SourceInfo { get; set; }

Output only. The source information for this configuration if available.

Property Value
TypeDescription
SourceInfo

SystemParameters

public SystemParameters SystemParameters { get; set; }

System parameter configuration.

Property Value
TypeDescription
SystemParameters

Title

public string Title { get; set; }

The product title for this service.

Property Value
TypeDescription
String

Types_

public Protobuf.Collections.RepeatedField<Protobuf.WellKnownTypes.Type> Types_ { get; }

A list of all proto message types included in this API service. Types referenced directly or indirectly by the apis are automatically included. Messages which are not referenced but shall be included, such as types used by the google.protobuf.Any type, should be listed here by name. Example:

types:

  • name: google.protobuf.Int32
Property Value
TypeDescription
Protobuf.Collections.RepeatedField<Protobuf.WellKnownTypes.Type>

Usage

public Usage Usage { get; set; }

Configuration controlling usage of this service.

Property Value
TypeDescription
Usage

Methods

CalculateSize()

public int CalculateSize()
Returns
TypeDescription
Int32

Clone()

public Service Clone()
Returns
TypeDescription
Service

Equals(Service)

public bool Equals(Service other)
Parameter
NameDescription
otherService
Returns
TypeDescription
Boolean

Equals(Object)

public override bool Equals(object other)
Parameter
NameDescription
otherObject
Returns
TypeDescription
Boolean

GetHashCode()

public override int GetHashCode()
Returns
TypeDescription
Int32

MergeFrom(Service)

public void MergeFrom(Service other)
Parameter
NameDescription
otherService

MergeFrom(Protobuf.CodedInputStream)

public void MergeFrom(Protobuf.CodedInputStream input)
Parameter
NameDescription
inputProtobuf.CodedInputStream

ToString()

public override string ToString()
Returns
TypeDescription
String

WriteTo(Protobuf.CodedOutputStream)

public void WriteTo(Protobuf.CodedOutputStream output)
Parameter
NameDescription
outputProtobuf.CodedOutputStream