1"""Generated message classes for labelmanager version v1alpha1.
2
3The Label Manager API allows users to create and manage definitions and
4permissions of labels (keys and values) across the Cloud Resource Hierarchy.
5The API also allows binding these user-created labels to cloud resources to
6affect policy evaluation.
7"""
8# NOTE: This file is autogenerated and should not be edited by hand.
9
10from __future__ import absolute_import
11
12from apitools.base.protorpclite import messages as _messages
13from apitools.base.py import encoding
14from apitools.base.py import extra_types
15
16
17package = 'labelmanager'
18
19
20class AuditConfig(_messages.Message):
21  r"""Specifies the audit configuration for a service. The configuration
22  determines which permission types are logged, and what identities, if any,
23  are exempted from logging. An AuditConfig must have one or more
24  AuditLogConfigs. If there are AuditConfigs for both `allServices` and a
25  specific service, the union of the two AuditConfigs is used for that
26  service: the log_types specified in each AuditConfig are enabled, and the
27  exempted_members in each AuditLogConfig are exempted. Example Policy with
28  multiple AuditConfigs: { "audit_configs": [ { "service": "allServices",
29  "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [
30  "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, { "log_type":
31  "ADMIN_READ" } ] }, { "service": "sampleservice.googleapis.com",
32  "audit_log_configs": [ { "log_type": "DATA_READ" }, { "log_type":
33  "DATA_WRITE", "exempted_members": [ "user:aliya@example.com" ] } ] } ] } For
34  sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ
35  logging. It also exempts jose@example.com from DATA_READ logging, and
36  aliya@example.com from DATA_WRITE logging.
37
38  Fields:
39    auditLogConfigs: The configuration for logging of each type of permission.
40    service: Specifies a service that will be enabled for audit logging. For
41      example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
42      `allServices` is a special value that covers all services.
43  """
44
45  auditLogConfigs = _messages.MessageField('AuditLogConfig', 1, repeated=True)
46  service = _messages.StringField(2)
47
48
49class AuditLogConfig(_messages.Message):
50  r"""Provides the configuration for logging a type of permissions. Example: {
51  "audit_log_configs": [ { "log_type": "DATA_READ", "exempted_members": [
52  "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" } ] } This enables
53  'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
54  DATA_READ logging.
55
56  Enums:
57    LogTypeValueValuesEnum: The log type that this config enables.
58
59  Fields:
60    exemptedMembers: Specifies the identities that do not cause logging for
61      this type of permission. Follows the same format of Binding.members.
62    logType: The log type that this config enables.
63  """
64
65  class LogTypeValueValuesEnum(_messages.Enum):
66    r"""The log type that this config enables.
67
68    Values:
69      LOG_TYPE_UNSPECIFIED: Default case. Should never be this.
70      ADMIN_READ: Admin reads. Example: CloudIAM getIamPolicy
71      DATA_WRITE: Data writes. Example: CloudSQL Users create
72      DATA_READ: Data reads. Example: CloudSQL Users list
73    """
74    LOG_TYPE_UNSPECIFIED = 0
75    ADMIN_READ = 1
76    DATA_WRITE = 2
77    DATA_READ = 3
78
79  exemptedMembers = _messages.StringField(1, repeated=True)
80  logType = _messages.EnumField('LogTypeValueValuesEnum', 2)
81
82
83class Binding(_messages.Message):
84  r"""Associates `members` with a `role`.
85
86  Fields:
87    condition: The condition that is associated with this binding. If the
88      condition evaluates to `true`, then this binding applies to the current
89      request. If the condition evaluates to `false`, then this binding does
90      not apply to the current request. However, a different role binding
91      might grant the same role to one or more of the members in this binding.
92      To learn which resources support conditions in their IAM policies, see
93      the [IAM
94      documentation](https://cloud.google.com/iam/help/conditions/resource-
95      policies).
96    members: Specifies the identities requesting access for a Cloud Platform
97      resource. `members` can have the following values: * `allUsers`: A
98      special identifier that represents anyone who is on the internet; with
99      or without a Google account. * `allAuthenticatedUsers`: A special
100      identifier that represents anyone who is authenticated with a Google
101      account or a service account. * `user:{emailid}`: An email address that
102      represents a specific Google account. For example, `alice@example.com` .
103      * `serviceAccount:{emailid}`: An email address that represents a service
104      account. For example, `my-other-app@appspot.gserviceaccount.com`. *
105      `group:{emailid}`: An email address that represents a Google group. For
106      example, `admins@example.com`. *
107      `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
108      identifier) representing a user that has been recently deleted. For
109      example, `alice@example.com?uid=123456789012345678901`. If the user is
110      recovered, this value reverts to `user:{emailid}` and the recovered user
111      retains the role in the binding. *
112      `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
113      (plus unique identifier) representing a service account that has been
114      recently deleted. For example, `my-other-
115      app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the
116      service account is undeleted, this value reverts to
117      `serviceAccount:{emailid}` and the undeleted service account retains the
118      role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An
119      email address (plus unique identifier) representing a Google group that
120      has been recently deleted. For example,
121      `admins@example.com?uid=123456789012345678901`. If the group is
122      recovered, this value reverts to `group:{emailid}` and the recovered
123      group retains the role in the binding. * `domain:{domain}`: The G Suite
124      domain (primary) that represents all the users of that domain. For
125      example, `google.com` or `example.com`.
126    role: Role that is assigned to `members`. For example, `roles/viewer`,
127      `roles/editor`, or `roles/owner`.
128  """
129
130  condition = _messages.MessageField('Expr', 1)
131  members = _messages.StringField(2, repeated=True)
132  role = _messages.StringField(3)
133
134
135class Expr(_messages.Message):
136  r"""Represents a textual expression in the Common Expression Language (CEL)
137  syntax. CEL is a C-like expression language. The syntax and semantics of CEL
138  are documented at https://github.com/google/cel-spec. Example (Comparison):
139  title: "Summary size limit" description: "Determines if a summary is less
140  than 100 chars" expression: "document.summary.size() < 100" Example
141  (Equality): title: "Requestor is owner" description: "Determines if
142  requestor is the document owner" expression: "document.owner ==
143  request.auth.claims.email" Example (Logic): title: "Public documents"
144  description: "Determine whether the document should be publicly visible"
145  expression: "document.type != 'private' && document.type != 'internal'"
146  Example (Data Manipulation): title: "Notification string" description:
147  "Create a notification string with a timestamp." expression: "'New message
148  received at ' + string(document.create_time)" The exact variables and
149  functions that may be referenced within an expression are determined by the
150  service that evaluates it. See the service documentation for additional
151  information.
152
153  Fields:
154    description: Optional. Description of the expression. This is a longer
155      text which describes the expression, e.g. when hovered over it in a UI.
156    expression: Textual representation of an expression in Common Expression
157      Language syntax.
158    location: Optional. String indicating the location of the expression for
159      error reporting, e.g. a file name and a position in the file.
160    title: Optional. Title for the expression, i.e. a short string describing
161      its purpose. This can be used e.g. in UIs which allow to enter the
162      expression.
163  """
164
165  description = _messages.StringField(1)
166  expression = _messages.StringField(2)
167  location = _messages.StringField(3)
168  title = _messages.StringField(4)
169
170
171class LabelBinding(_messages.Message):
172  r"""A LabelBinding represents a connection between a LabelValue and a cloud
173  resource (currently Project, Folder, or Organization). Once a LabelBinding
174  is created, the LabelValue is applied to all the descendents of the cloud
175  resource.
176
177  Fields:
178    labelValue: The LabelValue of the LabelBinding. Must be of the form
179      "labelValues/456.
180    name: The name of the LabelBinding. This is a String of the form:
181      'labelBindings/{id}' (e.g. 'labelBindings/bGFiZWx8vY2xvdWz').
182    resource: The full resource name of the resource the LabelValue is bound
183      to. E.g. //cloudresourcemanager.googleapis.com/organizations/123
184  """
185
186  labelValue = _messages.StringField(1)
187  name = _messages.StringField(2)
188  resource = _messages.StringField(3)
189
190
191class LabelKey(_messages.Message):
192  r"""A LabelKey, used to group a set of LabelValues.
193
194  Enums:
195    StateValueValuesEnum: Output only. LabelKey lifecycle state.
196
197  Fields:
198    createTime: Output only. Creation time.
199    deleteTime: Output only. Deletion time. This field is cleared on undelete.
200    description: Optional. User-assigned description of the LabelKey. Must not
201      exceed 256 characters. Read-write.
202    displayName: Required. Immutable. User-assigned display name for LabelKey.
203      Display name should be unique for LabelKeys within the same parent
204      resource. The display name must be 1-63 characters, beginning and ending
205      with an alphanumeric character ([a-z0-9A-Z]) with dashes (-),
206      underscores (_), dots (.), and alphanumerics between.
207    etag: Optional. Entity tag which users can pass to prevent race
208      conditions. This field is always set in server responses. See
209      UpdateLabelKeyRequest for details.
210    name: Immutable. Resource name for LabelKey. Must be in the format
211      labelKeys/123.
212    parent: Immutable. The resource name of the new LabelKey's parent. Must be
213      of the form `organizations/{org_id}`.
214    state: Output only. LabelKey lifecycle state.
215  """
216
217  class StateValueValuesEnum(_messages.Enum):
218    r"""Output only. LabelKey lifecycle state.
219
220    Values:
221      LIFECYCLE_STATE_UNSPECIFIED: Unspecified state. This is only used/useful
222        for distinguishing unset values.
223      ACTIVE: The normal and active state.
224      DELETE_REQUESTED: The LabelKey has been marked for deletion by the user
225        (by invoking: DeleteLabelKey) or by the system (Google Cloud
226        Platform). This can generally be reversed by invoking:
227        [google.labelmanager.v1alpha1.LabelManager.UndeleteLabelKey]
228    """
229    LIFECYCLE_STATE_UNSPECIFIED = 0
230    ACTIVE = 1
231    DELETE_REQUESTED = 2
232
233  createTime = _messages.StringField(1)
234  deleteTime = _messages.StringField(2)
235  description = _messages.StringField(3)
236  displayName = _messages.StringField(4)
237  etag = _messages.StringField(5)
238  name = _messages.StringField(6)
239  parent = _messages.StringField(7)
240  state = _messages.EnumField('StateValueValuesEnum', 8)
241
242
243class LabelValue(_messages.Message):
244  r"""A LabelValue is a child of a particular LabelKey. This is used to group
245  cloud resources for the purpose of controlling them via policies.
246
247  Enums:
248    StateValueValuesEnum: Output only. LabelValue lifecycle state.
249
250  Fields:
251    createTime: Output only. Creation time.
252    deleteTime: Output only. Deletion time. This value is cleared on undelete.
253    description: Optional. User-assigned description of the LabelValue. Must
254      not exceed 256 characters. Read-write.
255    displayName: Required. Immutable. User-assigned display name for
256      LabelValue. Display name should be unique for LabelValues within the
257      same parent LabelKey. The display name must be 63 characters or less,
258      beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with
259      dashes (-), underscores (_), dots (.), and alphanumerics between.
260    etag: Optional. Entity tag which users can pass to prevent race
261      conditions. This field is always set in server responses. See
262      UpdateLabelValueRequest for details.
263    name: Immutable. Resource name for LabelValue in the format
264      labelValues/456.
265    parent: Immutable. The resource name of the new LabelValue's parent
266      LabelKey. Must be of the form `labelKeys/{label_key_id}`.
267    state: Output only. LabelValue lifecycle state.
268  """
269
270  class StateValueValuesEnum(_messages.Enum):
271    r"""Output only. LabelValue lifecycle state.
272
273    Values:
274      LIFECYCLE_STATE_UNSPECIFIED: Unspecified state. This is only used/useful
275        for distinguishing unset values.
276      ACTIVE: The normal and active state.
277      DELETE_REQUESTED: The LabelValue has been marked for deletion by the
278        user (by invoking: DeleteLabelValue) or by the system (Google Cloud
279        Platform). This can generally be reversed by invoking:
280        [google.labelmanager.v1alpha1.LabelManager.UndeleteLabelValue]
281    """
282    LIFECYCLE_STATE_UNSPECIFIED = 0
283    ACTIVE = 1
284    DELETE_REQUESTED = 2
285
286  createTime = _messages.StringField(1)
287  deleteTime = _messages.StringField(2)
288  description = _messages.StringField(3)
289  displayName = _messages.StringField(4)
290  etag = _messages.StringField(5)
291  name = _messages.StringField(6)
292  parent = _messages.StringField(7)
293  state = _messages.EnumField('StateValueValuesEnum', 8)
294
295
296class LabelmanagerLabelBindingsDeleteRequest(_messages.Message):
297  r"""A LabelmanagerLabelBindingsDeleteRequest object.
298
299  Fields:
300    name: Required. The name of the LabelBinding. This is a String of the
301      form: 'labelBindings/{id}' (e.g. 'labelBindings/bGFiZWx8vY2xvdWz').
302  """
303
304  name = _messages.StringField(1, required=True)
305
306
307class LabelmanagerLabelBindingsListRequest(_messages.Message):
308  r"""A LabelmanagerLabelBindingsListRequest object.
309
310  Fields:
311    filter: Required. An expression for filtering the results of the request.
312      The user must express one of the following filtering clauses: +
313      `labelValue` + `resource` The two cases of using filters are as follows:
314      | Filter |
315      |----------------------------------------------------------------| | 1)
316      labelValue:labelValues/123 | | 2)
317      resource://cloudresourcemanager.googleapis.com/projects/123 |
318      |________________________________________________________________| In
319      case 1), all LabelBindings bound to the LabelValue with ID '123' will be
320      retrieved. In case 2), all LabelBindings bound to the Project with ID
321      '123' will be retrieved.
322    pageSize: Optional. The maximum number of LabelBindings to return in the
323      response. This is currently not used by the server and will return the
324      full page even if a size is specified.
325    pageToken: Optional. A pagination token returned from a previous call to
326      `ListLabelBindings` that indicates where this listing should continue
327      from. This is currently not used by the server.
328  """
329
330  filter = _messages.StringField(1)
331  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
332  pageToken = _messages.StringField(3)
333
334
335class LabelmanagerLabelKeysDeleteRequest(_messages.Message):
336  r"""A LabelmanagerLabelKeysDeleteRequest object.
337
338  Fields:
339    name: Resource name for LabelKey to be deleted in the format
340      labelKeys/123. The LabelKey cannot be a parent of any LabelValues in the
341      active state to be deleted successfully.
342  """
343
344  name = _messages.StringField(1, required=True)
345
346
347class LabelmanagerLabelKeysGetIamPolicyRequest(_messages.Message):
348  r"""A LabelmanagerLabelKeysGetIamPolicyRequest object.
349
350  Fields:
351    options_requestedPolicyVersion: Optional. The policy format version to be
352      returned. Valid values are 0, 1, and 3. Requests specifying an invalid
353      value will be rejected. Requests for policies with any conditional
354      bindings must specify version 3. Policies without any conditional
355      bindings may specify any valid value or leave the field unset. To learn
356      which resources support conditions in their IAM policies, see the [IAM
357      documentation](https://cloud.google.com/iam/help/conditions/resource-
358      policies).
359    resource: REQUIRED: The resource for which the policy is being requested.
360      See the operation documentation for the appropriate value for this
361      field.
362  """
363
364  options_requestedPolicyVersion = _messages.IntegerField(1, variant=_messages.Variant.INT32)
365  resource = _messages.StringField(2, required=True)
366
367
368class LabelmanagerLabelKeysGetRequest(_messages.Message):
369  r"""A LabelmanagerLabelKeysGetRequest object.
370
371  Fields:
372    name: Resource name for LabelKey to be fetched in the format
373      labelKeys/123.
374  """
375
376  name = _messages.StringField(1, required=True)
377
378
379class LabelmanagerLabelKeysListRequest(_messages.Message):
380  r"""A LabelmanagerLabelKeysListRequest object.
381
382  Fields:
383    pageSize: Optional. The maximum number of LabelKeys to return in the
384      response. This is currently not used by the server and will return the
385      full page even if a size is specified currently.
386    pageToken: Optional. A pagination token returned from a previous call to
387      `ListLabelKey` that indicates where this listing should continue from.
388      This is currently not used by the server.
389    parent: The resource name of the new LabelKey's parent. Must be of the
390      form `folders/{folder_id}` or `organizations/{org_id}`.
391    showDeleted: Optional. Controls whether LabelKeys in the DELETE_REQUESTED
392      state should be returned. Defaults to false.
393  """
394
395  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
396  pageToken = _messages.StringField(2)
397  parent = _messages.StringField(3)
398  showDeleted = _messages.BooleanField(4)
399
400
401class LabelmanagerLabelKeysPatchRequest(_messages.Message):
402  r"""A LabelmanagerLabelKeysPatchRequest object.
403
404  Fields:
405    labelKey: A LabelKey resource to be passed as the request body.
406    name: Immutable. Resource name for LabelKey. Must be in the format
407      labelKeys/123.
408    updateMask: Fields to be updated
409  """
410
411  labelKey = _messages.MessageField('LabelKey', 1)
412  name = _messages.StringField(2, required=True)
413  updateMask = _messages.StringField(3)
414
415
416class LabelmanagerLabelKeysSetIamPolicyRequest(_messages.Message):
417  r"""A LabelmanagerLabelKeysSetIamPolicyRequest object.
418
419  Fields:
420    resource: REQUIRED: The resource for which the policy is being specified.
421      See the operation documentation for the appropriate value for this
422      field.
423    setIamPolicyRequest: A SetIamPolicyRequest resource to be passed as the
424      request body.
425  """
426
427  resource = _messages.StringField(1, required=True)
428  setIamPolicyRequest = _messages.MessageField('SetIamPolicyRequest', 2)
429
430
431class LabelmanagerLabelKeysTestIamPermissionsRequest(_messages.Message):
432  r"""A LabelmanagerLabelKeysTestIamPermissionsRequest object.
433
434  Fields:
435    resource: REQUIRED: The resource for which the policy detail is being
436      requested. See the operation documentation for the appropriate value for
437      this field.
438    testIamPermissionsRequest: A TestIamPermissionsRequest resource to be
439      passed as the request body.
440  """
441
442  resource = _messages.StringField(1, required=True)
443  testIamPermissionsRequest = _messages.MessageField('TestIamPermissionsRequest', 2)
444
445
446class LabelmanagerLabelKeysUndeleteRequest(_messages.Message):
447  r"""A LabelmanagerLabelKeysUndeleteRequest object.
448
449  Fields:
450    name: Resource name for LabelKey to be un-deleted in the format
451      labelKeys/123. The parent of this LabelKey must be in the active state.
452    undeleteLabelKeyRequest: A UndeleteLabelKeyRequest resource to be passed
453      as the request body.
454  """
455
456  name = _messages.StringField(1, required=True)
457  undeleteLabelKeyRequest = _messages.MessageField('UndeleteLabelKeyRequest', 2)
458
459
460class LabelmanagerLabelValuesDeleteRequest(_messages.Message):
461  r"""A LabelmanagerLabelValuesDeleteRequest object.
462
463  Fields:
464    name: Resource name for LabelValue to be deleted in the format
465      labelValues/456.
466  """
467
468  name = _messages.StringField(1, required=True)
469
470
471class LabelmanagerLabelValuesGetRequest(_messages.Message):
472  r"""A LabelmanagerLabelValuesGetRequest object.
473
474  Fields:
475    name: Resource name for LabelValue to be fetched in the format
476      labelValues/456.
477  """
478
479  name = _messages.StringField(1, required=True)
480
481
482class LabelmanagerLabelValuesListRequest(_messages.Message):
483  r"""A LabelmanagerLabelValuesListRequest object.
484
485  Fields:
486    pageSize: Optional. The maximum number of LabelValues to return in the
487      response. This is currently not used by the server and will return the
488      full page even if a size is specified currently.
489    pageToken: Optional. A pagination token returned from a previous call to
490      `ListLabelValues` that indicates where this listing should continue
491      from. This is currently not used by the server.
492    parent: Resource name for LabelKey, parent of the LabelValues to be
493      listed, in the format labelKeys/123.
494    showDeleted: Optional. Controls whether LabelValues in the
495      DELETE_REQUESTED state should be returned. Defaults to false.
496  """
497
498  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
499  pageToken = _messages.StringField(2)
500  parent = _messages.StringField(3)
501  showDeleted = _messages.BooleanField(4)
502
503
504class LabelmanagerLabelValuesPatchRequest(_messages.Message):
505  r"""A LabelmanagerLabelValuesPatchRequest object.
506
507  Fields:
508    labelValue: A LabelValue resource to be passed as the request body.
509    name: Immutable. Resource name for LabelValue in the format
510      labelValues/456.
511    updateMask: Fields to be updated.
512  """
513
514  labelValue = _messages.MessageField('LabelValue', 1)
515  name = _messages.StringField(2, required=True)
516  updateMask = _messages.StringField(3)
517
518
519class LabelmanagerLabelValuesUndeleteRequest(_messages.Message):
520  r"""A LabelmanagerLabelValuesUndeleteRequest object.
521
522  Fields:
523    name: Resource name for LabelValue to be un-deleted in the format
524      labelValues/456.
525    undeleteLabelValueRequest: A UndeleteLabelValueRequest resource to be
526      passed as the request body.
527  """
528
529  name = _messages.StringField(1, required=True)
530  undeleteLabelValueRequest = _messages.MessageField('UndeleteLabelValueRequest', 2)
531
532
533class LabelmanagerOperationsGetRequest(_messages.Message):
534  r"""A LabelmanagerOperationsGetRequest object.
535
536  Fields:
537    name: The name of the operation resource.
538  """
539
540  name = _messages.StringField(1, required=True)
541
542
543class ListLabelBindingsResponse(_messages.Message):
544  r"""The ListLabelBindings response.
545
546  Fields:
547    bindings: A possibly paginated list of LabelBindings for the specified
548      LabelValue or resource.
549    nextPageToken: Optional. A pagination token returned from a previous call
550      to `ListLabelBindings` that indicates from where listing should
551      continue. This is currently not used, but the server may at any point
552      start supplying a valid token.
553  """
554
555  bindings = _messages.MessageField('LabelBinding', 1, repeated=True)
556  nextPageToken = _messages.StringField(2)
557
558
559class ListLabelKeysResponse(_messages.Message):
560  r"""The ListLabelKeys response message.
561
562  Fields:
563    keys: List of LabelKeys that live under the specified parent in the
564      request.
565    nextPageToken: Optional. A pagination token returned from a previous call
566      to `ListLabelKeys` that indicates from where listing should continue.
567      This is currently not used, but the server may at any point start
568      supplying a valid token.
569  """
570
571  keys = _messages.MessageField('LabelKey', 1, repeated=True)
572  nextPageToken = _messages.StringField(2)
573
574
575class ListLabelValuesResponse(_messages.Message):
576  r"""The ListLabelValues response.
577
578  Fields:
579    nextPageToken: Optional. A pagination token returned from a previous call
580      to `ListLabelValues` that indicates from where listing should continue.
581      This is currently not used, but the server may at any point start
582      supplying a valid token.
583    values: A possibly paginated list of LabelValues that are direct
584      descendants of the specified parent LabelKey.
585  """
586
587  nextPageToken = _messages.StringField(1)
588  values = _messages.MessageField('LabelValue', 2, repeated=True)
589
590
591class Operation(_messages.Message):
592  r"""This resource represents a long-running operation that is the result of
593  a network API call.
594
595  Messages:
596    MetadataValue: Service-specific metadata associated with the operation. It
597      typically contains progress information and common metadata such as
598      create time. Some services might not provide such metadata. Any method
599      that returns a long-running operation should document the metadata type,
600      if any.
601    ResponseValue: The normal response of the operation in case of success. If
602      the original method returns no data on success, such as `Delete`, the
603      response is `google.protobuf.Empty`. If the original method is standard
604      `Get`/`Create`/`Update`, the response should be the resource. For other
605      methods, the response should have the type `XxxResponse`, where `Xxx` is
606      the original method name. For example, if the original method name is
607      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
608
609  Fields:
610    done: If the value is `false`, it means the operation is still in
611      progress. If `true`, the operation is completed, and either `error` or
612      `response` is available.
613    error: The error result of the operation in case of failure or
614      cancellation.
615    metadata: Service-specific metadata associated with the operation. It
616      typically contains progress information and common metadata such as
617      create time. Some services might not provide such metadata. Any method
618      that returns a long-running operation should document the metadata type,
619      if any.
620    name: The server-assigned name, which is only unique within the same
621      service that originally returns it. If you use the default HTTP mapping,
622      the `name` should be a resource name ending with
623      `operations/{unique_id}`.
624    response: The normal response of the operation in case of success. If the
625      original method returns no data on success, such as `Delete`, the
626      response is `google.protobuf.Empty`. If the original method is standard
627      `Get`/`Create`/`Update`, the response should be the resource. For other
628      methods, the response should have the type `XxxResponse`, where `Xxx` is
629      the original method name. For example, if the original method name is
630      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
631  """
632
633  @encoding.MapUnrecognizedFields('additionalProperties')
634  class MetadataValue(_messages.Message):
635    r"""Service-specific metadata associated with the operation. It typically
636    contains progress information and common metadata such as create time.
637    Some services might not provide such metadata. Any method that returns a
638    long-running operation should document the metadata type, if any.
639
640    Messages:
641      AdditionalProperty: An additional property for a MetadataValue object.
642
643    Fields:
644      additionalProperties: Properties of the object. Contains field @type
645        with type URL.
646    """
647
648    class AdditionalProperty(_messages.Message):
649      r"""An additional property for a MetadataValue object.
650
651      Fields:
652        key: Name of the additional property.
653        value: A extra_types.JsonValue attribute.
654      """
655
656      key = _messages.StringField(1)
657      value = _messages.MessageField('extra_types.JsonValue', 2)
658
659    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
660
661  @encoding.MapUnrecognizedFields('additionalProperties')
662  class ResponseValue(_messages.Message):
663    r"""The normal response of the operation in case of success. If the
664    original method returns no data on success, such as `Delete`, the response
665    is `google.protobuf.Empty`. If the original method is standard
666    `Get`/`Create`/`Update`, the response should be the resource. For other
667    methods, the response should have the type `XxxResponse`, where `Xxx` is
668    the original method name. For example, if the original method name is
669    `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
670
671    Messages:
672      AdditionalProperty: An additional property for a ResponseValue object.
673
674    Fields:
675      additionalProperties: Properties of the object. Contains field @type
676        with type URL.
677    """
678
679    class AdditionalProperty(_messages.Message):
680      r"""An additional property for a ResponseValue object.
681
682      Fields:
683        key: Name of the additional property.
684        value: A extra_types.JsonValue attribute.
685      """
686
687      key = _messages.StringField(1)
688      value = _messages.MessageField('extra_types.JsonValue', 2)
689
690    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
691
692  done = _messages.BooleanField(1)
693  error = _messages.MessageField('Status', 2)
694  metadata = _messages.MessageField('MetadataValue', 3)
695  name = _messages.StringField(4)
696  response = _messages.MessageField('ResponseValue', 5)
697
698
699class Policy(_messages.Message):
700  r"""An Identity and Access Management (IAM) policy, which specifies access
701  controls for Google Cloud resources. A `Policy` is a collection of
702  `bindings`. A `binding` binds one or more `members` to a single `role`.
703  Members can be user accounts, service accounts, Google groups, and domains
704  (such as G Suite). A `role` is a named list of permissions; each `role` can
705  be an IAM predefined role or a user-created custom role. For some types of
706  Google Cloud resources, a `binding` can also specify a `condition`, which is
707  a logical expression that allows access to a resource only if the expression
708  evaluates to `true`. A condition can add constraints based on attributes of
709  the request, the resource, or both. To learn which resources support
710  conditions in their IAM policies, see the [IAM
711  documentation](https://cloud.google.com/iam/help/conditions/resource-
712  policies). **JSON example:** { "bindings": [ { "role":
713  "roles/resourcemanager.organizationAdmin", "members": [
714  "user:mike@example.com", "group:admins@example.com", "domain:google.com",
715  "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role":
716  "roles/resourcemanager.organizationViewer", "members": [
717  "user:eve@example.com" ], "condition": { "title": "expirable access",
718  "description": "Does not grant access after Sep 2020", "expression":
719  "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag":
720  "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: -
721  user:mike@example.com - group:admins@example.com - domain:google.com -
722  serviceAccount:my-project-id@appspot.gserviceaccount.com role:
723  roles/resourcemanager.organizationAdmin - members: - user:eve@example.com
724  role: roles/resourcemanager.organizationViewer condition: title: expirable
725  access description: Does not grant access after Sep 2020 expression:
726  request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= -
727  version: 3 For a description of IAM and its features, see the [IAM
728  documentation](https://cloud.google.com/iam/docs/).
729
730  Fields:
731    auditConfigs: Specifies cloud audit logging configuration for this policy.
732    bindings: Associates a list of `members` to a `role`. Optionally, may
733      specify a `condition` that determines how and when the `bindings` are
734      applied. Each of the `bindings` must contain at least one member.
735    etag: `etag` is used for optimistic concurrency control as a way to help
736      prevent simultaneous updates of a policy from overwriting each other. It
737      is strongly suggested that systems make use of the `etag` in the read-
738      modify-write cycle to perform policy updates in order to avoid race
739      conditions: An `etag` is returned in the response to `getIamPolicy`, and
740      systems are expected to put that etag in the request to `setIamPolicy`
741      to ensure that their change will be applied to the same version of the
742      policy. **Important:** If you use IAM Conditions, you must include the
743      `etag` field whenever you call `setIamPolicy`. If you omit this field,
744      then IAM allows you to overwrite a version `3` policy with a version `1`
745      policy, and all of the conditions in the version `3` policy are lost.
746    version: Specifies the format of the policy. Valid values are `0`, `1`,
747      and `3`. Requests that specify an invalid value are rejected. Any
748      operation that affects conditional role bindings must specify version
749      `3`. This requirement applies to the following operations: * Getting a
750      policy that includes a conditional role binding * Adding a conditional
751      role binding to a policy * Changing a conditional role binding in a
752      policy * Removing any role binding, with or without a condition, from a
753      policy that includes conditions **Important:** If you use IAM
754      Conditions, you must include the `etag` field whenever you call
755      `setIamPolicy`. If you omit this field, then IAM allows you to overwrite
756      a version `3` policy with a version `1` policy, and all of the
757      conditions in the version `3` policy are lost. If a policy does not
758      include any conditions, operations on that policy may specify any valid
759      version or leave the field unset. To learn which resources support
760      conditions in their IAM policies, see the [IAM
761      documentation](https://cloud.google.com/iam/help/conditions/resource-
762      policies).
763  """
764
765  auditConfigs = _messages.MessageField('AuditConfig', 1, repeated=True)
766  bindings = _messages.MessageField('Binding', 2, repeated=True)
767  etag = _messages.BytesField(3)
768  version = _messages.IntegerField(4, variant=_messages.Variant.INT32)
769
770
771class SetIamPolicyRequest(_messages.Message):
772  r"""Request message for `SetIamPolicy` method.
773
774  Fields:
775    policy: REQUIRED: The complete policy to be applied to the `resource`. The
776      size of the policy is limited to a few 10s of KB. An empty policy is a
777      valid policy but certain Cloud Platform services (such as Projects)
778      might reject them.
779    updateMask: OPTIONAL: A FieldMask specifying which fields of the policy to
780      modify. Only the fields in the mask will be modified. If no mask is
781      provided, the following default mask is used: `paths: "bindings, etag"`
782  """
783
784  policy = _messages.MessageField('Policy', 1)
785  updateMask = _messages.StringField(2)
786
787
788class StandardQueryParameters(_messages.Message):
789  r"""Query parameters accepted by all methods.
790
791  Enums:
792    FXgafvValueValuesEnum: V1 error format.
793    AltValueValuesEnum: Data format for response.
794
795  Fields:
796    f__xgafv: V1 error format.
797    access_token: OAuth access token.
798    alt: Data format for response.
799    callback: JSONP
800    fields: Selector specifying which fields to include in a partial response.
801    key: API key. Your API key identifies your project and provides you with
802      API access, quota, and reports. Required unless you provide an OAuth 2.0
803      token.
804    oauth_token: OAuth 2.0 token for the current user.
805    prettyPrint: Returns response with indentations and line breaks.
806    quotaUser: Available to use for quota purposes for server-side
807      applications. Can be any arbitrary string assigned to a user, but should
808      not exceed 40 characters.
809    trace: A tracing token of the form "token:<tokenid>" to include in api
810      requests.
811    uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
812    upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
813  """
814
815  class AltValueValuesEnum(_messages.Enum):
816    r"""Data format for response.
817
818    Values:
819      json: Responses with Content-Type of application/json
820      media: Media download with context-dependent Content-Type
821      proto: Responses with Content-Type of application/x-protobuf
822    """
823    json = 0
824    media = 1
825    proto = 2
826
827  class FXgafvValueValuesEnum(_messages.Enum):
828    r"""V1 error format.
829
830    Values:
831      _1: v1 error format
832      _2: v2 error format
833    """
834    _1 = 0
835    _2 = 1
836
837  f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
838  access_token = _messages.StringField(2)
839  alt = _messages.EnumField('AltValueValuesEnum', 3, default='json')
840  callback = _messages.StringField(4)
841  fields = _messages.StringField(5)
842  key = _messages.StringField(6)
843  oauth_token = _messages.StringField(7)
844  prettyPrint = _messages.BooleanField(8, default=True)
845  quotaUser = _messages.StringField(9)
846  trace = _messages.StringField(10)
847  uploadType = _messages.StringField(11)
848  upload_protocol = _messages.StringField(12)
849
850
851class Status(_messages.Message):
852  r"""The `Status` type defines a logical error model that is suitable for
853  different programming environments, including REST APIs and RPC APIs. It is
854  used by [gRPC](https://github.com/grpc). Each `Status` message contains
855  three pieces of data: error code, error message, and error details. You can
856  find out more about this error model and how to work with it in the [API
857  Design Guide](https://cloud.google.com/apis/design/errors).
858
859  Messages:
860    DetailsValueListEntry: A DetailsValueListEntry object.
861
862  Fields:
863    code: The status code, which should be an enum value of google.rpc.Code.
864    details: A list of messages that carry the error details. There is a
865      common set of message types for APIs to use.
866    message: A developer-facing error message, which should be in English. Any
867      user-facing error message should be localized and sent in the
868      google.rpc.Status.details field, or localized by the client.
869  """
870
871  @encoding.MapUnrecognizedFields('additionalProperties')
872  class DetailsValueListEntry(_messages.Message):
873    r"""A DetailsValueListEntry object.
874
875    Messages:
876      AdditionalProperty: An additional property for a DetailsValueListEntry
877        object.
878
879    Fields:
880      additionalProperties: Properties of the object. Contains field @type
881        with type URL.
882    """
883
884    class AdditionalProperty(_messages.Message):
885      r"""An additional property for a DetailsValueListEntry object.
886
887      Fields:
888        key: Name of the additional property.
889        value: A extra_types.JsonValue attribute.
890      """
891
892      key = _messages.StringField(1)
893      value = _messages.MessageField('extra_types.JsonValue', 2)
894
895    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
896
897  code = _messages.IntegerField(1, variant=_messages.Variant.INT32)
898  details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True)
899  message = _messages.StringField(3)
900
901
902class TestIamPermissionsRequest(_messages.Message):
903  r"""Request message for `TestIamPermissions` method.
904
905  Fields:
906    permissions: The set of permissions to check for the `resource`.
907      Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
908      For more information see [IAM
909      Overview](https://cloud.google.com/iam/docs/overview#permissions).
910  """
911
912  permissions = _messages.StringField(1, repeated=True)
913
914
915class TestIamPermissionsResponse(_messages.Message):
916  r"""Response message for `TestIamPermissions` method.
917
918  Fields:
919    permissions: A subset of `TestPermissionsRequest.permissions` that the
920      caller is allowed.
921  """
922
923  permissions = _messages.StringField(1, repeated=True)
924
925
926class UndeleteLabelKeyRequest(_messages.Message):
927  r"""The request message for undeleting a LabelKey."""
928
929
930class UndeleteLabelValueRequest(_messages.Message):
931  r"""The request message for undeleting a LabelValue."""
932
933
934encoding.AddCustomJsonFieldMapping(
935    StandardQueryParameters, 'f__xgafv', '$.xgafv')
936encoding.AddCustomJsonEnumMapping(
937    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
938encoding.AddCustomJsonEnumMapping(
939    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
940