Class Service (2.15.0)

public sealed class Service : IMessage<Service>, IEquatable<Service>, IDeepCloneable<Service>, IBufferMessage, IMessage

Service is the root object of Google API service configuration (service config). It describes the basic information about a logical service, such as the service name and the user-facing 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. For more information, see each proto message definition.

Example:

type: google.api.Service
name: calendar.googleapis.com
title: Google Calendar API
apis:
- name: google.calendar.v3.Calendar

visibility:
  rules:
  - selector: "google.calendar.v3.*"
    restriction: PREVIEW
backend:
  rules:
  - selector: "google.calendar.v3.*"
    address: calendar.example.com

authentication:
  providers:
  - id: google_calendar_auth
    jwks_uri: https://www.googleapis.com/oauth2/v1/certs
    issuer: https://securetoken.google.com
  rules:
  - selector: "*"
    requirements:
      provider_id: google_calendar_auth

Inheritance

object > Service

Namespace

Google.Api

Assembly

Google.Api.CommonProtos.dll

Constructors

Service()

public Service()

Service(Service)

public Service(Service other)
Parameter
Name Description
other Service

Fields

ApisFieldNumber

public const int ApisFieldNumber = 3

Field number for the "apis" field.

Field Value
Type Description
int

AuthenticationFieldNumber

public const int AuthenticationFieldNumber = 11

Field number for the "authentication" field.

Field Value
Type Description
int

BackendFieldNumber

public const int BackendFieldNumber = 8

Field number for the "backend" field.

Field Value
Type Description
int

BillingFieldNumber

public const int BillingFieldNumber = 26

Field number for the "billing" field.

Field Value
Type Description
int

ConfigVersionFieldNumber

public const int ConfigVersionFieldNumber = 20

Field number for the "config_version" field.

Field Value
Type Description
int

ContextFieldNumber

public const int ContextFieldNumber = 12

Field number for the "context" field.

Field Value
Type Description
int

ControlFieldNumber

public const int ControlFieldNumber = 21

Field number for the "control" field.

Field Value
Type Description
int

DocumentationFieldNumber

public const int DocumentationFieldNumber = 6

Field number for the "documentation" field.

Field Value
Type Description
int

EndpointsFieldNumber

public const int EndpointsFieldNumber = 18

Field number for the "endpoints" field.

Field Value
Type Description
int

EnumsFieldNumber

public const int EnumsFieldNumber = 5

Field number for the "enums" field.

Field Value
Type Description
int

HttpFieldNumber

public const int HttpFieldNumber = 9

Field number for the "http" field.

Field Value
Type Description
int

IdFieldNumber

public const int IdFieldNumber = 33

Field number for the "id" field.

Field Value
Type Description
int

LoggingFieldNumber

public const int LoggingFieldNumber = 27

Field number for the "logging" field.

Field Value
Type Description
int

LogsFieldNumber

public const int LogsFieldNumber = 23

Field number for the "logs" field.

Field Value
Type Description
int

MetricsFieldNumber

public const int MetricsFieldNumber = 24

Field number for the "metrics" field.

Field Value
Type Description
int

MonitoredResourcesFieldNumber

public const int MonitoredResourcesFieldNumber = 25

Field number for the "monitored_resources" field.

Field Value
Type Description
int

MonitoringFieldNumber

public const int MonitoringFieldNumber = 28

Field number for the "monitoring" field.

Field Value
Type Description
int

NameFieldNumber

public const int NameFieldNumber = 1

Field number for the "name" field.

Field Value
Type Description
int

ProducerProjectIdFieldNumber

public const int ProducerProjectIdFieldNumber = 22

Field number for the "producer_project_id" field.

Field Value
Type Description
int

PublishingFieldNumber

public const int PublishingFieldNumber = 45

Field number for the "publishing" field.

Field Value
Type Description
int

QuotaFieldNumber

public const int QuotaFieldNumber = 10

Field number for the "quota" field.

Field Value
Type Description
int

SourceInfoFieldNumber

public const int SourceInfoFieldNumber = 37

Field number for the "source_info" field.

Field Value
Type Description
int

SystemParametersFieldNumber

public const int SystemParametersFieldNumber = 29

Field number for the "system_parameters" field.

Field Value
Type Description
int

TitleFieldNumber

public const int TitleFieldNumber = 2

Field number for the "title" field.

Field Value
Type Description
int

Types_FieldNumber

public const int Types_FieldNumber = 4

Field number for the "types" field.

Field Value
Type Description
int

UsageFieldNumber

public const int UsageFieldNumber = 15

Field number for the "usage" field.

