Class Service (2.10.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
NameDescription
otherService

Fields

ApisFieldNumber

public const int ApisFieldNumber = 3

Field number for the "apis" field.

Field Value
TypeDescription
int

AuthenticationFieldNumber

public const int AuthenticationFieldNumber = 11

Field number for the "authentication" field.

Field Value
TypeDescription
int

BackendFieldNumber

public const int BackendFieldNumber = 8

Field number for the "backend" field.

Field Value
TypeDescription
int

BillingFieldNumber

public const int BillingFieldNumber = 26

Field number for the "billing" field.

Field Value
TypeDescription
int

ConfigVersionFieldNumber

public const int ConfigVersionFieldNumber = 20

Field number for the "config_version" field.

Field Value
TypeDescription
int

ContextFieldNumber

public const int ContextFieldNumber = 12

Field number for the "context" field.

Field Value
TypeDescription
int

ControlFieldNumber

public const int ControlFieldNumber = 21

Field number for the "control" field.

Field Value
TypeDescription
int

DocumentationFieldNumber

public const int DocumentationFieldNumber = 6

Field number for the "documentation" field.

Field Value
TypeDescription
int

EndpointsFieldNumber

public const int EndpointsFieldNumber = 18

Field number for the "endpoints" field.

Field Value
TypeDescription
int

EnumsFieldNumber

public const int EnumsFieldNumber = 5

Field number for the "enums" field.

Field Value
TypeDescription
int

HttpFieldNumber

public const int HttpFieldNumber = 9

Field number for the "http" field.

Field Value
TypeDescription
int

IdFieldNumber

public const int IdFieldNumber = 33

Field number for the "id" field.

Field Value
TypeDescription
int

LoggingFieldNumber

public const int LoggingFieldNumber = 27

Field number for the "logging" field.

Field Value
TypeDescription
int

LogsFieldNumber

public const int LogsFieldNumber = 23

Field number for the "logs" field.

Field Value
TypeDescription
int

MetricsFieldNumber

public const int MetricsFieldNumber = 24

Field number for the "metrics" field.

Field Value
TypeDescription
int

MonitoredResourcesFieldNumber

public const int MonitoredResourcesFieldNumber = 25

Field number for the "monitored_resources" field.

Field Value
TypeDescription
int

MonitoringFieldNumber

public const int MonitoringFieldNumber = 28

Field number for the "monitoring" field.

Field Value
TypeDescription
int

NameFieldNumber

public const int NameFieldNumber = 1

Field number for the "name" field.

Field Value
TypeDescription
int

ProducerProjectIdFieldNumber

public const int ProducerProjectIdFieldNumber = 22

Field number for the "producer_project_id" field.

Field Value
TypeDescription
int

PublishingFieldNumber

public const int PublishingFieldNumber = 45

Field number for the "publishing" field.

Field Value
TypeDescription
int

QuotaFieldNumber

public const int QuotaFieldNumber = 10

Field number for the "quota" field.

Field Value
TypeDescription
int

SourceInfoFieldNumber

public const int SourceInfoFieldNumber = 37

Field number for the "source_info" field.

Field Value
TypeDescription
int

SystemParametersFieldNumber

public const int SystemParametersFieldNumber = 29

Field number for the "system_parameters" field.

Field Value
TypeDescription
int

TitleFieldNumber

public const int TitleFieldNumber = 2

Field number for the "title" field.

Field Value
TypeDescription
int

Types_FieldNumber

public const int Types_FieldNumber = 4

Field number for the "types" field.

Field Value
TypeDescription
int

UsageFieldNumber

public const int UsageFieldNumber = 15

Field number for the "usage" field.

Field Value
TypeDescription
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
TypeDescription
RepeatedFieldApi

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; }

Obsolete. Do not use.

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

Property Value
TypeDescription
uint

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 MessageDescriptor Descriptor { get; }
Property Value
TypeDescription
MessageDescriptor

Documentation

public Documentation Documentation { get; set; }

Additional API documentation.

Property Value
TypeDescription
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
TypeDescription
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
TypeDescription
RepeatedFieldEnum

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 RepeatedField<LogDescriptor> Logs { get; }

Defines the logs used by this service.

Property Value
TypeDescription
RepeatedFieldLogDescriptor

Metrics

public RepeatedField<MetricDescriptor> Metrics { get; }

Defines the metrics used by this service.

Property Value
TypeDescription
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
TypeDescription
RepeatedFieldMonitoredResourceDescriptor

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 MessageParser<Service> Parser { get; }
Property Value
TypeDescription
MessageParserService

ProducerProjectId

public string ProducerProjectId { get; set; }

The Google project that owns this service.

Property Value
TypeDescription
string

Publishing

public Publishing Publishing { get; set; }

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

Property Value
TypeDescription
Publishing

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, it is the name displayed in Google Cloud Console.

Property Value
TypeDescription
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
TypeDescription
RepeatedFieldType

Usage

public Usage Usage { get; set; }

Configuration controlling usage of this service.

Property Value
TypeDescription
Usage

Methods

CalculateSize()

public int CalculateSize()
Returns
TypeDescription
int

Clone()

public Service Clone()
Returns
TypeDescription
Service

Equals(Service)

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

Equals(object)

public override bool Equals(object other)
Parameter
NameDescription
otherobject
Returns
TypeDescription
bool
Overrides

GetHashCode()

public override int GetHashCode()
Returns
TypeDescription
int
Overrides

MergeFrom(Service)

public void MergeFrom(Service other)
Parameter
NameDescription
otherService

MergeFrom(CodedInputStream)

public void MergeFrom(CodedInputStream input)
Parameter
NameDescription
inputCodedInputStream

ToString()

public override string ToString()
Returns
TypeDescription
string
Overrides

WriteTo(CodedOutputStream)

public void WriteTo(CodedOutputStream output)
Parameter
NameDescription
outputCodedOutputStream