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
Namespace
  Google.Api
  Assembly
  Google.Api.CommonProtos.dll
  Constructors
  
  
  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.
Authentication
  
    public Authentication Authentication { get; set; }
   
  
  
  
  Backend
  
    public Backend Backend { get; set; }
   
  API backend configuration.
    
      
        | Property Value | 
      
        | Type | Description | 
      
        | Backend |  | 
    
  
  
  Billing
  
    public Billing Billing { get; set; }
   
  
  
    
      
        | 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; }
   
  
  
    
      
        | 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; }
   
  
  
  Documentation
  
    public Documentation Documentation { get; set; }
   
  Additional API 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.
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
Http
  
    public Http Http { get; set; }
   
  
  
    
      
        | 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; }
   
  
  
    
      
        | Property Value | 
      
        | Type | Description | 
      
        | Logging |  | 
    
  
  
  Logs
  
    public RepeatedField<LogDescriptor> Logs { get; }
   
  Defines the logs used by this service.
Metrics
  
    public RepeatedField<MetricDescriptor> Metrics { get; }
   
  Defines the metrics used by this service.
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.
Monitoring
  
    public Monitoring Monitoring { get; set; }
   
  Monitoring configuration.
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; }
   
  
  
  ProducerProjectId
  
    public string ProducerProjectId { get; set; }
   
  The Google project that owns this service.
    
      
        | Property Value | 
      
        | Type | Description | 
      
        | string |  | 
    
  
  
  Publishing
  
    public Publishing Publishing { get; set; }
   
  
  
  
  Quota
  
    public Quota Quota { get; set; }
   
  
  
    
      
        | Property Value | 
      
        | Type | Description | 
      
        | Quota |  | 
    
  
  
  SourceInfo
  
    public SourceInfo SourceInfo { get; set; }
   
  Output only. The source information for this configuration if available.
SystemParameters
  
    public SystemParameters SystemParameters { get; set; }
   
  System parameter configuration.
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
Usage
  
    public Usage Usage { get; set; }
   
  Configuration controlling usage of this service.
    
      
        | Property Value | 
      
        | Type | Description | 
      
        | Usage |  | 
    
  
  Methods
  
  
  CalculateSize()
  
    public int CalculateSize()
   
  
    
      
        | Returns | 
      
        | Type | Description | 
      
        | int |  | 
    
  
  
  Clone()
  
  
  
  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)
   
  
    
      
        | Parameter | 
      
        | Name | Description | 
      
        | other | Service
 | 
    
  
  
  
  
    public void MergeFrom(CodedInputStream input)
   
  
  
  ToString()
  
    public override string ToString()
   
  
    
      
        | Returns | 
      
        | Type | Description | 
      
        | string |  | 
    
  
  Overrides
  
  
  WriteTo(CodedOutputStream)
  
    public void WriteTo(CodedOutputStream output)