1"""Generated message classes for servicedirectory version v1.
2
3Service Directory is a platform for discovering, publishing, and connecting
4services.
5"""
6# NOTE: This file is autogenerated and should not be edited by hand.
7
8from __future__ import absolute_import
9
10from apitools.base.protorpclite import messages as _messages
11from apitools.base.py import encoding
12from apitools.base.py import extra_types
13
14
15package = 'servicedirectory'
16
17
18class Binding(_messages.Message):
19  r"""Associates `members` with a `role`.
20
21  Fields:
22    condition: The condition that is associated with this binding. If the
23      condition evaluates to `true`, then this binding applies to the current
24      request. If the condition evaluates to `false`, then this binding does
25      not apply to the current request. However, a different role binding
26      might grant the same role to one or more of the members in this binding.
27      To learn which resources support conditions in their IAM policies, see
28      the [IAM
29      documentation](https://cloud.google.com/iam/help/conditions/resource-
30      policies).
31    members: Specifies the identities requesting access for a Cloud Platform
32      resource. `members` can have the following values: * `allUsers`: A
33      special identifier that represents anyone who is on the internet; with
34      or without a Google account. * `allAuthenticatedUsers`: A special
35      identifier that represents anyone who is authenticated with a Google
36      account or a service account. * `user:{emailid}`: An email address that
37      represents a specific Google account. For example, `alice@example.com` .
38      * `serviceAccount:{emailid}`: An email address that represents a service
39      account. For example, `my-other-app@appspot.gserviceaccount.com`. *
40      `group:{emailid}`: An email address that represents a Google group. For
41      example, `admins@example.com`. *
42      `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique
43      identifier) representing a user that has been recently deleted. For
44      example, `alice@example.com?uid=123456789012345678901`. If the user is
45      recovered, this value reverts to `user:{emailid}` and the recovered user
46      retains the role in the binding. *
47      `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
48      (plus unique identifier) representing a service account that has been
49      recently deleted. For example, `my-other-
50      app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the
51      service account is undeleted, this value reverts to
52      `serviceAccount:{emailid}` and the undeleted service account retains the
53      role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An
54      email address (plus unique identifier) representing a Google group that
55      has been recently deleted. For example,
56      `admins@example.com?uid=123456789012345678901`. If the group is
57      recovered, this value reverts to `group:{emailid}` and the recovered
58      group retains the role in the binding. * `domain:{domain}`: The G Suite
59      domain (primary) that represents all the users of that domain. For
60      example, `google.com` or `example.com`.
61    role: Role that is assigned to `members`. For example, `roles/viewer`,
62      `roles/editor`, or `roles/owner`.
63  """
64
65  condition = _messages.MessageField('Expr', 1)
66  members = _messages.StringField(2, repeated=True)
67  role = _messages.StringField(3)
68
69
70class Empty(_messages.Message):
71  r"""A generic empty message that you can re-use to avoid defining duplicated
72  empty messages in your APIs. A typical example is to use it as the request
73  or the response type of an API method. For instance: service Foo { rpc
74  Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON
75  representation for `Empty` is empty JSON object `{}`.
76  """
77
78
79
80class Endpoint(_messages.Message):
81  r"""An individual endpoint that provides a service. The service must already
82  exist to create an endpoint.
83
84  Messages:
85    AnnotationsValue: Optional. Annotations for the endpoint. This data can be
86      consumed by service clients. Restrictions: * The entire annotations
87      dictionary may contain up to 512 characters, spread accoss all key-value
88      pairs. Annotations that go beyond this limit are rejected * Valid
89      annotation keys have two segments: an optional prefix and name,
90      separated by a slash (/). The name segment is required and must be 63
91      characters or less, beginning and ending with an alphanumeric character
92      ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and
93      alphanumerics between. The prefix is optional. If specified, the prefix
94      must be a DNS subdomain: a series of DNS labels separated by dots (.),
95      not longer than 253 characters in total, followed by a slash (/)
96      Annotations that fails to meet these requirements are rejected. * The
97      `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for
98      system annotations managed by Service Directory. If the user tries to
99      write to these keyspaces, those entries are silently ignored by the
100      system Note: This field is equivalent to the `metadata` field in the
101      v1beta1 API. They have the same syntax and read/write to the same
102      location in Service Directory.
103
104  Fields:
105    address: Optional. An IPv4 or IPv6 address. Service Directory rejects bad
106      addresses like: * `8.8.8` * `8.8.8.8:53` * `test:bad:address` * `[::1]`
107      * `[::1]:8080` Limited to 45 characters.
108    annotations: Optional. Annotations for the endpoint. This data can be
109      consumed by service clients. Restrictions: * The entire annotations
110      dictionary may contain up to 512 characters, spread accoss all key-value
111      pairs. Annotations that go beyond this limit are rejected * Valid
112      annotation keys have two segments: an optional prefix and name,
113      separated by a slash (/). The name segment is required and must be 63
114      characters or less, beginning and ending with an alphanumeric character
115      ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and
116      alphanumerics between. The prefix is optional. If specified, the prefix
117      must be a DNS subdomain: a series of DNS labels separated by dots (.),
118      not longer than 253 characters in total, followed by a slash (/)
119      Annotations that fails to meet these requirements are rejected. * The
120      `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for
121      system annotations managed by Service Directory. If the user tries to
122      write to these keyspaces, those entries are silently ignored by the
123      system Note: This field is equivalent to the `metadata` field in the
124      v1beta1 API. They have the same syntax and read/write to the same
125      location in Service Directory.
126    name: Immutable. The resource name for the endpoint in the format
127      `projects/*/locations/*/namespaces/*/services/*/endpoints/*`.
128    port: Optional. Service Directory rejects values outside of `[0, 65535]`.
129  """
130
131  @encoding.MapUnrecognizedFields('additionalProperties')
132  class AnnotationsValue(_messages.Message):
133    r"""Optional. Annotations for the endpoint. This data can be consumed by
134    service clients. Restrictions: * The entire annotations dictionary may
135    contain up to 512 characters, spread accoss all key-value pairs.
136    Annotations that go beyond this limit are rejected * Valid annotation keys
137    have two segments: an optional prefix and name, separated by a slash (/).
138    The name segment is required and must be 63 characters or less, beginning
139    and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-),
140    underscores (_), dots (.), and alphanumerics between. The prefix is
141    optional. If specified, the prefix must be a DNS subdomain: a series of
142    DNS labels separated by dots (.), not longer than 253 characters in total,
143    followed by a slash (/) Annotations that fails to meet these requirements
144    are rejected. * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes
145    are reserved for system annotations managed by Service Directory. If the
146    user tries to write to these keyspaces, those entries are silently ignored
147    by the system Note: This field is equivalent to the `metadata` field in
148    the v1beta1 API. They have the same syntax and read/write to the same
149    location in Service Directory.
150
151    Messages:
152      AdditionalProperty: An additional property for a AnnotationsValue
153        object.
154
155    Fields:
156      additionalProperties: Additional properties of type AnnotationsValue
157    """
158
159    class AdditionalProperty(_messages.Message):
160      r"""An additional property for a AnnotationsValue object.
161
162      Fields:
163        key: Name of the additional property.
164        value: A string attribute.
165      """
166
167      key = _messages.StringField(1)
168      value = _messages.StringField(2)
169
170    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
171
172  address = _messages.StringField(1)
173  annotations = _messages.MessageField('AnnotationsValue', 2)
174  name = _messages.StringField(3)
175  port = _messages.IntegerField(4, variant=_messages.Variant.INT32)
176
177
178class Expr(_messages.Message):
179  r"""Represents a textual expression in the Common Expression Language (CEL)
180  syntax. CEL is a C-like expression language. The syntax and semantics of CEL
181  are documented at https://github.com/google/cel-spec. Example (Comparison):
182  title: "Summary size limit" description: "Determines if a summary is less
183  than 100 chars" expression: "document.summary.size() < 100" Example
184  (Equality): title: "Requestor is owner" description: "Determines if
185  requestor is the document owner" expression: "document.owner ==
186  request.auth.claims.email" Example (Logic): title: "Public documents"
187  description: "Determine whether the document should be publicly visible"
188  expression: "document.type != 'private' && document.type != 'internal'"
189  Example (Data Manipulation): title: "Notification string" description:
190  "Create a notification string with a timestamp." expression: "'New message
191  received at ' + string(document.create_time)" The exact variables and
192  functions that may be referenced within an expression are determined by the
193  service that evaluates it. See the service documentation for additional
194  information.
195
196  Fields:
197    description: Optional. Description of the expression. This is a longer
198      text which describes the expression, e.g. when hovered over it in a UI.
199    expression: Textual representation of an expression in Common Expression
200      Language syntax.
201    location: Optional. String indicating the location of the expression for
202      error reporting, e.g. a file name and a position in the file.
203    title: Optional. Title for the expression, i.e. a short string describing
204      its purpose. This can be used e.g. in UIs which allow to enter the
205      expression.
206  """
207
208  description = _messages.StringField(1)
209  expression = _messages.StringField(2)
210  location = _messages.StringField(3)
211  title = _messages.StringField(4)
212
213
214class GetIamPolicyRequest(_messages.Message):
215  r"""Request message for `GetIamPolicy` method.
216
217  Fields:
218    options: OPTIONAL: A `GetPolicyOptions` object for specifying options to
219      `GetIamPolicy`.
220  """
221
222  options = _messages.MessageField('GetPolicyOptions', 1)
223
224
225class GetPolicyOptions(_messages.Message):
226  r"""Encapsulates settings provided to GetIamPolicy.
227
228  Fields:
229    requestedPolicyVersion: Optional. The policy format version to be
230      returned. Valid values are 0, 1, and 3. Requests specifying an invalid
231      value will be rejected. Requests for policies with any conditional
232      bindings must specify version 3. Policies without any conditional
233      bindings may specify any valid value or leave the field unset. To learn
234      which resources support conditions in their IAM policies, see the [IAM
235      documentation](https://cloud.google.com/iam/help/conditions/resource-
236      policies).
237  """
238
239  requestedPolicyVersion = _messages.IntegerField(1, variant=_messages.Variant.INT32)
240
241
242class ListEndpointsResponse(_messages.Message):
243  r"""The response message for RegistrationService.ListEndpoints.
244
245  Fields:
246    endpoints: The list of endpoints.
247    nextPageToken: Token to retrieve the next page of results, or empty if
248      there are no more results in the list.
249  """
250
251  endpoints = _messages.MessageField('Endpoint', 1, repeated=True)
252  nextPageToken = _messages.StringField(2)
253
254
255class ListLocationsResponse(_messages.Message):
256  r"""The response message for Locations.ListLocations.
257
258  Fields:
259    locations: A list of locations that matches the specified filter in the
260      request.
261    nextPageToken: The standard List next-page token.
262  """
263
264  locations = _messages.MessageField('Location', 1, repeated=True)
265  nextPageToken = _messages.StringField(2)
266
267
268class ListNamespacesResponse(_messages.Message):
269  r"""The response message for RegistrationService.ListNamespaces.
270
271  Fields:
272    namespaces: The list of namespaces.
273    nextPageToken: Token to retrieve the next page of results, or empty if
274      there are no more results in the list.
275  """
276
277  namespaces = _messages.MessageField('Namespace', 1, repeated=True)
278  nextPageToken = _messages.StringField(2)
279
280
281class ListServicesResponse(_messages.Message):
282  r"""The response message for RegistrationService.ListServices.
283
284  Fields:
285    nextPageToken: Token to retrieve the next page of results, or empty if
286      there are no more results in the list.
287    services: The list of services.
288  """
289
290  nextPageToken = _messages.StringField(1)
291  services = _messages.MessageField('Service', 2, repeated=True)
292
293
294class Location(_messages.Message):
295  r"""A resource that represents Google Cloud Platform location.
296
297  Messages:
298    LabelsValue: Cross-service attributes for the location. For example
299      {"cloud.googleapis.com/region": "us-east1"}
300    MetadataValue: Service-specific metadata. For example the available
301      capacity at the given location.
302
303  Fields:
304    displayName: The friendly name for this location, typically a nearby city
305      name. For example, "Tokyo".
306    labels: Cross-service attributes for the location. For example
307      {"cloud.googleapis.com/region": "us-east1"}
308    locationId: The canonical id for this location. For example: `"us-east1"`.
309    metadata: Service-specific metadata. For example the available capacity at
310      the given location.
311    name: Resource name for the location, which may vary between
312      implementations. For example: `"projects/example-project/locations/us-
313      east1"`
314  """
315
316  @encoding.MapUnrecognizedFields('additionalProperties')
317  class LabelsValue(_messages.Message):
318    r"""Cross-service attributes for the location. For example
319    {"cloud.googleapis.com/region": "us-east1"}
320
321    Messages:
322      AdditionalProperty: An additional property for a LabelsValue object.
323
324    Fields:
325      additionalProperties: Additional properties of type LabelsValue
326    """
327
328    class AdditionalProperty(_messages.Message):
329      r"""An additional property for a LabelsValue object.
330
331      Fields:
332        key: Name of the additional property.
333        value: A string attribute.
334      """
335
336      key = _messages.StringField(1)
337      value = _messages.StringField(2)
338
339    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
340
341  @encoding.MapUnrecognizedFields('additionalProperties')
342  class MetadataValue(_messages.Message):
343    r"""Service-specific metadata. For example the available capacity at the
344    given location.
345
346    Messages:
347      AdditionalProperty: An additional property for a MetadataValue object.
348
349    Fields:
350      additionalProperties: Properties of the object. Contains field @type
351        with type URL.
352    """
353
354    class AdditionalProperty(_messages.Message):
355      r"""An additional property for a MetadataValue object.
356
357      Fields:
358        key: Name of the additional property.
359        value: A extra_types.JsonValue attribute.
360      """
361
362      key = _messages.StringField(1)
363      value = _messages.MessageField('extra_types.JsonValue', 2)
364
365    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
366
367  displayName = _messages.StringField(1)
368  labels = _messages.MessageField('LabelsValue', 2)
369  locationId = _messages.StringField(3)
370  metadata = _messages.MessageField('MetadataValue', 4)
371  name = _messages.StringField(5)
372
373
374class Namespace(_messages.Message):
375  r"""A container for services. Namespaces allow administrators to group
376  services together and define permissions for a collection of services.
377
378  Messages:
379    LabelsValue: Optional. Resource labels associated with this namespace. No
380      more than 64 user labels can be associated with a given resource. Label
381      keys and values can be no longer than 63 characters.
382
383  Fields:
384    labels: Optional. Resource labels associated with this namespace. No more
385      than 64 user labels can be associated with a given resource. Label keys
386      and values can be no longer than 63 characters.
387    name: Immutable. The resource name for the namespace in the format
388      `projects/*/locations/*/namespaces/*`.
389  """
390
391  @encoding.MapUnrecognizedFields('additionalProperties')
392  class LabelsValue(_messages.Message):
393    r"""Optional. Resource labels associated with this namespace. No more than
394    64 user labels can be associated with a given resource. Label keys and
395    values can be no longer than 63 characters.
396
397    Messages:
398      AdditionalProperty: An additional property for a LabelsValue object.
399
400    Fields:
401      additionalProperties: Additional properties of type LabelsValue
402    """
403
404    class AdditionalProperty(_messages.Message):
405      r"""An additional property for a LabelsValue object.
406
407      Fields:
408        key: Name of the additional property.
409        value: A string attribute.
410      """
411
412      key = _messages.StringField(1)
413      value = _messages.StringField(2)
414
415    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
416
417  labels = _messages.MessageField('LabelsValue', 1)
418  name = _messages.StringField(2)
419
420
421class Policy(_messages.Message):
422  r"""An Identity and Access Management (IAM) policy, which specifies access
423  controls for Google Cloud resources. A `Policy` is a collection of
424  `bindings`. A `binding` binds one or more `members` to a single `role`.
425  Members can be user accounts, service accounts, Google groups, and domains
426  (such as G Suite). A `role` is a named list of permissions; each `role` can
427  be an IAM predefined role or a user-created custom role. For some types of
428  Google Cloud resources, a `binding` can also specify a `condition`, which is
429  a logical expression that allows access to a resource only if the expression
430  evaluates to `true`. A condition can add constraints based on attributes of
431  the request, the resource, or both. To learn which resources support
432  conditions in their IAM policies, see the [IAM
433  documentation](https://cloud.google.com/iam/help/conditions/resource-
434  policies). **JSON example:** { "bindings": [ { "role":
435  "roles/resourcemanager.organizationAdmin", "members": [
436  "user:mike@example.com", "group:admins@example.com", "domain:google.com",
437  "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role":
438  "roles/resourcemanager.organizationViewer", "members": [
439  "user:eve@example.com" ], "condition": { "title": "expirable access",
440  "description": "Does not grant access after Sep 2020", "expression":
441  "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag":
442  "BwWWja0YfJA=", "version": 3 } **YAML example:** bindings: - members: -
443  user:mike@example.com - group:admins@example.com - domain:google.com -
444  serviceAccount:my-project-id@appspot.gserviceaccount.com role:
445  roles/resourcemanager.organizationAdmin - members: - user:eve@example.com
446  role: roles/resourcemanager.organizationViewer condition: title: expirable
447  access description: Does not grant access after Sep 2020 expression:
448  request.time < timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= -
449  version: 3 For a description of IAM and its features, see the [IAM
450  documentation](https://cloud.google.com/iam/docs/).
451
452  Fields:
453    bindings: Associates a list of `members` to a `role`. Optionally, may
454      specify a `condition` that determines how and when the `bindings` are
455      applied. Each of the `bindings` must contain at least one member.
456    etag: `etag` is used for optimistic concurrency control as a way to help
457      prevent simultaneous updates of a policy from overwriting each other. It
458      is strongly suggested that systems make use of the `etag` in the read-
459      modify-write cycle to perform policy updates in order to avoid race
460      conditions: An `etag` is returned in the response to `getIamPolicy`, and
461      systems are expected to put that etag in the request to `setIamPolicy`
462      to ensure that their change will be applied to the same version of the
463      policy. **Important:** If you use IAM Conditions, you must include the
464      `etag` field whenever you call `setIamPolicy`. If you omit this field,
465      then IAM allows you to overwrite a version `3` policy with a version `1`
466      policy, and all of the conditions in the version `3` policy are lost.
467    version: Specifies the format of the policy. Valid values are `0`, `1`,
468      and `3`. Requests that specify an invalid value are rejected. Any
469      operation that affects conditional role bindings must specify version
470      `3`. This requirement applies to the following operations: * Getting a
471      policy that includes a conditional role binding * Adding a conditional
472      role binding to a policy * Changing a conditional role binding in a
473      policy * Removing any role binding, with or without a condition, from a
474      policy that includes conditions **Important:** If you use IAM
475      Conditions, you must include the `etag` field whenever you call
476      `setIamPolicy`. If you omit this field, then IAM allows you to overwrite
477      a version `3` policy with a version `1` policy, and all of the
478      conditions in the version `3` policy are lost. If a policy does not
479      include any conditions, operations on that policy may specify any valid
480      version or leave the field unset. To learn which resources support
481      conditions in their IAM policies, see the [IAM
482      documentation](https://cloud.google.com/iam/help/conditions/resource-
483      policies).
484  """
485
486  bindings = _messages.MessageField('Binding', 1, repeated=True)
487  etag = _messages.BytesField(2)
488  version = _messages.IntegerField(3, variant=_messages.Variant.INT32)
489
490
491class ResolveServiceRequest(_messages.Message):
492  r"""The request message for LookupService.ResolveService. Looks up a service
493  by its name, returns the service and its endpoints.
494
495  Fields:
496    endpointFilter: Optional. The filter applied to the endpoints of the
497      resolved service. General `filter` string syntax: ` ()` * `` can be
498      `name`, `address`, `port`, or `annotations.` for map field * `` can be
499      `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is
500      roughly the same as `=` * `` must be the same data type as field * ``
501      can be `AND`, `OR`, `NOT` Examples of valid filters: *
502      `annotations.owner` returns endpoints that have a annotation with the
503      key `owner`, this is the same as `annotations:owner` *
504      `annotations.protocol=gRPC` returns endpoints that have key/value
505      `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have
506      this address * `port>8080` returns endpoints that have port number
507      larger than 8080 * `name>projects/my-project/locations/us-
508      east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c`
509      returns endpoints that have name that is alphabetically later than the
510      string, so "endpoint-e" is returned but "endpoint-a" is not *
511      `annotations.owner!=sd AND annotations.foo=bar` returns endpoints that
512      have `owner` in annotation key but value is not `sd` AND have key/value
513      `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that
514      endpoint doesn't have a field called "doesnotexist". Since the filter
515      does not match any endpoint, it returns no results For more information
516      about filtering, see [API Filtering](https://aip.dev/160).
517    maxEndpoints: Optional. The maximum number of endpoints to return.
518      Defaults to 25. Maximum is 100. If a value less than one is specified,
519      the Default is used. If a value greater than the Maximum is specified,
520      the Maximum is used.
521  """
522
523  endpointFilter = _messages.StringField(1)
524  maxEndpoints = _messages.IntegerField(2, variant=_messages.Variant.INT32)
525
526
527class ResolveServiceResponse(_messages.Message):
528  r"""The response message for LookupService.ResolveService.
529
530  Fields:
531    service: A Service attribute.
532  """
533
534  service = _messages.MessageField('Service', 1)
535
536
537class Service(_messages.Message):
538  r"""An individual service. A service contains a name and optional metadata.
539  A service must exist before endpoints can be added to it.
540
541  Messages:
542    AnnotationsValue: Optional. Annotations for the service. This data can be
543      consumed by service clients. Restrictions: * The entire annotations
544      dictionary may contain up to 512 characters, spread accoss all key-value
545      pairs. Annotations that go beyond this limit are rejected * Valid
546      annotation keys have two segments: an optional prefix and name,
547      separated by a slash (/). The name segment is required and must be 63
548      characters or less, beginning and ending with an alphanumeric character
549      ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and
550      alphanumerics between. The prefix is optional. If specified, the prefix
551      must be a DNS subdomain: a series of DNS labels separated by dots (.),
552      not longer than 253 characters in total, followed by a slash (/).
553      Annotations that fails to meet these requirements are rejected * The
554      `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for
555      system annotations managed by Service Directory. If the user tries to
556      write to these keyspaces, those entries are silently ignored by the
557      system Note: This field is equivalent to the `metadata` field in the
558      v1beta1 API. They have the same syntax and read/write to the same
559      location in Service Directory.
560
561  Fields:
562    annotations: Optional. Annotations for the service. This data can be
563      consumed by service clients. Restrictions: * The entire annotations
564      dictionary may contain up to 512 characters, spread accoss all key-value
565      pairs. Annotations that go beyond this limit are rejected * Valid
566      annotation keys have two segments: an optional prefix and name,
567      separated by a slash (/). The name segment is required and must be 63
568      characters or less, beginning and ending with an alphanumeric character
569      ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and
570      alphanumerics between. The prefix is optional. If specified, the prefix
571      must be a DNS subdomain: a series of DNS labels separated by dots (.),
572      not longer than 253 characters in total, followed by a slash (/).
573      Annotations that fails to meet these requirements are rejected * The
574      `(*.)google.com/` and `(*.)googleapis.com/` prefixes are reserved for
575      system annotations managed by Service Directory. If the user tries to
576      write to these keyspaces, those entries are silently ignored by the
577      system Note: This field is equivalent to the `metadata` field in the
578      v1beta1 API. They have the same syntax and read/write to the same
579      location in Service Directory.
580    endpoints: Output only. Endpoints associated with this service. Returned
581      on LookupService.ResolveService. Control plane clients should use
582      RegistrationService.ListEndpoints.
583    name: Immutable. The resource name for the service in the format
584      `projects/*/locations/*/namespaces/*/services/*`.
585  """
586
587  @encoding.MapUnrecognizedFields('additionalProperties')
588  class AnnotationsValue(_messages.Message):
589    r"""Optional. Annotations for the service. This data can be consumed by
590    service clients. Restrictions: * The entire annotations dictionary may
591    contain up to 512 characters, spread accoss all key-value pairs.
592    Annotations that go beyond this limit are rejected * Valid annotation keys
593    have two segments: an optional prefix and name, separated by a slash (/).
594    The name segment is required and must be 63 characters or less, beginning
595    and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-),
596    underscores (_), dots (.), and alphanumerics between. The prefix is
597    optional. If specified, the prefix must be a DNS subdomain: a series of
598    DNS labels separated by dots (.), not longer than 253 characters in total,
599    followed by a slash (/). Annotations that fails to meet these requirements
600    are rejected * The `(*.)google.com/` and `(*.)googleapis.com/` prefixes
601    are reserved for system annotations managed by Service Directory. If the
602    user tries to write to these keyspaces, those entries are silently ignored
603    by the system Note: This field is equivalent to the `metadata` field in
604    the v1beta1 API. They have the same syntax and read/write to the same
605    location in Service Directory.
606
607    Messages:
608      AdditionalProperty: An additional property for a AnnotationsValue
609        object.
610
611    Fields:
612      additionalProperties: Additional properties of type AnnotationsValue
613    """
614
615    class AdditionalProperty(_messages.Message):
616      r"""An additional property for a AnnotationsValue object.
617
618      Fields:
619        key: Name of the additional property.
620        value: A string attribute.
621      """
622
623      key = _messages.StringField(1)
624      value = _messages.StringField(2)
625
626    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)
627
628  annotations = _messages.MessageField('AnnotationsValue', 1)
629  endpoints = _messages.MessageField('Endpoint', 2, repeated=True)
630  name = _messages.StringField(3)
631
632
633class ServicedirectoryProjectsLocationsGetRequest(_messages.Message):
634  r"""A ServicedirectoryProjectsLocationsGetRequest object.
635
636  Fields:
637    name: Resource name for the location.
638  """
639
640  name = _messages.StringField(1, required=True)
641
642
643class ServicedirectoryProjectsLocationsListRequest(_messages.Message):
644  r"""A ServicedirectoryProjectsLocationsListRequest object.
645
646  Fields:
647    filter: The standard list filter.
648    name: The resource that owns the locations collection, if applicable.
649    pageSize: The standard list page size.
650    pageToken: The standard list page token.
651  """
652
653  filter = _messages.StringField(1)
654  name = _messages.StringField(2, required=True)
655  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
656  pageToken = _messages.StringField(4)
657
658
659class ServicedirectoryProjectsLocationsNamespacesCreateRequest(_messages.Message):
660  r"""A ServicedirectoryProjectsLocationsNamespacesCreateRequest object.
661
662  Fields:
663    namespace: A Namespace resource to be passed as the request body.
664    namespaceId: Required. The Resource ID must be 1-63 characters long, and
665      comply with RFC1035. Specifically, the name must be 1-63 characters long
666      and match the regular expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`
667      which means the first character must be a lowercase letter, and all
668      following characters must be a dash, lowercase letter, or digit, except
669      the last character, which cannot be a dash.
670    parent: Required. The resource name of the project and location the
671      namespace will be created in.
672  """
673
674  namespace = _messages.MessageField('Namespace', 1)
675  namespaceId = _messages.StringField(2)
676  parent = _messages.StringField(3, required=True)
677
678
679class ServicedirectoryProjectsLocationsNamespacesDeleteRequest(_messages.Message):
680  r"""A ServicedirectoryProjectsLocationsNamespacesDeleteRequest object.
681
682  Fields:
683    name: Required. The name of the namespace to delete.
684  """
685
686  name = _messages.StringField(1, required=True)
687
688
689class ServicedirectoryProjectsLocationsNamespacesGetIamPolicyRequest(_messages.Message):
690  r"""A ServicedirectoryProjectsLocationsNamespacesGetIamPolicyRequest object.
691
692  Fields:
693    getIamPolicyRequest: A GetIamPolicyRequest resource to be passed as the
694      request body.
695    resource: REQUIRED: The resource for which the policy is being requested.
696      See the operation documentation for the appropriate value for this
697      field.
698  """
699
700  getIamPolicyRequest = _messages.MessageField('GetIamPolicyRequest', 1)
701  resource = _messages.StringField(2, required=True)
702
703
704class ServicedirectoryProjectsLocationsNamespacesGetRequest(_messages.Message):
705  r"""A ServicedirectoryProjectsLocationsNamespacesGetRequest object.
706
707  Fields:
708    name: Required. The name of the namespace to retrieve.
709  """
710
711  name = _messages.StringField(1, required=True)
712
713
714class ServicedirectoryProjectsLocationsNamespacesListRequest(_messages.Message):
715  r"""A ServicedirectoryProjectsLocationsNamespacesListRequest object.
716
717  Fields:
718    filter: Optional. The filter to list results by. General `filter` string
719      syntax: ` ()` * `` can be `name` or `labels.` for map field * `` can be
720      `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`, and is
721      roughly the same as `=` * `` must be the same data type as field * ``
722      can be `AND`, `OR`, `NOT` Examples of valid filters: * `labels.owner`
723      returns namespaces that have a label with the key `owner`, this is the
724      same as `labels:owner` * `labels.owner=sd` returns namespaces that have
725      key/value `owner=sd` * `name>projects/my-project/locations/us-
726      east1/namespaces/namespace-c` returns namespaces that have name that is
727      alphabetically later than the string, so "namespace-e" is returned but
728      "namespace-a" is not * `labels.owner!=sd AND labels.foo=bar` returns
729      namespaces that have `owner` in label key but value is not `sd` AND have
730      key/value `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note
731      that namespace doesn't have a field called "doesnotexist". Since the
732      filter does not match any namespaces, it returns no results For more
733      information about filtering, see [API Filtering](https://aip.dev/160).
734    orderBy: Optional. The order to list results by. General `order_by` string
735      syntax: ` () (,)` * `` allows value: `name` * `` ascending or descending
736      order by ``. If this is left blank, `asc` is used Note that an empty
737      `order_by` string results in default order, which is order by `name` in
738      ascending order.
739    pageSize: Optional. The maximum number of items to return.
740    pageToken: Optional. The next_page_token value returned from a previous
741      List request, if any.
742    parent: Required. The resource name of the project and location whose
743      namespaces you'd like to list.
744  """
745
746  filter = _messages.StringField(1)
747  orderBy = _messages.StringField(2)
748  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
749  pageToken = _messages.StringField(4)
750  parent = _messages.StringField(5, required=True)
751
752
753class ServicedirectoryProjectsLocationsNamespacesPatchRequest(_messages.Message):
754  r"""A ServicedirectoryProjectsLocationsNamespacesPatchRequest object.
755
756  Fields:
757    name: Immutable. The resource name for the namespace in the format
758      `projects/*/locations/*/namespaces/*`.
759    namespace: A Namespace resource to be passed as the request body.
760    updateMask: Required. List of fields to be updated in this request.
761  """
762
763  name = _messages.StringField(1, required=True)
764  namespace = _messages.MessageField('Namespace', 2)
765  updateMask = _messages.StringField(3)
766
767
768class ServicedirectoryProjectsLocationsNamespacesServicesCreateRequest(_messages.Message):
769  r"""A ServicedirectoryProjectsLocationsNamespacesServicesCreateRequest
770  object.
771
772  Fields:
773    parent: Required. The resource name of the namespace this service will
774      belong to.
775    service: A Service resource to be passed as the request body.
776    serviceId: Required. The Resource ID must be 1-63 characters long, and
777      comply with RFC1035. Specifically, the name must be 1-63 characters long
778      and match the regular expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`
779      which means the first character must be a lowercase letter, and all
780      following characters must be a dash, lowercase letter, or digit, except
781      the last character, which cannot be a dash.
782  """
783
784  parent = _messages.StringField(1, required=True)
785  service = _messages.MessageField('Service', 2)
786  serviceId = _messages.StringField(3)
787
788
789class ServicedirectoryProjectsLocationsNamespacesServicesDeleteRequest(_messages.Message):
790  r"""A ServicedirectoryProjectsLocationsNamespacesServicesDeleteRequest
791  object.
792
793  Fields:
794    name: Required. The name of the service to delete.
795  """
796
797  name = _messages.StringField(1, required=True)
798
799
800class ServicedirectoryProjectsLocationsNamespacesServicesEndpointsCreateRequest(_messages.Message):
801  r"""A
802  ServicedirectoryProjectsLocationsNamespacesServicesEndpointsCreateRequest
803  object.
804
805  Fields:
806    endpoint: A Endpoint resource to be passed as the request body.
807    endpointId: Required. The Resource ID must be 1-63 characters long, and
808      comply with RFC1035. Specifically, the name must be 1-63 characters long
809      and match the regular expression `[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?`
810      which means the first character must be a lowercase letter, and all
811      following characters must be a dash, lowercase letter, or digit, except
812      the last character, which cannot be a dash.
813    parent: Required. The resource name of the service that this endpoint
814      provides.
815  """
816
817  endpoint = _messages.MessageField('Endpoint', 1)
818  endpointId = _messages.StringField(2)
819  parent = _messages.StringField(3, required=True)
820
821
822class ServicedirectoryProjectsLocationsNamespacesServicesEndpointsDeleteRequest(_messages.Message):
823  r"""A
824  ServicedirectoryProjectsLocationsNamespacesServicesEndpointsDeleteRequest
825  object.
826
827  Fields:
828    name: Required. The name of the endpoint to delete.
829  """
830
831  name = _messages.StringField(1, required=True)
832
833
834class ServicedirectoryProjectsLocationsNamespacesServicesEndpointsGetRequest(_messages.Message):
835  r"""A ServicedirectoryProjectsLocationsNamespacesServicesEndpointsGetRequest
836  object.
837
838  Fields:
839    name: Required. The name of the endpoint to get.
840  """
841
842  name = _messages.StringField(1, required=True)
843
844
845class ServicedirectoryProjectsLocationsNamespacesServicesEndpointsListRequest(_messages.Message):
846  r"""A
847  ServicedirectoryProjectsLocationsNamespacesServicesEndpointsListRequest
848  object.
849
850  Fields:
851    filter: Optional. The filter to list results by. General `filter` string
852      syntax: ` ()` * `` can be `name`, `address`, `port`, or `annotations.`
853      for map field * `` can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which
854      `:` means `HAS`, and is roughly the same as `=` * `` must be the same
855      data type as field * `` can be `AND`, `OR`, `NOT` Examples of valid
856      filters: * `annotations.owner` returns endpoints that have a annotation
857      with the key `owner`, this is the same as `annotations:owner` *
858      `annotations.protocol=gRPC` returns endpoints that have key/value
859      `protocol=gRPC` * `address=192.108.1.105` returns endpoints that have
860      this address * `port>8080` returns endpoints that have port number
861      larger than 8080 * `name>projects/my-project/locations/us-
862      east1/namespaces/my-namespace/services/my-service/endpoints/endpoint-c`
863      returns endpoints that have name that is alphabetically later than the
864      string, so "endpoint-e" is returned but "endpoint-a" is not *
865      `annotations.owner!=sd AND annotations.foo=bar` returns endpoints that
866      have `owner` in annotation key but value is not `sd` AND have key/value
867      `foo=bar` * `doesnotexist.foo=bar` returns an empty list. Note that
868      endpoint doesn't have a field called "doesnotexist". Since the filter
869      does not match any endpoints, it returns no results For more information
870      about filtering, see [API Filtering](https://aip.dev/160).
871    orderBy: Optional. The order to list results by. General `order_by` string
872      syntax: ` () (,)` * `` allows values: `name`, `address`, `port` * ``
873      ascending or descending order by ``. If this is left blank, `asc` is
874      used Note that an empty `order_by` string results in default order,
875      which is order by `name` in ascending order.
876    pageSize: Optional. The maximum number of items to return.
877    pageToken: Optional. The next_page_token value returned from a previous
878      List request, if any.
879    parent: Required. The resource name of the service whose endpoints you'd
880      like to list.
881  """
882
883  filter = _messages.StringField(1)
884  orderBy = _messages.StringField(2)
885  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
886  pageToken = _messages.StringField(4)
887  parent = _messages.StringField(5, required=True)
888
889
890class ServicedirectoryProjectsLocationsNamespacesServicesEndpointsPatchRequest(_messages.Message):
891  r"""A
892  ServicedirectoryProjectsLocationsNamespacesServicesEndpointsPatchRequest
893  object.
894
895  Fields:
896    endpoint: A Endpoint resource to be passed as the request body.
897    name: Immutable. The resource name for the endpoint in the format
898      `projects/*/locations/*/namespaces/*/services/*/endpoints/*`.
899    updateMask: Required. List of fields to be updated in this request.
900  """
901
902  endpoint = _messages.MessageField('Endpoint', 1)
903  name = _messages.StringField(2, required=True)
904  updateMask = _messages.StringField(3)
905
906
907class ServicedirectoryProjectsLocationsNamespacesServicesGetIamPolicyRequest(_messages.Message):
908  r"""A ServicedirectoryProjectsLocationsNamespacesServicesGetIamPolicyRequest
909  object.
910
911  Fields:
912    getIamPolicyRequest: A GetIamPolicyRequest resource to be passed as the
913      request body.
914    resource: REQUIRED: The resource for which the policy is being requested.
915      See the operation documentation for the appropriate value for this
916      field.
917  """
918
919  getIamPolicyRequest = _messages.MessageField('GetIamPolicyRequest', 1)
920  resource = _messages.StringField(2, required=True)
921
922
923class ServicedirectoryProjectsLocationsNamespacesServicesGetRequest(_messages.Message):
924  r"""A ServicedirectoryProjectsLocationsNamespacesServicesGetRequest object.
925
926  Fields:
927    name: Required. The name of the service to get.
928  """
929
930  name = _messages.StringField(1, required=True)
931
932
933class ServicedirectoryProjectsLocationsNamespacesServicesListRequest(_messages.Message):
934  r"""A ServicedirectoryProjectsLocationsNamespacesServicesListRequest object.
935
936  Fields:
937    filter: Optional. The filter to list results by. General `filter` string
938      syntax: ` ()` * `` can be `name` or `annotations.` for map field * ``
939      can be `<`, `>`, `<=`, `>=`, `!=`, `=`, `:`. Of which `:` means `HAS`,
940      and is roughly the same as `=` * `` must be the same data type as field
941      * `` can be `AND`, `OR`, `NOT` Examples of valid filters: *
942      `annotations.owner` returns services that have a annotation with the key
943      `owner`, this is the same as `annotations:owner` *
944      `annotations.protocol=gRPC` returns services that have key/value
945      `protocol=gRPC` * `name>projects/my-project/locations/us-
946      east1/namespaces/my-namespace/services/service-c` returns services that
947      have name that is alphabetically later than the string, so "service-e"
948      is returned but "service-a" is not * `annotations.owner!=sd AND
949      annotations.foo=bar` returns services that have `owner` in annotation
950      key but value is not `sd` AND have key/value `foo=bar` *
951      `doesnotexist.foo=bar` returns an empty list. Note that service doesn't
952      have a field called "doesnotexist". Since the filter does not match any
953      services, it returns no results For more information about filtering,
954      see [API Filtering](https://aip.dev/160).
955    orderBy: Optional. The order to list results by. General `order_by` string
956      syntax: ` () (,)` * `` allows value: `name` * `` ascending or descending
957      order by ``. If this is left blank, `asc` is used Note that an empty
958      `order_by` string results in default order, which is order by `name` in
959      ascending order.
960    pageSize: Optional. The maximum number of items to return.
961    pageToken: Optional. The next_page_token value returned from a previous
962      List request, if any.
963    parent: Required. The resource name of the namespace whose services you'd
964      like to list.
965  """
966
967  filter = _messages.StringField(1)
968  orderBy = _messages.StringField(2)
969  pageSize = _messages.IntegerField(3, variant=_messages.Variant.INT32)
970  pageToken = _messages.StringField(4)
971  parent = _messages.StringField(5, required=True)
972
973
974class ServicedirectoryProjectsLocationsNamespacesServicesPatchRequest(_messages.Message):
975  r"""A ServicedirectoryProjectsLocationsNamespacesServicesPatchRequest
976  object.
977
978  Fields:
979    name: Immutable. The resource name for the service in the format
980      `projects/*/locations/*/namespaces/*/services/*`.
981    service: A Service resource to be passed as the request body.
982    updateMask: Required. List of fields to be updated in this request.
983  """
984
985  name = _messages.StringField(1, required=True)
986  service = _messages.MessageField('Service', 2)
987  updateMask = _messages.StringField(3)
988
989
990class ServicedirectoryProjectsLocationsNamespacesServicesResolveRequest(_messages.Message):
991  r"""A ServicedirectoryProjectsLocationsNamespacesServicesResolveRequest
992  object.
993
994  Fields:
995    name: Required. The name of the service to resolve.
996    resolveServiceRequest: A ResolveServiceRequest resource to be passed as
997      the request body.
998  """
999
1000  name = _messages.StringField(1, required=True)
1001  resolveServiceRequest = _messages.MessageField('ResolveServiceRequest', 2)
1002
1003
1004class ServicedirectoryProjectsLocationsNamespacesServicesSetIamPolicyRequest(_messages.Message):
1005  r"""A ServicedirectoryProjectsLocationsNamespacesServicesSetIamPolicyRequest
1006  object.
1007
1008  Fields:
1009    resource: REQUIRED: The resource for which the policy is being specified.
1010      See the operation documentation for the appropriate value for this
1011      field.
1012    setIamPolicyRequest: A SetIamPolicyRequest resource to be passed as the
1013      request body.
1014  """
1015
1016  resource = _messages.StringField(1, required=True)
1017  setIamPolicyRequest = _messages.MessageField('SetIamPolicyRequest', 2)
1018
1019
1020class ServicedirectoryProjectsLocationsNamespacesServicesTestIamPermissionsRequest(_messages.Message):
1021  r"""A
1022  ServicedirectoryProjectsLocationsNamespacesServicesTestIamPermissionsRequest
1023  object.
1024
1025  Fields:
1026    resource: REQUIRED: The resource for which the policy detail is being
1027      requested. See the operation documentation for the appropriate value for
1028      this field.
1029    testIamPermissionsRequest: A TestIamPermissionsRequest resource to be
1030      passed as the request body.
1031  """
1032
1033  resource = _messages.StringField(1, required=True)
1034  testIamPermissionsRequest = _messages.MessageField('TestIamPermissionsRequest', 2)
1035
1036
1037class ServicedirectoryProjectsLocationsNamespacesSetIamPolicyRequest(_messages.Message):
1038  r"""A ServicedirectoryProjectsLocationsNamespacesSetIamPolicyRequest object.
1039
1040  Fields:
1041    resource: REQUIRED: The resource for which the policy is being specified.
1042      See the operation documentation for the appropriate value for this
1043      field.
1044    setIamPolicyRequest: A SetIamPolicyRequest resource to be passed as the
1045      request body.
1046  """
1047
1048  resource = _messages.StringField(1, required=True)
1049  setIamPolicyRequest = _messages.MessageField('SetIamPolicyRequest', 2)
1050
1051
1052class ServicedirectoryProjectsLocationsNamespacesTestIamPermissionsRequest(_messages.Message):
1053  r"""A ServicedirectoryProjectsLocationsNamespacesTestIamPermissionsRequest
1054  object.
1055
1056  Fields:
1057    resource: REQUIRED: The resource for which the policy detail is being
1058      requested. See the operation documentation for the appropriate value for
1059      this field.
1060    testIamPermissionsRequest: A TestIamPermissionsRequest resource to be
1061      passed as the request body.
1062  """
1063
1064  resource = _messages.StringField(1, required=True)
1065  testIamPermissionsRequest = _messages.MessageField('TestIamPermissionsRequest', 2)
1066
1067
1068class SetIamPolicyRequest(_messages.Message):
1069  r"""Request message for `SetIamPolicy` method.
1070
1071  Fields:
1072    policy: REQUIRED: The complete policy to be applied to the `resource`. The
1073      size of the policy is limited to a few 10s of KB. An empty policy is a
1074      valid policy but certain Cloud Platform services (such as Projects)
1075      might reject them.
1076  """
1077
1078  policy = _messages.MessageField('Policy', 1)
1079
1080
1081class StandardQueryParameters(_messages.Message):
1082  r"""Query parameters accepted by all methods.
1083
1084  Enums:
1085    FXgafvValueValuesEnum: V1 error format.
1086    AltValueValuesEnum: Data format for response.
1087
1088  Fields:
1089    f__xgafv: V1 error format.
1090    access_token: OAuth access token.
1091    alt: Data format for response.
1092    callback: JSONP
1093    fields: Selector specifying which fields to include in a partial response.
1094    key: API key. Your API key identifies your project and provides you with
1095      API access, quota, and reports. Required unless you provide an OAuth 2.0
1096      token.
1097    oauth_token: OAuth 2.0 token for the current user.
1098    prettyPrint: Returns response with indentations and line breaks.
1099    quotaUser: Available to use for quota purposes for server-side
1100      applications. Can be any arbitrary string assigned to a user, but should
1101      not exceed 40 characters.
1102    trace: A tracing token of the form "token:<tokenid>" to include in api
1103      requests.
1104    uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
1105    upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
1106  """
1107
1108  class AltValueValuesEnum(_messages.Enum):
1109    r"""Data format for response.
1110
1111    Values:
1112      json: Responses with Content-Type of application/json
1113      media: Media download with context-dependent Content-Type
1114      proto: Responses with Content-Type of application/x-protobuf
1115    """
1116    json = 0
1117    media = 1
1118    proto = 2
1119
1120  class FXgafvValueValuesEnum(_messages.Enum):
1121    r"""V1 error format.
1122
1123    Values:
1124      _1: v1 error format
1125      _2: v2 error format
1126    """
1127    _1 = 0
1128    _2 = 1
1129
1130  f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
1131  access_token = _messages.StringField(2)
1132  alt = _messages.EnumField('AltValueValuesEnum', 3, default='json')
1133  callback = _messages.StringField(4)
1134  fields = _messages.StringField(5)
1135  key = _messages.StringField(6)
1136  oauth_token = _messages.StringField(7)
1137  prettyPrint = _messages.BooleanField(8, default=True)
1138  quotaUser = _messages.StringField(9)
1139  trace = _messages.StringField(10)
1140  uploadType = _messages.StringField(11)
1141  upload_protocol = _messages.StringField(12)
1142
1143
1144class TestIamPermissionsRequest(_messages.Message):
1145  r"""Request message for `TestIamPermissions` method.
1146
1147  Fields:
1148    permissions: The set of permissions to check for the `resource`.
1149      Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
1150      For more information see [IAM
1151      Overview](https://cloud.google.com/iam/docs/overview#permissions).
1152  """
1153
1154  permissions = _messages.StringField(1, repeated=True)
1155
1156
1157class TestIamPermissionsResponse(_messages.Message):
1158  r"""Response message for `TestIamPermissions` method.
1159
1160  Fields:
1161    permissions: A subset of `TestPermissionsRequest.permissions` that the
1162      caller is allowed.
1163  """
1164
1165  permissions = _messages.StringField(1, repeated=True)
1166
1167
1168encoding.AddCustomJsonFieldMapping(
1169    StandardQueryParameters, 'f__xgafv', '$.xgafv')
1170encoding.AddCustomJsonEnumMapping(
1171    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
1172encoding.AddCustomJsonEnumMapping(
1173    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
1174