Field Value
Type Description
int

Properties

Apis

public RepeatedField<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
Type Description
RepeatedFieldApi

Authentication

public Authentication Authentication { get; set; }

Auth configuration.

Property Value
Type Description
Authentication

Backend

public Backend Backend { get; set; }

API backend configuration.

Property Value
Type Description
Backend

Billing

public Billing Billing { get; set; }

Billing configuration.

Property Value
Type Description
Billing

ConfigVersion

public uint? ConfigVersion { get; set; }

Obsolete. Do not use.

This field has no semantic meaning. The service config compiler always sets this field to 3.

Property Value
Type Description
uint

Context

public Context Context { get; set; }

Context configuration.

Property Value
Type Description
Context

Control

public Control Control { get; set; }

Configuration for the service control plane.

Property Value
Type Description
Control

Descriptor

public static MessageDescriptor Descriptor { get; }
Property Value
Type Description
MessageDescriptor

Documentation

public Documentation Documentation { get; set; }

Additional API documentation.

Property Value
Type Description
Documentation

Endpoints

public 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
Type Description
RepeatedFieldEndpoint

Enums

public RepeatedField<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 by the configuration author. Example:

enums:
- name: google.someapi.v1.SomeEnum
Property Value
Type Description
RepeatedFieldEnum

Http

public Http Http { get; set; }

HTTP configuration.

Property Value
Type Description
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
Type Description
string

Logging

public Logging Logging { get; set; }

Logging configuration.

Property Value
Type Description
Logging

Logs

public RepeatedField<LogDescriptor> Logs { get; }

Defines the logs used by this service.

Property Value
Type Description
RepeatedFieldLogDescriptor

Metrics

public RepeatedField<MetricDescriptor> Metrics { get; }

Defines the metrics used by this service.

Property Value
Type Description
RepeatedFieldMetricDescriptor

MonitoredResources

public 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
Type Description
RepeatedFieldMonitoredResourceDescriptor

Monitoring

public Monitoring Monitoring { get; set; }

Monitoring configuration.

Property Value
Type Description
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
Type Description
string

Parser

public static MessageParser<Service> Parser { get; }
Property Value
Type Description
MessageParserService

ProducerProjectId

public string ProducerProjectId { get; set; }

The Google project that owns this service.

Property Value
Type Description
string

Publishing

public Publishing Publishing { get; set; }

Settings for Google Cloud Client libraries generated from APIs defined as protocol buffers.

Property Value
Type Description
Publishing

Quota

public Quota Quota { get; set; }

Quota configuration.

Property Value
Type Description
Quota

SourceInfo

public SourceInfo SourceInfo { get; set; }

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

Property Value
Type Description
SourceInfo

SystemParameters

public SystemParameters SystemParameters { get; set; }

System parameter configuration.

Property Value
Type Description
SystemParameters

Title

public string Title { get; set; }

The product title for this service, it is the name displayed in Google Cloud Console.

Property Value
Type Description
string

Types_

public RepeatedField<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 by the configuration author. Example:

types:
- name: google.protobuf.Int32
Property Value
Type Description
RepeatedFieldType

Usage

public Usage Usage { get; set; }

Configuration controlling usage of this service.

Property Value
Type Description
Usage

Methods

CalculateSize()

public int CalculateSize()

Calculates the size of this message in Protocol Buffer wire format, in bytes.

Returns
Type Description
int

The number of bytes required to write this message to a coded output stream.

Clone()

public Service Clone()

Creates a deep clone of this object.

Returns
Type Description
Service

A deep clone of this object.

Equals(Service)

public bool Equals(Service other)
Parameter
Name Description
other Service
Returns
Type Description
bool

Equals(object)

public override bool Equals(object other)
Parameter
Name Description
other object
Returns
Type Description
bool
Overrides

GetHashCode()

public override int GetHashCode()
Returns
Type Description
int
Overrides

MergeFrom(Service)

public void MergeFrom(Service other)

Merges the given message into this one.

Parameter
Name Description
other Service
Remarks

See the user guide for precise merge semantics.

MergeFrom(CodedInputStream)

public void MergeFrom(CodedInputStream input)

Merges the data from the specified coded input stream with the current message.

Parameter
Name Description
input CodedInputStream
Remarks

See the user guide for precise merge semantics.

ToString()

public override string ToString()
Returns
Type Description
string
Overrides

WriteTo(CodedOutputStream)

public void WriteTo(CodedOutputStream output)

Writes the data to the given coded output stream.

Parameter
Name Description
output CodedOutputStream

Coded output stream to write the data to. Must not be null.