• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"""Generated message classes for servicemanagement version v1.
2
3The service management API for Google Cloud Platform
4"""
5# NOTE: This file is autogenerated and should not be edited by hand.
6
7from apitools.base.protorpclite import messages as _messages
8from apitools.base.py import encoding
9from apitools.base.py import extra_types
10
11
12package = 'servicemanagement'
13
14
15class Api(_messages.Message):
16  r"""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    r"""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
66class AreaUnderCurveParams(_messages.Message):
67  r"""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
92class AuthProvider(_messages.Message):
93  r"""Configuration for an anthentication provider, including support for
94  [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-
95  web-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@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
119class AuthRequirement(_messages.Message):
120  r"""User-defined authentication requirements, including support for [JSON
121  Web 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
143class Authentication(_messages.Message):
144  r"""`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
162class AuthenticationRule(_messages.Message):
163  r"""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
185class Backend(_messages.Message):
186  r"""`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
196class BackendRule(_messages.Message):
197  r"""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
212class Billing(_messages.Message):
213  r"""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
247class BillingStatusRule(_messages.Message):
248  r"""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
270class CompositeOperationMetadata(_messages.Message):
271  r"""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    r"""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      r"""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    r"""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      r"""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
359class ConfigFile(_messages.Message):
360  r"""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    r"""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
404class ConfigOptions(_messages.Message):
405  r"""A set of options to cover use of source config within `ServiceManager`
406  and related tools.
407  """
408
409
410
411class ConfigSource(_messages.Message):
412  r"""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
437class Context(_messages.Message):
438  r"""`Context` defines which contexts an API requests.  Example:
439  context:       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
452class ContextRule(_messages.Message):
453  r"""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
468class Control(_messages.Message):
469  r"""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
481class ConvertConfigRequest(_messages.Message):
482  r"""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    r"""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      r"""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
530class ConvertConfigResponse(_messages.Message):
531  r"""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
543class CustomError(_messages.Message):
544  r"""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
560class CustomErrorRule(_messages.Message):
561  r"""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
575class CustomHttpPattern(_messages.Message):
576  r"""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
587class CustomerSettings(_messages.Message):
588  r"""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
608class Diagnostic(_messages.Message):
609  r"""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    r"""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
635class DisableServiceRequest(_messages.Message):
636  r"""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
649class Documentation(_messages.Message):
650  r"""`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
707class DocumentationRule(_messages.Message):
708  r"""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
727class EffectiveQuotaGroup(_messages.Message):
728  r"""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    r"""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
767class EffectiveQuotaLimit(_messages.Message):
768  r"""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
789class EnableServiceRequest(_messages.Message):
790  r"""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
803class Enum(_messages.Message):
804  r"""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    r"""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
834class EnumValue(_messages.Message):
835  r"""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
848class Field(_messages.Message):
849  r"""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    r"""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    r"""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
943class File(_messages.Message):
944  r"""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
955class Http(_messages.Message):
956  r"""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
967class HttpRule(_messages.Message):
968  r"""`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
1096class LabelDescriptor(_messages.Message):
1097  r"""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    r"""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
1126class ListServiceConfigsResponse(_messages.Message):
1127  r"""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
1138class ListServicesResponse(_messages.Message):
1139  r"""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
1151class LogDescriptor(_messages.Message):
1152  r"""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
1178class Logging(_messages.Message):
1179  r"""Logging configuration of the service.  The following example shows how
1180  to 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
1212class LoggingDestination(_messages.Message):
1213  r"""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
1227class ManagedService(_messages.Message):
1228  r"""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
1262class MediaDownload(_messages.Message):
1263  r"""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
1273class MediaUpload(_messages.Message):
1274  r"""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
1284class Method(_messages.Message):
1285  r"""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    r"""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
1319class MetricDescriptor(_messages.Message):
1320  r"""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    r"""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    r"""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
1432class Mixin(_messages.Message):
1433  r"""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
1477class MonitoredResourceDescriptor(_messages.Message):
1478  r"""An object that describes the schema of a MonitoredResource object using
1479  a 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
1514class Monitoring(_messages.Message):
1515  r"""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
1551class MonitoringDestination(_messages.Message):
1552  r"""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
1566class OAuthRequirements(_messages.Message):
1567  r"""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
1593class OpenApiSpec(_messages.Message):
1594  r"""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
1603class Operation(_messages.Message):
1604  r"""This resource represents a long-running operation that is the result of
1605  a 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    r"""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      r"""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    r"""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      r"""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
1709class OperationMetadata(_messages.Message):
1710  r"""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
1728class Option(_messages.Message):
1729  r"""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    r"""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      r"""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
1769class Page(_messages.Message):
1770  r"""Represents a documentation page. A page can contain subpages to
1771  represent 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
1793class ProjectProperties(_messages.Message):
1794  r"""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
1812class ProjectSettings(_messages.Message):
1813  r"""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    r"""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      r"""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
1874class Property(_messages.Message):
1875  r"""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    r"""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
1913class ProtoDescriptor(_messages.Message):
1914  r"""Contains a serialized protoc-generated protocol buffer message
1915  descriptor set along with a URL that describes the type of the descriptor
1916  message.
1917
1918  Fields:
1919    typeUrl: A URL/resource name whose content describes the type of the
1920      serialized protocol buffer message.  Only
1921      'type.googleapis.com/google.protobuf.FileDescriptorSet' is supported. If
1922      the type_url is not specificed,
1923      'type.googleapis.com/google.protobuf.FileDescriptorSet' will be assumed.
1924    value: Must be a valid serialized protocol buffer descriptor set.  To
1925      generate, use protoc with imports and source info included. For an
1926      example test.proto file, the following command would put the value in a
1927      new file named descriptor.pb.  $protoc --include_imports
1928      --include_source_info test.proto -o descriptor.pb
1929  """
1930
1931  typeUrl = _messages.StringField(1)
1932  value = _messages.BytesField(2)
1933
1934
1935class ProtoSpec(_messages.Message):
1936  r"""A collection of protocol buffer service specification files.
1937
1938  Fields:
1939    protoDescriptor: A complete descriptor of a protocol buffer specification
1940  """
1941
1942  protoDescriptor = _messages.MessageField('ProtoDescriptor', 1)
1943
1944
1945class QueryUserAccessResponse(_messages.Message):
1946  r"""Request message for QueryUserAccess method.
1947
1948  Fields:
1949    accessibleVisibilityLabels: Any visibility labels on the service that are
1950      accessible by the user.
1951    canAccessService: True if the user can access the service and any
1952      unrestricted API surface.
1953  """
1954
1955  accessibleVisibilityLabels = _messages.StringField(1, repeated=True)
1956  canAccessService = _messages.BooleanField(2)
1957
1958
1959class Quota(_messages.Message):
1960  r"""Quota configuration helps to achieve fairness and budgeting in service
1961  usage.  - Fairness is achieved through the use of short-term quota limits
1962  that are usually defined over a time window of several seconds or   minutes.
1963  When such a limit is applied, for example at the user   level, it ensures
1964  that no single user will monopolize the service   or a given customer's
1965  allocated portion of it. - Budgeting is achieved through the use of long-
1966  term quota limits   that are usually defined over a time window of one or
1967  more   days. These limits help client application developers predict the
1968  usage and help budgeting.  Quota enforcement uses a simple token-based
1969  algorithm for resource sharing.  The quota configuration structure is as
1970  follows:  - `QuotaLimit` defines a single enforceable limit with a specified
1971  token amount that can be consumed over a specific duration and   applies to
1972  a particular entity, like a project or an end user. If   the limit applies
1973  to a user, each user making the request will   get the specified number of
1974  tokens to consume. When the tokens   run out, the requests from that user
1975  will be blocked until the   duration elapses and the next duration window
1976  starts.  - `QuotaGroup` groups a set of quota limits.  - `QuotaRule` maps a
1977  method to a set of quota groups. This allows   sharing of quota groups
1978  across methods as well as one method   consuming tokens from more than one
1979  quota group. When a group   contains multiple limits, requests to a method
1980  consuming tokens   from that group must satisfy all the limits in that
1981  group.  Example:      quota:       groups:       - name: ReadGroup
1982  limits:         - description: Daily Limit           name: ProjectQpd
1983  default_limit: 10000           duration: 1d           limit_by:
1984  CLIENT_PROJECT          - description: Per-second Limit           name:
1985  UserQps           default_limit: 20000           duration: 100s
1986  limit_by: USER        - name: WriteGroup         limits:         -
1987  description: Daily Limit           name: ProjectQpd           default_limit:
1988  1000           max_limit: 1000           duration: 1d           limit_by:
1989  CLIENT_PROJECT          - description: Per-second Limit           name:
1990  UserQps           default_limit: 2000           max_limit: 4000
1991  duration: 100s           limit_by: USER        rules:       - selector: "*"
1992  groups:         - group: ReadGroup       - selector:
1993  google.calendar.Calendar.Update         groups:         - group: WriteGroup
1994  cost: 2       - selector: google.calendar.Calendar.Delete         groups:
1995  - group: WriteGroup  Here, the configuration defines two quota groups:
1996  ReadGroup and WriteGroup, each defining its own daily and per-second limits.
1997  Note that One Platform enforces per-second limits averaged over a duration
1998  of 100 seconds. The rules map ReadGroup for all methods, except for the
1999  Update and Delete methods. These two methods consume from WriteGroup, with
2000  Update method consuming at twice the rate as Delete method.  Multiple quota
2001  groups can be specified for a method. The quota limits in all of those
2002  groups will be enforced. Example:      quota:       groups:       - name:
2003  WriteGroup         limits:         - description: Daily Limit
2004  name: ProjectQpd           default_limit: 1000           max_limit: 1000
2005  duration: 1d           limit_by: CLIENT_PROJECT          - description: Per-
2006  second Limit           name: UserQps           default_limit: 2000
2007  max_limit: 4000           duration: 100s           limit_by: USER        -
2008  name: StorageGroup         limits:         - description: Storage Quota
2009  name: StorageQuota           default_limit: 1000           duration: 0
2010  limit_by: USER        rules:       - selector:
2011  google.calendar.Calendar.Create         groups:         - group:
2012  StorageGroup         - group: WriteGroup       - selector:
2013  google.calendar.Calendar.Delete         groups:         - group:
2014  StorageGroup  In the above example, the Create and Delete methods manage the
2015  user's storage space. In addition, Create method uses WriteGroup to manage
2016  the requests. In this case, requests to Create method need to satisfy all
2017  quota limits defined in both quota groups.  One can disable quota for
2018  selected method(s) identified by the selector by setting disable_quota to
2019  ture. For example,        rules:       - selector: "*"         group:
2020  - group ReadGroup       - selector: google.calendar.Calendar.Select
2021  disable_quota: true
2022
2023  Fields:
2024    groups: List of `QuotaGroup` definitions for the service.
2025    rules: List of `QuotaRule` definitions, each one mapping a selected method
2026      to one or more quota groups.
2027  """
2028
2029  groups = _messages.MessageField('QuotaGroup', 1, repeated=True)
2030  rules = _messages.MessageField('QuotaRule', 2, repeated=True)
2031
2032
2033class QuotaGroup(_messages.Message):
2034  r"""`QuotaGroup` defines a set of quota limits to enforce.
2035
2036  Fields:
2037    billable: Indicates if the quota limits defined in this quota group apply
2038      to consumers who have active billing. Quota limits defined in billable
2039      groups will be applied only to consumers who have active billing. The
2040      amount of tokens consumed from billable quota group will also be
2041      reported for billing. Quota limits defined in non-billable groups will
2042      be applied only to consumers who have no active billing.
2043    description: User-visible description of this quota group.
2044    limits: Quota limits to be enforced when this quota group is used. A
2045      request must satisfy all the limits in a group for it to be permitted.
2046    name: Name of this quota group. Must be unique within the service.  Quota
2047      group name is used as part of the id for quota limits. Once the quota
2048      group has been put into use, the name of the quota group should be
2049      immutable.
2050  """
2051
2052  billable = _messages.BooleanField(1)
2053  description = _messages.StringField(2)
2054  limits = _messages.MessageField('QuotaLimit', 3, repeated=True)
2055  name = _messages.StringField(4)
2056
2057
2058class QuotaGroupMapping(_messages.Message):
2059  r"""A quota group mapping.
2060
2061  Fields:
2062    cost: Number of tokens to consume for each request. This allows different
2063      cost to be associated with different methods that consume from the same
2064      quota group. By default, each request will cost one token.
2065    group: The `QuotaGroup.name` of the group. Requests for the mapped methods
2066      will consume tokens from each of the limits defined in this group.
2067  """
2068
2069  cost = _messages.IntegerField(1, variant=_messages.Variant.INT32)
2070  group = _messages.StringField(2)
2071
2072
2073class QuotaInfo(_messages.Message):
2074  r"""Metadata about an individual quota, containing usage and limit
2075  information.
2076
2077  Fields:
2078    currentUsage: The usage data for this quota as it applies to the current
2079      limit.
2080    historicalUsage: The historical usage data of this quota limit. Currently
2081      it is only available for daily quota limit, that is, base_limit.duration
2082      = "1d".
2083    limit: The effective limit for this quota.
2084  """
2085
2086  currentUsage = _messages.MessageField('QuotaUsage', 1)
2087  historicalUsage = _messages.MessageField('QuotaUsage', 2, repeated=True)
2088  limit = _messages.MessageField('EffectiveQuotaLimit', 3)
2089
2090
2091class QuotaLimit(_messages.Message):
2092  r"""`QuotaLimit` defines a specific limit that applies over a specified
2093  duration for a limit type. There can be at most one limit for a duration and
2094  limit type combination defined within a `QuotaGroup`.
2095
2096  Enums:
2097    LimitByValueValuesEnum: Limit type to use for enforcing this quota limit.
2098      Each unique value gets the defined number of tokens to consume from. For
2099      a quota limit that uses user type, each user making requests through the
2100      same client application project will get his/her own pool of tokens to
2101      consume, whereas for a limit that uses client project type, all users
2102      making requests through the same client application project share a
2103      single pool of tokens.
2104
2105  Fields:
2106    defaultLimit: Default number of tokens that can be consumed during the
2107      specified duration. This is the number of tokens assigned when a client
2108      application developer activates the service for his/her project.
2109      Specifying a value of 0 will block all requests. This can be used if you
2110      are provisioning quota to selected consumers and blocking others.
2111      Similarly, a value of -1 will indicate an unlimited quota. No other
2112      negative values are allowed.
2113    description: Optional. User-visible, extended description for this quota
2114      limit. Should be used only when more context is needed to understand
2115      this limit than provided by the limit's display name (see:
2116      `display_name`).
2117    displayName: User-visible display name for this limit. Optional. If not
2118      set, the UI will provide a default display name based on the quota
2119      configuration. This field can be used to override the default display
2120      name generated from the configuration.
2121    duration: Duration of this limit in textual notation. Example: "100s",
2122      "24h", "1d". For duration longer than a day, only multiple of days is
2123      supported. We support only "100s" and "1d" for now. Additional support
2124      will be added in the future. "0" indicates indefinite duration.
2125    freeTier: Free tier value displayed in the Developers Console for this
2126      limit. The free tier is the number of tokens that will be subtracted
2127      from the billed amount when billing is enabled. This field can only be
2128      set on a limit with duration "1d", in a billable group; it is invalid on
2129      any other limit. If this field is not set, it defaults to 0, indicating
2130      that there is no free tier for this service.
2131    limitBy: Limit type to use for enforcing this quota limit. Each unique
2132      value gets the defined number of tokens to consume from. For a quota
2133      limit that uses user type, each user making requests through the same
2134      client application project will get his/her own pool of tokens to
2135      consume, whereas for a limit that uses client project type, all users
2136      making requests through the same client application project share a
2137      single pool of tokens.
2138    maxLimit: Maximum number of tokens that can be consumed during the
2139      specified duration. Client application developers can override the
2140      default limit up to this maximum. If specified, this value cannot be set
2141      to a value less than the default limit. If not specified, it is set to
2142      the default limit.  To allow clients to apply overrides with no upper
2143      bound, set this to -1, indicating unlimited maximum quota.
2144    name: Name of the quota limit.  Must be unique within the quota group.
2145      This name is used to refer to the limit when overriding the limit on a
2146      per-project basis.  If a name is not provided, it will be generated from
2147      the limit_by and duration fields.  The maximum length of the limit name
2148      is 64 characters.  The name of a limit is used as a unique identifier
2149      for this limit. Therefore, once a limit has been put into use, its name
2150      should be immutable. You can use the display_name field to provide a
2151      user-friendly name for the limit. The display name can be evolved over
2152      time without affecting the identity of the limit.
2153  """
2154
2155  class LimitByValueValuesEnum(_messages.Enum):
2156    r"""Limit type to use for enforcing this quota limit. Each unique value
2157    gets the defined number of tokens to consume from. For a quota limit that
2158    uses user type, each user making requests through the same client
2159    application project will get his/her own pool of tokens to consume,
2160    whereas for a limit that uses client project type, all users making
2161    requests through the same client application project share a single pool
2162    of tokens.
2163
2164    Values:
2165      CLIENT_PROJECT: ID of the project owned by the client application
2166        developer making the request.
2167      USER: ID of the end user making the request using the client
2168        application.
2169    """
2170    CLIENT_PROJECT = 0
2171    USER = 1
2172
2173  defaultLimit = _messages.IntegerField(1)
2174  description = _messages.StringField(2)
2175  displayName = _messages.StringField(3)
2176  duration = _messages.StringField(4)
2177  freeTier = _messages.IntegerField(5)
2178  limitBy = _messages.EnumField('LimitByValueValuesEnum', 6)
2179  maxLimit = _messages.IntegerField(7)
2180  name = _messages.StringField(8)
2181
2182
2183class QuotaLimitOverride(_messages.Message):
2184  r"""Specifies a custom quota limit that is applied for this consumer
2185  project. This overrides the default value in google.api.QuotaLimit.
2186
2187  Fields:
2188    limit: The new limit for this project. May be -1 (unlimited), 0 (block),
2189      or any positive integer.
2190    unlimited: Indicates the override is to provide unlimited quota.  If true,
2191      any value set for limit will be ignored. DEPRECATED. Use a limit value
2192      of -1 instead.
2193  """
2194
2195  limit = _messages.IntegerField(1)
2196  unlimited = _messages.BooleanField(2)
2197
2198
2199class QuotaRule(_messages.Message):
2200  r"""`QuotaRule` maps a method to a set of `QuotaGroup`s.
2201
2202  Fields:
2203    disableQuota: Indicates if quota checking should be enforced. Quota will
2204      be disabled for methods without quota rules or with quota rules having
2205      this field set to true. When this field is set to true, no quota group
2206      mapping is allowed.
2207    groups: Quota groups to be used for this method. This supports associating
2208      a cost with each quota group.
2209    selector: Selects methods to which this rule applies.  Refer to selector
2210      for syntax details.
2211  """
2212
2213  disableQuota = _messages.BooleanField(1)
2214  groups = _messages.MessageField('QuotaGroupMapping', 2, repeated=True)
2215  selector = _messages.StringField(3)
2216
2217
2218class QuotaSettings(_messages.Message):
2219  r"""Per-consumer overrides for quota settings. See google/api/quota.proto
2220  for the corresponding service configuration which provides the default
2221  values.
2222
2223  Messages:
2224    ConsumerOverridesValue: Quota overrides set by the consumer. Consumer
2225      overrides will only have an effect up to the max_limit specified in the
2226      service config, or the the producer override, if one exists.  The key
2227      for this map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for
2228      quotas defined within quota groups, where GROUP_NAME is the
2229      google.api.QuotaGroup.name field and LIMIT_NAME is the
2230      google.api.QuotaLimit.name field from the service config.  For example:
2231      'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
2232      quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
2233      from the service config. For example: 'borrowedCountPerOrganization'.
2234    EffectiveQuotasValue: The effective quota limits for each group, derived
2235      from the service defaults together with any producer or consumer
2236      overrides. For each limit, the effective value is the minimum of the
2237      producer and consumer overrides if either is present, or else the
2238      service default if neither is present. DEPRECATED. Use
2239      effective_quota_groups instead.
2240    ProducerOverridesValue: Quota overrides set by the producer. Note that if
2241      a consumer override is also specified, then the minimum of the two will
2242      be used. This allows consumers to cap their usage voluntarily.  The key
2243      for this map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for
2244      quotas defined within quota groups, where GROUP_NAME is the
2245      google.api.QuotaGroup.name field and LIMIT_NAME is the
2246      google.api.QuotaLimit.name field from the service config.  For example:
2247      'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
2248      quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
2249      from the service config. For example: 'borrowedCountPerOrganization'.
2250
2251  Fields:
2252    consumerOverrides: Quota overrides set by the consumer. Consumer overrides
2253      will only have an effect up to the max_limit specified in the service
2254      config, or the the producer override, if one exists.  The key for this
2255      map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for quotas
2256      defined within quota groups, where GROUP_NAME is the
2257      google.api.QuotaGroup.name field and LIMIT_NAME is the
2258      google.api.QuotaLimit.name field from the service config.  For example:
2259      'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
2260      quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
2261      from the service config. For example: 'borrowedCountPerOrganization'.
2262    effectiveQuotaGroups: Use this field for quota limits defined under quota
2263      groups. Combines service quota configuration and project-specific
2264      settings, as a map from quota group name to the effective quota
2265      information for that group. Output-only.
2266    effectiveQuotas: The effective quota limits for each group, derived from
2267      the service defaults together with any producer or consumer overrides.
2268      For each limit, the effective value is the minimum of the producer and
2269      consumer overrides if either is present, or else the service default if
2270      neither is present. DEPRECATED. Use effective_quota_groups instead.
2271    producerOverrides: Quota overrides set by the producer. Note that if a
2272      consumer override is also specified, then the minimum of the two will be
2273      used. This allows consumers to cap their usage voluntarily.  The key for
2274      this map is one of the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for
2275      quotas defined within quota groups, where GROUP_NAME is the
2276      google.api.QuotaGroup.name field and LIMIT_NAME is the
2277      google.api.QuotaLimit.name field from the service config.  For example:
2278      'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for quotas defined without
2279      quota groups, where LIMIT_NAME is the google.api.QuotaLimit.name field
2280      from the service config. For example: 'borrowedCountPerOrganization'.
2281    variableTermQuotas: Quotas that are active over a specified time period.
2282      Only writeable by the producer.
2283  """
2284
2285  @encoding.MapUnrecognizedFields('additionalProperties')
2286  class ConsumerOverridesValue(_messages.Message):
2287    r"""Quota overrides set by the consumer. Consumer overrides will only have
2288    an effect up to the max_limit specified in the service config, or the the
2289    producer override, if one exists.  The key for this map is one of the
2290    following:  - '<GROUP_NAME>/<LIMIT_NAME>' for quotas defined within quota
2291    groups, where GROUP_NAME is the google.api.QuotaGroup.name field and
2292    LIMIT_NAME is the google.api.QuotaLimit.name field from the service
2293    config.  For example: 'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for
2294    quotas defined without quota groups, where LIMIT_NAME is the
2295    google.api.QuotaLimit.name field from the service config. For example:
2296    'borrowedCountPerOrganization'.
2297
2298    Messages:
2299      AdditionalProperty: An additional property for a ConsumerOverridesValue
2300        object.
2301
2302    Fields:
2303      additionalProperties: Additional properties of type
2304        ConsumerOverridesValue
2305    """
2306
2307    class AdditionalProperty(_messages.Message):
2308      r"""An additional property for a ConsumerOverridesValue object.
2309
2310      Fields:
2311        key: Name of the additional property.
2312        value: A QuotaLimitOverride attribute.
2313      """
2314
2315      key = _messages.StringField(1)
2316      value = _messages.MessageField('QuotaLimitOverride', 2)
2317
2318    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
2319
2320  @encoding.MapUnrecognizedFields('additionalProperties')
2321  class EffectiveQuotasValue(_messages.Message):
2322    r"""The effective quota limits for each group, derived from the service
2323    defaults together with any producer or consumer overrides. For each limit,
2324    the effective value is the minimum of the producer and consumer overrides
2325    if either is present, or else the service default if neither is present.
2326    DEPRECATED. Use effective_quota_groups instead.
2327
2328    Messages:
2329      AdditionalProperty: An additional property for a EffectiveQuotasValue
2330        object.
2331
2332    Fields:
2333      additionalProperties: Additional properties of type EffectiveQuotasValue
2334    """
2335
2336    class AdditionalProperty(_messages.Message):
2337      r"""An additional property for a EffectiveQuotasValue object.
2338
2339      Fields:
2340        key: Name of the additional property.
2341        value: A QuotaLimitOverride attribute.
2342      """
2343
2344      key = _messages.StringField(1)
2345      value = _messages.MessageField('QuotaLimitOverride', 2)
2346
2347    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
2348
2349  @encoding.MapUnrecognizedFields('additionalProperties')
2350  class ProducerOverridesValue(_messages.Message):
2351    r"""Quota overrides set by the producer. Note that if a consumer override
2352    is also specified, then the minimum of the two will be used. This allows
2353    consumers to cap their usage voluntarily.  The key for this map is one of
2354    the following:  - '<GROUP_NAME>/<LIMIT_NAME>' for quotas defined within
2355    quota groups, where GROUP_NAME is the google.api.QuotaGroup.name field and
2356    LIMIT_NAME is the google.api.QuotaLimit.name field from the service
2357    config.  For example: 'ReadGroup/ProjectDaily'.  - '<LIMIT_NAME>' for
2358    quotas defined without quota groups, where LIMIT_NAME is the
2359    google.api.QuotaLimit.name field from the service config. For example:
2360    'borrowedCountPerOrganization'.
2361
2362    Messages:
2363      AdditionalProperty: An additional property for a ProducerOverridesValue
2364        object.
2365
2366    Fields:
2367      additionalProperties: Additional properties of type
2368        ProducerOverridesValue
2369    """
2370
2371    class AdditionalProperty(_messages.Message):
2372      r"""An additional property for a ProducerOverridesValue object.
2373
2374      Fields:
2375        key: Name of the additional property.
2376        value: A QuotaLimitOverride attribute.
2377      """
2378
2379      key = _messages.StringField(1)
2380      value = _messages.MessageField('QuotaLimitOverride', 2)
2381
2382    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
2383
2384  consumerOverrides = _messages.MessageField('ConsumerOverridesValue', 1)
2385  effectiveQuotaGroups = _messages.MessageField('EffectiveQuotaGroup', 2, repeated=True)
2386  effectiveQuotas = _messages.MessageField('EffectiveQuotasValue', 3)
2387  producerOverrides = _messages.MessageField('ProducerOverridesValue', 4)
2388  variableTermQuotas = _messages.MessageField('VariableTermQuota', 5, repeated=True)
2389
2390
2391class QuotaUsage(_messages.Message):
2392  r"""Specifies the used quota amount for a quota limit at a particular time.
2393
2394  Fields:
2395    endTime: The time the quota duration ended.
2396    queryTime: The time the quota usage data was queried.
2397    startTime: The time the quota duration started.
2398    usage: The used quota value at the "query_time".
2399  """
2400
2401  endTime = _messages.StringField(1)
2402  queryTime = _messages.StringField(2)
2403  startTime = _messages.StringField(3)
2404  usage = _messages.IntegerField(4)
2405
2406
2407class Service(_messages.Message):
2408  r"""`Service` is the root object of the configuration schema. It describes
2409  basic information like the name of the service and the exposed API
2410  interfaces, and delegates other aspects to configuration sub-sections.
2411  Example:      type: google.api.Service     config_version: 1     name:
2412  calendar.googleapis.com     title: Google Calendar API     apis:     - name:
2413  google.calendar.Calendar     backend:       rules:       - selector: "*"
2414  address: calendar.example.com
2415
2416  Fields:
2417    apis: A list of API interfaces exported by this service. Only the `name`
2418      field of the google.protobuf.Api needs to be provided by the
2419      configuration author, as the remaining fields will be derived from the
2420      IDL during the normalization process. It is an error to specify an API
2421      interface here which cannot be resolved against the associated IDL
2422      files.
2423    authentication: Auth configuration.
2424    backend: API backend configuration.
2425    billing: Billing configuration of the service.
2426    configVersion: The version of the service configuration. The config
2427      version may influence interpretation of the configuration, for example,
2428      to determine defaults. This is documented together with applicable
2429      options. The current default for the config version itself is `3`.
2430    context: Context configuration.
2431    control: Configuration for the service control plane.
2432    customError: Custom error configuration.
2433    documentation: Additional API documentation.
2434    enums: A list of all enum types included in this API service.  Enums
2435      referenced directly or indirectly by the `apis` are automatically
2436      included.  Enums which are not referenced but shall be included should
2437      be listed here by name. Example:      enums:     - name:
2438      google.someapi.v1.SomeEnum
2439    http: HTTP configuration.
2440    id: A unique ID for a specific instance of this message, typically
2441      assigned by the client for tracking purpose. If empty, the server may
2442      choose to generate one instead.
2443    logging: Logging configuration of the service.
2444    logs: Defines the logs used by this service.
2445    metrics: Defines the metrics used by this service.
2446    monitoredResources: Defines the monitored resources used by this service.
2447      This is required by the Service.monitoring and Service.logging
2448      configurations.
2449    monitoring: Monitoring configuration of the service.
2450    name: The DNS address at which this service is available, e.g.
2451      `calendar.googleapis.com`.
2452    producerProjectId: The id of the Google developer project that owns the
2453      service. Members of this project can manage the service configuration,
2454      manage consumption of the service, etc.
2455    projectProperties: Configuration of per-consumer project properties.
2456    quota: Quota configuration.
2457    systemParameters: Configuration for system parameters.
2458    systemTypes: A list of all proto message types included in this API
2459      service. It serves similar purpose as [google.api.Service.types], except
2460      that these types are not needed by user-defined APIs. Therefore, they
2461      will not show up in the generated discovery doc. This field should only
2462      be used to define system APIs in ESF.
2463    title: The product title associated with this service.
2464    types: A list of all proto message types included in this API service.
2465      Types referenced directly or indirectly by the `apis` are automatically
2466      included.  Messages which are not referenced but shall be included, such
2467      as types used by the `google.protobuf.Any` type, should be listed here
2468      by name. Example:      types:     - name: google.protobuf.Int32
2469    usage: Configuration controlling usage of this service.
2470    visibility: API visibility configuration.
2471  """
2472
2473  apis = _messages.MessageField('Api', 1, repeated=True)
2474  authentication = _messages.MessageField('Authentication', 2)
2475  backend = _messages.MessageField('Backend', 3)
2476  billing = _messages.MessageField('Billing', 4)
2477  configVersion = _messages.IntegerField(5, variant=_messages.Variant.UINT32)
2478  context = _messages.MessageField('Context', 6)
2479  control = _messages.MessageField('Control', 7)
2480  customError = _messages.MessageField('CustomError', 8)
2481  documentation = _messages.MessageField('Documentation', 9)
2482  enums = _messages.MessageField('Enum', 10, repeated=True)
2483  http = _messages.MessageField('Http', 11)
2484  id = _messages.StringField(12)
2485  logging = _messages.MessageField('Logging', 13)
2486  logs = _messages.MessageField('LogDescriptor', 14, repeated=True)
2487  metrics = _messages.MessageField('MetricDescriptor', 15, repeated=True)
2488  monitoredResources = _messages.MessageField('MonitoredResourceDescriptor', 16, repeated=True)
2489  monitoring = _messages.MessageField('Monitoring', 17)
2490  name = _messages.StringField(18)
2491  producerProjectId = _messages.StringField(19)
2492  projectProperties = _messages.MessageField('ProjectProperties', 20)
2493  quota = _messages.MessageField('Quota', 21)
2494  systemParameters = _messages.MessageField('SystemParameters', 22)
2495  systemTypes = _messages.MessageField('Type', 23, repeated=True)
2496  title = _messages.StringField(24)
2497  types = _messages.MessageField('Type', 25, repeated=True)
2498  usage = _messages.MessageField('Usage', 26)
2499  visibility = _messages.MessageField('Visibility', 27)
2500
2501
2502class ServiceAccessList(_messages.Message):
2503  r"""List of users and groups that are granted access to a service or
2504  visibility label.
2505
2506  Fields:
2507    members: Members that are granted access.  - "user:{$user_email}" - Grant
2508      access to an individual user - "group:{$group_email}" - Grant access to
2509      direct members of the group - "domain:{$domain}" - Grant access to all
2510      members of the domain. For now,      domain membership check will be
2511      similar to Devconsole/TT check:      compare domain part of the user
2512      email to configured domain name.      When IAM integration is complete,
2513      this will be replaced with IAM      check.
2514  """
2515
2516  members = _messages.StringField(1, repeated=True)
2517
2518
2519class ServiceAccessPolicy(_messages.Message):
2520  r"""Policy describing who can access a service and any visibility labels on
2521  that service.
2522
2523  Messages:
2524    VisibilityLabelAccessListsValue: ACLs for access to restricted parts of
2525      the service.  The map key is the visibility label that is being
2526      controlled.  Note that access to any label also implies access to the
2527      unrestricted surface.
2528
2529  Fields:
2530    accessList: ACL for access to the unrestricted surface of the service.
2531    serviceName: The service protected by this policy.
2532    visibilityLabelAccessLists: ACLs for access to restricted parts of the
2533      service.  The map key is the visibility label that is being controlled.
2534      Note that access to any label also implies access to the unrestricted
2535      surface.
2536  """
2537
2538  @encoding.MapUnrecognizedFields('additionalProperties')
2539  class VisibilityLabelAccessListsValue(_messages.Message):
2540    r"""ACLs for access to restricted parts of the service.  The map key is
2541    the visibility label that is being controlled.  Note that access to any
2542    label also implies access to the unrestricted surface.
2543
2544    Messages:
2545      AdditionalProperty: An additional property for a
2546        VisibilityLabelAccessListsValue object.
2547
2548    Fields:
2549      additionalProperties: Additional properties of type
2550        VisibilityLabelAccessListsValue
2551    """
2552
2553    class AdditionalProperty(_messages.Message):
2554      r"""An additional property for a VisibilityLabelAccessListsValue object.
2555
2556      Fields:
2557        key: Name of the additional property.
2558        value: A ServiceAccessList attribute.
2559      """
2560
2561      key = _messages.StringField(1)
2562      value = _messages.MessageField('ServiceAccessList', 2)
2563
2564    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
2565
2566  accessList = _messages.MessageField('ServiceAccessList', 1)
2567  serviceName = _messages.StringField(2)
2568  visibilityLabelAccessLists = _messages.MessageField('VisibilityLabelAccessListsValue', 3)
2569
2570
2571class ServicemanagementOperationsGetRequest(_messages.Message):
2572  r"""A ServicemanagementOperationsGetRequest object.
2573
2574  Fields:
2575    operationsId: Part of `name`. The name of the operation resource.
2576  """
2577
2578  operationsId = _messages.StringField(1, required=True)
2579
2580
2581class ServicemanagementServicesAccessPolicyQueryRequest(_messages.Message):
2582  r"""A ServicemanagementServicesAccessPolicyQueryRequest object.
2583
2584  Fields:
2585    serviceName: The service to query access for.
2586    userEmail: The user to query access for.
2587  """
2588
2589  serviceName = _messages.StringField(1, required=True)
2590  userEmail = _messages.StringField(2)
2591
2592
2593class ServicemanagementServicesConfigsCreateRequest(_messages.Message):
2594  r"""A ServicemanagementServicesConfigsCreateRequest object.
2595
2596  Fields:
2597    service: A Service resource to be passed as the request body.
2598    serviceName: The name of the service.  See the `ServiceManager` overview
2599      for naming requirements.  For example: `example.googleapis.com`.
2600  """
2601
2602  service = _messages.MessageField('Service', 1)
2603  serviceName = _messages.StringField(2, required=True)
2604
2605
2606class ServicemanagementServicesConfigsGetRequest(_messages.Message):
2607  r"""A ServicemanagementServicesConfigsGetRequest object.
2608
2609  Fields:
2610    configId: The id of the service config resource. Optional. If it is not
2611      specified, the latest version of config will be returned.
2612    serviceName: The name of the service.  See the `ServiceManager` overview
2613      for naming requirements.  For example: `example.googleapis.com`.
2614  """
2615
2616  configId = _messages.StringField(1, required=True)
2617  serviceName = _messages.StringField(2, required=True)
2618
2619
2620class ServicemanagementServicesConfigsListRequest(_messages.Message):
2621  r"""A ServicemanagementServicesConfigsListRequest object.
2622
2623  Fields:
2624    pageSize: The max number of items to include in the response list.
2625    pageToken: The token of the page to retrieve.
2626    serviceName: The name of the service.  See the `ServiceManager` overview
2627      for naming requirements.  For example: `example.googleapis.com`.
2628  """
2629
2630  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
2631  pageToken = _messages.StringField(2)
2632  serviceName = _messages.StringField(3, required=True)
2633
2634
2635class ServicemanagementServicesConfigsSubmitRequest(_messages.Message):
2636  r"""A ServicemanagementServicesConfigsSubmitRequest object.
2637
2638  Fields:
2639    serviceName: The name of the service.  See the `ServiceManager` overview
2640      for naming requirements.  For example: `example.googleapis.com`.
2641    submitConfigSourceRequest: A SubmitConfigSourceRequest resource to be
2642      passed as the request body.
2643  """
2644
2645  serviceName = _messages.StringField(1, required=True)
2646  submitConfigSourceRequest = _messages.MessageField('SubmitConfigSourceRequest', 2)
2647
2648
2649class ServicemanagementServicesCustomerSettingsGetRequest(_messages.Message):
2650  r"""A ServicemanagementServicesCustomerSettingsGetRequest object.
2651
2652  Enums:
2653    ViewValueValuesEnum: Request only fields for the specified view.
2654
2655  Fields:
2656    customerId: ID for the customer. See the comment for
2657      `CustomerSettings.customer_id` field of message for its format. This
2658      field is required.
2659    expand: Fields to expand in any results.
2660    serviceName: The name of the service.  See the `ServiceManager` overview
2661      for naming requirements.  For example: `example.googleapis.com`. This
2662      field is required.
2663    view: Request only fields for the specified view.
2664  """
2665
2666  class ViewValueValuesEnum(_messages.Enum):
2667    r"""Request only fields for the specified view.
2668
2669    Values:
2670      PROJECT_SETTINGS_VIEW_UNSPECIFIED: <no description>
2671      CONSUMER_VIEW: <no description>
2672      PRODUCER_VIEW: <no description>
2673      ALL: <no description>
2674    """
2675    PROJECT_SETTINGS_VIEW_UNSPECIFIED = 0
2676    CONSUMER_VIEW = 1
2677    PRODUCER_VIEW = 2
2678    ALL = 3
2679
2680  customerId = _messages.StringField(1, required=True)
2681  expand = _messages.StringField(2)
2682  serviceName = _messages.StringField(3, required=True)
2683  view = _messages.EnumField('ViewValueValuesEnum', 4)
2684
2685
2686class ServicemanagementServicesCustomerSettingsPatchRequest(_messages.Message):
2687  r"""A ServicemanagementServicesCustomerSettingsPatchRequest object.
2688
2689  Fields:
2690    customerId: ID for the customer. See the comment for
2691      `CustomerSettings.customer_id` field of message for its format. This
2692      field is required.
2693    customerSettings: A CustomerSettings resource to be passed as the request
2694      body.
2695    serviceName: The name of the service.  See the `ServiceManager` overview
2696      for naming requirements.  For example: `example.googleapis.com`. This
2697      field is required.
2698    updateMask: The field mask specifying which fields are to be updated.
2699  """
2700
2701  customerId = _messages.StringField(1, required=True)
2702  customerSettings = _messages.MessageField('CustomerSettings', 2)
2703  serviceName = _messages.StringField(3, required=True)
2704  updateMask = _messages.StringField(4)
2705
2706
2707class ServicemanagementServicesDeleteRequest(_messages.Message):
2708  r"""A ServicemanagementServicesDeleteRequest object.
2709
2710  Fields:
2711    serviceName: The name of the service.  See the `ServiceManager` overview
2712      for naming requirements.  For example: `example.googleapis.com`.
2713  """
2714
2715  serviceName = _messages.StringField(1, required=True)
2716
2717
2718class ServicemanagementServicesDisableRequest(_messages.Message):
2719  r"""A ServicemanagementServicesDisableRequest object.
2720
2721  Fields:
2722    disableServiceRequest: A DisableServiceRequest resource to be passed as
2723      the request body.
2724    serviceName: Name of the service to disable. Specifying an unknown service
2725      name will cause the request to fail.
2726  """
2727
2728  disableServiceRequest = _messages.MessageField('DisableServiceRequest', 1)
2729  serviceName = _messages.StringField(2, required=True)
2730
2731
2732class ServicemanagementServicesEnableRequest(_messages.Message):
2733  r"""A ServicemanagementServicesEnableRequest object.
2734
2735  Fields:
2736    enableServiceRequest: A EnableServiceRequest resource to be passed as the
2737      request body.
2738    serviceName: Name of the service to enable. Specifying an unknown service
2739      name will cause the request to fail.
2740  """
2741
2742  enableServiceRequest = _messages.MessageField('EnableServiceRequest', 1)
2743  serviceName = _messages.StringField(2, required=True)
2744
2745
2746class ServicemanagementServicesGetAccessPolicyRequest(_messages.Message):
2747  r"""A ServicemanagementServicesGetAccessPolicyRequest object.
2748
2749  Fields:
2750    serviceName: The name of the service.  For example:
2751      `example.googleapis.com`.
2752  """
2753
2754  serviceName = _messages.StringField(1, required=True)
2755
2756
2757class ServicemanagementServicesGetConfigRequest(_messages.Message):
2758  r"""A ServicemanagementServicesGetConfigRequest object.
2759
2760  Fields:
2761    configId: The id of the service config resource. Optional. If it is not
2762      specified, the latest version of config will be returned.
2763    serviceName: The name of the service.  See the `ServiceManager` overview
2764      for naming requirements.  For example: `example.googleapis.com`.
2765  """
2766
2767  configId = _messages.StringField(1)
2768  serviceName = _messages.StringField(2, required=True)
2769
2770
2771class ServicemanagementServicesGetRequest(_messages.Message):
2772  r"""A ServicemanagementServicesGetRequest object.
2773
2774  Enums:
2775    ViewValueValuesEnum: If project_settings is expanded, request only fields
2776      for the specified view.
2777
2778  Fields:
2779    consumerProjectId: If project_settings is expanded, return settings for
2780      the specified consumer project.
2781    expand: Fields to expand in any results.  By default, the following fields
2782      are not present in the result: - `operations` - `project_settings` -
2783      `project_settings.operations` - `quota_usage` (It requires
2784      `project_settings`) - `historical_quota_usage` (It requires
2785      `project_settings`)
2786    serviceName: The name of the service.  See the `ServiceManager` overview
2787      for naming requirements.  For example: `example.googleapis.com`.
2788    view: If project_settings is expanded, request only fields for the
2789      specified view.
2790  """
2791
2792  class ViewValueValuesEnum(_messages.Enum):
2793    r"""If project_settings is expanded, request only fields for the specified
2794    view.
2795
2796    Values:
2797      PROJECT_SETTINGS_VIEW_UNSPECIFIED: <no description>
2798      CONSUMER_VIEW: <no description>
2799      PRODUCER_VIEW: <no description>
2800      ALL: <no description>
2801    """
2802    PROJECT_SETTINGS_VIEW_UNSPECIFIED = 0
2803    CONSUMER_VIEW = 1
2804    PRODUCER_VIEW = 2
2805    ALL = 3
2806
2807  consumerProjectId = _messages.StringField(1)
2808  expand = _messages.StringField(2)
2809  serviceName = _messages.StringField(3, required=True)
2810  view = _messages.EnumField('ViewValueValuesEnum', 4)
2811
2812
2813class ServicemanagementServicesListRequest(_messages.Message):
2814  r"""A ServicemanagementServicesListRequest object.
2815
2816  Fields:
2817    category: Include services only in the specified category. Supported
2818      categories are servicemanagement.googleapis.com/categories/google-
2819      services or servicemanagement.googleapis.com/categories/play-games.
2820    consumerProjectId: Include services consumed by the specified project.  If
2821      project_settings is expanded, then this field controls which project
2822      project_settings is populated for.
2823    expand: Fields to expand in any results.  By default, the following fields
2824      are not fully included in list results: - `operations` -
2825      `project_settings` - `project_settings.operations` - `quota_usage` (It
2826      requires `project_settings`)
2827    pageSize: Requested size of the next page of data.
2828    pageToken: Token identifying which result to start with; returned by a
2829      previous list call.
2830    producerProjectId: Include services produced by the specified project.
2831  """
2832
2833  category = _messages.StringField(1)
2834  consumerProjectId = _messages.StringField(2)
2835  expand = _messages.StringField(3)
2836  pageSize = _messages.IntegerField(4, variant=_messages.Variant.INT32)
2837  pageToken = _messages.StringField(5)
2838  producerProjectId = _messages.StringField(6)
2839
2840
2841class ServicemanagementServicesPatchConfigRequest(_messages.Message):
2842  r"""A ServicemanagementServicesPatchConfigRequest object.
2843
2844  Fields:
2845    service: A Service resource to be passed as the request body.
2846    serviceName: The name of the service.  See the `ServiceManager` overview
2847      for naming requirements.  For example: `example.googleapis.com`.
2848    updateMask: A mask specifying which fields to update.
2849  """
2850
2851  service = _messages.MessageField('Service', 1)
2852  serviceName = _messages.StringField(2, required=True)
2853  updateMask = _messages.StringField(3)
2854
2855
2856class ServicemanagementServicesPatchRequest(_messages.Message):
2857  r"""A ServicemanagementServicesPatchRequest object.
2858
2859  Fields:
2860    managedService: A ManagedService resource to be passed as the request
2861      body.
2862    serviceName: The name of the service.  See the `ServiceManager` overview
2863      for naming requirements.  For example: `example.googleapis.com`.
2864    updateMask: A mask specifying which fields to update.
2865  """
2866
2867  managedService = _messages.MessageField('ManagedService', 1)
2868  serviceName = _messages.StringField(2, required=True)
2869  updateMask = _messages.StringField(3)
2870
2871
2872class ServicemanagementServicesProjectSettingsGetRequest(_messages.Message):
2873  r"""A ServicemanagementServicesProjectSettingsGetRequest object.
2874
2875  Enums:
2876    ViewValueValuesEnum: Request only the fields for the specified view.
2877
2878  Fields:
2879    consumerProjectId: The project ID of the consumer.
2880    expand: Fields to expand in any results.  By default, the following fields
2881      are not present in the result: - `operations` - `quota_usage`
2882    serviceName: The name of the service.  See the `ServiceManager` overview
2883      for naming requirements.  For example: `example.googleapis.com`.
2884    view: Request only the fields for the specified view.
2885  """
2886
2887  class ViewValueValuesEnum(_messages.Enum):
2888    r"""Request only the fields for the specified view.
2889
2890    Values:
2891      PROJECT_SETTINGS_VIEW_UNSPECIFIED: <no description>
2892      CONSUMER_VIEW: <no description>
2893      PRODUCER_VIEW: <no description>
2894      ALL: <no description>
2895    """
2896    PROJECT_SETTINGS_VIEW_UNSPECIFIED = 0
2897    CONSUMER_VIEW = 1
2898    PRODUCER_VIEW = 2
2899    ALL = 3
2900
2901  consumerProjectId = _messages.StringField(1, required=True)
2902  expand = _messages.StringField(2)
2903  serviceName = _messages.StringField(3, required=True)
2904  view = _messages.EnumField('ViewValueValuesEnum', 4)
2905
2906
2907class ServicemanagementServicesProjectSettingsPatchRequest(_messages.Message):
2908  r"""A ServicemanagementServicesProjectSettingsPatchRequest object.
2909
2910  Fields:
2911    consumerProjectId: The project ID of the consumer.
2912    projectSettings: A ProjectSettings resource to be passed as the request
2913      body.
2914    serviceName: The name of the service.  See the `ServiceManager` overview
2915      for naming requirements.  For example: `example.googleapis.com`.
2916    updateMask: The field mask specifying which fields are to be updated.
2917  """
2918
2919  consumerProjectId = _messages.StringField(1, required=True)
2920  projectSettings = _messages.MessageField('ProjectSettings', 2)
2921  serviceName = _messages.StringField(3, required=True)
2922  updateMask = _messages.StringField(4)
2923
2924
2925class ServicemanagementServicesUpdateConfigRequest(_messages.Message):
2926  r"""A ServicemanagementServicesUpdateConfigRequest object.
2927
2928  Fields:
2929    service: A Service resource to be passed as the request body.
2930    serviceName: The name of the service.  See the `ServiceManager` overview
2931      for naming requirements.  For example: `example.googleapis.com`.
2932    updateMask: A mask specifying which fields to update. Update mask has been
2933      deprecated on UpdateServiceConfig service method. Please use
2934      PatchServiceConfig method instead to do partial updates.
2935  """
2936
2937  service = _messages.MessageField('Service', 1)
2938  serviceName = _messages.StringField(2, required=True)
2939  updateMask = _messages.StringField(3)
2940
2941
2942class ServicemanagementServicesUpdateRequest(_messages.Message):
2943  r"""A ServicemanagementServicesUpdateRequest object.
2944
2945  Fields:
2946    managedService: A ManagedService resource to be passed as the request
2947      body.
2948    serviceName: The name of the service.  See the `ServiceManager` overview
2949      for naming requirements.  For example: `example.googleapis.com`.
2950    updateMask: A mask specifying which fields to update. Update mask has been
2951      deprecated on UpdateService service method. Please use PatchService
2952      method instead to do partial updates.
2953  """
2954
2955  managedService = _messages.MessageField('ManagedService', 1)
2956  serviceName = _messages.StringField(2, required=True)
2957  updateMask = _messages.StringField(3)
2958
2959
2960class SourceContext(_messages.Message):
2961  r"""`SourceContext` represents information about the source of a protobuf
2962  element, like the file in which it is defined.
2963
2964  Fields:
2965    fileName: The path-qualified name of the .proto file that contained the
2966      associated protobuf element.  For example:
2967      `"google/protobuf/source_context.proto"`.
2968  """
2969
2970  fileName = _messages.StringField(1)
2971
2972
2973class StandardQueryParameters(_messages.Message):
2974  r"""Query parameters accepted by all methods.
2975
2976  Enums:
2977    FXgafvValueValuesEnum: V1 error format.
2978    AltValueValuesEnum: Data format for response.
2979
2980  Fields:
2981    f__xgafv: V1 error format.
2982    access_token: OAuth access token.
2983    alt: Data format for response.
2984    bearer_token: OAuth bearer token.
2985    callback: JSONP
2986    fields: Selector specifying which fields to include in a partial response.
2987    key: API key. Your API key identifies your project and provides you with
2988      API access, quota, and reports. Required unless you provide an OAuth 2.0
2989      token.
2990    oauth_token: OAuth 2.0 token for the current user.
2991    pp: Pretty-print response.
2992    prettyPrint: Returns response with indentations and line breaks.
2993    quotaUser: Available to use for quota purposes for server-side
2994      applications. Can be any arbitrary string assigned to a user, but should
2995      not exceed 40 characters.
2996    trace: A tracing token of the form "token:<tokenid>" to include in api
2997      requests.
2998    uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
2999    upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
3000  """
3001
3002  class AltValueValuesEnum(_messages.Enum):
3003    r"""Data format for response.
3004
3005    Values:
3006      json: Responses with Content-Type of application/json
3007      media: Media download with context-dependent Content-Type
3008      proto: Responses with Content-Type of application/x-protobuf
3009    """
3010    json = 0
3011    media = 1
3012    proto = 2
3013
3014  class FXgafvValueValuesEnum(_messages.Enum):
3015    r"""V1 error format.
3016
3017    Values:
3018      _1: v1 error format
3019      _2: v2 error format
3020    """
3021    _1 = 0
3022    _2 = 1
3023
3024  f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
3025  access_token = _messages.StringField(2)
3026  alt = _messages.EnumField('AltValueValuesEnum', 3, default=u'json')
3027  bearer_token = _messages.StringField(4)
3028  callback = _messages.StringField(5)
3029  fields = _messages.StringField(6)
3030  key = _messages.StringField(7)
3031  oauth_token = _messages.StringField(8)
3032  pp = _messages.BooleanField(9, default=True)
3033  prettyPrint = _messages.BooleanField(10, default=True)
3034  quotaUser = _messages.StringField(11)
3035  trace = _messages.StringField(12)
3036  uploadType = _messages.StringField(13)
3037  upload_protocol = _messages.StringField(14)
3038
3039
3040class Status(_messages.Message):
3041  r"""The `Status` type defines a logical error model that is suitable for
3042  different programming environments, including REST APIs and RPC APIs. It is
3043  used by [gRPC](https://github.com/grpc). The error model is designed to be:
3044  - Simple to use and understand for most users - Flexible enough to meet
3045  unexpected needs  # Overview  The `Status` message contains three pieces of
3046  data: error code, error message, and error details. The error code should be
3047  an enum value of google.rpc.Code, but it may accept additional error codes
3048  if needed.  The error message should be a developer-facing English message
3049  that helps developers *understand* and *resolve* the error. If a localized
3050  user-facing error message is needed, put the localized message in the error
3051  details or localize it in the client. The optional error details may contain
3052  arbitrary information about the error. There is a predefined set of error
3053  detail types in the package `google.rpc` which can be used for common error
3054  conditions.  # Language mapping  The `Status` message is the logical
3055  representation of the error model, but it is not necessarily the actual wire
3056  format. When the `Status` message is exposed in different client libraries
3057  and different wire protocols, it can be mapped differently. For example, it
3058  will likely be mapped to some exceptions in Java, but more likely mapped to
3059  some error codes in C.  # Other uses  The error model and the `Status`
3060  message can be used in a variety of environments, either with or without
3061  APIs, to provide a consistent developer experience across different
3062  environments.  Example uses of this error model include:  - Partial errors.
3063  If a service needs to return partial errors to the client,     it may embed
3064  the `Status` in the normal response to indicate the partial     errors.  -
3065  Workflow errors. A typical workflow has multiple steps. Each step may
3066  have a `Status` message for error reporting purpose.  - Batch operations. If
3067  a client uses batch request and batch response, the     `Status` message
3068  should be used directly inside batch response, one for     each error sub-
3069  response.  - Asynchronous operations. If an API call embeds asynchronous
3070  operation     results in its response, the status of those operations should
3071  be     represented directly using the `Status` message.  - Logging. If some
3072  API errors are stored in logs, the message `Status` could     be used
3073  directly after any stripping needed for security/privacy reasons.
3074
3075  Messages:
3076    DetailsValueListEntry: A DetailsValueListEntry object.
3077
3078  Fields:
3079    code: The status code, which should be an enum value of google.rpc.Code.
3080    details: A list of messages that carry the error details.  There will be a
3081      common set of message types for APIs to use.
3082    message: A developer-facing error message, which should be in English. Any
3083      user-facing error message should be localized and sent in the
3084      google.rpc.Status.details field, or localized by the client.
3085  """
3086
3087  @encoding.MapUnrecognizedFields('additionalProperties')
3088  class DetailsValueListEntry(_messages.Message):
3089    r"""A DetailsValueListEntry object.
3090
3091    Messages:
3092      AdditionalProperty: An additional property for a DetailsValueListEntry
3093        object.
3094
3095    Fields:
3096      additionalProperties: Properties of the object. Contains field @type
3097        with type URL.
3098    """
3099
3100    class AdditionalProperty(_messages.Message):
3101      r"""An additional property for a DetailsValueListEntry object.
3102
3103      Fields:
3104        key: Name of the additional property.
3105        value: A extra_types.JsonValue attribute.
3106      """
3107
3108      key = _messages.StringField(1)
3109      value = _messages.MessageField('extra_types.JsonValue', 2)
3110
3111    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
3112
3113  code = _messages.IntegerField(1, variant=_messages.Variant.INT32)
3114  details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True)
3115  message = _messages.StringField(3)
3116
3117
3118class Step(_messages.Message):
3119  r"""Represents the status of one operation step.
3120
3121  Enums:
3122    StatusValueValuesEnum: The status code.
3123
3124  Fields:
3125    description: The short description of the step.
3126    status: The status code.
3127  """
3128
3129  class StatusValueValuesEnum(_messages.Enum):
3130    r"""The status code.
3131
3132    Values:
3133      STATUS_UNSPECIFIED: Unspecifed code.
3134      DONE: The step has completed without errors.
3135      NOT_STARTED: The step has not started yet.
3136      IN_PROGRESS: The step is in progress.
3137      FAILED: The step has completed with errors.
3138    """
3139    STATUS_UNSPECIFIED = 0
3140    DONE = 1
3141    NOT_STARTED = 2
3142    IN_PROGRESS = 3
3143    FAILED = 4
3144
3145  description = _messages.StringField(1)
3146  status = _messages.EnumField('StatusValueValuesEnum', 2)
3147
3148
3149class SubmitConfigSourceRequest(_messages.Message):
3150  r"""Request message for SubmitConfigSource method.
3151
3152  Fields:
3153    configSource: The source configuration for the service.
3154    validateOnly: Optional. If set, this will result in the generation of a
3155      `google.api.Service` configuration based on the `ConfigSource` provided,
3156      but the generated config and the sources will NOT be persisted.
3157  """
3158
3159  configSource = _messages.MessageField('ConfigSource', 1)
3160  validateOnly = _messages.BooleanField(2)
3161
3162
3163class SwaggerSpec(_messages.Message):
3164  r"""A collection of swagger specification files.
3165
3166  Fields:
3167    swaggerFiles: The individual files.
3168  """
3169
3170  swaggerFiles = _messages.MessageField('File', 1, repeated=True)
3171
3172
3173class SystemParameter(_messages.Message):
3174  r"""Define a parameter's name and location. The parameter may be passed as
3175  either an HTTP header or a URL query parameter, and if both are passed the
3176  behavior is implementation-dependent.
3177
3178  Fields:
3179    httpHeader: Define the HTTP header name to use for the parameter. It is
3180      case insensitive.
3181    name: Define the name of the parameter, such as "api_key", "alt",
3182      "callback", and etc. It is case sensitive.
3183    urlQueryParameter: Define the URL query parameter name to use for the
3184      parameter. It is case sensitive.
3185  """
3186
3187  httpHeader = _messages.StringField(1)
3188  name = _messages.StringField(2)
3189  urlQueryParameter = _messages.StringField(3)
3190
3191
3192class SystemParameterRule(_messages.Message):
3193  r"""Define a system parameter rule mapping system parameter definitions to
3194  methods.
3195
3196  Fields:
3197    parameters: Define parameters. Multiple names may be defined for a
3198      parameter. For a given method call, only one of them should be used. If
3199      multiple names are used the behavior is implementation-dependent. If
3200      none of the specified names are present the behavior is parameter-
3201      dependent.
3202    selector: Selects the methods to which this rule applies. Use '*' to
3203      indicate all methods in all APIs.  Refer to selector for syntax details.
3204  """
3205
3206  parameters = _messages.MessageField('SystemParameter', 1, repeated=True)
3207  selector = _messages.StringField(2)
3208
3209
3210class SystemParameters(_messages.Message):
3211  r"""### System parameter configuration  A system parameter is a special kind
3212  of parameter defined by the API system, not by an individual API. It is
3213  typically mapped to an HTTP header and/or a URL query parameter. This
3214  configuration specifies which methods change the names of the system
3215  parameters.
3216
3217  Fields:
3218    rules: Define system parameters.  The parameters defined here will
3219      override the default parameters implemented by the system. If this field
3220      is missing from the service config, default system parameters will be
3221      used. Default system parameters and names is implementation-dependent.
3222      Example: define api key and alt name for all methods  system_parameters
3223      rules:     - selector: "*"       parameters:         - name: api_key
3224      url_query_parameter: api_key         - name: alt           http_header:
3225      Response-Content-Type  Example: define 2 api key names for a specific
3226      method.  system_parameters   rules:     - selector: "/ListShelves"
3227      parameters:         - name: api_key           http_header: Api-Key1
3228      - name: api_key           http_header: Api-Key2
3229  """
3230
3231  rules = _messages.MessageField('SystemParameterRule', 1, repeated=True)
3232
3233
3234class Type(_messages.Message):
3235  r"""A protocol buffer message type.
3236
3237  Enums:
3238    SyntaxValueValuesEnum: The source syntax.
3239
3240  Fields:
3241    fields: The list of fields.
3242    name: The fully qualified message name.
3243    oneofs: The list of types appearing in `oneof` definitions in this type.
3244    options: The protocol buffer options.
3245    sourceContext: The source context.
3246    syntax: The source syntax.
3247  """
3248
3249  class SyntaxValueValuesEnum(_messages.Enum):
3250    r"""The source syntax.
3251
3252    Values:
3253      SYNTAX_PROTO2: Syntax `proto2`.
3254      SYNTAX_PROTO3: Syntax `proto3`.
3255    """
3256    SYNTAX_PROTO2 = 0
3257    SYNTAX_PROTO3 = 1
3258
3259  fields = _messages.MessageField('Field', 1, repeated=True)
3260  name = _messages.StringField(2)
3261  oneofs = _messages.StringField(3, repeated=True)
3262  options = _messages.MessageField('Option', 4, repeated=True)
3263  sourceContext = _messages.MessageField('SourceContext', 5)
3264  syntax = _messages.EnumField('SyntaxValueValuesEnum', 6)
3265
3266
3267class Usage(_messages.Message):
3268  r"""Configuration controlling usage of a service.
3269
3270  Enums:
3271    ServiceAccessValueValuesEnum: Controls which users can see or activate the
3272      service.
3273
3274  Fields:
3275    activationHooks: Services that must be contacted before a consumer can
3276      begin using the service. Each service will be contacted in sequence,
3277      and, if any activation call fails, the entire activation will fail. Each
3278      hook is of the form <service.name>/<hook-id>, where <hook-id> is
3279      optional; for example: 'robotservice.googleapis.com/default'.
3280    deactivationHooks: Services that must be contacted before a consumer can
3281      deactivate a service. Each service will be contacted in sequence, and,
3282      if any deactivation call fails, the entire deactivation will fail. Each
3283      hook is of the form <service.name>/<hook-id>, where <hook-id> is
3284      optional; for example: 'compute.googleapis.com/'.
3285    dependsOnServices: Services that must be activated in order for this
3286      service to be used. The set of services activated as a result of these
3287      relations are all activated in parallel with no guaranteed order of
3288      activation. Each string is a service name, e.g.
3289      `calendar.googleapis.com`.
3290    requirements: Requirements that must be satisfied before a consumer
3291      project can use the service. Each requirement is of the form
3292      <service.name>/<requirement-id>; for example
3293      'serviceusage.googleapis.com/billing-enabled'.
3294    rules: Individual rules for configuring usage on selected methods.
3295    serviceAccess: Controls which users can see or activate the service.
3296  """
3297
3298  class ServiceAccessValueValuesEnum(_messages.Enum):
3299    r"""Controls which users can see or activate the service.
3300
3301    Values:
3302      RESTRICTED: The service can only be seen/used by users identified in the
3303        service's access control policy.  If the service has not been
3304        whitelisted by your domain administrator for out-of-org publishing,
3305        then this mode will be treated like ORG_RESTRICTED.
3306      PUBLIC: The service can be seen/used by anyone.  If the service has not
3307        been whitelisted by your domain administrator for out-of-org
3308        publishing, then this mode will be treated like ORG_PUBLIC.  The
3309        discovery document for the service will also be public and allow
3310        unregistered access.
3311      ORG_RESTRICTED: The service can be seen/used by users identified in the
3312        service's access control policy and they are within the organization
3313        that owns the service.  Access is further constrained to the group
3314        controlled by the administrator of the project/org that owns the
3315        service.
3316      ORG_PUBLIC: The service can be seen/used by the group of users
3317        controlled by the administrator of the project/org that owns the
3318        service.
3319    """
3320    RESTRICTED = 0
3321    PUBLIC = 1
3322    ORG_RESTRICTED = 2
3323    ORG_PUBLIC = 3
3324
3325  activationHooks = _messages.StringField(1, repeated=True)
3326  deactivationHooks = _messages.StringField(2, repeated=True)
3327  dependsOnServices = _messages.StringField(3, repeated=True)
3328  requirements = _messages.StringField(4, repeated=True)
3329  rules = _messages.MessageField('UsageRule', 5, repeated=True)
3330  serviceAccess = _messages.EnumField('ServiceAccessValueValuesEnum', 6)
3331
3332
3333class UsageRule(_messages.Message):
3334  r"""Usage configuration rules for the service.  NOTE: Under development.
3335  Use this rule to configure unregistered calls for the service. Unregistered
3336  calls are calls that do not contain consumer project identity. (Example:
3337  calls that do not contain an API key). By default, API methods do not allow
3338  unregistered calls, and each method call must be identified by a consumer
3339  project identity. Use this rule to allow/disallow unregistered calls.
3340  Example of an API that wants to allow unregistered calls for entire service.
3341  usage:       rules:       - selector: "*"         allow_unregistered_calls:
3342  true  Example of a method that wants to allow unregistered calls.
3343  usage:       rules:       - selector:
3344  "google.example.library.v1.LibraryService.CreateBook"
3345  allow_unregistered_calls: true
3346
3347  Fields:
3348    allowUnregisteredCalls: True, if the method allows unregistered calls;
3349      false otherwise.
3350    selector: Selects the methods to which this rule applies. Use '*' to
3351      indicate all methods in all APIs.  Refer to selector for syntax details.
3352  """
3353
3354  allowUnregisteredCalls = _messages.BooleanField(1)
3355  selector = _messages.StringField(2)
3356
3357
3358class UsageSettings(_messages.Message):
3359  r"""Usage settings for a consumer of a service.
3360
3361  Enums:
3362    ConsumerEnableStatusValueValuesEnum: Consumer controlled setting to
3363      enable/disable use of this service by the consumer project. The default
3364      value of this is controlled by the service configuration.
3365
3366  Fields:
3367    consumerEnableStatus: Consumer controlled setting to enable/disable use of
3368      this service by the consumer project. The default value of this is
3369      controlled by the service configuration.
3370  """
3371
3372  class ConsumerEnableStatusValueValuesEnum(_messages.Enum):
3373    r"""Consumer controlled setting to enable/disable use of this service by
3374    the consumer project. The default value of this is controlled by the
3375    service configuration.
3376
3377    Values:
3378      DISABLED: The service is disabled.
3379      ENABLED: The service is enabled.
3380    """
3381    DISABLED = 0
3382    ENABLED = 1
3383
3384  consumerEnableStatus = _messages.EnumField('ConsumerEnableStatusValueValuesEnum', 1)
3385
3386
3387class VariableTermQuota(_messages.Message):
3388  r"""A variable term quota is a bucket of tokens that is consumed over a
3389  specified (usually long) time period. When present, it overrides any "1d"
3390  duration per-project quota specified on the group.  Variable terms run from
3391  midnight to midnight, start_date to end_date (inclusive) in the
3392  America/Los_Angeles time zone.
3393
3394  Fields:
3395    createTime: Time when this variable term quota was created. If multiple
3396      quotas are simultaneously active, then the quota with the latest
3397      create_time is the effective one.
3398    displayEndDate: The displayed end of the active period for the variable
3399      term quota. This may be before the effective end to give the user a
3400      grace period. YYYYMMdd date format, e.g. 20140730.
3401    endDate: The effective end of the active period for the variable term
3402      quota (inclusive). This must be no more than 5 years after start_date.
3403      YYYYMMdd date format, e.g. 20140730.
3404    groupName: The quota group that has the variable term quota applied to it.
3405      This must be a google.api.QuotaGroup.name specified in the service
3406      configuration.
3407    limit: The number of tokens available during the configured term.
3408    quotaUsage: The usage data of this quota.
3409    startDate: The beginning of the active period for the variable term quota.
3410      YYYYMMdd date format, e.g. 20140730.
3411  """
3412
3413  createTime = _messages.StringField(1)
3414  displayEndDate = _messages.StringField(2)
3415  endDate = _messages.StringField(3)
3416  groupName = _messages.StringField(4)
3417  limit = _messages.IntegerField(5)
3418  quotaUsage = _messages.MessageField('QuotaUsage', 6)
3419  startDate = _messages.StringField(7)
3420
3421
3422class Visibility(_messages.Message):
3423  r"""`Visibility` defines restrictions for the visibility of service
3424  elements.  Restrictions are specified using visibility labels (e.g.,
3425  TRUSTED_TESTER) that are elsewhere linked to users and projects.  Users and
3426  projects can have access to more than one visibility label. The effective
3427  visibility for multiple labels is the union of each label's elements, plus
3428  any unrestricted elements.  If an element and its parents have no
3429  restrictions, visibility is unconditionally granted.  Example:
3430  visibility:       rules:       - selector:
3431  google.calendar.Calendar.EnhancedSearch         restriction: TRUSTED_TESTER
3432  - selector: google.calendar.Calendar.Delegate         restriction:
3433  GOOGLE_INTERNAL  Here, all methods are publicly visible except for the
3434  restricted methods EnhancedSearch and Delegate.
3435
3436  Fields:
3437    enforceRuntimeVisibility: Controls whether visibility rules are enforced
3438      at runtime for requests to all APIs and methods.  If true, requests
3439      without method visibility will receive a NOT_FOUND error, and any non-
3440      visible fields will be scrubbed from the response messages. In service
3441      config version 0, the default is false. In later config versions, it's
3442      true.  Note, the `enforce_runtime_visibility` specified in a visibility
3443      rule overrides this setting for the APIs or methods asscoiated with the
3444      rule.
3445    rules: A list of visibility rules providing visibility configuration for
3446      individual API elements.
3447  """
3448
3449  enforceRuntimeVisibility = _messages.BooleanField(1)
3450  rules = _messages.MessageField('VisibilityRule', 2, repeated=True)
3451
3452
3453class VisibilityRule(_messages.Message):
3454  r"""A visibility rule provides visibility configuration for an individual
3455  API element.
3456
3457  Fields:
3458    enforceRuntimeVisibility: Controls whether visibility is enforced at
3459      runtime for requests to an API method. This setting has meaning only
3460      when the selector applies to a method or an API.  If true, requests
3461      without method visibility will receive a NOT_FOUND error, and any non-
3462      visible fields will be scrubbed from the response messages. The default
3463      is determined by the value of
3464      google.api.Visibility.enforce_runtime_visibility.
3465    restriction: Lists the visibility labels for this rule. Any of the listed
3466      labels grants visibility to the element.  If a rule has multiple labels,
3467      removing one of the labels but not all of them can break clients.
3468      Example:      visibility:       rules:       - selector:
3469      google.calendar.Calendar.EnhancedSearch         restriction:
3470      GOOGLE_INTERNAL, TRUSTED_TESTER  Removing GOOGLE_INTERNAL from this
3471      restriction will break clients that rely on this method and only had
3472      access to it through GOOGLE_INTERNAL.
3473    selector: Selects methods, messages, fields, enums, etc. to which this
3474      rule applies.  Refer to selector for syntax details.
3475  """
3476
3477  enforceRuntimeVisibility = _messages.BooleanField(1)
3478  restriction = _messages.StringField(2)
3479  selector = _messages.StringField(3)
3480
3481
3482class VisibilitySettings(_messages.Message):
3483  r"""Settings that control which features of the service are visible to the
3484  consumer project.
3485
3486  Fields:
3487    visibilityLabels: The set of visibility labels that are used to determine
3488      what API surface is visible to calls made by this project. The visible
3489      surface is a union of the surface features associated with each label
3490      listed here, plus the publicly visible (unrestricted) surface.  The
3491      service producer may add or remove labels at any time. The service
3492      consumer may add a label if the calling user has been granted permission
3493      to do so by the producer.  The service consumer may also remove any
3494      label at any time.
3495  """
3496
3497  visibilityLabels = _messages.StringField(1, repeated=True)
3498
3499
3500encoding.AddCustomJsonFieldMapping(
3501    StandardQueryParameters, 'f__xgafv', '$.xgafv')
3502encoding.AddCustomJsonEnumMapping(
3503    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
3504encoding.AddCustomJsonEnumMapping(
3505    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
3506