Home | History | Annotate | Download | only in servicemanagement_v1
      1 """Generated message classes for servicemanagement version v1.
      2 
      3 The service management API for Google Cloud Platform
      4 """
      5 # NOTE: This file is autogenerated and should not be edited by hand.
      6 
      7 from apitools.base.protorpclite import messages as _messages
      8 from apitools.base.py import encoding
      9 from apitools.base.py import extra_types
     10 
     11 
     12 package = 'servicemanagement'
     13 
     14 
     15 class Api(_messages.Message):
     16   """Api is a light-weight descriptor for a protocol buffer service.
     17 
     18   Enums:
     19     SyntaxValueValuesEnum: The source syntax of the service.
     20 
     21   Fields:
     22     methods: The methods of this api, in unspecified order.
     23     mixins: Included APIs. See Mixin.
     24     name: The fully qualified name of this api, including package name
     25       followed by the api's simple name.
     26     options: Any metadata attached to the API.
     27     sourceContext: Source context for the protocol buffer service represented
     28       by this message.
     29     syntax: The source syntax of the service.
     30     version: A version string for this api. If specified, must have the form
     31       `major-version.minor-version`, as in `1.10`. If the minor version is
     32       omitted, it defaults to zero. If the entire version field is empty, the
     33       major version is derived from the package name, as outlined below. If
     34       the field is not empty, the version in the package name will be verified
     35       to be consistent with what is provided here.  The versioning schema uses
     36       [semantic versioning](http://semver.org) where the major version number
     37       indicates a breaking change and the minor version an additive, non-
     38       breaking change. Both version numbers are signals to users what to
     39       expect from different versions, and should be carefully chosen based on
     40       the product plan.  The major version is also reflected in the package
     41       name of the API, which must end in `v<major-version>`, as in
     42       `google.feature.v1`. For major versions 0 and 1, the suffix can be
     43       omitted. Zero major versions must only be used for experimental, none-GA
     44       apis.
     45   """
     46 
     47   class SyntaxValueValuesEnum(_messages.Enum):
     48     """The source syntax of the service.
     49 
     50     Values:
     51       SYNTAX_PROTO2: Syntax `proto2`.
     52       SYNTAX_PROTO3: Syntax `proto3`.
     53     """
     54     SYNTAX_PROTO2 = 0
     55     SYNTAX_PROTO3 = 1
     56 
     57   methods = _messages.MessageField('Method', 1, repeated=True)
     58   mixins = _messages.MessageField('Mixin', 2, repeated=True)
     59   name = _messages.StringField(3)
     60   options = _messages.MessageField('Option', 4, repeated=True)
     61   sourceContext = _messages.MessageField('SourceContext', 5)
     62   syntax = _messages.EnumField('SyntaxValueValuesEnum', 6)
     63   version = _messages.StringField(7)
     64 
     65 
     66 class AreaUnderCurveParams(_messages.Message):
     67   """AreaUnderCurveParams groups the metrics relevant to generating duration
     68   based metric from base (snapshot) metric and delta (change) metric.  The
     69   generated metric has two dimensions:    resource usage metric and the
     70   duration the metric applies.  Essentially the generated metric is the Area
     71   Under Curve(AUC) of the "duration - resource" usage curve. This AUC metric
     72   is readily appliable to billing since "billable resource usage" depends on
     73   resource usage and duration of the resource used.  A service config may
     74   contain multiple resources and corresponding metrics. AreaUnderCurveParams
     75   groups the relevant ones: which snapshot_metric and change_metric are used
     76   to produce which generated_metric.
     77 
     78   Fields:
     79     changeMetric: Change of resource usage at a particular timestamp. This
     80       should a DELTA metric.
     81     generatedMetric: Metric generated from snapshot_metric and change_metric.
     82       This is also a DELTA metric.
     83     snapshotMetric: Total usage of a resource at a particular timestamp. This
     84       should be a GAUGE metric.
     85   """
     86 
     87   changeMetric = _messages.StringField(1)
     88   generatedMetric = _messages.StringField(2)
     89   snapshotMetric = _messages.StringField(3)
     90 
     91 
     92 class AuthProvider(_messages.Message):
     93   """Configuration for an anthentication provider, including support for [JSON
     94   Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
     95   token-32).
     96 
     97   Fields:
     98     id: The unique identifier of the auth provider. It will be referred to by
     99       `AuthRequirement.provider_id`.  Example: "bookstore_auth".
    100     issuer: Identifies the principal that issued the JWT. See
    101       https://tools.ietf.org/html/draft-ietf-oauth-json-web-
    102       token-32#section-4.1.1 Usually a URL or an email address.  Example:
    103       https://securetoken.google.com Example:
    104       1234567-compute (at] developer.gserviceaccount.com
    105     jwksUri: URL of the provider's public key set to validate signature of the
    106       JWT. See [OpenID Discovery](https://openid.net/specs/openid-connect-
    107       discovery-1_0.html#ProviderMetadata). Optional if the key set document:
    108       - can be retrieved from    [OpenID Discovery](https://openid.net/specs
    109       /openid-connect-discovery-1_0.html    of the issuer.  - can be inferred
    110       from the email domain of the issuer (e.g. a Google service account).
    111       Example: https://www.googleapis.com/oauth2/v1/certs
    112   """
    113 
    114   id = _messages.StringField(1)
    115   issuer = _messages.StringField(2)
    116   jwksUri = _messages.StringField(3)
    117 
    118 
    119 class AuthRequirement(_messages.Message):
    120   """User-defined authentication requirements, including support for [JSON Web
    121   Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-
    122   token-32).
    123 
    124   Fields:
    125     audiences: The list of JWT [audiences](https://tools.ietf.org/html/draft-
    126       ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access.
    127       A JWT containing any of these audiences will be accepted. When this
    128       setting is absent, only JWTs with audience
    129       "https://Service_name/API_name" will be accepted. For example, if no
    130       audiences are in the setting, LibraryService API will only accept JWTs
    131       with the following audience "https://library-
    132       example.googleapis.com/google.example.library.v1.LibraryService".
    133       Example:      audiences: bookstore_android.apps.googleusercontent.com,
    134       bookstore_web.apps.googleusercontent.com
    135     providerId: id from authentication provider.  Example:      provider_id:
    136       bookstore_auth
    137   """
    138 
    139   audiences = _messages.StringField(1)
    140   providerId = _messages.StringField(2)
    141 
    142 
    143 class Authentication(_messages.Message):
    144   """`Authentication` defines the authentication configuration for an API.
    145   Example for an API targeted for external use:      name:
    146   calendar.googleapis.com     authentication:       rules:       - selector:
    147   "*"         oauth:           canonical_scopes:
    148   https://www.googleapis.com/auth/calendar        - selector:
    149   google.calendar.Delegate         oauth:           canonical_scopes:
    150   https://www.googleapis.com/auth/calendar.read
    151 
    152   Fields:
    153     providers: Defines a set of authentication providers that a service
    154       supports.
    155     rules: Individual rules for authentication.
    156   """
    157 
    158   providers = _messages.MessageField('AuthProvider', 1, repeated=True)
    159   rules = _messages.MessageField('AuthenticationRule', 2, repeated=True)
    160 
    161 
    162 class AuthenticationRule(_messages.Message):
    163   """Authentication rules for the service.  By default, if a method has any
    164   authentication requirements, every request must include a valid credential
    165   matching one of the requirements. It's an error to include more than one
    166   kind of credential in a single request.  If a method doesn't have any auth
    167   requirements, request credentials will be ignored.
    168 
    169   Fields:
    170     allowWithoutCredential: Whether to allow requests without a credential.
    171       If quota is enabled, an API key is required for such request to pass the
    172       quota check.
    173     oauth: The requirements for OAuth credentials.
    174     requirements: Requirements for additional authentication providers.
    175     selector: Selects the methods to which this rule applies.  Refer to
    176       selector for syntax details.
    177   """
    178 
    179   allowWithoutCredential = _messages.BooleanField(1)
    180   oauth = _messages.MessageField('OAuthRequirements', 2)
    181   requirements = _messages.MessageField('AuthRequirement', 3, repeated=True)
    182   selector = _messages.StringField(4)
    183 
    184 
    185 class Backend(_messages.Message):
    186   """`Backend` defines the backend configuration for a service.
    187 
    188   Fields:
    189     rules: A list of backend rules providing configuration for individual API
    190       elements.
    191   """
    192 
    193   rules = _messages.MessageField('BackendRule', 1, repeated=True)
    194 
    195 
    196 class BackendRule(_messages.Message):
    197   """A backend rule provides configuration for an individual API element.
    198 
    199   Fields:
    200     address: The address of the API backend.
    201     deadline: The number of seconds to wait for a response from a request.
    202       The default depends on the deployment context.
    203     selector: Selects the methods to which this rule applies.  Refer to
    204       selector for syntax details.
    205   """
    206 
    207   address = _messages.StringField(1)
    208   deadline = _messages.FloatField(2)
    209   selector = _messages.StringField(3)
    210 
    211 
    212 class Billing(_messages.Message):
    213   """Billing related configuration of the service.  The following example
    214   shows how to configure metrics for billing:      metrics:     - name:
    215   library.googleapis.com/read_calls       metric_kind: DELTA       value_type:
    216   INT64     - name: library.googleapis.com/write_calls       metric_kind:
    217   DELTA       value_type: INT64     billing:       metrics:       -
    218   library.googleapis.com/read_calls       - library.googleapis.com/write_calls
    219   The next example shows how to enable billing status check and customize the
    220   check behavior. It makes sure billing status check is included in the
    221   `Check` method of [Service Control API](https://cloud.google.com/service-
    222   control/). In the example, "google.storage.Get" method can be served when
    223   the billing status is either `current` or `delinquent`, while
    224   "google.storage.Write" method can only be served when the billing status is
    225   `current`:      billing:       rules:       - selector: google.storage.Get
    226   allowed_statuses:         - current         - delinquent       - selector:
    227   google.storage.Write         allowed_statuses: current  Mostly services
    228   should only allow `current` status when serving requests. In addition,
    229   services can choose to allow both `current` and `delinquent` statuses when
    230   serving read-only requests to resources. If there's no matching selector for
    231   operation, no billing status check will be performed.
    232 
    233   Fields:
    234     areaUnderCurveParams: Per resource grouping for delta billing based
    235       resource configs.
    236     metrics: Names of the metrics to report to billing. Each name must be
    237       defined in Service.metrics section.
    238     rules: A list of billing status rules for configuring billing status
    239       check.
    240   """
    241 
    242   areaUnderCurveParams = _messages.MessageField('AreaUnderCurveParams', 1, repeated=True)
    243   metrics = _messages.StringField(2, repeated=True)
    244   rules = _messages.MessageField('BillingStatusRule', 3, repeated=True)
    245 
    246 
    247 class BillingStatusRule(_messages.Message):
    248   """Defines the billing status requirements for operations.  When used with
    249   [Service Control API](https://cloud.google.com/service-control/), the
    250   following statuses are supported:  - **current**: the associated billing
    251   account is up to date and capable of                paying for resource
    252   usages. - **delinquent**: the associated billing account has a correctable
    253   problem,                   such as late payment.  Mostly services should
    254   only allow `current` status when serving requests. In addition, services can
    255   choose to allow both `current` and `delinquent` statuses when serving read-
    256   only requests to resources. If the list of allowed_statuses is empty, it
    257   means no billing requirement.
    258 
    259   Fields:
    260     allowedStatuses: Allowed billing statuses. The billing status check passes
    261       if the actual billing status matches any of the provided values here.
    262     selector: Selects the operation names to which this rule applies. Refer to
    263       selector for syntax details.
    264   """
    265 
    266   allowedStatuses = _messages.StringField(1, repeated=True)
    267   selector = _messages.StringField(2)
    268 
    269 
    270 class CompositeOperationMetadata(_messages.Message):
    271   """Metadata for composite operations.
    272 
    273   Messages:
    274     OriginalRequestValue: Original request that triggered this operation.
    275     ResponseFieldMasksValue: Defines which part of the response a child
    276       operation will contribute. Each key of the map is the name of a child
    277       operation. Each value is a field mask that identifies what that child
    278       operation contributes to the response, for example, "quota_settings",
    279       "visiblity_settings", etc.
    280 
    281   Fields:
    282     childOperations: The child operations. The details of the asynchronous
    283       child operations are stored in a separate row and not in this metadata.
    284       Only the operation name is stored here.
    285     originalRequest: Original request that triggered this operation.
    286     persisted: Indicates whether the requested state change has been
    287       persisted. Once this field is set, it is guaranteed to propagate to all
    288       backends eventually, but it may not be visible immediately. Clients that
    289       are not concerned with waiting on propagation can stop polling the
    290       operation once the persisted field is set
    291     responseFieldMasks: Defines which part of the response a child operation
    292       will contribute. Each key of the map is the name of a child operation.
    293       Each value is a field mask that identifies what that child operation
    294       contributes to the response, for example, "quota_settings",
    295       "visiblity_settings", etc.
    296   """
    297 
    298   @encoding.MapUnrecognizedFields('additionalProperties')
    299   class OriginalRequestValue(_messages.Message):
    300     """Original request that triggered this operation.
    301 
    302     Messages:
    303       AdditionalProperty: An additional property for a OriginalRequestValue
    304         object.
    305 
    306     Fields:
    307       additionalProperties: Properties of the object. Contains field @type
    308         with type URL.
    309     """
    310 
    311     class AdditionalProperty(_messages.Message):
    312       """An additional property for a OriginalRequestValue object.
    313 
    314       Fields:
    315         key: Name of the additional property.
    316         value: A extra_types.JsonValue attribute.
    317       """
    318 
    319       key = _messages.StringField(1)
    320       value = _messages.MessageField('extra_types.JsonValue', 2)
    321 
    322     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
    323 
    324   @encoding.MapUnrecognizedFields('additionalProperties')
    325   class ResponseFieldMasksValue(_messages.Message):
    326     """Defines which part of the response a child operation will contribute.
    327     Each key of the map is the name of a child operation. Each value is a
    328     field mask that identifies what that child operation contributes to the
    329     response, for example, "quota_settings", "visiblity_settings", etc.
    330 
    331     Messages:
    332       AdditionalProperty: An additional property for a ResponseFieldMasksValue
    333         object.
    334 
    335     Fields:
    336       additionalProperties: Additional properties of type
    337         ResponseFieldMasksValue
    338     """
    339 
    340     class AdditionalProperty(_messages.Message):
    341       """An additional property for a ResponseFieldMasksValue object.
    342 
    343       Fields:
    344         key: Name of the additional property.
    345         value: A string attribute.
    346       """
    347 
    348       key = _messages.StringField(1)
    349       value = _messages.StringField(2)
    350 
    351     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
    352 
    353   childOperations = _messages.MessageField('Operation', 1, repeated=True)
    354   originalRequest = _messages.MessageField('OriginalRequestValue', 2)
    355   persisted = _messages.BooleanField(3)
    356   responseFieldMasks = _messages.MessageField('ResponseFieldMasksValue', 4)
    357 
    358 
    359 class ConfigFile(_messages.Message):
    360   """Generic specification of a source configuration file
    361 
    362   Enums:
    363     FileTypeValueValuesEnum: The kind of configuration file represented. This
    364       is used to determine the method for generating `google.api.Service`
    365       using this file.
    366 
    367   Fields:
    368     contents: DEPRECATED. The contents of the configuration file. Use
    369       file_contents moving forward.
    370     fileContents: The bytes that constitute the file.
    371     filePath: The file name of the configuration file (full or relative path).
    372     fileType: The kind of configuration file represented. This is used to
    373       determine the method for generating `google.api.Service` using this
    374       file.
    375   """
    376 
    377   class FileTypeValueValuesEnum(_messages.Enum):
    378     """The kind of configuration file represented. This is used to determine
    379     the method for generating `google.api.Service` using this file.
    380 
    381     Values:
    382       FILE_TYPE_UNSPECIFIED: Unknown file type.
    383       SERVICE_CONFIG_YAML: YAML-specification of service.
    384       OPEN_API_JSON: OpenAPI specification, serialized in JSON.
    385       OPEN_API_YAML: OpenAPI specification, serialized in YAML.
    386       FILE_DESCRIPTOR_SET_PROTO: FileDescriptorSet, generated by protoc.  To
    387         generate, use protoc with imports and source info included. For an
    388         example test.proto file, the following command would put the value in
    389         a new file named out.pb.  $protoc --include_imports
    390         --include_source_info test.proto -o out.pb
    391     """
    392     FILE_TYPE_UNSPECIFIED = 0
    393     SERVICE_CONFIG_YAML = 1
    394     OPEN_API_JSON = 2
    395     OPEN_API_YAML = 3
    396     FILE_DESCRIPTOR_SET_PROTO = 4
    397 
    398   contents = _messages.StringField(1)
    399   fileContents = _messages.BytesField(2)
    400   filePath = _messages.StringField(3)
    401   fileType = _messages.EnumField('FileTypeValueValuesEnum', 4)
    402 
    403 
    404 class ConfigOptions(_messages.Message):
    405   """A set of options to cover use of source config within `ServiceManager`
    406   and related tools.
    407   """
    408 
    409 
    410 
    411 class ConfigSource(_messages.Message):
    412   """Represents a user-specified configuration for a service (as opposed to
    413   the the generated service config form provided by `google.api.Service`).
    414   This is meant to encode service config as manipulated directly by customers,
    415   rather than the config form resulting from toolchain generation and
    416   normalization.
    417 
    418   Fields:
    419     files: Set of source configuration files that are used to generate a
    420       service config (`google.api.Service`).
    421     id: A unique ID for a specific instance of this message, typically
    422       assigned by the client for tracking purpose. If empty, the server may
    423       choose to generate one instead.
    424     openApiSpec: OpenAPI specification
    425     options: Options to cover use of source config within ServiceManager and
    426       tools
    427     protoSpec: Protocol buffer API specification
    428   """
    429 
    430   files = _messages.MessageField('ConfigFile', 1, repeated=True)
    431   id = _messages.StringField(2)
    432   openApiSpec = _messages.MessageField('OpenApiSpec', 3)
    433   options = _messages.MessageField('ConfigOptions', 4)
    434   protoSpec = _messages.MessageField('ProtoSpec', 5)
    435 
    436 
    437 class Context(_messages.Message):
    438   """`Context` defines which contexts an API requests.  Example:      context:
    439   rules:       - selector: "*"         requested:         -
    440   google.rpc.context.ProjectContext         - google.rpc.context.OriginContext
    441   The above specifies that all methods in the API request
    442   `google.rpc.context.ProjectContext` and `google.rpc.context.OriginContext`.
    443   Available context types are defined in package `google.rpc.context`.
    444 
    445   Fields:
    446     rules: List of rules for context, applicable to methods.
    447   """
    448 
    449   rules = _messages.MessageField('ContextRule', 1, repeated=True)
    450 
    451 
    452 class ContextRule(_messages.Message):
    453   """A context rule provides information about the context for an individual
    454   API element.
    455 
    456   Fields:
    457     provided: A list of full type names of provided contexts.
    458     requested: A list of full type names of requested contexts.
    459     selector: Selects the methods to which this rule applies.  Refer to
    460       selector for syntax details.
    461   """
    462 
    463   provided = _messages.StringField(1, repeated=True)
    464   requested = _messages.StringField(2, repeated=True)
    465   selector = _messages.StringField(3)
    466 
    467 
    468 class Control(_messages.Message):
    469   """Selects and configures the service controller used by the service.  The
    470   service controller handles features like abuse, quota, billing, logging,
    471   monitoring, etc.
    472 
    473   Fields:
    474     environment: The service control environment to use. If empty, no control
    475       plane feature (like quota and billing) will be enabled.
    476   """
    477 
    478   environment = _messages.StringField(1)
    479 
    480 
    481 class ConvertConfigRequest(_messages.Message):
    482   """Request message for `ConvertConfig` method.
    483 
    484   Messages:
    485     ConfigSpecValue: Input configuration For this version of API, the
    486       supported type is OpenApiSpec
    487 
    488   Fields:
    489     configSpec: Input configuration For this version of API, the supported
    490       type is OpenApiSpec
    491     openApiSpec: The OpenAPI specification for an API.
    492     serviceName: The service name to use for constructing the normalized
    493       service configuration equivalent of the provided configuration
    494       specification.
    495     swaggerSpec: The swagger specification for an API.
    496   """
    497 
    498   @encoding.MapUnrecognizedFields('additionalProperties')
    499   class ConfigSpecValue(_messages.Message):
    500     """Input configuration For this version of API, the supported type is
    501     OpenApiSpec
    502 
    503     Messages:
    504       AdditionalProperty: An additional property for a ConfigSpecValue object.
    505 
    506     Fields:
    507       additionalProperties: Properties of the object. Contains field @type
    508         with type URL.
    509     """
    510 
    511     class AdditionalProperty(_messages.Message):
    512       """An additional property for a ConfigSpecValue object.
    513 
    514       Fields:
    515         key: Name of the additional property.
    516         value: A extra_types.JsonValue attribute.
    517       """
    518 
    519       key = _messages.StringField(1)
    520       value = _messages.MessageField('extra_types.JsonValue', 2)
    521 
    522     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
    523 
    524   configSpec = _messages.MessageField('ConfigSpecValue', 1)
    525   openApiSpec = _messages.MessageField('OpenApiSpec', 2)
    526   serviceName = _messages.StringField(3)
    527   swaggerSpec = _messages.MessageField('SwaggerSpec', 4)
    528 
    529 
    530 class ConvertConfigResponse(_messages.Message):
    531   """Response message for `ConvertConfig` method.
    532 
    533   Fields:
    534     diagnostics: Any errors or warnings that occured during config conversion.
    535     serviceConfig: The service configuration. Not set if errors occured during
    536       conversion.
    537   """
    538 
    539   diagnostics = _messages.MessageField('Diagnostic', 1, repeated=True)
    540   serviceConfig = _messages.MessageField('Service', 2)
    541 
    542 
    543 class CustomError(_messages.Message):
    544   """Customize service error responses.  For example, list any service
    545   specific protobuf types that can appear in error detail lists of error
    546   responses.  Example:      custom_error:       types:       -
    547   google.foo.v1.CustomError       - google.foo.v1.AnotherError
    548 
    549   Fields:
    550     rules: The list of custom error rules to select to which messages this
    551       should apply.
    552     types: The list of custom error detail types, e.g.
    553       'google.foo.v1.CustomError'.
    554   """
    555 
    556   rules = _messages.MessageField('CustomErrorRule', 1, repeated=True)
    557   types = _messages.StringField(2, repeated=True)
    558 
    559 
    560 class CustomErrorRule(_messages.Message):
    561   """A custom error rule.
    562 
    563   Fields:
    564     isErrorType: Mark this message as possible payload in error response.
    565       Otherwise, objects of this type will be filtered when they appear in
    566       error payload.
    567     selector: Selects messages to which this rule applies.  Refer to selector
    568       for syntax details.
    569   """
    570 
    571   isErrorType = _messages.BooleanField(1)
    572   selector = _messages.StringField(2)
    573 
    574 
    575 class CustomHttpPattern(_messages.Message):
    576   """A custom pattern is used for defining custom HTTP verb.
    577 
    578   Fields:
    579     kind: The name of this custom HTTP verb.
    580     path: The path matched by this custom verb.
    581   """
    582 
    583   kind = _messages.StringField(1)
    584   path = _messages.StringField(2)
    585 
    586 
    587 class CustomerSettings(_messages.Message):
    588   """Settings that control how a customer (identified by a billing account)
    589   uses a service
    590 
    591   Fields:
    592     customerId: ID for the customer that consumes the service (see above). The
    593       supported types of customers are:  1. domain:{domain} A Google Apps
    594       domain name. For example, google.com.  2.
    595       billingAccount:{billing_account_id} A Google Cloud Plafrom billing
    596       account. For Example, 123456-7890ab-cdef12.
    597     quotaSettings: Settings that control how much or how fast the service can
    598       be used by the consumer projects owned by the customer collectively.
    599     serviceName: The name of the service.  See the `ServiceManager` overview
    600       for naming requirements.
    601   """
    602 
    603   customerId = _messages.StringField(1)
    604   quotaSettings = _messages.MessageField('QuotaSettings', 2)
    605   serviceName = _messages.StringField(3)
    606 
    607 
    608 class Diagnostic(_messages.Message):
    609   """A collection that represents a diagnostic message (error or warning)
    610 
    611   Enums:
    612     KindValueValuesEnum: The kind of diagnostic information provided.
    613 
    614   Fields:
    615     kind: The kind of diagnostic information provided.
    616     location: Location of the cause or context of the diagnostic information.
    617     message: The string message of the diagnostic information.
    618   """
    619 
    620   class KindValueValuesEnum(_messages.Enum):
    621     """The kind of diagnostic information provided.
    622 
    623     Values:
    624       WARNING: Warnings and errors
    625       ERROR: Only errors
    626     """
    627     WARNING = 0
    628     ERROR = 1
    629 
    630   kind = _messages.EnumField('KindValueValuesEnum', 1)
    631   location = _messages.StringField(2)
    632   message = _messages.StringField(3)
    633 
    634 
    635 class DisableServiceRequest(_messages.Message):
    636   """Request message for DisableService method.
    637 
    638   Fields:
    639     consumerId: The identity of consumer resource which service disablement
    640       will be applied to.  The Google Service Management implementation
    641       accepts the following forms: "project:<project_id>",
    642       "project_number:<project_number>".  Note: this is made compatible with
    643       google.api.servicecontrol.v1.Operation.consumer_id.
    644   """
    645 
    646   consumerId = _messages.StringField(1)
    647 
    648 
    649 class Documentation(_messages.Message):
    650   """`Documentation` provides the information for describing a service.
    651   Example: <pre><code>documentation:   summary: >     The Google Calendar API
    652   gives access     to most calendar features.   pages:   - name: Overview
    653   content: &#40;== include google/foo/overview.md ==&#41;   - name: Tutorial
    654   content: &#40;== include google/foo/tutorial.md ==&#41;     subpages;     -
    655   name: Java       content: &#40;== include google/foo/tutorial_java.md
    656   ==&#41;   rules:   - selector: google.calendar.Calendar.Get     description:
    657   >       ...   - selector: google.calendar.Calendar.Put     description: >
    658   ... </code></pre> Documentation is provided in markdown syntax. In addition
    659   to standard markdown features, definition lists, tables and fenced code
    660   blocks are supported. Section headers can be provided and are interpreted
    661   relative to the section nesting of the context where a documentation
    662   fragment is embedded.  Documentation from the IDL is merged with
    663   documentation defined via the config at normalization time, where
    664   documentation provided by config rules overrides IDL provided.  A number of
    665   constructs specific to the API platform are supported in documentation text.
    666   In order to reference a proto element, the following notation can be used:
    667   <pre><code>&#91;fully.qualified.proto.name]&#91;]</code></pre> To override
    668   the display text used for the link, this can be used:
    669   <pre><code>&#91;display text]&#91;fully.qualified.proto.name]</code></pre>
    670   Text can be excluded from doc using the following notation:
    671   <pre><code>&#40;-- internal comment --&#41;</code></pre> Comments can be
    672   made conditional using a visibility label. The below text will be only
    673   rendered if the `BETA` label is available: <pre><code>&#40;--BETA: comment
    674   for BETA users --&#41;</code></pre> A few directives are available in
    675   documentation. Note that directives must appear on a single line to be
    676   properly identified. The `include` directive includes a markdown file from
    677   an external source: <pre><code>&#40;== include path/to/file
    678   ==&#41;</code></pre> The `resource_for` directive marks a message to be the
    679   resource of a collection in REST view. If it is not specified, tools attempt
    680   to infer the resource from the operations in a collection:
    681   <pre><code>&#40;== resource_for v1.shelves.books ==&#41;</code></pre> The
    682   directive `suppress_warning` does not directly affect documentation and is
    683   documented together with service config validation.
    684 
    685   Fields:
    686     documentationRootUrl: The URL to the root of documentation.
    687     overview: Declares a single overview page. For example:
    688       <pre><code>documentation:   summary: ...   overview: &#40;== include
    689       overview.md ==&#41; </code></pre> This is a shortcut for the following
    690       declaration (using pages style): <pre><code>documentation:   summary:
    691       ...   pages:   - name: Overview     content: &#40;== include overview.md
    692       ==&#41; </code></pre> Note: you cannot specify both `overview` field and
    693       `pages` field.
    694     pages: The top level pages for the documentation set.
    695     rules: Documentation rules for individual elements of the service.
    696     summary: A short summary of what the service does. Can only be provided by
    697       plain text.
    698   """
    699 
    700   documentationRootUrl = _messages.StringField(1)
    701   overview = _messages.StringField(2)
    702   pages = _messages.MessageField('Page', 3, repeated=True)
    703   rules = _messages.MessageField('DocumentationRule', 4, repeated=True)
    704   summary = _messages.StringField(5)
    705 
    706 
    707 class DocumentationRule(_messages.Message):
    708   """A documentation rule provides information about individual API elements.
    709 
    710   Fields:
    711     deprecationDescription: Deprecation description of the selected
    712       element(s). It can be provided if an element is marked as `deprecated`.
    713     description: Description of the selected API(s).
    714     selector: The selector is a comma-separated list of patterns. Each pattern
    715       is a qualified name of the element which may end in "*", indicating a
    716       wildcard. Wildcards are only allowed at the end and for a whole
    717       component of the qualified name, i.e. "foo.*" is ok, but not "foo.b*" or
    718       "foo.*.bar". To specify a default for all applicable elements, the whole
    719       pattern "*" is used.
    720   """
    721 
    722   deprecationDescription = _messages.StringField(1)
    723   description = _messages.StringField(2)
    724   selector = _messages.StringField(3)
    725 
    726 
    727 class EffectiveQuotaGroup(_messages.Message):
    728   """An effective quota group contains both the metadata for a quota group as
    729   derived from the service config, and the effective limits in that group as
    730   calculated from producer and consumer overrides together with service
    731   defaults.
    732 
    733   Enums:
    734     BillingInteractionValueValuesEnum:
    735 
    736   Fields:
    737     baseGroup: The service configuration for this quota group, minus the quota
    738       limits, which are replaced by the effective limits below.
    739     billingInteraction: A BillingInteractionValueValuesEnum attribute.
    740     quotas: The usage and limit information for each limit within this quota
    741       group.
    742   """
    743 
    744   class BillingInteractionValueValuesEnum(_messages.Enum):
    745     """BillingInteractionValueValuesEnum enum type.
    746 
    747     Values:
    748       BILLING_INTERACTION_UNSPECIFIED: The interaction between this quota
    749         group and the project billing status is unspecified.
    750       NONBILLABLE_ONLY: This quota group is enforced only when the consumer
    751         project is not billable.
    752       BILLABLE_ONLY: This quota group is enforced only when the consumer
    753         project is billable.
    754       ANY_BILLING_STATUS: This quota group is enforced regardless of the
    755         consumer project's billing status.
    756     """
    757     BILLING_INTERACTION_UNSPECIFIED = 0
    758     NONBILLABLE_ONLY = 1
    759     BILLABLE_ONLY = 2
    760     ANY_BILLING_STATUS = 3
    761 
    762   baseGroup = _messages.MessageField('QuotaGroup', 1)
    763   billingInteraction = _messages.EnumField('BillingInteractionValueValuesEnum', 2)
    764   quotas = _messages.MessageField('QuotaInfo', 3, repeated=True)
    765 
    766 
    767 class EffectiveQuotaLimit(_messages.Message):
    768   """An effective quota limit contains the metadata for a quota limit as
    769   derived from the service config, together with fields that describe the
    770   effective limit value and what overrides can be applied to it.
    771 
    772   Fields:
    773     baseLimit: The service's configuration for this quota limit.
    774     effectiveLimit: The effective limit value, based on the stored producer
    775       and consumer overrides and the service defaults.
    776     key: The key used to identify this limit when applying overrides. The
    777       consumer_overrides and producer_overrides maps are keyed by strings of
    778       the form "QuotaGroupName/QuotaLimitName".
    779     maxConsumerOverrideAllowed: The maximum override value that a consumer may
    780       specify.
    781   """
    782 
    783   baseLimit = _messages.MessageField('QuotaLimit', 1)
    784   effectiveLimit = _messages.IntegerField(2)
    785   key = _messages.StringField(3)
    786   maxConsumerOverrideAllowed = _messages.IntegerField(4)
    787 
    788 
    789 class EnableServiceRequest(_messages.Message):
    790   """Request message for EnableService method.
    791 
    792   Fields:
    793     consumerId: The identity of consumer resource which service enablement
    794       will be applied to.  The Google Service Management implementation
    795       accepts the following forms: "project:<project_id>",
    796       "project_number:<project_number>".  Note: this is made compatible with
    797       google.api.servicecontrol.v1.Operation.consumer_id.
    798   """
    799 
    800   consumerId = _messages.StringField(1)
    801 
    802 
    803 class Enum(_messages.Message):
    804   """Enum type definition.
    805 
    806   Enums:
    807     SyntaxValueValuesEnum: The source syntax.
    808 
    809   Fields:
    810     enumvalue: Enum value definitions.
    811     name: Enum type name.
    812     options: Protocol buffer options.
    813     sourceContext: The source context.
    814     syntax: The source syntax.
    815   """
    816 
    817   class SyntaxValueValuesEnum(_messages.Enum):
    818     """The source syntax.
    819 
    820     Values:
    821       SYNTAX_PROTO2: Syntax `proto2`.
    822       SYNTAX_PROTO3: Syntax `proto3`.
    823     """
    824     SYNTAX_PROTO2 = 0
    825     SYNTAX_PROTO3 = 1
    826 
    827   enumvalue = _messages.MessageField('EnumValue', 1, repeated=True)
    828   name = _messages.StringField(2)
    829   options = _messages.MessageField('Option', 3, repeated=True)
    830   sourceContext = _messages.MessageField('SourceContext', 4)
    831   syntax = _messages.EnumField('SyntaxValueValuesEnum', 5)
    832 
    833 
    834 class EnumValue(_messages.Message):
    835   """Enum value definition.
    836 
    837   Fields:
    838     name: Enum value name.
    839     number: Enum value number.
    840     options: Protocol buffer options.
    841   """
    842 
    843   name = _messages.StringField(1)
    844   number = _messages.IntegerField(2, variant=_messages.Variant.INT32)
    845   options = _messages.MessageField('Option', 3, repeated=True)
    846 
    847 
    848 class Field(_messages.Message):
    849   """A single field of a message type.
    850 
    851   Enums:
    852     CardinalityValueValuesEnum: The field cardinality.
    853     KindValueValuesEnum: The field type.
    854 
    855   Fields:
    856     cardinality: The field cardinality.
    857     defaultValue: The string value of the default value of this field. Proto2
    858       syntax only.
    859     jsonName: The field JSON name.
    860     kind: The field type.
    861     name: The field name.
    862     number: The field number.
    863     oneofIndex: The index of the field type in `Type.oneofs`, for message or
    864       enumeration types. The first type has index 1; zero means the type is
    865       not in the list.
    866     options: The protocol buffer options.
    867     packed: Whether to use alternative packed wire representation.
    868     typeUrl: The field type URL, without the scheme, for message or
    869       enumeration types. Example:
    870       `"type.googleapis.com/google.protobuf.Timestamp"`.
    871   """
    872 
    873   class CardinalityValueValuesEnum(_messages.Enum):
    874     """The field cardinality.
    875 
    876     Values:
    877       CARDINALITY_UNKNOWN: For fields with unknown cardinality.
    878       CARDINALITY_OPTIONAL: For optional fields.
    879       CARDINALITY_REQUIRED: For required fields. Proto2 syntax only.
    880       CARDINALITY_REPEATED: For repeated fields.
    881     """
    882     CARDINALITY_UNKNOWN = 0
    883     CARDINALITY_OPTIONAL = 1
    884     CARDINALITY_REQUIRED = 2
    885     CARDINALITY_REPEATED = 3
    886 
    887   class KindValueValuesEnum(_messages.Enum):
    888     """The field type.
    889 
    890     Values:
    891       TYPE_UNKNOWN: Field type unknown.
    892       TYPE_DOUBLE: Field type double.
    893       TYPE_FLOAT: Field type float.
    894       TYPE_INT64: Field type int64.
    895       TYPE_UINT64: Field type uint64.
    896       TYPE_INT32: Field type int32.
    897       TYPE_FIXED64: Field type fixed64.
    898       TYPE_FIXED32: Field type fixed32.
    899       TYPE_BOOL: Field type bool.
    900       TYPE_STRING: Field type string.
    901       TYPE_GROUP: Field type group. Proto2 syntax only, and deprecated.
    902       TYPE_MESSAGE: Field type message.
    903       TYPE_BYTES: Field type bytes.
    904       TYPE_UINT32: Field type uint32.
    905       TYPE_ENUM: Field type enum.
    906       TYPE_SFIXED32: Field type sfixed32.
    907       TYPE_SFIXED64: Field type sfixed64.
    908       TYPE_SINT32: Field type sint32.
    909       TYPE_SINT64: Field type sint64.
    910     """
    911     TYPE_UNKNOWN = 0
    912     TYPE_DOUBLE = 1
    913     TYPE_FLOAT = 2
    914     TYPE_INT64 = 3
    915     TYPE_UINT64 = 4
    916     TYPE_INT32 = 5
    917     TYPE_FIXED64 = 6
    918     TYPE_FIXED32 = 7
    919     TYPE_BOOL = 8
    920     TYPE_STRING = 9
    921     TYPE_GROUP = 10
    922     TYPE_MESSAGE = 11
    923     TYPE_BYTES = 12
    924     TYPE_UINT32 = 13
    925     TYPE_ENUM = 14
    926     TYPE_SFIXED32 = 15
    927     TYPE_SFIXED64 = 16
    928     TYPE_SINT32 = 17
    929     TYPE_SINT64 = 18
    930 
    931   cardinality = _messages.EnumField('CardinalityValueValuesEnum', 1)
    932   defaultValue = _messages.StringField(2)
    933   jsonName = _messages.StringField(3)
    934   kind = _messages.EnumField('KindValueValuesEnum', 4)
    935   name = _messages.StringField(5)
    936   number = _messages.IntegerField(6, variant=_messages.Variant.INT32)
    937   oneofIndex = _messages.IntegerField(7, variant=_messages.Variant.INT32)
    938   options = _messages.MessageField('Option', 8, repeated=True)
    939   packed = _messages.BooleanField(9)
    940   typeUrl = _messages.StringField(10)
    941 
    942 
    943 class File(_messages.Message):
    944   """A single swagger specification file.
    945 
    946   Fields:
    947     contents: The contents of the swagger spec file.
    948     path: The relative path of the swagger spec file.
    949   """
    950 
    951   contents = _messages.StringField(1)
    952   path = _messages.StringField(2)
    953 
    954 
    955 class Http(_messages.Message):
    956   """Defines the HTTP configuration for a service. It contains a list of
    957   HttpRule, each specifying the mapping of an RPC method to one or more HTTP
    958   REST API methods.
    959 
    960   Fields:
    961     rules: A list of HTTP rules for configuring the HTTP REST API methods.
    962   """
    963 
    964   rules = _messages.MessageField('HttpRule', 1, repeated=True)
    965 
    966 
    967 class HttpRule(_messages.Message):
    968   """`HttpRule` defines the mapping of an RPC method to one or more HTTP REST
    969   APIs.  The mapping determines what portions of the request message are
    970   populated from the path, query parameters, or body of the HTTP request.  The
    971   mapping is typically specified as an `google.api.http` annotation, see
    972   "google/api/annotations.proto" for details.  The mapping consists of a field
    973   specifying the path template and method kind.  The path template can refer
    974   to fields in the request message, as in the example below which describes a
    975   REST GET operation on a resource collection of messages:  ```proto service
    976   Messaging {   rpc GetMessage(GetMessageRequest) returns (Message) {
    977   option (google.api.http).get = "/v1/messages/{message_id}/{sub.subfield}";
    978   } } message GetMessageRequest {   message SubMessage {     string subfield =
    979   1;   }   string message_id = 1; // mapped to the URL   SubMessage sub = 2;
    980   // `sub.subfield` is url-mapped } message Message {   string text = 1; //
    981   content of the resource } ```  This definition enables an automatic,
    982   bidrectional mapping of HTTP JSON to RPC. Example:  HTTP | RPC -----|-----
    983   `GET /v1/messages/123456/foo`  | `GetMessage(message_id: "123456" sub:
    984   SubMessage(subfield: "foo"))`  In general, not only fields but also field
    985   paths can be referenced from a path pattern. Fields mapped to the path
    986   pattern cannot be repeated and must have a primitive (non-message) type.
    987   Any fields in the request message which are not bound by the path pattern
    988   automatically become (optional) HTTP query parameters. Assume the following
    989   definition of the request message:  ```proto message GetMessageRequest {
    990   message SubMessage {     string subfield = 1;   }   string message_id = 1;
    991   // mapped to the URL   int64 revision = 2;    // becomes a parameter
    992   SubMessage sub = 3;    // `sub.subfield` becomes a parameter } ```  This
    993   enables a HTTP JSON to RPC mapping as below:  HTTP | RPC -----|----- `GET
    994   /v1/messages/123456?revision=2&sub.subfield=foo` | `GetMessage(message_id:
    995   "123456" revision: 2 sub: SubMessage(subfield: "foo"))`  Note that fields
    996   which are mapped to HTTP parameters must have a primitive type or a repeated
    997   primitive type. Message types are not allowed. In the case of a repeated
    998   type, the parameter can be repeated in the URL, as in `...?param=A&param=B`.
    999   For HTTP method kinds which allow a request body, the `body` field specifies
   1000   the mapping. Consider a REST update method on the message resource
   1001   collection:  ```proto service Messaging {   rpc
   1002   UpdateMessage(UpdateMessageRequest) returns (Message) {     option
   1003   (google.api.http) = {       put: "/v1/messages/{message_id}"       body:
   1004   "message"     };   } } message UpdateMessageRequest {   string message_id =
   1005   1; // mapped to the URL   Message message = 2;   // mapped to the body } ```
   1006   The following HTTP JSON to RPC mapping is enabled, where the representation
   1007   of the JSON in the request body is determined by protos JSON encoding:  HTTP
   1008   | RPC -----|----- `PUT /v1/messages/123456 { "text": "Hi!" }` |
   1009   `UpdateMessage(message_id: "123456" message { text: "Hi!" })`  The special
   1010   name `*` can be used in the body mapping to define that every field not
   1011   bound by the path template should be mapped to the request body.  This
   1012   enables the following alternative definition of the update method:  ```proto
   1013   service Messaging {   rpc UpdateMessage(Message) returns (Message) {
   1014   option (google.api.http) = {       put: "/v1/messages/{message_id}"
   1015   body: "*"     };   } } message Message {   string message_id = 1;   string
   1016   text = 2; } ```  The following HTTP JSON to RPC mapping is enabled:  HTTP |
   1017   RPC -----|----- `PUT /v1/messages/123456 { "text": "Hi!" }` |
   1018   `UpdateMessage(message_id: "123456" text: "Hi!")`  Note that when using `*`
   1019   in the body mapping, it is not possible to have HTTP parameters, as all
   1020   fields not bound by the path end in the body. This makes this option more
   1021   rarely used in practice of defining REST APIs. The common usage of `*` is in
   1022   custom methods which don't use the URL at all for transferring data.  It is
   1023   possible to define multiple HTTP methods for one RPC by using the
   1024   `additional_bindings` option. Example:  ```proto service Messaging {   rpc
   1025   GetMessage(GetMessageRequest) returns (Message) {     option
   1026   (google.api.http) = {       get: "/v1/messages/{message_id}"
   1027   additional_bindings {         get:
   1028   "/v1/users/{user_id}/messages/{message_id}"       }     };   } } message
   1029   GetMessageRequest {   string message_id = 1;   string user_id = 2; } ```
   1030   This enables the following two alternative HTTP JSON to RPC mappings:  HTTP
   1031   | RPC -----|----- `GET /v1/messages/123456` | `GetMessage(message_id:
   1032   "123456")` `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me"
   1033   message_id: "123456")`  # Rules for HTTP mapping  The rules for mapping HTTP
   1034   path, query parameters, and body fields to the request message are as
   1035   follows:  1. The `body` field specifies either `*` or a field path, or is
   1036   omitted. If omitted, it assumes there is no HTTP body. 2. Leaf fields
   1037   (recursive expansion of nested messages in the    request) can be classified
   1038   into three types:     (a) Matched in the URL template.     (b) Covered by
   1039   body (if body is `*`, everything except (a) fields;         else everything
   1040   under the body field)     (c) All other fields. 3. URL query parameters
   1041   found in the HTTP request are mapped to (c) fields. 4. Any body sent with an
   1042   HTTP request can contain only (b) fields.  The syntax of the path template
   1043   is as follows:      Template = "/" Segments [ Verb ] ;     Segments =
   1044   Segment { "/" Segment } ;     Segment  = "*" | "**" | LITERAL | Variable ;
   1045   Variable = "{" FieldPath [ "=" Segments ] "}" ;     FieldPath = IDENT { "."
   1046   IDENT } ;     Verb     = ":" LITERAL ;  The syntax `*` matches a single path
   1047   segment. It follows the semantics of [RFC
   1048   6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
   1049   Expansion.  The syntax `**` matches zero or more path segments. It follows
   1050   the semantics of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section
   1051   3.2.3 Reserved Expansion.  The syntax `LITERAL` matches literal text in the
   1052   URL path.  The syntax `Variable` matches the entire path as specified by its
   1053   template; this nested template must not contain further variables. If a
   1054   variable matches a single path segment, its template may be omitted, e.g.
   1055   `{var}` is equivalent to `{var=*}`.  NOTE: the field paths in variables and
   1056   in the `body` must not refer to repeated fields or map fields.  Use
   1057   CustomHttpPattern to specify any HTTP method that is not included in the
   1058   `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified
   1059   for a given URL path rule. The wild-card rule is useful for services that
   1060   provide content to Web (HTML) clients.
   1061 
   1062   Fields:
   1063     additionalBindings: Additional HTTP bindings for the selector. Nested
   1064       bindings must not contain an `additional_bindings` field themselves
   1065       (that is, the nesting may only be one level deep).
   1066     body: The name of the request field whose value is mapped to the HTTP
   1067       body, or `*` for mapping all fields not captured by the path pattern to
   1068       the HTTP body. NOTE: the referred field must not be a repeated field.
   1069     custom: Custom pattern is used for defining custom verbs.
   1070     delete: Used for deleting a resource.
   1071     get: Used for listing and getting information about resources.
   1072     mediaDownload: Do not use this. For media support, add instead
   1073       [][google.bytestream.RestByteStream] as an API to your configuration.
   1074     mediaUpload: Do not use this. For media support, add instead
   1075       [][google.bytestream.RestByteStream] as an API to your configuration.
   1076     patch: Used for updating a resource.
   1077     post: Used for creating a resource.
   1078     put: Used for updating a resource.
   1079     selector: Selects methods to which this rule applies.  Refer to selector
   1080       for syntax details.
   1081   """
   1082 
   1083   additionalBindings = _messages.MessageField('HttpRule', 1, repeated=True)
   1084   body = _messages.StringField(2)
   1085   custom = _messages.MessageField('CustomHttpPattern', 3)
   1086   delete = _messages.StringField(4)
   1087   get = _messages.StringField(5)
   1088   mediaDownload = _messages.MessageField('MediaDownload', 6)
   1089   mediaUpload = _messages.MessageField('MediaUpload', 7)
   1090   patch = _messages.StringField(8)
   1091   post = _messages.StringField(9)
   1092   put = _messages.StringField(10)
   1093   selector = _messages.StringField(11)
   1094 
   1095 
   1096 class LabelDescriptor(_messages.Message):
   1097   """A description of a label.
   1098 
   1099   Enums:
   1100     ValueTypeValueValuesEnum: The type of data that can be assigned to the
   1101       label.
   1102 
   1103   Fields:
   1104     description: A human-readable description for the label.
   1105     key: The label key.
   1106     valueType: The type of data that can be assigned to the label.
   1107   """
   1108 
   1109   class ValueTypeValueValuesEnum(_messages.Enum):
   1110     """The type of data that can be assigned to the label.
   1111 
   1112     Values:
   1113       STRING: A variable-length string. This is the default.
   1114       BOOL: Boolean; true or false.
   1115       INT64: A 64-bit signed integer.
   1116     """
   1117     STRING = 0
   1118     BOOL = 1
   1119     INT64 = 2
   1120 
   1121   description = _messages.StringField(1)
   1122   key = _messages.StringField(2)
   1123   valueType = _messages.EnumField('ValueTypeValueValuesEnum', 3)
   1124 
   1125 
   1126 class ListServiceConfigsResponse(_messages.Message):
   1127   """Response message for ListServiceConfigs method.
   1128 
   1129   Fields:
   1130     nextPageToken: The token of the next page of results.
   1131     serviceConfigs: The list of service config resources.
   1132   """
   1133 
   1134   nextPageToken = _messages.StringField(1)
   1135   serviceConfigs = _messages.MessageField('Service', 2, repeated=True)
   1136 
   1137 
   1138 class ListServicesResponse(_messages.Message):
   1139   """Response message for `ListServices` method.
   1140 
   1141   Fields:
   1142     nextPageToken: Token that can be passed to `ListServices` to resume a
   1143       paginated query.
   1144     services: The results of the query.
   1145   """
   1146 
   1147   nextPageToken = _messages.StringField(1)
   1148   services = _messages.MessageField('ManagedService', 2, repeated=True)
   1149 
   1150 
   1151 class LogDescriptor(_messages.Message):
   1152   """A description of a log type. Example in YAML format:      - name:
   1153   library.googleapis.com/activity_history       description: The history of
   1154   borrowing and returning library items.       display_name: Activity
   1155   labels:       - key: /customer_id         description: Identifier of a
   1156   library customer
   1157 
   1158   Fields:
   1159     description: A human-readable description of this log. This information
   1160       appears in the documentation and can contain details.
   1161     displayName: The human-readable name for this log. This information
   1162       appears on the user interface and should be concise.
   1163     labels: The set of labels that are available to describe a specific log
   1164       entry. Runtime requests that contain labels not specified here are
   1165       considered invalid.
   1166     name: The name of the log. It must be less than 512 characters long and
   1167       can include the following characters: upper- and lower-case alphanumeric
   1168       characters [A-Za-z0-9], and punctuation characters including slash,
   1169       underscore, hyphen, period [/_-.].
   1170   """
   1171 
   1172   description = _messages.StringField(1)
   1173   displayName = _messages.StringField(2)
   1174   labels = _messages.MessageField('LabelDescriptor', 3, repeated=True)
   1175   name = _messages.StringField(4)
   1176 
   1177 
   1178 class Logging(_messages.Message):
   1179   """Logging configuration of the service.  The following example shows how to
   1180   configure logs to be sent to the producer and consumer projects. In the
   1181   example, the `library.googleapis.com/activity_history` log is sent to both
   1182   the producer and consumer projects, whereas the
   1183   `library.googleapis.com/purchase_history` log is only sent to the producer
   1184   project:      monitored_resources:     - type: library.googleapis.com/branch
   1185   labels:       - key: /city         description: The city where the library
   1186   branch is located in.       - key: /name         description: The name of
   1187   the branch.     logs:     - name: library.googleapis.com/activity_history
   1188   labels:       - key: /customer_id     - name:
   1189   library.googleapis.com/purchase_history     logging:
   1190   producer_destinations:       - monitored_resource:
   1191   library.googleapis.com/branch         logs:         -
   1192   library.googleapis.com/activity_history         -
   1193   library.googleapis.com/purchase_history       consumer_destinations:       -
   1194   monitored_resource: library.googleapis.com/branch         logs:         -
   1195   library.googleapis.com/activity_history
   1196 
   1197   Fields:
   1198     consumerDestinations: Logging configurations for sending logs to the
   1199       consumer project. There can be multiple consumer destinations, each one
   1200       must have a different monitored resource type. A log can be used in at
   1201       most one consumer destination.
   1202     producerDestinations: Logging configurations for sending logs to the
   1203       producer project. There can be multiple producer destinations, each one
   1204       must have a different monitored resource type. A log can be used in at
   1205       most one producer destination.
   1206   """
   1207 
   1208   consumerDestinations = _messages.MessageField('LoggingDestination', 1, repeated=True)
   1209   producerDestinations = _messages.MessageField('LoggingDestination', 2, repeated=True)
   1210 
   1211 
   1212 class LoggingDestination(_messages.Message):
   1213   """Configuration of a specific logging destination (the producer project or
   1214   the consumer project).
   1215 
   1216   Fields:
   1217     logs: Names of the logs to be sent to this destination. Each name must be
   1218       defined in the Service.logs section.
   1219     monitoredResource: The monitored resource type. The type must be defined
   1220       in Service.monitored_resources section.
   1221   """
   1222 
   1223   logs = _messages.StringField(1, repeated=True)
   1224   monitoredResource = _messages.StringField(2)
   1225 
   1226 
   1227 class ManagedService(_messages.Message):
   1228   """The full representation of an API Service that is managed by the
   1229   `ServiceManager` API.  Includes both the service configuration, as well as
   1230   other control plane deployment related information.
   1231 
   1232   Fields:
   1233     configSource: User-supplied source configuration for the service. This is
   1234       distinct from the generated configuration provided in
   1235       `google.api.Service`. This is NOT populated on GetService calls at the
   1236       moment. NOTE: Any upsert operation that contains both a service_config
   1237       and a config_source is considered invalid and will result in an error
   1238       being returned.
   1239     generation: A server-assigned monotonically increasing number that changes
   1240       whenever a mutation is made to the `ManagedService` or any of its
   1241       components via the `ServiceManager` API.
   1242     operations: Read-only view of pending operations affecting this resource,
   1243       if requested.
   1244     producerProjectId: ID of the project that produces and owns this service.
   1245     projectSettings: Read-only view of settings for a particular consumer
   1246       project, if requested.
   1247     serviceConfig: The service's generated configuration.
   1248     serviceName: The name of the service.  See the `ServiceManager` overview
   1249       for naming requirements.  This name must match `google.api.Service.name`
   1250       in the `service_config` field.
   1251   """
   1252 
   1253   configSource = _messages.MessageField('ConfigSource', 1)
   1254   generation = _messages.IntegerField(2)
   1255   operations = _messages.MessageField('Operation', 3, repeated=True)
   1256   producerProjectId = _messages.StringField(4)
   1257   projectSettings = _messages.MessageField('ProjectSettings', 5)
   1258   serviceConfig = _messages.MessageField('Service', 6)
   1259   serviceName = _messages.StringField(7)
   1260 
   1261 
   1262 class MediaDownload(_messages.Message):
   1263   """Do not use this. For media support, add instead
   1264   [][google.bytestream.RestByteStream] as an API to your configuration.
   1265 
   1266   Fields:
   1267     enabled: Whether download is enabled.
   1268   """
   1269 
   1270   enabled = _messages.BooleanField(1)
   1271 
   1272 
   1273 class MediaUpload(_messages.Message):
   1274   """Do not use this. For media support, add instead
   1275   [][google.bytestream.RestByteStream] as an API to your configuration.
   1276 
   1277   Fields:
   1278     enabled: Whether upload is enabled.
   1279   """
   1280 
   1281   enabled = _messages.BooleanField(1)
   1282 
   1283 
   1284 class Method(_messages.Message):
   1285   """Method represents a method of an api.
   1286 
   1287   Enums:
   1288     SyntaxValueValuesEnum: The source syntax of this method.
   1289 
   1290   Fields:
   1291     name: The simple name of this method.
   1292     options: Any metadata attached to the method.
   1293     requestStreaming: If true, the request is streamed.
   1294     requestTypeUrl: A URL of the input message type.
   1295     responseStreaming: If true, the response is streamed.
   1296     responseTypeUrl: The URL of the output message type.
   1297     syntax: The source syntax of this method.
   1298   """
   1299 
   1300   class SyntaxValueValuesEnum(_messages.Enum):
   1301     """The source syntax of this method.
   1302 
   1303     Values:
   1304       SYNTAX_PROTO2: Syntax `proto2`.
   1305       SYNTAX_PROTO3: Syntax `proto3`.
   1306     """
   1307     SYNTAX_PROTO2 = 0
   1308     SYNTAX_PROTO3 = 1
   1309 
   1310   name = _messages.StringField(1)
   1311   options = _messages.MessageField('Option', 2, repeated=True)
   1312   requestStreaming = _messages.BooleanField(3)
   1313   requestTypeUrl = _messages.StringField(4)
   1314   responseStreaming = _messages.BooleanField(5)
   1315   responseTypeUrl = _messages.StringField(6)
   1316   syntax = _messages.EnumField('SyntaxValueValuesEnum', 7)
   1317 
   1318 
   1319 class MetricDescriptor(_messages.Message):
   1320   """Defines a metric type and its schema.
   1321 
   1322   Enums:
   1323     MetricKindValueValuesEnum: Whether the metric records instantaneous
   1324       values, changes to a value, etc.
   1325     ValueTypeValueValuesEnum: Whether the measurement is an integer, a
   1326       floating-point number, etc.
   1327 
   1328   Fields:
   1329     description: A detailed description of the metric, which can be used in
   1330       documentation.
   1331     displayName: A concise name for the metric, which can be displayed in user
   1332       interfaces. Use sentence case without an ending period, for example
   1333       "Request count".
   1334     labels: The set of labels that can be used to describe a specific instance
   1335       of this metric type. For example, the
   1336       `compute.googleapis.com/instance/network/received_bytes_count` metric
   1337       type has a label, `loadbalanced`, that specifies whether the traffic was
   1338       received through a load balanced IP address.
   1339     metricKind: Whether the metric records instantaneous values, changes to a
   1340       value, etc.
   1341     name: Resource name. The format of the name may vary between different
   1342       implementations. For examples:
   1343       projects/{project_id}/metricDescriptors/{type=**}
   1344       metricDescriptors/{type=**}
   1345     type: The metric type including a DNS name prefix, for example
   1346       `"compute.googleapis.com/instance/cpu/utilization"`. Metric types should
   1347       use a natural hierarchical grouping such as the following:
   1348       compute.googleapis.com/instance/cpu/utilization
   1349       compute.googleapis.com/instance/disk/read_ops_count
   1350       compute.googleapis.com/instance/network/received_bytes_count  Note that
   1351       if the metric type changes, the monitoring data will be discontinued,
   1352       and anything depends on it will break, such as monitoring dashboards,
   1353       alerting rules and quota limits. Therefore, once a metric has been
   1354       published, its type should be immutable.
   1355     unit: The unit in which the metric value is reported. It is only
   1356       applicable if the `value_type` is `INT64`, `DOUBLE`, or `DISTRIBUTION`.
   1357       The supported units are a subset of [The Unified Code for Units of
   1358       Measure](http://unitsofmeasure.org/ucum.html) standard:  **Basic units
   1359       (UNIT)**  * `bit`   bit * `By`    byte * `s`     second * `min`   minute
   1360       * `h`     hour * `d`     day  **Prefixes (PREFIX)**  * `k`     kilo
   1361       (10**3) * `M`     mega    (10**6) * `G`     giga    (10**9) * `T`
   1362       tera    (10**12) * `P`     peta    (10**15) * `E`     exa     (10**18) *
   1363       `Z`     zetta   (10**21) * `Y`     yotta   (10**24) * `m`     milli
   1364       (10**-3) * `u`     micro   (10**-6) * `n`     nano    (10**-9) * `p`
   1365       pico    (10**-12) * `f`     femto   (10**-15) * `a`     atto
   1366       (10**-18) * `z`     zepto   (10**-21) * `y`     yocto   (10**-24) * `Ki`
   1367       kibi    (2**10) * `Mi`    mebi    (2**20) * `Gi`    gibi    (2**30) *
   1368       `Ti`    tebi    (2**40)  **Grammar**  The grammar includes the
   1369       dimensionless unit `1`, such as `1/s`.  The grammar also includes these
   1370       connectors:  * `/`    division (as an infix operator, e.g. `1/s`). * `.`
   1371       multiplication (as an infix operator, e.g. `GBy.d`)  The grammar for a
   1372       unit is as follows:      Expression = Component { "." Component } { "/"
   1373       Component } ;      Component = [ PREFIX ] UNIT [ Annotation ]
   1374       | Annotation               | "1"               ;      Annotation = "{"
   1375       NAME "}" ;  Notes:  * `Annotation` is just a comment if it follows a
   1376       `UNIT` and is    equivalent to `1` if it is used alone. For examples,
   1377       `{requests}/s == 1/s`, `By{transmitted}/s == By/s`. * `NAME` is a
   1378       sequence of non-blank printable ASCII characters not    containing '{'
   1379       or '}'.
   1380     valueType: Whether the measurement is an integer, a floating-point number,
   1381       etc.
   1382   """
   1383 
   1384   class MetricKindValueValuesEnum(_messages.Enum):
   1385     """Whether the metric records instantaneous values, changes to a value,
   1386     etc.
   1387 
   1388     Values:
   1389       METRIC_KIND_UNSPECIFIED: Do not use this default value.
   1390       GAUGE: Instantaneous measurements of a varying quantity.
   1391       DELTA: Changes over non-overlapping time intervals.
   1392       CUMULATIVE: Cumulative value over time intervals that can overlap. The
   1393         overlapping intervals must have the same start time.
   1394     """
   1395     METRIC_KIND_UNSPECIFIED = 0
   1396     GAUGE = 1
   1397     DELTA = 2
   1398     CUMULATIVE = 3
   1399 
   1400   class ValueTypeValueValuesEnum(_messages.Enum):
   1401     """Whether the measurement is an integer, a floating-point number, etc.
   1402 
   1403     Values:
   1404       VALUE_TYPE_UNSPECIFIED: Do not use this default value.
   1405       BOOL: The value is a boolean. This value type can be used only if the
   1406         metric kind is `GAUGE`.
   1407       INT64: The value is a signed 64-bit integer.
   1408       DOUBLE: The value is a double precision floating point number.
   1409       STRING: The value is a text string. This value type can be used only if
   1410         the metric kind is `GAUGE`.
   1411       DISTRIBUTION: The value is a `Distribution`.
   1412       MONEY: The value is money.
   1413     """
   1414     VALUE_TYPE_UNSPECIFIED = 0
   1415     BOOL = 1
   1416     INT64 = 2
   1417     DOUBLE = 3
   1418     STRING = 4
   1419     DISTRIBUTION = 5
   1420     MONEY = 6
   1421 
   1422   description = _messages.StringField(1)
   1423   displayName = _messages.StringField(2)
   1424   labels = _messages.MessageField('LabelDescriptor', 3, repeated=True)
   1425   metricKind = _messages.EnumField('MetricKindValueValuesEnum', 4)
   1426   name = _messages.StringField(5)
   1427   type = _messages.StringField(6)
   1428   unit = _messages.StringField(7)
   1429   valueType = _messages.EnumField('ValueTypeValueValuesEnum', 8)
   1430 
   1431 
   1432 class Mixin(_messages.Message):
   1433   """Declares an API to be included in this API. The including API must
   1434   redeclare all the methods from the included API, but documentation and
   1435   options are inherited as follows:  - If after comment and whitespace
   1436   stripping, the documentation   string of the redeclared method is empty, it
   1437   will be inherited   from the original method.  - Each annotation belonging
   1438   to the service config (http,   visibility) which is not set in the
   1439   redeclared method will be   inherited.  - If an http annotation is
   1440   inherited, the path pattern will be   modified as follows. Any version
   1441   prefix will be replaced by the   version of the including API plus the root
   1442   path if specified.  Example of a simple mixin:      package google.acl.v1;
   1443   service AccessControl {       // Get the underlying ACL object.       rpc
   1444   GetAcl(GetAclRequest) returns (Acl) {         option (google.api.http).get =
   1445   "/v1/{resource=**}:getAcl";       }     }      package google.storage.v2;
   1446   service Storage {       //       rpc GetAcl(GetAclRequest) returns (Acl);
   1447   // Get a data record.       rpc GetData(GetDataRequest) returns (Data) {
   1448   option (google.api.http).get = "/v2/{resource=**}";       }     }  Example
   1449   of a mixin configuration:      apis:     - name: google.storage.v2.Storage
   1450   mixins:       - name: google.acl.v1.AccessControl  The mixin construct
   1451   implies that all methods in `AccessControl` are also declared with same name
   1452   and request/response types in `Storage`. A documentation generator or
   1453   annotation processor will see the effective `Storage.GetAcl` method after
   1454   inherting documentation and annotations as follows:      service Storage {
   1455   // Get the underlying ACL object.       rpc GetAcl(GetAclRequest) returns
   1456   (Acl) {         option (google.api.http).get = "/v2/{resource=**}:getAcl";
   1457   }       ...     }  Note how the version in the path pattern changed from
   1458   `v1` to `v2`.  If the `root` field in the mixin is specified, it should be a
   1459   relative path under which inherited HTTP paths are placed. Example:
   1460   apis:     - name: google.storage.v2.Storage       mixins:       - name:
   1461   google.acl.v1.AccessControl         root: acls  This implies the following
   1462   inherited HTTP annotation:      service Storage {       // Get the
   1463   underlying ACL object.       rpc GetAcl(GetAclRequest) returns (Acl) {
   1464   option (google.api.http).get = "/v2/acls/{resource=**}:getAcl";       }
   1465   ...     }
   1466 
   1467   Fields:
   1468     name: The fully qualified name of the API which is included.
   1469     root: If non-empty specifies a path under which inherited HTTP paths are
   1470       rooted.
   1471   """
   1472 
   1473   name = _messages.StringField(1)
   1474   root = _messages.StringField(2)
   1475 
   1476 
   1477 class MonitoredResourceDescriptor(_messages.Message):
   1478   """An object that describes the schema of a MonitoredResource object using a
   1479   type name and a set of labels.  For example, the monitored resource
   1480   descriptor for Google Compute Engine VM instances has a type of
   1481   `"gce_instance"` and specifies the use of the labels `"instance_id"` and
   1482   `"zone"` to identify particular VM instances.  Different APIs can support
   1483   different monitored resource types. APIs generally provide a `list` method
   1484   that returns the monitored resource descriptors used by the API.
   1485 
   1486   Fields:
   1487     description: Optional. A detailed description of the monitored resource
   1488       type that might be used in documentation.
   1489     displayName: Optional. A concise name for the monitored resource type that
   1490       might be displayed in user interfaces. For example, `"Google Cloud SQL
   1491       Database"`.
   1492     labels: Required. A set of labels used to describe instances of this
   1493       monitored resource type. For example, an individual Google Cloud SQL
   1494       database is identified by values for the labels `"database_id"` and
   1495       `"zone"`.
   1496     name: Optional. The resource name of the monitored resource descriptor:
   1497       `"projects/{project_id}/monitoredResourceDescriptors/{type}"` where
   1498       {type} is the value of the `type` field in this object and {project_id}
   1499       is a project ID that provides API-specific context for accessing the
   1500       type.  APIs that do not use project information can use the resource
   1501       name format `"monitoredResourceDescriptors/{type}"`.
   1502     type: Required. The monitored resource type. For example, the type
   1503       `"cloudsql_database"` represents databases in Google Cloud SQL. The
   1504       maximum length of this value is 256 characters.
   1505   """
   1506 
   1507   description = _messages.StringField(1)
   1508   displayName = _messages.StringField(2)
   1509   labels = _messages.MessageField('LabelDescriptor', 3, repeated=True)
   1510   name = _messages.StringField(4)
   1511   type = _messages.StringField(5)
   1512 
   1513 
   1514 class Monitoring(_messages.Message):
   1515   """Monitoring configuration of the service.  The example below shows how to
   1516   configure monitored resources and metrics for monitoring. In the example, a
   1517   monitored resource and two metrics are defined. The
   1518   `library.googleapis.com/book/returned_count` metric is sent to both producer
   1519   and consumer projects, whereas the
   1520   `library.googleapis.com/book/overdue_count` metric is only sent to the
   1521   consumer project.      monitored_resources:     - type:
   1522   library.googleapis.com/branch       labels:       - key: /city
   1523   description: The city where the library branch is located in.       - key:
   1524   /name         description: The name of the branch.     metrics:     - name:
   1525   library.googleapis.com/book/returned_count       metric_kind: DELTA
   1526   value_type: INT64       labels:       - key: /customer_id     - name:
   1527   library.googleapis.com/book/overdue_count       metric_kind: GAUGE
   1528   value_type: INT64       labels:       - key: /customer_id     monitoring:
   1529   producer_destinations:       - monitored_resource:
   1530   library.googleapis.com/branch         metrics:         -
   1531   library.googleapis.com/book/returned_count       consumer_destinations:
   1532   - monitored_resource: library.googleapis.com/branch         metrics:
   1533   - library.googleapis.com/book/returned_count         -
   1534   library.googleapis.com/book/overdue_count
   1535 
   1536   Fields:
   1537     consumerDestinations: Monitoring configurations for sending metrics to the
   1538       consumer project. There can be multiple consumer destinations, each one
   1539       must have a different monitored resource type. A metric can be used in
   1540       at most one consumer destination.
   1541     producerDestinations: Monitoring configurations for sending metrics to the
   1542       producer project. There can be multiple producer destinations, each one
   1543       must have a different monitored resource type. A metric can be used in
   1544       at most one producer destination.
   1545   """
   1546 
   1547   consumerDestinations = _messages.MessageField('MonitoringDestination', 1, repeated=True)
   1548   producerDestinations = _messages.MessageField('MonitoringDestination', 2, repeated=True)
   1549 
   1550 
   1551 class MonitoringDestination(_messages.Message):
   1552   """Configuration of a specific monitoring destination (the producer project
   1553   or the consumer project).
   1554 
   1555   Fields:
   1556     metrics: Names of the metrics to report to this monitoring destination.
   1557       Each name must be defined in Service.metrics section.
   1558     monitoredResource: The monitored resource type. The type must be defined
   1559       in Service.monitored_resources section.
   1560   """
   1561 
   1562   metrics = _messages.StringField(1, repeated=True)
   1563   monitoredResource = _messages.StringField(2)
   1564 
   1565 
   1566 class OAuthRequirements(_messages.Message):
   1567   """OAuth scopes are a way to define data and permissions on data. For
   1568   example, there are scopes defined for "Read-only access to Google Calendar"
   1569   and "Access to Cloud Platform". Users can consent to a scope for an
   1570   application, giving it permission to access that data on their behalf.
   1571   OAuth scope specifications should be fairly coarse grained; a user will need
   1572   to see and understand the text description of what your scope means.  In
   1573   most cases: use one or at most two OAuth scopes for an entire family of
   1574   products. If your product has multiple APIs, you should probably be sharing
   1575   the OAuth scope across all of those APIs.  When you need finer grained OAuth
   1576   consent screens: talk with your product management about how developers will
   1577   use them in practice.  Please note that even though each of the canonical
   1578   scopes is enough for a request to be accepted and passed to the backend, a
   1579   request can still fail due to the backend requiring additional scopes or
   1580   permissions.
   1581 
   1582   Fields:
   1583     canonicalScopes: The list of publicly documented OAuth scopes that are
   1584       allowed access. An OAuth token containing any of these scopes will be
   1585       accepted.  Example:       canonical_scopes:
   1586       https://www.googleapis.com/auth/calendar,
   1587       https://www.googleapis.com/auth/calendar.read
   1588   """
   1589 
   1590   canonicalScopes = _messages.StringField(1)
   1591 
   1592 
   1593 class OpenApiSpec(_messages.Message):
   1594   """A collection of OpenAPI specification files.
   1595 
   1596   Fields:
   1597     openApiFiles: Individual files.
   1598   """
   1599 
   1600   openApiFiles = _messages.MessageField('ConfigFile', 1, repeated=True)
   1601 
   1602 
   1603 class Operation(_messages.Message):
   1604   """This resource represents a long-running operation that is the result of a
   1605   network API call.
   1606 
   1607   Messages:
   1608     MetadataValue: Service-specific metadata associated with the operation.
   1609       It typically contains progress information and common metadata such as
   1610       create time. Some services might not provide such metadata.  Any method
   1611       that returns a long-running operation should document the metadata type,
   1612       if any.
   1613     ResponseValue: The normal response of the operation in case of success.
   1614       If the original method returns no data on success, such as `Delete`, the
   1615       response is `google.protobuf.Empty`.  If the original method is standard
   1616       `Get`/`Create`/`Update`, the response should be the resource.  For other
   1617       methods, the response should have the type `XxxResponse`, where `Xxx` is
   1618       the original method name.  For example, if the original method name is
   1619       `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
   1620 
   1621   Fields:
   1622     done: If the value is `false`, it means the operation is still in
   1623       progress. If true, the operation is completed, and either `error` or
   1624       `response` is available.
   1625     error: The error result of the operation in case of failure.
   1626     metadata: Service-specific metadata associated with the operation.  It
   1627       typically contains progress information and common metadata such as
   1628       create time. Some services might not provide such metadata.  Any method
   1629       that returns a long-running operation should document the metadata type,
   1630       if any.
   1631     name: The server-assigned name, which is only unique within the same
   1632       service that originally returns it. If you use the default HTTP mapping,
   1633       the `name` should have the format of `operations/some/unique/name`.
   1634     response: The normal response of the operation in case of success.  If the
   1635       original method returns no data on success, such as `Delete`, the
   1636       response is `google.protobuf.Empty`.  If the original method is standard
   1637       `Get`/`Create`/`Update`, the response should be the resource.  For other
   1638       methods, the response should have the type `XxxResponse`, where `Xxx` is
   1639       the original method name.  For example, if the original method name is
   1640       `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
   1641   """
   1642 
   1643   @encoding.MapUnrecognizedFields('additionalProperties')
   1644   class MetadataValue(_messages.Message):
   1645     """Service-specific metadata associated with the operation.  It typically
   1646     contains progress information and common metadata such as create time.
   1647     Some services might not provide such metadata.  Any method that returns a
   1648     long-running operation should document the metadata type, if any.
   1649 
   1650     Messages:
   1651       AdditionalProperty: An additional property for a MetadataValue object.
   1652 
   1653     Fields:
   1654       additionalProperties: Properties of the object. Contains field @type
   1655         with type URL.
   1656     """
   1657 
   1658     class AdditionalProperty(_messages.Message):
   1659       """An additional property for a MetadataValue object.
   1660 
   1661       Fields:
   1662         key: Name of the additional property.
   1663         value: A extra_types.JsonValue attribute.
   1664       """
   1665 
   1666       key = _messages.StringField(1)
   1667       value = _messages.MessageField('extra_types.JsonValue', 2)
   1668 
   1669     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   1670 
   1671   @encoding.MapUnrecognizedFields('additionalProperties')
   1672   class ResponseValue(_messages.Message):
   1673     """The normal response of the operation in case of success.  If the
   1674     original method returns no data on success, such as `Delete`, the response
   1675     is `google.protobuf.Empty`.  If the original method is standard
   1676     `Get`/`Create`/`Update`, the response should be the resource.  For other
   1677     methods, the response should have the type `XxxResponse`, where `Xxx` is
   1678     the original method name.  For example, if the original method name is
   1679     `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
   1680 
   1681     Messages:
   1682       AdditionalProperty: An additional property for a ResponseValue object.
   1683 
   1684     Fields:
   1685       additionalProperties: Properties of the object. Contains field @type
   1686         with type URL.
   1687     """
   1688 
   1689     class AdditionalProperty(_messages.Message):
   1690       """An additional property for a ResponseValue object.
   1691 
   1692       Fields:
   1693         key: Name of the additional property.
   1694         value: A extra_types.JsonValue attribute.
   1695       """
   1696 
   1697       key = _messages.StringField(1)
   1698       value = _messages.MessageField('extra_types.JsonValue', 2)
   1699 
   1700     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   1701 
   1702   done = _messages.BooleanField(1)
   1703   error = _messages.MessageField('Status', 2)
   1704   metadata = _messages.MessageField('MetadataValue', 3)
   1705   name = _messages.StringField(4)
   1706   response = _messages.MessageField('ResponseValue', 5)
   1707 
   1708 
   1709 class OperationMetadata(_messages.Message):
   1710   """The metadata associated with a long running operation resource.
   1711 
   1712   Fields:
   1713     progressPercentage: Percentage of completion of this operation, ranging
   1714       from 0 to 100.
   1715     resourceNames: The full name of the resources that this operation is
   1716       directly associated with.
   1717     startTime: The start time of the operation.
   1718     steps: Detailed status information for each step. The order is
   1719       undetermined.
   1720   """
   1721 
   1722   progressPercentage = _messages.IntegerField(1, variant=_messages.Variant.INT32)
   1723   resourceNames = _messages.StringField(2, repeated=True)
   1724   startTime = _messages.StringField(3)
   1725   steps = _messages.MessageField('Step', 4, repeated=True)
   1726 
   1727 
   1728 class Option(_messages.Message):
   1729   """A protocol buffer option, which can be attached to a message, field,
   1730   enumeration, etc.
   1731 
   1732   Messages:
   1733     ValueValue: The option's value. For example, `"com.google.protobuf"`.
   1734 
   1735   Fields:
   1736     name: The option's name. For example, `"java_package"`.
   1737     value: The option's value. For example, `"com.google.protobuf"`.
   1738   """
   1739 
   1740   @encoding.MapUnrecognizedFields('additionalProperties')
   1741   class ValueValue(_messages.Message):
   1742     """The option's value. For example, `"com.google.protobuf"`.
   1743 
   1744     Messages:
   1745       AdditionalProperty: An additional property for a ValueValue object.
   1746 
   1747     Fields:
   1748       additionalProperties: Properties of the object. Contains field @type
   1749         with type URL.
   1750     """
   1751 
   1752     class AdditionalProperty(_messages.Message):
   1753       """An additional property for a ValueValue object.
   1754 
   1755       Fields:
   1756         key: Name of the additional property.
   1757         value: A extra_types.JsonValue attribute.
   1758       """
   1759 
   1760       key = _messages.StringField(1)
   1761       value = _messages.MessageField('extra_types.JsonValue', 2)
   1762 
   1763     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   1764 
   1765   name = _messages.StringField(1)
   1766   value = _messages.MessageField('ValueValue', 2)
   1767 
   1768 
   1769 class Page(_messages.Message):
   1770   """Represents a documentation page. A page can contain subpages to represent
   1771   nested documentation set structure.
   1772 
   1773   Fields:
   1774     content: The Markdown content of the page. You can use <code>&#40;==
   1775       include {path} ==&#41;</code> to include content from a Markdown file.
   1776     name: The name of the page. It will be used as an identity of the page to
   1777       generate URI of the page, text of the link to this page in navigation,
   1778       etc. The full page name (start from the root page name to this page
   1779       concatenated with `.`) can be used as reference to the page in your
   1780       documentation. For example: <pre><code>pages: - name: Tutorial
   1781       content: &#40;== include tutorial.md ==&#41;   subpages:   - name: Java
   1782       content: &#40;== include tutorial_java.md ==&#41; </code></pre> You can
   1783       reference `Java` page using Markdown reference link syntax: `Java`.
   1784     subpages: Subpages of this page. The order of subpages specified here will
   1785       be honored in the generated docset.
   1786   """
   1787 
   1788   content = _messages.StringField(1)
   1789   name = _messages.StringField(2)
   1790   subpages = _messages.MessageField('Page', 3, repeated=True)
   1791 
   1792 
   1793 class ProjectProperties(_messages.Message):
   1794   """A descriptor for defining project properties for a service. One service
   1795   may have many consumer projects, and the service may want to behave
   1796   differently depending on some properties on the project. For example, a
   1797   project may be associated with a school, or a business, or a government
   1798   agency, a business type property on the project may affect how a service
   1799   responds to the client. This descriptor defines which properties are allowed
   1800   to be set on a project.  Example:     project_properties:      properties:
   1801   - name: NO_WATERMARK        type: BOOL        description: Allows usage of
   1802   the API without watermarks.      - name: EXTENDED_TILE_CACHE_PERIOD
   1803   type: INT64
   1804 
   1805   Fields:
   1806     properties: List of per consumer project-specific properties.
   1807   """
   1808 
   1809   properties = _messages.MessageField('Property', 1, repeated=True)
   1810 
   1811 
   1812 class ProjectSettings(_messages.Message):
   1813   """Settings that control how a consumer project uses a service.
   1814 
   1815   Messages:
   1816     PropertiesValue: Service-defined per-consumer properties.  A key-value
   1817       mapping a string key to a google.protobuf.ListValue proto. Values in the
   1818       list are typed as defined in the Service configuration's
   1819       consumer.properties field.
   1820 
   1821   Fields:
   1822     consumerProjectId: ID for the project consuming this service.
   1823     operations: Read-only view of pending operations affecting this resource,
   1824       if requested.
   1825     properties: Service-defined per-consumer properties.  A key-value mapping
   1826       a string key to a google.protobuf.ListValue proto. Values in the list
   1827       are typed as defined in the Service configuration's consumer.properties
   1828       field.
   1829     quotaSettings: Settings that control how much or how fast the service can
   1830       be used by the consumer project.
   1831     serviceName: The name of the service.  See the `ServiceManager` overview
   1832       for naming requirements.
   1833     usageSettings: Settings that control whether this service is usable by the
   1834       consumer project.
   1835     visibilitySettings: Settings that control which features of the service
   1836       are visible to the consumer project.
   1837   """
   1838 
   1839   @encoding.MapUnrecognizedFields('additionalProperties')
   1840   class PropertiesValue(_messages.Message):
   1841     """Service-defined per-consumer properties.  A key-value mapping a string
   1842     key to a google.protobuf.ListValue proto. Values in the list are typed as
   1843     defined in the Service configuration's consumer.properties field.
   1844 
   1845     Messages:
   1846       AdditionalProperty: An additional property for a PropertiesValue object.
   1847 
   1848     Fields:
   1849       additionalProperties: Additional properties of type PropertiesValue
   1850     """
   1851 
   1852     class AdditionalProperty(_messages.Message):
   1853       """An additional property for a PropertiesValue object.
   1854 
   1855       Fields:
   1856         key: Name of the additional property.
   1857         value: A extra_types.JsonValue attribute.
   1858       """
   1859 
   1860       key = _messages.StringField(1)
   1861       value = _messages.MessageField('extra_types.JsonValue', 2, repeated=True)
   1862 
   1863     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   1864 
   1865   consumerProjectId = _messages.StringField(1)
   1866   operations = _messages.MessageField('Operation', 2, repeated=True)
   1867   properties = _messages.MessageField('PropertiesValue', 3)
   1868   quotaSettings = _messages.MessageField('QuotaSettings', 4)
   1869   serviceName = _messages.StringField(5)
   1870   usageSettings = _messages.MessageField('UsageSettings', 6)
   1871   visibilitySettings = _messages.MessageField('VisibilitySettings', 7)
   1872 
   1873 
   1874 class Property(_messages.Message):
   1875   """Defines project properties.  API services can define properties that can
   1876   be assigned to consumer projects so that backends can perform response
   1877   customization without having to make additional calls or maintain additional
   1878   storage. For example, Maps API defines properties that controls map tile
   1879   cache period, or whether to embed a watermark in a result.  These values can
   1880   be set via API producer console. Only API providers can define and set these
   1881   properties.
   1882 
   1883   Enums:
   1884     TypeValueValuesEnum: The type of this property.
   1885 
   1886   Fields:
   1887     description: The description of the property
   1888     name: The name of the property (a.k.a key).
   1889     type: The type of this property.
   1890   """
   1891 
   1892   class TypeValueValuesEnum(_messages.Enum):
   1893     """The type of this property.
   1894 
   1895     Values:
   1896       UNSPECIFIED: The type is unspecified, and will result in an error.
   1897       INT64: The type is `int64`.
   1898       BOOL: The type is `bool`.
   1899       STRING: The type is `string`.
   1900       DOUBLE: The type is 'double'.
   1901     """
   1902     UNSPECIFIED = 0
   1903     INT64 = 1
   1904     BOOL = 2
   1905     STRING = 3
   1906     DOUBLE = 4
   1907 
   1908   description = _messages.StringField(1)
   1909   name = _messages.StringField(2)
   1910   type = _messages.EnumField('TypeValueValuesEnum', 3)
   1911 
   1912 
   1913 class ProtoDescriptor(_messages.Message):
   1914   """Contains a serialized protoc-generated protocol buffer message descriptor
   1915   set along with a URL that describes the type of the descriptor message.
   1916 
   1917   Fields:
   1918     typeUrl: A URL/resource name whose content describes the type of the
   1919       serialized protocol buffer message.  Only
   1920       'type.googleapis.com/google.protobuf.FileDescriptorSet' is supported. If
   1921       the type_url is not specificed,
   1922       'type.googleapis.com/google.protobuf.FileDescriptorSet' will be assumed.
   1923     value: Must be a valid serialized protocol buffer descriptor set.  To
   1924       generate, use protoc with imports and source info included. For an
   1925       example test.proto file, the following command would put the value in a
   1926       new file named descriptor.pb.  $protoc --include_imports
   1927       --include_source_info test.proto -o descriptor.pb
   1928   """
   1929 
   1930   typeUrl = _messages.StringField(1)
   1931   value = _messages.BytesField(2)
   1932 
   1933 
   1934 class ProtoSpec(_messages.Message):
   1935   """A collection of protocol buffer service specification files.
   1936 
   1937   Fields:
   1938     protoDescriptor: A complete descriptor of a protocol buffer specification
   1939   """
   1940 
   1941   protoDescriptor = _messages.MessageField('ProtoDescriptor', 1)
   1942 
   1943 
   1944 class QueryUserAccessResponse(_messages.Message):
   1945   """Request message for QueryUserAccess method.
   1946 
   1947   Fields:
   1948     accessibleVisibilityLabels: Any visibility labels on the service that are
   1949       accessible by the user.
   1950     canAccessService: True if the user can access the service and any
   1951       unrestricted API surface.
   1952   """
   1953 
   1954   accessibleVisibilityLabels = _messages.StringField(1, repeated=True)
   1955   canAccessService = _messages.BooleanField(2)
   1956 
   1957 
   1958 class Quota(_messages.Message):
   1959   """Quota configuration helps to achieve fairness and budgeting in service
   1960   usage.  - Fairness is achieved through the use of short-term quota limits
   1961   that are usually defined over a time window of several seconds or   minutes.
   1962   When such a limit is applied, for example at the user   level, it ensures
   1963   that no single user will monopolize the service   or a given customer's
   1964   allocated portion of it. - Budgeting is achieved through the use of long-
   1965   term quota limits   that are usually defined over a time window of one or
   1966   more   days. These limits help client application developers predict the
   1967   usage and help budgeting.  Quota enforcement uses a simple token-based
   1968   algorithm for resource sharing.  The quota configuration structure is as
   1969   follows:  - `QuotaLimit` defines a single enforceable limit with a specified
   1970   token amount that can be consumed over a specific duration and   applies to
   1971   a particular entity, like a project or an end user. If   the limit applies
   1972   to a user, each user making the request will   get the specified number of
   1973   tokens to consume. When the tokens   run out, the requests from that user
   1974   will be blocked until the   duration elapses and the next duration window
   1975   starts.  - `QuotaGroup` groups a set of quota limits.  - `QuotaRule` maps a
   1976   method to a set of quota groups. This allows   sharing of quota groups
   1977   across methods as well as one method   consuming tokens from more than one
   1978   quota group. When a group   contains multiple limits, requests to a method
   1979   consuming tokens   from that group must satisfy all the limits in that
   1980   group.  Example:      quota:       groups:       - name: ReadGroup
   1981   limits:         - description: Daily Limit           name: ProjectQpd
   1982   default_limit: 10000           duration: 1d           limit_by:
   1983   CLIENT_PROJECT          - description: Per-second Limit           name:
   1984   UserQps           default_limit: 20000           duration: 100s
   1985   limit_by: USER        - name: WriteGroup         limits:         -
   1986   description: Daily Limit           name: ProjectQpd           default_limit:
   1987   1000           max_limit: 1000           duration: 1d           limit_by:
   1988   CLIENT_PROJECT          - description: Per-second Limit           name:
   1989   UserQps           default_limit: 2000           max_limit: 4000
   1990   duration: 100s           limit_by: USER        rules:       - selector: "*"
   1991   groups:         - group: ReadGroup       - selector:
   1992   google.calendar.Calendar.Update         groups:         - group: WriteGroup
   1993   cost: 2       - selector: google.calendar.Calendar.Delete         groups:
   1994   - group: WriteGroup  Here, the configuration defines two quota groups:
   1995   ReadGroup and WriteGroup, each defining its own daily and per-second limits.
   1996   Note that One Platform enforces per-second limits averaged over a duration
   1997   of 100 seconds. The rules map ReadGroup for all methods, except for the
   1998   Update and Delete methods. These two methods consume from WriteGroup, with
   1999   Update method consuming at twice the rate as Delete method.  Multiple quota
   2000   groups can be specified for a method. The quota limits in all of those
   2001   groups will be enforced. Example:      quota:       groups:       - name:
   2002   WriteGroup         limits:         - description: Daily Limit
   2003   name: ProjectQpd           default_limit: 1000           max_limit: 1000
   2004   duration: 1d           limit_by: CLIENT_PROJECT          - description: Per-
   2005   second Limit           name: UserQps           default_limit: 2000
   2006   max_limit: 4000           duration: 100s           limit_by: USER        -
   2007   name: StorageGroup         limits:         - description: Storage Quota
   2008   name: StorageQuota           default_limit: 1000           duration: 0
   2009   limit_by: USER        rules:       - selector:
   2010   google.calendar.Calendar.Create         groups:         - group:
   2011   StorageGroup         - group: WriteGroup       - selector:
   2012   google.calendar.Calendar.Delete         groups:         - group:
   2013   StorageGroup  In the above example, the Create and Delete methods manage the
   2014   user's storage space. In addition, Create method uses WriteGroup to manage
   2015   the requests. In this case, requests to Create method need to satisfy all
   2016   quota limits defined in both quota groups.  One can disable quota for
   2017   selected method(s) identified by the selector by setting disable_quota to
   2018   ture. For example,        rules:       - selector: "*"         group:
   2019   - group ReadGroup       - selector: google.calendar.Calendar.Select
   2020   disable_quota: true
   2021 
   2022   Fields:
   2023     groups: List of `QuotaGroup` definitions for the service.
   2024     rules: List of `QuotaRule` definitions, each one mapping a selected method
   2025       to one or more quota groups.
   2026   """
   2027 
   2028   groups = _messages.MessageField('QuotaGroup', 1, repeated=True)
   2029   rules = _messages.MessageField('QuotaRule', 2, repeated=True)
   2030 
   2031 
   2032 class QuotaGroup(_messages.Message):
   2033   """`QuotaGroup` defines a set of quota limits to enforce.
   2034 
   2035   Fields:
   2036     billable: Indicates if the quota limits defined in this quota group apply
   2037       to consumers who have active billing. Quota limits defined in billable
   2038       groups will be applied only to consumers who have active billing. The
   2039       amount of tokens consumed from billable quota group will also be
   2040       reported for billing. Quota limits defined in non-billable groups will
   2041       be applied only to consumers who have no active billing.
   2042     description: User-visible description of this quota group.
   2043     limits: Quota limits to be enforced when this quota group is used. A
   2044       request must satisfy all the limits in a group for it to be permitted.
   2045     name: Name of this quota group. Must be unique within the service.  Quota
   2046       group name is used as part of the id for quota limits. Once the quota
   2047       group has been put into use, the name of the quota group should be
   2048       immutable.
   2049   """
   2050 
   2051   billable = _messages.BooleanField(1)
   2052   description = _messages.StringField(2)
   2053   limits = _messages.MessageField('QuotaLimit', 3, repeated=True)
   2054   name = _messages.StringField(4)
   2055 
   2056 
   2057 class QuotaGroupMapping(_messages.Message):
   2058   """A quota group mapping.
   2059 
   2060   Fields:
   2061     cost: Number of tokens to consume for each request. This allows different
   2062       cost to be associated with different methods that consume from the same
   2063       quota group. By default, each request will cost one token.
   2064     group: The `QuotaGroup.name` of the group. Requests for the mapped methods
   2065       will consume tokens from each of the limits defined in this group.
   2066   """
   2067 
   2068   cost = _messages.IntegerField(1, variant=_messages.Variant.INT32)
   2069   group = _messages.StringField(2)
   2070 
   2071 
   2072 class QuotaInfo(_messages.Message):
   2073   """Metadata about an individual quota, containing usage and limit
   2074   information.
   2075 
   2076   Fields:
   2077     currentUsage: The usage data for this quota as it applies to the current
   2078       limit.
   2079     historicalUsage: The historical usage data of this quota limit. Currently
   2080       it is only available for daily quota limit, that is, base_limit.duration
   2081       = "1d".
   2082     limit: The effective limit for this quota.
   2083   """
   2084 
   2085   currentUsage = _messages.MessageField('QuotaUsage', 1)
   2086   historicalUsage = _messages.MessageField('QuotaUsage', 2, repeated=True)
   2087   limit = _messages.MessageField('EffectiveQuotaLimit', 3)
   2088 
   2089 
   2090 class QuotaLimit(_messages.Message):
   2091   """`QuotaLimit` defines a specific limit that applies over a specified
   2092   duration for a limit type. There can be at most one limit for a duration and
   2093   limit type combination defined within a `QuotaGroup`.
   2094 
   2095   Enums:
   2096     LimitByValueValuesEnum: Limit type to use for enforcing this quota limit.
   2097       Each unique value gets the defined number of tokens to consume from. For
   2098       a quota limit that uses user type, each user making requests through the
   2099       same client application project will get his/her own pool of tokens to
   2100       consume, whereas for a limit that uses client project type, all users
   2101       making requests through the same client application project share a
   2102       single pool of tokens.
   2103 
   2104   Fields:
   2105     defaultLimit: Default number of tokens that can be consumed during the
   2106       specified duration. This is the number of tokens assigned when a client
   2107       application developer activates the service for his/her project.
   2108       Specifying a value of 0 will block all requests. This can be used if you
   2109       are provisioning quota to selected consumers and blocking others.
   2110       Similarly, a value of -1 will indicate an unlimited quota. No other
   2111       negative values are allowed.
   2112     description: Optional. User-visible, extended description for this quota
   2113       limit. Should be used only when more context is needed to understand
   2114       this limit than provided by the limit's display name (see:
   2115       `display_name`).
   2116     displayName: User-visible display name for this limit. Optional. If not
   2117       set, the UI will provide a default display name based on the quota
   2118       configuration. This field can be used to override the default display
   2119       name generated from the configuration.
   2120     duration: Duration of this limit in textual notation. Example: "100s",
   2121       "24h", "1d". For duration longer than a day, only multiple of days is
   2122       supported. We support only "100s" and "1d" for now. Additional support
   2123       will be added in the future. "0" indicates indefinite duration.
   2124     freeTier: Free tier value displayed in the Developers Console for this
   2125       limit. The free tier is the number of tokens that will be subtracted
   2126       from the billed amount when billing is enabled. This field can only be
   2127       set on a limit with duration "1d", in a billable group; it is invalid on
   2128       any other limit. If this field is not set, it defaults to 0, indicating
   2129       that there is no free tier for this service.
   2130     limitBy: Limit type to use for enforcing this quota limit. Each unique
   2131       value gets the defined number of tokens to consume from. For a quota
   2132       limit that uses user type, each user making requests through the same
   2133       client application project will get his/her own pool of tokens to
   2134       consume, whereas for a limit that uses client project type, all users
   2135       making requests through the same client application project share a
   2136       single pool of tokens.
   2137     maxLimit: Maximum number of tokens that can be consumed during the
   2138       specified duration. Client application developers can override the
   2139       default limit up to this maximum. If specified, this value cannot be set
   2140       to a value less than the default limit. If not specified, it is set to
   2141       the default limit.  To allow clients to apply overrides with no upper
   2142       bound, set this to -1, indicating unlimited maximum quota.
   2143     name: Name of the quota limit.  Must be unique within the quota group.
   2144       This name is used to refer to the limit when overriding the limit on a
   2145       per-project basis.  If a name is not provided, it will be generated from
   2146       the limit_by and duration fields.  The maximum length of the limit name
   2147       is 64 characters.  The name of a limit is used as a unique identifier
   2148       for this limit. Therefore, once a limit has been put into use, its name
   2149       should be immutable. You can use the display_name field to provide a
   2150       user-friendly name for the limit. The display name can be evolved over
   2151       time without affecting the identity of the limit.
   2152   """
   2153 
   2154   class LimitByValueValuesEnum(_messages.Enum):
   2155     """Limit type to use for enforcing this quota limit. Each unique value
   2156     gets the defined number of tokens to consume from. For a quota limit that
   2157     uses user type, each user making requests through the same client
   2158     application project will get his/her own pool of tokens to consume,
   2159     whereas for a limit that uses client project type, all users making
   2160     requests through the same client application project share a single pool
   2161     of tokens.
   2162 
   2163     Values:
   2164       CLIENT_PROJECT: ID of the project owned by the client application
   2165         developer making the request.
   2166       USER: ID of the end user making the request using the client
   2167         application.
   2168     """
   2169     CLIENT_PROJECT = 0
   2170     USER = 1
   2171 
   2172   defaultLimit = _messages.IntegerField(1)
   2173   description = _messages.StringField(2)
   2174   displayName = _messages.StringField(3)
   2175   duration = _messages.StringField(4)
   2176   freeTier = _messages.IntegerField(5)
   2177   limitBy = _messages.EnumField('LimitByValueValuesEnum', 6)
   2178   maxLimit = _messages.IntegerField(7)
   2179   name = _messages.StringField(8)
   2180 
   2181 
   2182 class QuotaLimitOverride(_messages.Message):
   2183   """Specifies a custom quota limit that is applied for this consumer project.
   2184   This overrides the default value in google.api.QuotaLimit.
   2185 
   2186   Fields:
   2187     limit: The new limit for this project. May be -1 (unlimited), 0 (block),
   2188       or any positive integer.
   2189     unlimited: Indicates the override is to provide unlimited quota.  If true,
   2190       any value set for limit will be ignored. DEPRECATED. Use a limit value
   2191       of -1 instead.
   2192   """
   2193 
   2194   limit = _messages.IntegerField(1)
   2195   unlimited = _messages.BooleanField(2)
   2196 
   2197 
   2198 class QuotaRule(_messages.Message):
   2199   """`QuotaRule` maps a method to a set of `QuotaGroup`s.
   2200 
   2201   Fields:
   2202     disableQuota: Indicates if quota checking should be enforced. Quota will
   2203       be disabled for methods without quota rules or with quota rules having
   2204       this field set to true. When this field is set to true, no quota group
   2205       mapping is allowed.
   2206     groups: Quota groups to be used for this method. This supports associating
   2207       a cost with each quota group.
   2208     selector: Selects methods to which this rule applies.  Refer to selector
   2209       for syntax details.
   2210   """
   2211 
   2212   disableQuota = _messages.BooleanField(1)
   2213   groups = _messages.MessageField('QuotaGroupMapping', 2, repeated=True)
   2214   selector = _messages.StringField(3)
   2215 
   2216 
   2217 class QuotaSettings(_messages.Message):
   2218   """Per-consumer overrides for quota settings. See google/api/quota.proto for
   2219   the corresponding service configuration which provides the default values.
   2220 
   2221   Messages:
   2222     ConsumerOverridesValue: Quota overrides set by the consumer. Consumer
   2223       overrides will only have an effect up to the max_limit specified in the
   2224       service config, or the the producer override, if one exists.  The key
   2225       for this map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for
   2226       quotas defined within quota groups, where GROUP_NAME is the
   2227       google.api.QuotaGroup.name field and LIMIT_NAME is the
   2228       google.api.QuotaLimit.name field from the service config.  For example:
   2229       'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
   2230       quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
   2231       from the service config. For example: 'borrowedCountPerOrganization'.
   2232     EffectiveQuotasValue: The effective quota limits for each group, derived
   2233       from the service defaults together with any producer or consumer
   2234       overrides. For each limit, the effective value is the minimum of the
   2235       producer and consumer overrides if either is present, or else the
   2236       service default if neither is present. DEPRECATED. Use
   2237       effective_quota_groups instead.
   2238     ProducerOverridesValue: Quota overrides set by the producer. Note that if
   2239       a consumer override is also specified, then the minimum of the two will
   2240       be used. This allows consumers to cap their usage voluntarily.  The key
   2241       for this map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for
   2242       quotas defined within quota groups, where GROUP_NAME is the
   2243       google.api.QuotaGroup.name field and LIMIT_NAME is the
   2244       google.api.QuotaLimit.name field from the service config.  For example:
   2245       'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
   2246       quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
   2247       from the service config. For example: 'borrowedCountPerOrganization'.
   2248 
   2249   Fields:
   2250     consumerOverrides: Quota overrides set by the consumer. Consumer overrides
   2251       will only have an effect up to the max_limit specified in the service
   2252       config, or the the producer override, if one exists.  The key for this
   2253       map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for quotas
   2254       defined within quota groups, where GROUP_NAME is the
   2255       google.api.QuotaGroup.name field and LIMIT_NAME is the
   2256       google.api.QuotaLimit.name field from the service config.  For example:
   2257       'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
   2258       quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
   2259       from the service config. For example: 'borrowedCountPerOrganization'.
   2260     effectiveQuotaGroups: Use this field for quota limits defined under quota
   2261       groups. Combines service quota configuration and project-specific
   2262       settings, as a map from quota group name to the effective quota
   2263       information for that group. Output-only.
   2264     effectiveQuotas: The effective quota limits for each group, derived from
   2265       the service defaults together with any producer or consumer overrides.
   2266       For each limit, the effective value is the minimum of the producer and
   2267       consumer overrides if either is present, or else the service default if
   2268       neither is present. DEPRECATED. Use effective_quota_groups instead.
   2269     producerOverrides: Quota overrides set by the producer. Note that if a
   2270       consumer override is also specified, then the minimum of the two will be
   2271       used. This allows consumers to cap their usage voluntarily.  The key for
   2272       this map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for
   2273       quotas defined within quota groups, where GROUP_NAME is the
   2274       google.api.QuotaGroup.name field and LIMIT_NAME is the
   2275       google.api.QuotaLimit.name field from the service config.  For example:
   2276       'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
   2277       quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
   2278       from the service config. For example: 'borrowedCountPerOrganization'.
   2279     variableTermQuotas: Quotas that are active over a specified time period.
   2280       Only writeable by the producer.
   2281   """
   2282 
   2283   @encoding.MapUnrecognizedFields('additionalProperties')
   2284   class ConsumerOverridesValue(_messages.Message):
   2285     """Quota overrides set by the consumer. Consumer overrides will only have
   2286     an effect up to the max_limit specified in the service config, or the the
   2287     producer override, if one exists.  The key for this map is one of the
   2288     following:  - '<GROUP_NAME>/<LIMIT_NAME>' for quotas defined within quota
   2289     groups, where GROUP_NAME is the google.api.QuotaGroup.name field and
   2290     LIMIT_NAME is the google.api.QuotaLimit.name field from the service
   2291     config.  For example: 'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for
   2292     quotas defined without quota groups, where LIMIT_NAME is the
   2293     google.api.QuotaLimit.name field from the service config. For example:
   2294     'borrowedCountPerOrganization'.
   2295 
   2296     Messages:
   2297       AdditionalProperty: An additional property for a ConsumerOverridesValue
   2298         object.
   2299 
   2300     Fields:
   2301       additionalProperties: Additional properties of type
   2302         ConsumerOverridesValue
   2303     """
   2304 
   2305     class AdditionalProperty(_messages.Message):
   2306       """An additional property for a ConsumerOverridesValue object.
   2307 
   2308       Fields:
   2309         key: Name of the additional property.
   2310         value: A QuotaLimitOverride attribute.
   2311       """
   2312 
   2313       key = _messages.StringField(1)
   2314       value = _messages.MessageField('QuotaLimitOverride', 2)
   2315 
   2316     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   2317 
   2318   @encoding.MapUnrecognizedFields('additionalProperties')
   2319   class EffectiveQuotasValue(_messages.Message):
   2320     """The effective quota limits for each group, derived from the service
   2321     defaults together with any producer or consumer overrides. For each limit,
   2322     the effective value is the minimum of the producer and consumer overrides
   2323     if either is present, or else the service default if neither is present.
   2324     DEPRECATED. Use effective_quota_groups instead.
   2325 
   2326     Messages:
   2327       AdditionalProperty: An additional property for a EffectiveQuotasValue
   2328         object.
   2329 
   2330     Fields:
   2331       additionalProperties: Additional properties of type EffectiveQuotasValue
   2332     """
   2333 
   2334     class AdditionalProperty(_messages.Message):
   2335       """An additional property for a EffectiveQuotasValue object.
   2336 
   2337       Fields:
   2338         key: Name of the additional property.
   2339         value: A QuotaLimitOverride attribute.
   2340       """
   2341 
   2342       key = _messages.StringField(1)
   2343       value = _messages.MessageField('QuotaLimitOverride', 2)
   2344 
   2345     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   2346 
   2347   @encoding.MapUnrecognizedFields('additionalProperties')
   2348   class ProducerOverridesValue(_messages.Message):
   2349     """Quota overrides set by the producer. Note that if a consumer override
   2350     is also specified, then the minimum of the two will be used. This allows
   2351     consumers to cap their usage voluntarily.  The key for this map is one of
   2352     the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for quotas defined within
   2353     quota groups, where GROUP_NAME is the google.api.QuotaGroup.name field and
   2354     LIMIT_NAME is the google.api.QuotaLimit.name field from the service
   2355     config.  For example: 'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for
   2356     quotas defined without quota groups, where LIMIT_NAME is the
   2357     google.api.QuotaLimit.name field from the service config. For example:
   2358     'borrowedCountPerOrganization'.
   2359 
   2360     Messages:
   2361       AdditionalProperty: An additional property for a ProducerOverridesValue
   2362         object.
   2363 
   2364     Fields:
   2365       additionalProperties: Additional properties of type
   2366         ProducerOverridesValue
   2367     """
   2368 
   2369     class AdditionalProperty(_messages.Message):
   2370       """An additional property for a ProducerOverridesValue object.
   2371 
   2372       Fields:
   2373         key: Name of the additional property.
   2374         value: A QuotaLimitOverride attribute.
   2375       """
   2376 
   2377       key = _messages.StringField(1)
   2378       value = _messages.MessageField('QuotaLimitOverride', 2)
   2379 
   2380     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   2381 
   2382   consumerOverrides = _messages.MessageField('ConsumerOverridesValue', 1)
   2383   effectiveQuotaGroups = _messages.MessageField('EffectiveQuotaGroup', 2, repeated=True)
   2384   effectiveQuotas = _messages.MessageField('EffectiveQuotasValue', 3)
   2385   producerOverrides = _messages.MessageField('ProducerOverridesValue', 4)
   2386   variableTermQuotas = _messages.MessageField('VariableTermQuota', 5, repeated=True)
   2387 
   2388 
   2389 class QuotaUsage(_messages.Message):
   2390   """Specifies the used quota amount for a quota limit at a particular time.
   2391 
   2392   Fields:
   2393     endTime: The time the quota duration ended.
   2394     queryTime: The time the quota usage data was queried.
   2395     startTime: The time the quota duration started.
   2396     usage: The used quota value at the "query_time".
   2397   """
   2398 
   2399   endTime = _messages.StringField(1)
   2400   queryTime = _messages.StringField(2)
   2401   startTime = _messages.StringField(3)
   2402   usage = _messages.IntegerField(4)
   2403 
   2404 
   2405 class Service(_messages.Message):
   2406   """`Service` is the root object of the configuration schema. It describes
   2407   basic information like the name of the service and the exposed API
   2408   interfaces, and delegates other aspects to configuration sub-sections.
   2409   Example:      type: google.api.Service     config_version: 1     name:
   2410   calendar.googleapis.com     title: Google Calendar API     apis:     - name:
   2411   google.calendar.Calendar     backend:       rules:       - selector: "*"
   2412   address: calendar.example.com
   2413 
   2414   Fields:
   2415     apis: A list of API interfaces exported by this service. Only the `name`
   2416       field of the google.protobuf.Api needs to be provided by the
   2417       configuration author, as the remaining fields will be derived from the
   2418       IDL during the normalization process. It is an error to specify an API
   2419       interface here which cannot be resolved against the associated IDL
   2420       files.
   2421     authentication: Auth configuration.
   2422     backend: API backend configuration.
   2423     billing: Billing configuration of the service.
   2424     configVersion: The version of the service configuration. The config
   2425       version may influence interpretation of the configuration, for example,
   2426       to determine defaults. This is documented together with applicable
   2427       options. The current default for the config version itself is `3`.
   2428     context: Context configuration.
   2429     control: Configuration for the service control plane.
   2430     customError: Custom error configuration.
   2431     documentation: Additional API documentation.
   2432     enums: A list of all enum types included in this API service.  Enums
   2433       referenced directly or indirectly by the `apis` are automatically
   2434       included.  Enums which are not referenced but shall be included should
   2435       be listed here by name. Example:      enums:     - name:
   2436       google.someapi.v1.SomeEnum
   2437     http: HTTP configuration.
   2438     id: A unique ID for a specific instance of this message, typically
   2439       assigned by the client for tracking purpose. If empty, the server may
   2440       choose to generate one instead.
   2441     logging: Logging configuration of the service.
   2442     logs: Defines the logs used by this service.
   2443     metrics: Defines the metrics used by this service.
   2444     monitoredResources: Defines the monitored resources used by this service.
   2445       This is required by the Service.monitoring and Service.logging
   2446       configurations.
   2447     monitoring: Monitoring configuration of the service.
   2448     name: The DNS address at which this service is available, e.g.
   2449       `calendar.googleapis.com`.
   2450     producerProjectId: The id of the Google developer project that owns the
   2451       service. Members of this project can manage the service configuration,
   2452       manage consumption of the service, etc.
   2453     projectProperties: Configuration of per-consumer project properties.
   2454     quota: Quota configuration.
   2455     systemParameters: Configuration for system parameters.
   2456     systemTypes: A list of all proto message types included in this API
   2457       service. It serves similar purpose as [google.api.Service.types], except
   2458       that these types are not needed by user-defined APIs. Therefore, they
   2459       will not show up in the generated discovery doc. This field should only
   2460       be used to define system APIs in ESF.
   2461     title: The product title associated with this service.
   2462     types: A list of all proto message types included in this API service.
   2463       Types referenced directly or indirectly by the `apis` are automatically
   2464       included.  Messages which are not referenced but shall be included, such
   2465       as types used by the `google.protobuf.Any` type, should be listed here
   2466       by name. Example:      types:     - name: google.protobuf.Int32
   2467     usage: Configuration controlling usage of this service.
   2468     visibility: API visibility configuration.
   2469   """
   2470 
   2471   apis = _messages.MessageField('Api', 1, repeated=True)
   2472   authentication = _messages.MessageField('Authentication', 2)
   2473   backend = _messages.MessageField('Backend', 3)
   2474   billing = _messages.MessageField('Billing', 4)
   2475   configVersion = _messages.IntegerField(5, variant=_messages.Variant.UINT32)
   2476   context = _messages.MessageField('Context', 6)
   2477   control = _messages.MessageField('Control', 7)
   2478   customError = _messages.MessageField('CustomError', 8)
   2479   documentation = _messages.MessageField('Documentation', 9)
   2480   enums = _messages.MessageField('Enum', 10, repeated=True)
   2481   http = _messages.MessageField('Http', 11)
   2482   id = _messages.StringField(12)
   2483   logging = _messages.MessageField('Logging', 13)
   2484   logs = _messages.MessageField('LogDescriptor', 14, repeated=True)
   2485   metrics = _messages.MessageField('MetricDescriptor', 15, repeated=True)
   2486   monitoredResources = _messages.MessageField('MonitoredResourceDescriptor', 16, repeated=True)
   2487   monitoring = _messages.MessageField('Monitoring', 17)
   2488   name = _messages.StringField(18)
   2489   producerProjectId = _messages.StringField(19)
   2490   projectProperties = _messages.MessageField('ProjectProperties', 20)
   2491   quota = _messages.MessageField('Quota', 21)
   2492   systemParameters = _messages.MessageField('SystemParameters', 22)
   2493   systemTypes = _messages.MessageField('Type', 23, repeated=True)
   2494   title = _messages.StringField(24)
   2495   types = _messages.MessageField('Type', 25, repeated=True)
   2496   usage = _messages.MessageField('Usage', 26)
   2497   visibility = _messages.MessageField('Visibility', 27)
   2498 
   2499 
   2500 class ServiceAccessList(_messages.Message):
   2501   """List of users and groups that are granted access to a service or
   2502   visibility label.
   2503 
   2504   Fields:
   2505     members: Members that are granted access.  - "user:{$user_email}" - Grant
   2506       access to an individual user - "group:{$group_email}" - Grant access to
   2507       direct members of the group - "domain:{$domain}" - Grant access to all
   2508       members of the domain. For now,      domain membership check will be
   2509       similar to Devconsole/TT check:      compare domain part of the user
   2510       email to configured domain name.      When IAM integration is complete,
   2511       this will be replaced with IAM      check.
   2512   """
   2513 
   2514   members = _messages.StringField(1, repeated=True)
   2515 
   2516 
   2517 class ServiceAccessPolicy(_messages.Message):
   2518   """Policy describing who can access a service and any visibility labels on
   2519   that service.
   2520 
   2521   Messages:
   2522     VisibilityLabelAccessListsValue: ACLs for access to restricted parts of
   2523       the service.  The map key is the visibility label that is being
   2524       controlled.  Note that access to any label also implies access to the
   2525       unrestricted surface.
   2526 
   2527   Fields:
   2528     accessList: ACL for access to the unrestricted surface of the service.
   2529     serviceName: The service protected by this policy.
   2530     visibilityLabelAccessLists: ACLs for access to restricted parts of the
   2531       service.  The map key is the visibility label that is being controlled.
   2532       Note that access to any label also implies access to the unrestricted
   2533       surface.
   2534   """
   2535 
   2536   @encoding.MapUnrecognizedFields('additionalProperties')
   2537   class VisibilityLabelAccessListsValue(_messages.Message):
   2538     """ACLs for access to restricted parts of the service.  The map key is the
   2539     visibility label that is being controlled.  Note that access to any label
   2540     also implies access to the unrestricted surface.
   2541 
   2542     Messages:
   2543       AdditionalProperty: An additional property for a
   2544         VisibilityLabelAccessListsValue object.
   2545 
   2546     Fields:
   2547       additionalProperties: Additional properties of type
   2548         VisibilityLabelAccessListsValue
   2549     """
   2550 
   2551     class AdditionalProperty(_messages.Message):
   2552       """An additional property for a VisibilityLabelAccessListsValue object.
   2553 
   2554       Fields:
   2555         key: Name of the additional property.
   2556         value: A ServiceAccessList attribute.
   2557       """
   2558 
   2559       key = _messages.StringField(1)
   2560       value = _messages.MessageField('ServiceAccessList', 2)
   2561 
   2562     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   2563 
   2564   accessList = _messages.MessageField('ServiceAccessList', 1)
   2565   serviceName = _messages.StringField(2)
   2566   visibilityLabelAccessLists = _messages.MessageField('VisibilityLabelAccessListsValue', 3)
   2567 
   2568 
   2569 class ServicemanagementOperationsGetRequest(_messages.Message):
   2570   """A ServicemanagementOperationsGetRequest object.
   2571 
   2572   Fields:
   2573     operationsId: Part of `name`. The name of the operation resource.
   2574   """
   2575 
   2576   operationsId = _messages.StringField(1, required=True)
   2577 
   2578 
   2579 class ServicemanagementServicesAccessPolicyQueryRequest(_messages.Message):
   2580   """A ServicemanagementServicesAccessPolicyQueryRequest object.
   2581 
   2582   Fields:
   2583     serviceName: The service to query access for.
   2584     userEmail: The user to query access for.
   2585   """
   2586 
   2587   serviceName = _messages.StringField(1, required=True)
   2588   userEmail = _messages.StringField(2)
   2589 
   2590 
   2591 class ServicemanagementServicesConfigsCreateRequest(_messages.Message):
   2592   """A ServicemanagementServicesConfigsCreateRequest object.
   2593 
   2594   Fields:
   2595     service: A Service resource to be passed as the request body.
   2596     serviceName: The name of the service.  See the `ServiceManager` overview
   2597       for naming requirements.  For example: `example.googleapis.com`.
   2598   """
   2599 
   2600   service = _messages.MessageField('Service', 1)
   2601   serviceName = _messages.StringField(2, required=True)
   2602 
   2603 
   2604 class ServicemanagementServicesConfigsGetRequest(_messages.Message):
   2605   """A ServicemanagementServicesConfigsGetRequest object.
   2606 
   2607   Fields:
   2608     configId: The id of the service config resource. Optional. If it is not
   2609       specified, the latest version of config will be returned.
   2610     serviceName: The name of the service.  See the `ServiceManager` overview
   2611       for naming requirements.  For example: `example.googleapis.com`.
   2612   """
   2613 
   2614   configId = _messages.StringField(1, required=True)
   2615   serviceName = _messages.StringField(2, required=True)
   2616 
   2617 
   2618 class ServicemanagementServicesConfigsListRequest(_messages.Message):
   2619   """A ServicemanagementServicesConfigsListRequest object.
   2620 
   2621   Fields:
   2622     pageSize: The max number of items to include in the response list.
   2623     pageToken: The token of the page to retrieve.
   2624     serviceName: The name of the service.  See the `ServiceManager` overview
   2625       for naming requirements.  For example: `example.googleapis.com`.
   2626   """
   2627 
   2628   pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
   2629   pageToken = _messages.StringField(2)
   2630   serviceName = _messages.StringField(3, required=True)
   2631 
   2632 
   2633 class ServicemanagementServicesConfigsSubmitRequest(_messages.Message):
   2634   """A ServicemanagementServicesConfigsSubmitRequest object.
   2635 
   2636   Fields:
   2637     serviceName: The name of the service.  See the `ServiceManager` overview
   2638       for naming requirements.  For example: `example.googleapis.com`.
   2639     submitConfigSourceRequest: A SubmitConfigSourceRequest resource to be
   2640       passed as the request body.
   2641   """
   2642 
   2643   serviceName = _messages.StringField(1, required=True)
   2644   submitConfigSourceRequest = _messages.MessageField('SubmitConfigSourceRequest', 2)
   2645 
   2646 
   2647 class ServicemanagementServicesCustomerSettingsGetRequest(_messages.Message):
   2648   """A ServicemanagementServicesCustomerSettingsGetRequest object.
   2649 
   2650   Enums:
   2651     ViewValueValuesEnum: Request only fields for the specified view.
   2652 
   2653   Fields:
   2654     customerId: ID for the customer. See the comment for
   2655       `CustomerSettings.customer_id` field of message for its format. This
   2656       field is required.
   2657     expand: Fields to expand in any results.
   2658     serviceName: The name of the service.  See the `ServiceManager` overview
   2659       for naming requirements.  For example: `example.googleapis.com`. This
   2660       field is required.
   2661     view: Request only fields for the specified view.
   2662   """
   2663 
   2664   class ViewValueValuesEnum(_messages.Enum):
   2665     """Request only fields for the specified view.
   2666 
   2667     Values:
   2668       PROJECT_SETTINGS_VIEW_UNSPECIFIED: <no description>
   2669       CONSUMER_VIEW: <no description>
   2670       PRODUCER_VIEW: <no description>
   2671       ALL: <no description>
   2672     """
   2673     PROJECT_SETTINGS_VIEW_UNSPECIFIED = 0
   2674     CONSUMER_VIEW = 1
   2675     PRODUCER_VIEW = 2
   2676     ALL = 3
   2677 
   2678   customerId = _messages.StringField(1, required=True)
   2679   expand = _messages.StringField(2)
   2680   serviceName = _messages.StringField(3, required=True)
   2681   view = _messages.EnumField('ViewValueValuesEnum', 4)
   2682 
   2683 
   2684 class ServicemanagementServicesCustomerSettingsPatchRequest(_messages.Message):
   2685   """A ServicemanagementServicesCustomerSettingsPatchRequest object.
   2686 
   2687   Fields:
   2688     customerId: ID for the customer. See the comment for
   2689       `CustomerSettings.customer_id` field of message for its format. This
   2690       field is required.
   2691     customerSettings: A CustomerSettings resource to be passed as the request
   2692       body.
   2693     serviceName: The name of the service.  See the `ServiceManager` overview
   2694       for naming requirements.  For example: `example.googleapis.com`. This
   2695       field is required.
   2696     updateMask: The field mask specifying which fields are to be updated.
   2697   """
   2698 
   2699   customerId = _messages.StringField(1, required=True)
   2700   customerSettings = _messages.MessageField('CustomerSettings', 2)
   2701   serviceName = _messages.StringField(3, required=True)
   2702   updateMask = _messages.StringField(4)
   2703 
   2704 
   2705 class ServicemanagementServicesDeleteRequest(_messages.Message):
   2706   """A ServicemanagementServicesDeleteRequest object.
   2707 
   2708   Fields:
   2709     serviceName: The name of the service.  See the `ServiceManager` overview
   2710       for naming requirements.  For example: `example.googleapis.com`.
   2711   """
   2712 
   2713   serviceName = _messages.StringField(1, required=True)
   2714 
   2715 
   2716 class ServicemanagementServicesDisableRequest(_messages.Message):
   2717   """A ServicemanagementServicesDisableRequest object.
   2718 
   2719   Fields:
   2720     disableServiceRequest: A DisableServiceRequest resource to be passed as
   2721       the request body.
   2722     serviceName: Name of the service to disable. Specifying an unknown service
   2723       name will cause the request to fail.
   2724   """
   2725 
   2726   disableServiceRequest = _messages.MessageField('DisableServiceRequest', 1)
   2727   serviceName = _messages.StringField(2, required=True)
   2728 
   2729 
   2730 class ServicemanagementServicesEnableRequest(_messages.Message):
   2731   """A ServicemanagementServicesEnableRequest object.
   2732 
   2733   Fields:
   2734     enableServiceRequest: A EnableServiceRequest resource to be passed as the
   2735       request body.
   2736     serviceName: Name of the service to enable. Specifying an unknown service
   2737       name will cause the request to fail.
   2738   """
   2739 
   2740   enableServiceRequest = _messages.MessageField('EnableServiceRequest', 1)
   2741   serviceName = _messages.StringField(2, required=True)
   2742 
   2743 
   2744 class ServicemanagementServicesGetAccessPolicyRequest(_messages.Message):
   2745   """A ServicemanagementServicesGetAccessPolicyRequest object.
   2746 
   2747   Fields:
   2748     serviceName: The name of the service.  For example:
   2749       `example.googleapis.com`.
   2750   """
   2751 
   2752   serviceName = _messages.StringField(1, required=True)
   2753 
   2754 
   2755 class ServicemanagementServicesGetConfigRequest(_messages.Message):
   2756   """A ServicemanagementServicesGetConfigRequest object.
   2757 
   2758   Fields:
   2759     configId: The id of the service config resource. Optional. If it is not
   2760       specified, the latest version of config will be returned.
   2761     serviceName: The name of the service.  See the `ServiceManager` overview
   2762       for naming requirements.  For example: `example.googleapis.com`.
   2763   """
   2764 
   2765   configId = _messages.StringField(1)
   2766   serviceName = _messages.StringField(2, required=True)
   2767 
   2768 
   2769 class ServicemanagementServicesGetRequest(_messages.Message):
   2770   """A ServicemanagementServicesGetRequest object.
   2771 
   2772   Enums:
   2773     ViewValueValuesEnum: If project_settings is expanded, request only fields
   2774       for the specified view.
   2775 
   2776   Fields:
   2777     consumerProjectId: If project_settings is expanded, return settings for
   2778       the specified consumer project.
   2779     expand: Fields to expand in any results.  By default, the following fields
   2780       are not present in the result: - `operations` - `project_settings` -
   2781       `project_settings.operations` - `quota_usage` (It requires
   2782       `project_settings`) - `historical_quota_usage` (It requires
   2783       `project_settings`)
   2784     serviceName: The name of the service.  See the `ServiceManager` overview
   2785       for naming requirements.  For example: `example.googleapis.com`.
   2786     view: If project_settings is expanded, request only fields for the
   2787       specified view.
   2788   """
   2789 
   2790   class ViewValueValuesEnum(_messages.Enum):
   2791     """If project_settings is expanded, request only fields for the specified
   2792     view.
   2793 
   2794     Values:
   2795       PROJECT_SETTINGS_VIEW_UNSPECIFIED: <no description>
   2796       CONSUMER_VIEW: <no description>
   2797       PRODUCER_VIEW: <no description>
   2798       ALL: <no description>
   2799     """
   2800     PROJECT_SETTINGS_VIEW_UNSPECIFIED = 0
   2801     CONSUMER_VIEW = 1
   2802     PRODUCER_VIEW = 2
   2803     ALL = 3
   2804 
   2805   consumerProjectId = _messages.StringField(1)
   2806   expand = _messages.StringField(2)
   2807   serviceName = _messages.StringField(3, required=True)
   2808   view = _messages.EnumField('ViewValueValuesEnum', 4)
   2809 
   2810 
   2811 class ServicemanagementServicesListRequest(_messages.Message):
   2812   """A ServicemanagementServicesListRequest object.
   2813 
   2814   Fields:
   2815     category: Include services only in the specified category. Supported
   2816       categories are servicemanagement.googleapis.com/categories/google-
   2817       services or servicemanagement.googleapis.com/categories/play-games.
   2818     consumerProjectId: Include services consumed by the specified project.  If
   2819       project_settings is expanded, then this field controls which project
   2820       project_settings is populated for.
   2821     expand: Fields to expand in any results.  By default, the following fields
   2822       are not fully included in list results: - `operations` -
   2823       `project_settings` - `project_settings.operations` - `quota_usage` (It
   2824       requires `project_settings`)
   2825     pageSize: Requested size of the next page of data.
   2826     pageToken: Token identifying which result to start with; returned by a
   2827       previous list call.
   2828     producerProjectId: Include services produced by the specified project.
   2829   """
   2830 
   2831   category = _messages.StringField(1)
   2832   consumerProjectId = _messages.StringField(2)
   2833   expand = _messages.StringField(3)
   2834   pageSize = _messages.IntegerField(4, variant=_messages.Variant.INT32)
   2835   pageToken = _messages.StringField(5)
   2836   producerProjectId = _messages.StringField(6)
   2837 
   2838 
   2839 class ServicemanagementServicesPatchConfigRequest(_messages.Message):
   2840   """A ServicemanagementServicesPatchConfigRequest object.
   2841 
   2842   Fields:
   2843     service: A Service resource to be passed as the request body.
   2844     serviceName: The name of the service.  See the `ServiceManager` overview
   2845       for naming requirements.  For example: `example.googleapis.com`.
   2846     updateMask: A mask specifying which fields to update.
   2847   """
   2848 
   2849   service = _messages.MessageField('Service', 1)
   2850   serviceName = _messages.StringField(2, required=True)
   2851   updateMask = _messages.StringField(3)
   2852 
   2853 
   2854 class ServicemanagementServicesPatchRequest(_messages.Message):
   2855   """A ServicemanagementServicesPatchRequest object.
   2856 
   2857   Fields:
   2858     managedService: A ManagedService resource to be passed as the request
   2859       body.
   2860     serviceName: The name of the service.  See the `ServiceManager` overview
   2861       for naming requirements.  For example: `example.googleapis.com`.
   2862     updateMask: A mask specifying which fields to update.
   2863   """
   2864 
   2865   managedService = _messages.MessageField('ManagedService', 1)
   2866   serviceName = _messages.StringField(2, required=True)
   2867   updateMask = _messages.StringField(3)
   2868 
   2869 
   2870 class ServicemanagementServicesProjectSettingsGetRequest(_messages.Message):
   2871   """A ServicemanagementServicesProjectSettingsGetRequest object.
   2872 
   2873   Enums:
   2874     ViewValueValuesEnum: Request only the fields for the specified view.
   2875 
   2876   Fields:
   2877     consumerProjectId: The project ID of the consumer.
   2878     expand: Fields to expand in any results.  By default, the following fields
   2879       are not present in the result: - `operations` - `quota_usage`
   2880     serviceName: The name of the service.  See the `ServiceManager` overview
   2881       for naming requirements.  For example: `example.googleapis.com`.
   2882     view: Request only the fields for the specified view.
   2883   """
   2884 
   2885   class ViewValueValuesEnum(_messages.Enum):
   2886     """Request only the fields for the specified view.
   2887 
   2888     Values:
   2889       PROJECT_SETTINGS_VIEW_UNSPECIFIED: <no description>
   2890       CONSUMER_VIEW: <no description>
   2891       PRODUCER_VIEW: <no description>
   2892       ALL: <no description>
   2893     """
   2894     PROJECT_SETTINGS_VIEW_UNSPECIFIED = 0
   2895     CONSUMER_VIEW = 1
   2896     PRODUCER_VIEW = 2
   2897     ALL = 3
   2898 
   2899   consumerProjectId = _messages.StringField(1, required=True)
   2900   expand = _messages.StringField(2)
   2901   serviceName = _messages.StringField(3, required=True)
   2902   view = _messages.EnumField('ViewValueValuesEnum', 4)
   2903 
   2904 
   2905 class ServicemanagementServicesProjectSettingsPatchRequest(_messages.Message):
   2906   """A ServicemanagementServicesProjectSettingsPatchRequest object.
   2907 
   2908   Fields:
   2909     consumerProjectId: The project ID of the consumer.
   2910     projectSettings: A ProjectSettings resource to be passed as the request
   2911       body.
   2912     serviceName: The name of the service.  See the `ServiceManager` overview
   2913       for naming requirements.  For example: `example.googleapis.com`.
   2914     updateMask: The field mask specifying which fields are to be updated.
   2915   """
   2916 
   2917   consumerProjectId = _messages.StringField(1, required=True)
   2918   projectSettings = _messages.MessageField('ProjectSettings', 2)
   2919   serviceName = _messages.StringField(3, required=True)
   2920   updateMask = _messages.StringField(4)
   2921 
   2922 
   2923 class ServicemanagementServicesUpdateConfigRequest(_messages.Message):
   2924   """A ServicemanagementServicesUpdateConfigRequest object.
   2925 
   2926   Fields:
   2927     service: A Service resource to be passed as the request body.
   2928     serviceName: The name of the service.  See the `ServiceManager` overview
   2929       for naming requirements.  For example: `example.googleapis.com`.
   2930     updateMask: A mask specifying which fields to update. Update mask has been
   2931       deprecated on UpdateServiceConfig service method. Please use
   2932       PatchServiceConfig method instead to do partial updates.
   2933   """
   2934 
   2935   service = _messages.MessageField('Service', 1)
   2936   serviceName = _messages.StringField(2, required=True)
   2937   updateMask = _messages.StringField(3)
   2938 
   2939 
   2940 class ServicemanagementServicesUpdateRequest(_messages.Message):
   2941   """A ServicemanagementServicesUpdateRequest object.
   2942 
   2943   Fields:
   2944     managedService: A ManagedService resource to be passed as the request
   2945       body.
   2946     serviceName: The name of the service.  See the `ServiceManager` overview
   2947       for naming requirements.  For example: `example.googleapis.com`.
   2948     updateMask: A mask specifying which fields to update. Update mask has been
   2949       deprecated on UpdateService service method. Please use PatchService
   2950       method instead to do partial updates.
   2951   """
   2952 
   2953   managedService = _messages.MessageField('ManagedService', 1)
   2954   serviceName = _messages.StringField(2, required=True)
   2955   updateMask = _messages.StringField(3)
   2956 
   2957 
   2958 class SourceContext(_messages.Message):
   2959   """`SourceContext` represents information about the source of a protobuf
   2960   element, like the file in which it is defined.
   2961 
   2962   Fields:
   2963     fileName: The path-qualified name of the .proto file that contained the
   2964       associated protobuf element.  For example:
   2965       `"google/protobuf/source_context.proto"`.
   2966   """
   2967 
   2968   fileName = _messages.StringField(1)
   2969 
   2970 
   2971 class StandardQueryParameters(_messages.Message):
   2972   """Query parameters accepted by all methods.
   2973 
   2974   Enums:
   2975     FXgafvValueValuesEnum: V1 error format.
   2976     AltValueValuesEnum: Data format for response.
   2977 
   2978   Fields:
   2979     f__xgafv: V1 error format.
   2980     access_token: OAuth access token.
   2981     alt: Data format for response.
   2982     bearer_token: OAuth bearer token.
   2983     callback: JSONP
   2984     fields: Selector specifying which fields to include in a partial response.
   2985     key: API key. Your API key identifies your project and provides you with
   2986       API access, quota, and reports. Required unless you provide an OAuth 2.0
   2987       token.
   2988     oauth_token: OAuth 2.0 token for the current user.
   2989     pp: Pretty-print response.
   2990     prettyPrint: Returns response with indentations and line breaks.
   2991     quotaUser: Available to use for quota purposes for server-side
   2992       applications. Can be any arbitrary string assigned to a user, but should
   2993       not exceed 40 characters.
   2994     trace: A tracing token of the form "token:<tokenid>" to include in api
   2995       requests.
   2996     uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
   2997     upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
   2998   """
   2999 
   3000   class AltValueValuesEnum(_messages.Enum):
   3001     """Data format for response.
   3002 
   3003     Values:
   3004       json: Responses with Content-Type of application/json
   3005       media: Media download with context-dependent Content-Type
   3006       proto: Responses with Content-Type of application/x-protobuf
   3007     """
   3008     json = 0
   3009     media = 1
   3010     proto = 2
   3011 
   3012   class FXgafvValueValuesEnum(_messages.Enum):
   3013     """V1 error format.
   3014 
   3015     Values:
   3016       _1: v1 error format
   3017       _2: v2 error format
   3018     """
   3019     _1 = 0
   3020     _2 = 1
   3021 
   3022   f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
   3023   access_token = _messages.StringField(2)
   3024   alt = _messages.EnumField('AltValueValuesEnum', 3, default=u'json')
   3025   bearer_token = _messages.StringField(4)
   3026   callback = _messages.StringField(5)
   3027   fields = _messages.StringField(6)
   3028   key = _messages.StringField(7)
   3029   oauth_token = _messages.StringField(8)
   3030   pp = _messages.BooleanField(9, default=True)
   3031   prettyPrint = _messages.BooleanField(10, default=True)
   3032   quotaUser = _messages.StringField(11)
   3033   trace = _messages.StringField(12)
   3034   uploadType = _messages.StringField(13)
   3035   upload_protocol = _messages.StringField(14)
   3036 
   3037 
   3038 class Status(_messages.Message):
   3039   """The `Status` type defines a logical error model that is suitable for
   3040   different programming environments, including REST APIs and RPC APIs. It is
   3041   used by [gRPC](https://github.com/grpc). The error model is designed to be:
   3042   - Simple to use and understand for most users - Flexible enough to meet
   3043   unexpected needs  # Overview  The `Status` message contains three pieces of
   3044   data: error code, error message, and error details. The error code should be
   3045   an enum value of google.rpc.Code, but it may accept additional error codes
   3046   if needed.  The error message should be a developer-facing English message
   3047   that helps developers *understand* and *resolve* the error. If a localized
   3048   user-facing error message is needed, put the localized message in the error
   3049   details or localize it in the client. The optional error details may contain
   3050   arbitrary information about the error. There is a predefined set of error
   3051   detail types in the package `google.rpc` which can be used for common error
   3052   conditions.  # Language mapping  The `Status` message is the logical
   3053   representation of the error model, but it is not necessarily the actual wire
   3054   format. When the `Status` message is exposed in different client libraries
   3055   and different wire protocols, it can be mapped differently. For example, it
   3056   will likely be mapped to some exceptions in Java, but more likely mapped to
   3057   some error codes in C.  # Other uses  The error model and the `Status`
   3058   message can be used in a variety of environments, either with or without
   3059   APIs, to provide a consistent developer experience across different
   3060   environments.  Example uses of this error model include:  - Partial errors.
   3061   If a service needs to return partial errors to the client,     it may embed
   3062   the `Status` in the normal response to indicate the partial     errors.  -
   3063   Workflow errors. A typical workflow has multiple steps. Each step may
   3064   have a `Status` message for error reporting purpose.  - Batch operations. If
   3065   a client uses batch request and batch response, the     `Status` message
   3066   should be used directly inside batch response, one for     each error sub-
   3067   response.  - Asynchronous operations. If an API call embeds asynchronous
   3068   operation     results in its response, the status of those operations should
   3069   be     represented directly using the `Status` message.  - Logging. If some
   3070   API errors are stored in logs, the message `Status` could     be used
   3071   directly after any stripping needed for security/privacy reasons.
   3072 
   3073   Messages:
   3074     DetailsValueListEntry: A DetailsValueListEntry object.
   3075 
   3076   Fields:
   3077     code: The status code, which should be an enum value of google.rpc.Code.
   3078     details: A list of messages that carry the error details.  There will be a
   3079       common set of message types for APIs to use.
   3080     message: A developer-facing error message, which should be in English. Any
   3081       user-facing error message should be localized and sent in the
   3082       google.rpc.Status.details field, or localized by the client.
   3083   """
   3084 
   3085   @encoding.MapUnrecognizedFields('additionalProperties')
   3086   class DetailsValueListEntry(_messages.Message):
   3087     """A DetailsValueListEntry object.
   3088 
   3089     Messages:
   3090       AdditionalProperty: An additional property for a DetailsValueListEntry
   3091         object.
   3092 
   3093     Fields:
   3094       additionalProperties: Properties of the object. Contains field @type
   3095         with type URL.
   3096     """
   3097 
   3098     class AdditionalProperty(_messages.Message):
   3099       """An additional property for a DetailsValueListEntry object.
   3100 
   3101       Fields:
   3102         key: Name of the additional property.
   3103         value: A extra_types.JsonValue attribute.
   3104       """
   3105 
   3106       key = _messages.StringField(1)
   3107       value = _messages.MessageField('extra_types.JsonValue', 2)
   3108 
   3109     additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
   3110 
   3111   code = _messages.IntegerField(1, variant=_messages.Variant.INT32)
   3112   details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True)
   3113   message = _messages.StringField(3)
   3114 
   3115 
   3116 class Step(_messages.Message):
   3117   """Represents the status of one operation step.
   3118 
   3119   Enums:
   3120     StatusValueValuesEnum: The status code.
   3121 
   3122   Fields:
   3123     description: The short description of the step.
   3124     status: The status code.
   3125   """
   3126 
   3127   class StatusValueValuesEnum(_messages.Enum):
   3128     """The status code.
   3129 
   3130     Values:
   3131       STATUS_UNSPECIFIED: Unspecifed code.
   3132       DONE: The step has completed without errors.
   3133       NOT_STARTED: The step has not started yet.
   3134       IN_PROGRESS: The step is in progress.
   3135       FAILED: The step has completed with errors.
   3136     """
   3137     STATUS_UNSPECIFIED = 0
   3138     DONE = 1
   3139     NOT_STARTED = 2
   3140     IN_PROGRESS = 3
   3141     FAILED = 4
   3142 
   3143   description = _messages.StringField(1)
   3144   status = _messages.EnumField('StatusValueValuesEnum', 2)
   3145 
   3146 
   3147 class SubmitConfigSourceRequest(_messages.Message):
   3148   """Request message for SubmitConfigSource method.
   3149 
   3150   Fields:
   3151     configSource: The source configuration for the service.
   3152     validateOnly: Optional. If set, this will result in the generation of a
   3153       `google.api.Service` configuration based on the `ConfigSource` provided,
   3154       but the generated config and the sources will NOT be persisted.
   3155   """
   3156 
   3157   configSource = _messages.MessageField('ConfigSource', 1)
   3158   validateOnly = _messages.BooleanField(2)
   3159 
   3160 
   3161 class SwaggerSpec(_messages.Message):
   3162   """A collection of swagger specification files.
   3163 
   3164   Fields:
   3165     swaggerFiles: The individual files.
   3166   """
   3167 
   3168   swaggerFiles = _messages.MessageField('File', 1, repeated=True)
   3169 
   3170 
   3171 class SystemParameter(_messages.Message):
   3172   """Define a parameter's name and location. The parameter may be passed as
   3173   either an HTTP header or a URL query parameter, and if both are passed the
   3174   behavior is implementation-dependent.
   3175 
   3176   Fields:
   3177     httpHeader: Define the HTTP header name to use for the parameter. It is
   3178       case insensitive.
   3179     name: Define the name of the parameter, such as "api_key", "alt",
   3180       "callback", and etc. It is case sensitive.
   3181     urlQueryParameter: Define the URL query parameter name to use for the
   3182       parameter. It is case sensitive.
   3183   """
   3184 
   3185   httpHeader = _messages.StringField(1)
   3186   name = _messages.StringField(2)
   3187   urlQueryParameter = _messages.StringField(3)
   3188 
   3189 
   3190 class SystemParameterRule(_messages.Message):
   3191   """Define a system parameter rule mapping system parameter definitions to
   3192   methods.
   3193 
   3194   Fields:
   3195     parameters: Define parameters. Multiple names may be defined for a
   3196       parameter. For a given method call, only one of them should be used. If
   3197       multiple names are used the behavior is implementation-dependent. If
   3198       none of the specified names are present the behavior is parameter-
   3199       dependent.
   3200     selector: Selects the methods to which this rule applies. Use '*' to
   3201       indicate all methods in all APIs.  Refer to selector for syntax details.
   3202   """
   3203 
   3204   parameters = _messages.MessageField('SystemParameter', 1, repeated=True)
   3205   selector = _messages.StringField(2)
   3206 
   3207 
   3208 class SystemParameters(_messages.Message):
   3209   """### System parameter configuration  A system parameter is a special kind
   3210   of parameter defined by the API system, not by an individual API. It is
   3211   typically mapped to an HTTP header and/or a URL query parameter. This
   3212   configuration specifies which methods change the names of the system
   3213   parameters.
   3214 
   3215   Fields:
   3216     rules: Define system parameters.  The parameters defined here will
   3217       override the default parameters implemented by the system. If this field
   3218       is missing from the service config, default system parameters will be
   3219       used. Default system parameters and names is implementation-dependent.
   3220       Example: define api key and alt name for all methods  system_parameters
   3221       rules:     - selector: "*"       parameters:         - name: api_key
   3222       url_query_parameter: api_key         - name: alt           http_header:
   3223       Response-Content-Type  Example: define 2 api key names for a specific
   3224       method.  system_parameters   rules:     - selector: "/ListShelves"
   3225       parameters:         - name: api_key           http_header: Api-Key1
   3226       - name: api_key           http_header: Api-Key2
   3227   """
   3228 
   3229   rules = _messages.MessageField('SystemParameterRule', 1, repeated=True)
   3230 
   3231 
   3232 class Type(_messages.Message):
   3233   """A protocol buffer message type.
   3234 
   3235   Enums:
   3236     SyntaxValueValuesEnum: The source syntax.
   3237 
   3238   Fields:
   3239     fields: The list of fields.
   3240     name: The fully qualified message name.
   3241     oneofs: The list of types appearing in `oneof` definitions in this type.
   3242     options: The protocol buffer options.
   3243     sourceContext: The source context.
   3244     syntax: The source syntax.
   3245   """
   3246 
   3247   class SyntaxValueValuesEnum(_messages.Enum):
   3248     """The source syntax.
   3249 
   3250     Values:
   3251       SYNTAX_PROTO2: Syntax `proto2`.
   3252       SYNTAX_PROTO3: Syntax `proto3`.
   3253     """
   3254     SYNTAX_PROTO2 = 0
   3255     SYNTAX_PROTO3 = 1
   3256 
   3257   fields = _messages.MessageField('Field', 1, repeated=True)
   3258   name = _messages.StringField(2)
   3259   oneofs = _messages.StringField(3, repeated=True)
   3260   options = _messages.MessageField('Option', 4, repeated=True)
   3261   sourceContext = _messages.MessageField('SourceContext', 5)
   3262   syntax = _messages.EnumField('SyntaxValueValuesEnum', 6)
   3263 
   3264 
   3265 class Usage(_messages.Message):
   3266   """Configuration controlling usage of a service.
   3267 
   3268   Enums:
   3269     ServiceAccessValueValuesEnum: Controls which users can see or activate the
   3270       service.
   3271 
   3272   Fields:
   3273     activationHooks: Services that must be contacted before a consumer can
   3274       begin using the service. Each service will be contacted in sequence,
   3275       and, if any activation call fails, the entire activation will fail. Each
   3276       hook is of the form <service.name>/<hook-id>, where <hook-id> is
   3277       optional; for example: 'robotservice.googleapis.com/default'.
   3278     deactivationHooks: Services that must be contacted before a consumer can
   3279       deactivate a service. Each service will be contacted in sequence, and,
   3280       if any deactivation call fails, the entire deactivation will fail. Each
   3281       hook is of the form <service.name>/<hook-id>, where <hook-id> is
   3282       optional; for example: 'compute.googleapis.com/'.
   3283     dependsOnServices: Services that must be activated in order for this
   3284       service to be used. The set of services activated as a result of these
   3285       relations are all activated in parallel with no guaranteed order of
   3286       activation. Each string is a service name, e.g.
   3287       `calendar.googleapis.com`.
   3288     requirements: Requirements that must be satisfied before a consumer
   3289       project can use the service. Each requirement is of the form
   3290       <service.name>/<requirement-id>; for example
   3291       'serviceusage.googleapis.com/billing-enabled'.
   3292     rules: Individual rules for configuring usage on selected methods.
   3293     serviceAccess: Controls which users can see or activate the service.
   3294   """
   3295 
   3296   class ServiceAccessValueValuesEnum(_messages.Enum):
   3297     """Controls which users can see or activate the service.
   3298 
   3299     Values:
   3300       RESTRICTED: The service can only be seen/used by users identified in the
   3301         service's access control policy.  If the service has not been
   3302         whitelisted by your domain administrator for out-of-org publishing,
   3303         then this mode will be treated like ORG_RESTRICTED.
   3304       PUBLIC: The service can be seen/used by anyone.  If the service has not
   3305         been whitelisted by your domain administrator for out-of-org
   3306         publishing, then this mode will be treated like ORG_PUBLIC.  The
   3307         discovery document for the service will also be public and allow
   3308         unregistered access.
   3309       ORG_RESTRICTED: The service can be seen/used by users identified in the
   3310         service's access control policy and they are within the organization
   3311         that owns the service.  Access is further constrained to the group
   3312         controlled by the administrator of the project/org that owns the
   3313         service.
   3314       ORG_PUBLIC: The service can be seen/used by the group of users
   3315         controlled by the administrator of the project/org that owns the
   3316         service.
   3317     """
   3318     RESTRICTED = 0
   3319     PUBLIC = 1
   3320     ORG_RESTRICTED = 2
   3321     ORG_PUBLIC = 3
   3322 
   3323   activationHooks = _messages.StringField(1, repeated=True)
   3324   deactivationHooks = _messages.StringField(2, repeated=True)
   3325   dependsOnServices = _messages.StringField(3, repeated=True)
   3326   requirements = _messages.StringField(4, repeated=True)
   3327   rules = _messages.MessageField('UsageRule', 5, repeated=True)
   3328   serviceAccess = _messages.EnumField('ServiceAccessValueValuesEnum', 6)
   3329 
   3330 
   3331 class UsageRule(_messages.Message):
   3332   """Usage configuration rules for the service.  NOTE: Under development.
   3333   Use this rule to configure unregistered calls for the service. Unregistered
   3334   calls are calls that do not contain consumer project identity. (Example:
   3335   calls that do not contain an API key). By default, API methods do not allow
   3336   unregistered calls, and each method call must be identified by a consumer
   3337   project identity. Use this rule to allow/disallow unregistered calls.
   3338   Example of an API that wants to allow unregistered calls for entire service.
   3339   usage:       rules:       - selector: "*"         allow_unregistered_calls:
   3340   true  Example of a method that wants to allow unregistered calls.
   3341   usage:       rules:       - selector:
   3342   "google.example.library.v1.LibraryService.CreateBook"
   3343   allow_unregistered_calls: true
   3344 
   3345   Fields:
   3346     allowUnregisteredCalls: True, if the method allows unregistered calls;
   3347       false otherwise.
   3348     selector: Selects the methods to which this rule applies. Use '*' to
   3349       indicate all methods in all APIs.  Refer to selector for syntax details.
   3350   """
   3351 
   3352   allowUnregisteredCalls = _messages.BooleanField(1)
   3353   selector = _messages.StringField(2)
   3354 
   3355 
   3356 class UsageSettings(_messages.Message):
   3357   """Usage settings for a consumer of a service.
   3358 
   3359   Enums:
   3360     ConsumerEnableStatusValueValuesEnum: Consumer controlled setting to
   3361       enable/disable use of this service by the consumer project. The default
   3362       value of this is controlled by the service configuration.
   3363 
   3364   Fields:
   3365     consumerEnableStatus: Consumer controlled setting to enable/disable use of
   3366       this service by the consumer project. The default value of this is
   3367       controlled by the service configuration.
   3368   """
   3369 
   3370   class ConsumerEnableStatusValueValuesEnum(_messages.Enum):
   3371     """Consumer controlled setting to enable/disable use of this service by
   3372     the consumer project. The default value of this is controlled by the
   3373     service configuration.
   3374 
   3375     Values:
   3376       DISABLED: The service is disabled.
   3377       ENABLED: The service is enabled.
   3378     """
   3379     DISABLED = 0
   3380     ENABLED = 1
   3381 
   3382   consumerEnableStatus = _messages.EnumField('ConsumerEnableStatusValueValuesEnum', 1)
   3383 
   3384 
   3385 class VariableTermQuota(_messages.Message):
   3386   """A variable term quota is a bucket of tokens that is consumed over a
   3387   specified (usually long) time period. When present, it overrides any "1d"
   3388   duration per-project quota specified on the group.  Variable terms run from
   3389   midnight to midnight, start_date to end_date (inclusive) in the
   3390   America/Los_Angeles time zone.
   3391 
   3392   Fields:
   3393     createTime: Time when this variable term quota was created. If multiple
   3394       quotas are simultaneously active, then the quota with the latest
   3395       create_time is the effective one.
   3396     displayEndDate: The displayed end of the active period for the variable
   3397       term quota. This may be before the effective end to give the user a
   3398       grace period. YYYYMMdd date format, e.g. 20140730.
   3399     endDate: The effective end of the active period for the variable term
   3400       quota (inclusive). This must be no more than 5 years after start_date.
   3401       YYYYMMdd date format, e.g. 20140730.
   3402     groupName: The quota group that has the variable term quota applied to it.
   3403       This must be a google.api.QuotaGroup.name specified in the service
   3404       configuration.
   3405     limit: The number of tokens available during the configured term.
   3406     quotaUsage: The usage data of this quota.
   3407     startDate: The beginning of the active period for the variable term quota.
   3408       YYYYMMdd date format, e.g. 20140730.
   3409   """
   3410 
   3411   createTime = _messages.StringField(1)
   3412   displayEndDate = _messages.StringField(2)
   3413   endDate = _messages.StringField(3)
   3414   groupName = _messages.StringField(4)
   3415   limit = _messages.IntegerField(5)
   3416   quotaUsage = _messages.MessageField('QuotaUsage', 6)
   3417   startDate = _messages.StringField(7)
   3418 
   3419 
   3420 class Visibility(_messages.Message):
   3421   """`Visibility` defines restrictions for the visibility of service elements.
   3422   Restrictions are specified using visibility labels (e.g., TRUSTED_TESTER)
   3423   that are elsewhere linked to users and projects.  Users and projects can
   3424   have access to more than one visibility label. The effective visibility for
   3425   multiple labels is the union of each label's elements, plus any unrestricted
   3426   elements.  If an element and its parents have no restrictions, visibility is
   3427   unconditionally granted.  Example:      visibility:       rules:       -
   3428   selector: google.calendar.Calendar.EnhancedSearch         restriction:
   3429   TRUSTED_TESTER       - selector: google.calendar.Calendar.Delegate
   3430   restriction: GOOGLE_INTERNAL  Here, all methods are publicly visible except
   3431   for the restricted methods EnhancedSearch and Delegate.
   3432 
   3433   Fields:
   3434     enforceRuntimeVisibility: Controls whether visibility rules are enforced
   3435       at runtime for requests to all APIs and methods.  If true, requests
   3436       without method visibility will receive a NOT_FOUND error, and any non-
   3437       visible fields will be scrubbed from the response messages. In service
   3438       config version 0, the default is false. In later config versions, it's
   3439       true.  Note, the `enforce_runtime_visibility` specified in a visibility
   3440       rule overrides this setting for the APIs or methods asscoiated with the
   3441       rule.
   3442     rules: A list of visibility rules providing visibility configuration for
   3443       individual API elements.
   3444   """
   3445 
   3446   enforceRuntimeVisibility = _messages.BooleanField(1)
   3447   rules = _messages.MessageField('VisibilityRule', 2, repeated=True)
   3448 
   3449 
   3450 class VisibilityRule(_messages.Message):
   3451   """A visibility rule provides visibility configuration for an individual API
   3452   element.
   3453 
   3454   Fields:
   3455     enforceRuntimeVisibility: Controls whether visibility is enforced at
   3456       runtime for requests to an API method. This setting has meaning only
   3457       when the selector applies to a method or an API.  If true, requests
   3458       without method visibility will receive a NOT_FOUND error, and any non-
   3459       visible fields will be scrubbed from the response messages. The default
   3460       is determined by the value of
   3461       google.api.Visibility.enforce_runtime_visibility.
   3462     restriction: Lists the visibility labels for this rule. Any of the listed
   3463       labels grants visibility to the element.  If a rule has multiple labels,
   3464       removing one of the labels but not all of them can break clients.
   3465       Example:      visibility:       rules:       - selector:
   3466       google.calendar.Calendar.EnhancedSearch         restriction:
   3467       GOOGLE_INTERNAL, TRUSTED_TESTER  Removing GOOGLE_INTERNAL from this
   3468       restriction will break clients that rely on this method and only had
   3469       access to it through GOOGLE_INTERNAL.
   3470     selector: Selects methods, messages, fields, enums, etc. to which this
   3471       rule applies.  Refer to selector for syntax details.
   3472   """
   3473 
   3474   enforceRuntimeVisibility = _messages.BooleanField(1)
   3475   restriction = _messages.StringField(2)
   3476   selector = _messages.StringField(3)
   3477 
   3478 
   3479 class VisibilitySettings(_messages.Message):
   3480   """Settings that control which features of the service are visible to the
   3481   consumer project.
   3482 
   3483   Fields:
   3484     visibilityLabels: The set of visibility labels that are used to determine
   3485       what API surface is visible to calls made by this project. The visible
   3486       surface is a union of the surface features associated with each label
   3487       listed here, plus the publicly visible (unrestricted) surface.  The
   3488       service producer may add or remove labels at any time. The service
   3489       consumer may add a label if the calling user has been granted permission
   3490       to do so by the producer.  The service consumer may also remove any
   3491       label at any time.
   3492   """
   3493 
   3494   visibilityLabels = _messages.StringField(1, repeated=True)
   3495 
   3496 
   3497 encoding.AddCustomJsonFieldMapping(
   3498     StandardQueryParameters, 'f__xgafv', '$.xgafv',
   3499     package=u'servicemanagement')
   3500 encoding.AddCustomJsonEnumMapping(
   3501     StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1',
   3502     package=u'servicemanagement')
   3503 encoding.AddCustomJsonEnumMapping(
   3504     StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2',
   3505     package=u'servicemanagement')
   3506