google-apis-vmwareengine_v1 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2027 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module VmwareengineV1
24
+
25
+ # Specifies the audit configuration for a service. The configuration determines
26
+ # which permission types are logged, and what identities, if any, are exempted
27
+ # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
28
+ # are AuditConfigs for both `allServices` and a specific service, the union of
29
+ # the two AuditConfigs is used for that service: the log_types specified in each
30
+ # AuditConfig are enabled, and the exempted_members in each AuditLogConfig are
31
+ # exempted. Example Policy with multiple AuditConfigs: ` "audit_configs": [ ` "
32
+ # service": "allServices", "audit_log_configs": [ ` "log_type": "DATA_READ", "
33
+ # exempted_members": [ "user:jose@example.com" ] `, ` "log_type": "DATA_WRITE" `,
34
+ # ` "log_type": "ADMIN_READ" ` ] `, ` "service": "sampleservice.googleapis.com",
35
+ # "audit_log_configs": [ ` "log_type": "DATA_READ" `, ` "log_type": "DATA_WRITE"
36
+ # , "exempted_members": [ "user:aliya@example.com" ] ` ] ` ] ` For sampleservice,
37
+ # this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also
38
+ # exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com`
39
+ # from DATA_WRITE logging.
40
+ class AuditConfig
41
+ include Google::Apis::Core::Hashable
42
+
43
+ # The configuration for logging of each type of permission.
44
+ # Corresponds to the JSON property `auditLogConfigs`
45
+ # @return [Array<Google::Apis::VmwareengineV1::AuditLogConfig>]
46
+ attr_accessor :audit_log_configs
47
+
48
+ # Specifies a service that will be enabled for audit logging. For example, `
49
+ # storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special
50
+ # value that covers all services.
51
+ # Corresponds to the JSON property `service`
52
+ # @return [String]
53
+ attr_accessor :service
54
+
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
58
+
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @audit_log_configs = args[:audit_log_configs] if args.key?(:audit_log_configs)
62
+ @service = args[:service] if args.key?(:service)
63
+ end
64
+ end
65
+
66
+ # Provides the configuration for logging a type of permissions. Example: ` "
67
+ # audit_log_configs": [ ` "log_type": "DATA_READ", "exempted_members": [ "user:
68
+ # jose@example.com" ] `, ` "log_type": "DATA_WRITE" ` ] ` This enables '
69
+ # DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from
70
+ # DATA_READ logging.
71
+ class AuditLogConfig
72
+ include Google::Apis::Core::Hashable
73
+
74
+ # Specifies the identities that do not cause logging for this type of permission.
75
+ # Follows the same format of Binding.members.
76
+ # Corresponds to the JSON property `exemptedMembers`
77
+ # @return [Array<String>]
78
+ attr_accessor :exempted_members
79
+
80
+ # The log type that this config enables.
81
+ # Corresponds to the JSON property `logType`
82
+ # @return [String]
83
+ attr_accessor :log_type
84
+
85
+ def initialize(**args)
86
+ update!(**args)
87
+ end
88
+
89
+ # Update properties of this object
90
+ def update!(**args)
91
+ @exempted_members = args[:exempted_members] if args.key?(:exempted_members)
92
+ @log_type = args[:log_type] if args.key?(:log_type)
93
+ end
94
+ end
95
+
96
+ # Associates `members`, or principals, with a `role`.
97
+ class Binding
98
+ include Google::Apis::Core::Hashable
99
+
100
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
101
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
102
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
103
+ # "Summary size limit" description: "Determines if a summary is less than 100
104
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
105
+ # Requestor is owner" description: "Determines if requestor is the document
106
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
107
+ # Logic): title: "Public documents" description: "Determine whether the document
108
+ # should be publicly visible" expression: "document.type != 'private' &&
109
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
110
+ # string" description: "Create a notification string with a timestamp."
111
+ # expression: "'New message received at ' + string(document.create_time)" The
112
+ # exact variables and functions that may be referenced within an expression are
113
+ # determined by the service that evaluates it. See the service documentation for
114
+ # additional information.
115
+ # Corresponds to the JSON property `condition`
116
+ # @return [Google::Apis::VmwareengineV1::Expr]
117
+ attr_accessor :condition
118
+
119
+ # Specifies the principals requesting access for a Google Cloud resource. `
120
+ # members` can have the following values: * `allUsers`: A special identifier
121
+ # that represents anyone who is on the internet; with or without a Google
122
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
123
+ # anyone who is authenticated with a Google account or a service account. Does
124
+ # not include identities that come from external identity providers (IdPs)
125
+ # through identity federation. * `user:`emailid``: An email address that
126
+ # represents a specific Google account. For example, `alice@example.com` . * `
127
+ # serviceAccount:`emailid``: An email address that represents a Google service
128
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`. * `
129
+ # serviceAccount:`projectid`.svc.id.goog[`namespace`/`kubernetes-sa`]`: An
130
+ # identifier for a [Kubernetes service account](https://cloud.google.com/
131
+ # kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-
132
+ # project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:`emailid``: An
133
+ # email address that represents a Google group. For example, `admins@example.com`
134
+ # . * `domain:`domain``: The G Suite domain (primary) that represents all the
135
+ # users of that domain. For example, `google.com` or `example.com`. * `deleted:
136
+ # user:`emailid`?uid=`uniqueid``: An email address (plus unique identifier)
137
+ # representing a user that has been recently deleted. For example, `alice@
138
+ # example.com?uid=123456789012345678901`. If the user is recovered, this value
139
+ # reverts to `user:`emailid`` and the recovered user retains the role in the
140
+ # binding. * `deleted:serviceAccount:`emailid`?uid=`uniqueid``: An email address
141
+ # (plus unique identifier) representing a service account that has been recently
142
+ # deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=
143
+ # 123456789012345678901`. If the service account is undeleted, this value
144
+ # reverts to `serviceAccount:`emailid`` and the undeleted service account
145
+ # retains the role in the binding. * `deleted:group:`emailid`?uid=`uniqueid``:
146
+ # An email address (plus unique identifier) representing a Google group that has
147
+ # been recently deleted. For example, `admins@example.com?uid=
148
+ # 123456789012345678901`. If the group is recovered, this value reverts to `
149
+ # group:`emailid`` and the recovered group retains the role in the binding.
150
+ # Corresponds to the JSON property `members`
151
+ # @return [Array<String>]
152
+ attr_accessor :members
153
+
154
+ # Role that is assigned to the list of `members`, or principals. For example, `
155
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
156
+ # Corresponds to the JSON property `role`
157
+ # @return [String]
158
+ attr_accessor :role
159
+
160
+ def initialize(**args)
161
+ update!(**args)
162
+ end
163
+
164
+ # Update properties of this object
165
+ def update!(**args)
166
+ @condition = args[:condition] if args.key?(:condition)
167
+ @members = args[:members] if args.key?(:members)
168
+ @role = args[:role] if args.key?(:role)
169
+ end
170
+ end
171
+
172
+ # A cluster in a private cloud.
173
+ class Cluster
174
+ include Google::Apis::Core::Hashable
175
+
176
+ # Output only. Creation time of this resource.
177
+ # Corresponds to the JSON property `createTime`
178
+ # @return [String]
179
+ attr_accessor :create_time
180
+
181
+ # Output only. True if the cluster is a management cluster; false otherwise.
182
+ # There can only be one management cluster in a private cloud and it has to be
183
+ # the first one.
184
+ # Corresponds to the JSON property `management`
185
+ # @return [Boolean]
186
+ attr_accessor :management
187
+ alias_method :management?, :management
188
+
189
+ # Output only. The resource name of this cluster. Resource names are schemeless
190
+ # URIs that follow the conventions in https://cloud.google.com/apis/design/
191
+ # resource_names. For example: `projects/my-project/locations/us-central1-a/
192
+ # privateClouds/my-cloud/clusters/my-cluster`
193
+ # Corresponds to the JSON property `name`
194
+ # @return [String]
195
+ attr_accessor :name
196
+
197
+ # Required. The map of cluster node types in this cluster, where the key is
198
+ # canonical identifier of the node type (corresponds to the `NodeType`).
199
+ # Corresponds to the JSON property `nodeTypeConfigs`
200
+ # @return [Hash<String,Google::Apis::VmwareengineV1::NodeTypeConfig>]
201
+ attr_accessor :node_type_configs
202
+
203
+ # Output only. State of the resource.
204
+ # Corresponds to the JSON property `state`
205
+ # @return [String]
206
+ attr_accessor :state
207
+
208
+ # Output only. System-generated unique identifier for the resource.
209
+ # Corresponds to the JSON property `uid`
210
+ # @return [String]
211
+ attr_accessor :uid
212
+
213
+ # Output only. Last update time of this resource.
214
+ # Corresponds to the JSON property `updateTime`
215
+ # @return [String]
216
+ attr_accessor :update_time
217
+
218
+ def initialize(**args)
219
+ update!(**args)
220
+ end
221
+
222
+ # Update properties of this object
223
+ def update!(**args)
224
+ @create_time = args[:create_time] if args.key?(:create_time)
225
+ @management = args[:management] if args.key?(:management)
226
+ @name = args[:name] if args.key?(:name)
227
+ @node_type_configs = args[:node_type_configs] if args.key?(:node_type_configs)
228
+ @state = args[:state] if args.key?(:state)
229
+ @uid = args[:uid] if args.key?(:uid)
230
+ @update_time = args[:update_time] if args.key?(:update_time)
231
+ end
232
+ end
233
+
234
+ # Credentials for a private cloud.
235
+ class Credentials
236
+ include Google::Apis::Core::Hashable
237
+
238
+ # Initial password.
239
+ # Corresponds to the JSON property `password`
240
+ # @return [String]
241
+ attr_accessor :password
242
+
243
+ # Initial username.
244
+ # Corresponds to the JSON property `username`
245
+ # @return [String]
246
+ attr_accessor :username
247
+
248
+ def initialize(**args)
249
+ update!(**args)
250
+ end
251
+
252
+ # Update properties of this object
253
+ def update!(**args)
254
+ @password = args[:password] if args.key?(:password)
255
+ @username = args[:username] if args.key?(:username)
256
+ end
257
+ end
258
+
259
+ # A generic empty message that you can re-use to avoid defining duplicated empty
260
+ # messages in your APIs. A typical example is to use it as the request or the
261
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
262
+ # protobuf.Empty) returns (google.protobuf.Empty); `
263
+ class Empty
264
+ include Google::Apis::Core::Hashable
265
+
266
+ def initialize(**args)
267
+ update!(**args)
268
+ end
269
+
270
+ # Update properties of this object
271
+ def update!(**args)
272
+ end
273
+ end
274
+
275
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
276
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
277
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
278
+ # "Summary size limit" description: "Determines if a summary is less than 100
279
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
280
+ # Requestor is owner" description: "Determines if requestor is the document
281
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
282
+ # Logic): title: "Public documents" description: "Determine whether the document
283
+ # should be publicly visible" expression: "document.type != 'private' &&
284
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
285
+ # string" description: "Create a notification string with a timestamp."
286
+ # expression: "'New message received at ' + string(document.create_time)" The
287
+ # exact variables and functions that may be referenced within an expression are
288
+ # determined by the service that evaluates it. See the service documentation for
289
+ # additional information.
290
+ class Expr
291
+ include Google::Apis::Core::Hashable
292
+
293
+ # Optional. Description of the expression. This is a longer text which describes
294
+ # the expression, e.g. when hovered over it in a UI.
295
+ # Corresponds to the JSON property `description`
296
+ # @return [String]
297
+ attr_accessor :description
298
+
299
+ # Textual representation of an expression in Common Expression Language syntax.
300
+ # Corresponds to the JSON property `expression`
301
+ # @return [String]
302
+ attr_accessor :expression
303
+
304
+ # Optional. String indicating the location of the expression for error reporting,
305
+ # e.g. a file name and a position in the file.
306
+ # Corresponds to the JSON property `location`
307
+ # @return [String]
308
+ attr_accessor :location
309
+
310
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
311
+ # This can be used e.g. in UIs which allow to enter the expression.
312
+ # Corresponds to the JSON property `title`
313
+ # @return [String]
314
+ attr_accessor :title
315
+
316
+ def initialize(**args)
317
+ update!(**args)
318
+ end
319
+
320
+ # Update properties of this object
321
+ def update!(**args)
322
+ @description = args[:description] if args.key?(:description)
323
+ @expression = args[:expression] if args.key?(:expression)
324
+ @location = args[:location] if args.key?(:location)
325
+ @title = args[:title] if args.key?(:title)
326
+ end
327
+ end
328
+
329
+ # Details about a HCX Cloud Manager appliance.
330
+ class Hcx
331
+ include Google::Apis::Core::Hashable
332
+
333
+ # Fully qualified domain name of the appliance.
334
+ # Corresponds to the JSON property `fqdn`
335
+ # @return [String]
336
+ attr_accessor :fqdn
337
+
338
+ # Internal IP address of the appliance.
339
+ # Corresponds to the JSON property `internalIp`
340
+ # @return [String]
341
+ attr_accessor :internal_ip
342
+
343
+ # Output only. The state of the appliance.
344
+ # Corresponds to the JSON property `state`
345
+ # @return [String]
346
+ attr_accessor :state
347
+
348
+ # Version of the appliance.
349
+ # Corresponds to the JSON property `version`
350
+ # @return [String]
351
+ attr_accessor :version
352
+
353
+ def initialize(**args)
354
+ update!(**args)
355
+ end
356
+
357
+ # Update properties of this object
358
+ def update!(**args)
359
+ @fqdn = args[:fqdn] if args.key?(:fqdn)
360
+ @internal_ip = args[:internal_ip] if args.key?(:internal_ip)
361
+ @state = args[:state] if args.key?(:state)
362
+ @version = args[:version] if args.key?(:version)
363
+ end
364
+ end
365
+
366
+ # HCX activation key. A default key is created during private cloud provisioning,
367
+ # but this behavior is subject to change and you should always verify active
368
+ # keys. Use VmwareEngine.ListHcxActivationKeys to retrieve existing keys and
369
+ # VmwareEngine.CreateHcxActivationKey to create new ones.
370
+ class HcxActivationKey
371
+ include Google::Apis::Core::Hashable
372
+
373
+ # Output only. HCX activation key.
374
+ # Corresponds to the JSON property `activationKey`
375
+ # @return [String]
376
+ attr_accessor :activation_key
377
+
378
+ # Output only. Creation time of HCX activation key.
379
+ # Corresponds to the JSON property `createTime`
380
+ # @return [String]
381
+ attr_accessor :create_time
382
+
383
+ # Output only. The resource name of this HcxActivationKey. Resource names are
384
+ # schemeless URIs that follow the conventions in https://cloud.google.com/apis/
385
+ # design/resource_names. For example: `projects/my-project/locations/us-central1/
386
+ # privateClouds/my-cloud/hcxActivationKeys/my-key`
387
+ # Corresponds to the JSON property `name`
388
+ # @return [String]
389
+ attr_accessor :name
390
+
391
+ # Output only. State of HCX activation key.
392
+ # Corresponds to the JSON property `state`
393
+ # @return [String]
394
+ attr_accessor :state
395
+
396
+ # Output only. System-generated unique identifier for the resource.
397
+ # Corresponds to the JSON property `uid`
398
+ # @return [String]
399
+ attr_accessor :uid
400
+
401
+ def initialize(**args)
402
+ update!(**args)
403
+ end
404
+
405
+ # Update properties of this object
406
+ def update!(**args)
407
+ @activation_key = args[:activation_key] if args.key?(:activation_key)
408
+ @create_time = args[:create_time] if args.key?(:create_time)
409
+ @name = args[:name] if args.key?(:name)
410
+ @state = args[:state] if args.key?(:state)
411
+ @uid = args[:uid] if args.key?(:uid)
412
+ end
413
+ end
414
+
415
+ # Response message for VmwareEngine.ListClusters
416
+ class ListClustersResponse
417
+ include Google::Apis::Core::Hashable
418
+
419
+ # A list of private cloud clusters.
420
+ # Corresponds to the JSON property `clusters`
421
+ # @return [Array<Google::Apis::VmwareengineV1::Cluster>]
422
+ attr_accessor :clusters
423
+
424
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
425
+ # field is omitted, there are no subsequent pages.
426
+ # Corresponds to the JSON property `nextPageToken`
427
+ # @return [String]
428
+ attr_accessor :next_page_token
429
+
430
+ # Locations that could not be reached when making an aggregated query using
431
+ # wildcards.
432
+ # Corresponds to the JSON property `unreachable`
433
+ # @return [Array<String>]
434
+ attr_accessor :unreachable
435
+
436
+ def initialize(**args)
437
+ update!(**args)
438
+ end
439
+
440
+ # Update properties of this object
441
+ def update!(**args)
442
+ @clusters = args[:clusters] if args.key?(:clusters)
443
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
444
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
445
+ end
446
+ end
447
+
448
+ # Response message for VmwareEngine.ListHcxActivationKeys
449
+ class ListHcxActivationKeysResponse
450
+ include Google::Apis::Core::Hashable
451
+
452
+ # List of HCX activation keys.
453
+ # Corresponds to the JSON property `hcxActivationKeys`
454
+ # @return [Array<Google::Apis::VmwareengineV1::HcxActivationKey>]
455
+ attr_accessor :hcx_activation_keys
456
+
457
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
458
+ # field is omitted, there are no subsequent pages.
459
+ # Corresponds to the JSON property `nextPageToken`
460
+ # @return [String]
461
+ attr_accessor :next_page_token
462
+
463
+ # Locations that could not be reached when making an aggregated query using
464
+ # wildcards.
465
+ # Corresponds to the JSON property `unreachable`
466
+ # @return [Array<String>]
467
+ attr_accessor :unreachable
468
+
469
+ def initialize(**args)
470
+ update!(**args)
471
+ end
472
+
473
+ # Update properties of this object
474
+ def update!(**args)
475
+ @hcx_activation_keys = args[:hcx_activation_keys] if args.key?(:hcx_activation_keys)
476
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
477
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
478
+ end
479
+ end
480
+
481
+ # The response message for Locations.ListLocations.
482
+ class ListLocationsResponse
483
+ include Google::Apis::Core::Hashable
484
+
485
+ # A list of locations that matches the specified filter in the request.
486
+ # Corresponds to the JSON property `locations`
487
+ # @return [Array<Google::Apis::VmwareengineV1::Location>]
488
+ attr_accessor :locations
489
+
490
+ # The standard List next-page token.
491
+ # Corresponds to the JSON property `nextPageToken`
492
+ # @return [String]
493
+ attr_accessor :next_page_token
494
+
495
+ def initialize(**args)
496
+ update!(**args)
497
+ end
498
+
499
+ # Update properties of this object
500
+ def update!(**args)
501
+ @locations = args[:locations] if args.key?(:locations)
502
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
503
+ end
504
+ end
505
+
506
+ # Response message for VmwareEngine.ListNetworkPolicies
507
+ class ListNetworkPoliciesResponse
508
+ include Google::Apis::Core::Hashable
509
+
510
+ # A list of network policies.
511
+ # Corresponds to the JSON property `networkPolicies`
512
+ # @return [Array<Google::Apis::VmwareengineV1::NetworkPolicy>]
513
+ attr_accessor :network_policies
514
+
515
+ # A token, which can be send as `page_token` to retrieve the next page. If this
516
+ # field is omitted, there are no subsequent pages.
517
+ # Corresponds to the JSON property `nextPageToken`
518
+ # @return [String]
519
+ attr_accessor :next_page_token
520
+
521
+ # Locations that could not be reached when making an aggregated query using
522
+ # wildcards.
523
+ # Corresponds to the JSON property `unreachable`
524
+ # @return [Array<String>]
525
+ attr_accessor :unreachable
526
+
527
+ def initialize(**args)
528
+ update!(**args)
529
+ end
530
+
531
+ # Update properties of this object
532
+ def update!(**args)
533
+ @network_policies = args[:network_policies] if args.key?(:network_policies)
534
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
535
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
536
+ end
537
+ end
538
+
539
+ # Response message for VmwareEngine.ListNodeTypes
540
+ class ListNodeTypesResponse
541
+ include Google::Apis::Core::Hashable
542
+
543
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
544
+ # field is omitted, there are no subsequent pages.
545
+ # Corresponds to the JSON property `nextPageToken`
546
+ # @return [String]
547
+ attr_accessor :next_page_token
548
+
549
+ # A list of Node Types.
550
+ # Corresponds to the JSON property `nodeTypes`
551
+ # @return [Array<Google::Apis::VmwareengineV1::NodeType>]
552
+ attr_accessor :node_types
553
+
554
+ # Locations that could not be reached when making an aggregated query using
555
+ # wildcards.
556
+ # Corresponds to the JSON property `unreachable`
557
+ # @return [Array<String>]
558
+ attr_accessor :unreachable
559
+
560
+ def initialize(**args)
561
+ update!(**args)
562
+ end
563
+
564
+ # Update properties of this object
565
+ def update!(**args)
566
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
567
+ @node_types = args[:node_types] if args.key?(:node_types)
568
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
569
+ end
570
+ end
571
+
572
+ # The response message for Operations.ListOperations.
573
+ class ListOperationsResponse
574
+ include Google::Apis::Core::Hashable
575
+
576
+ # The standard List next-page token.
577
+ # Corresponds to the JSON property `nextPageToken`
578
+ # @return [String]
579
+ attr_accessor :next_page_token
580
+
581
+ # A list of operations that matches the specified filter in the request.
582
+ # Corresponds to the JSON property `operations`
583
+ # @return [Array<Google::Apis::VmwareengineV1::Operation>]
584
+ attr_accessor :operations
585
+
586
+ def initialize(**args)
587
+ update!(**args)
588
+ end
589
+
590
+ # Update properties of this object
591
+ def update!(**args)
592
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
593
+ @operations = args[:operations] if args.key?(:operations)
594
+ end
595
+ end
596
+
597
+ # Response message for VmwareEngine.ListPrivateClouds
598
+ class ListPrivateCloudsResponse
599
+ include Google::Apis::Core::Hashable
600
+
601
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
602
+ # field is omitted, there are no subsequent pages.
603
+ # Corresponds to the JSON property `nextPageToken`
604
+ # @return [String]
605
+ attr_accessor :next_page_token
606
+
607
+ # A list of private clouds.
608
+ # Corresponds to the JSON property `privateClouds`
609
+ # @return [Array<Google::Apis::VmwareengineV1::PrivateCloud>]
610
+ attr_accessor :private_clouds
611
+
612
+ # Locations that could not be reached when making an aggregated query using
613
+ # wildcards.
614
+ # Corresponds to the JSON property `unreachable`
615
+ # @return [Array<String>]
616
+ attr_accessor :unreachable
617
+
618
+ def initialize(**args)
619
+ update!(**args)
620
+ end
621
+
622
+ # Update properties of this object
623
+ def update!(**args)
624
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
625
+ @private_clouds = args[:private_clouds] if args.key?(:private_clouds)
626
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
627
+ end
628
+ end
629
+
630
+ # Response message for VmwareEngine.ListPrivateConnectionPeeringRoutes
631
+ class ListPrivateConnectionPeeringRoutesResponse
632
+ include Google::Apis::Core::Hashable
633
+
634
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
635
+ # field is omitted, there are no subsequent pages.
636
+ # Corresponds to the JSON property `nextPageToken`
637
+ # @return [String]
638
+ attr_accessor :next_page_token
639
+
640
+ # A list of peering routes.
641
+ # Corresponds to the JSON property `peeringRoutes`
642
+ # @return [Array<Google::Apis::VmwareengineV1::PeeringRoute>]
643
+ attr_accessor :peering_routes
644
+
645
+ def initialize(**args)
646
+ update!(**args)
647
+ end
648
+
649
+ # Update properties of this object
650
+ def update!(**args)
651
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
652
+ @peering_routes = args[:peering_routes] if args.key?(:peering_routes)
653
+ end
654
+ end
655
+
656
+ # Response message for VmwareEngine.ListPrivateConnections
657
+ class ListPrivateConnectionsResponse
658
+ include Google::Apis::Core::Hashable
659
+
660
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
661
+ # field is omitted, there are no subsequent pages.
662
+ # Corresponds to the JSON property `nextPageToken`
663
+ # @return [String]
664
+ attr_accessor :next_page_token
665
+
666
+ # A list of private connections.
667
+ # Corresponds to the JSON property `privateConnections`
668
+ # @return [Array<Google::Apis::VmwareengineV1::PrivateConnection>]
669
+ attr_accessor :private_connections
670
+
671
+ # Unreachable resources.
672
+ # Corresponds to the JSON property `unreachable`
673
+ # @return [Array<String>]
674
+ attr_accessor :unreachable
675
+
676
+ def initialize(**args)
677
+ update!(**args)
678
+ end
679
+
680
+ # Update properties of this object
681
+ def update!(**args)
682
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
683
+ @private_connections = args[:private_connections] if args.key?(:private_connections)
684
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
685
+ end
686
+ end
687
+
688
+ # Response message for VmwareEngine.ListSubnets
689
+ class ListSubnetsResponse
690
+ include Google::Apis::Core::Hashable
691
+
692
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
693
+ # field is omitted, there are no subsequent pages.
694
+ # Corresponds to the JSON property `nextPageToken`
695
+ # @return [String]
696
+ attr_accessor :next_page_token
697
+
698
+ # A list of subnets.
699
+ # Corresponds to the JSON property `subnets`
700
+ # @return [Array<Google::Apis::VmwareengineV1::Subnet>]
701
+ attr_accessor :subnets
702
+
703
+ # Locations that could not be reached when making an aggregated query using
704
+ # wildcards.
705
+ # Corresponds to the JSON property `unreachable`
706
+ # @return [Array<String>]
707
+ attr_accessor :unreachable
708
+
709
+ def initialize(**args)
710
+ update!(**args)
711
+ end
712
+
713
+ # Update properties of this object
714
+ def update!(**args)
715
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
716
+ @subnets = args[:subnets] if args.key?(:subnets)
717
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
718
+ end
719
+ end
720
+
721
+ # Response message for VmwareEngine.ListVmwareEngineNetworks
722
+ class ListVmwareEngineNetworksResponse
723
+ include Google::Apis::Core::Hashable
724
+
725
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
726
+ # field is omitted, there are no subsequent pages.
727
+ # Corresponds to the JSON property `nextPageToken`
728
+ # @return [String]
729
+ attr_accessor :next_page_token
730
+
731
+ # Unreachable resources.
732
+ # Corresponds to the JSON property `unreachable`
733
+ # @return [Array<String>]
734
+ attr_accessor :unreachable
735
+
736
+ # A list of VMware Engine networks.
737
+ # Corresponds to the JSON property `vmwareEngineNetworks`
738
+ # @return [Array<Google::Apis::VmwareengineV1::VmwareEngineNetwork>]
739
+ attr_accessor :vmware_engine_networks
740
+
741
+ def initialize(**args)
742
+ update!(**args)
743
+ end
744
+
745
+ # Update properties of this object
746
+ def update!(**args)
747
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
748
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
749
+ @vmware_engine_networks = args[:vmware_engine_networks] if args.key?(:vmware_engine_networks)
750
+ end
751
+ end
752
+
753
+ # A resource that represents a Google Cloud location.
754
+ class Location
755
+ include Google::Apis::Core::Hashable
756
+
757
+ # The friendly name for this location, typically a nearby city name. For example,
758
+ # "Tokyo".
759
+ # Corresponds to the JSON property `displayName`
760
+ # @return [String]
761
+ attr_accessor :display_name
762
+
763
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
764
+ # region": "us-east1"`
765
+ # Corresponds to the JSON property `labels`
766
+ # @return [Hash<String,String>]
767
+ attr_accessor :labels
768
+
769
+ # The canonical id for this location. For example: `"us-east1"`.
770
+ # Corresponds to the JSON property `locationId`
771
+ # @return [String]
772
+ attr_accessor :location_id
773
+
774
+ # Service-specific metadata. For example the available capacity at the given
775
+ # location.
776
+ # Corresponds to the JSON property `metadata`
777
+ # @return [Hash<String,Object>]
778
+ attr_accessor :metadata
779
+
780
+ # Resource name for the location, which may vary between implementations. For
781
+ # example: `"projects/example-project/locations/us-east1"`
782
+ # Corresponds to the JSON property `name`
783
+ # @return [String]
784
+ attr_accessor :name
785
+
786
+ def initialize(**args)
787
+ update!(**args)
788
+ end
789
+
790
+ # Update properties of this object
791
+ def update!(**args)
792
+ @display_name = args[:display_name] if args.key?(:display_name)
793
+ @labels = args[:labels] if args.key?(:labels)
794
+ @location_id = args[:location_id] if args.key?(:location_id)
795
+ @metadata = args[:metadata] if args.key?(:metadata)
796
+ @name = args[:name] if args.key?(:name)
797
+ end
798
+ end
799
+
800
+ # Management cluster configuration.
801
+ class ManagementCluster
802
+ include Google::Apis::Core::Hashable
803
+
804
+ # Required. The user-provided identifier of the new `Cluster`. The identifier
805
+ # must meet the following requirements: * Only contains 1-63 alphanumeric
806
+ # characters and hyphens * Begins with an alphabetical character * Ends with a
807
+ # non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](
808
+ # https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)
809
+ # Corresponds to the JSON property `clusterId`
810
+ # @return [String]
811
+ attr_accessor :cluster_id
812
+
813
+ # Required. The map of cluster node types in this cluster, where the key is
814
+ # canonical identifier of the node type (corresponds to the `NodeType`).
815
+ # Corresponds to the JSON property `nodeTypeConfigs`
816
+ # @return [Hash<String,Google::Apis::VmwareengineV1::NodeTypeConfig>]
817
+ attr_accessor :node_type_configs
818
+
819
+ def initialize(**args)
820
+ update!(**args)
821
+ end
822
+
823
+ # Update properties of this object
824
+ def update!(**args)
825
+ @cluster_id = args[:cluster_id] if args.key?(:cluster_id)
826
+ @node_type_configs = args[:node_type_configs] if args.key?(:node_type_configs)
827
+ end
828
+ end
829
+
830
+ # Network configuration in the consumer project with which the peering has to be
831
+ # done.
832
+ class NetworkConfig
833
+ include Google::Apis::Core::Hashable
834
+
835
+ # Required. Management CIDR used by VMware management appliances.
836
+ # Corresponds to the JSON property `managementCidr`
837
+ # @return [String]
838
+ attr_accessor :management_cidr
839
+
840
+ # Output only. The IP address layout version of the management IP address range.
841
+ # Possible versions include: * `managementIpAddressLayoutVersion=1`: Indicates
842
+ # the legacy IP address layout used by some existing private clouds. This is no
843
+ # longer supported for new private clouds as it does not support all features. *
844
+ # `managementIpAddressLayoutVersion=2`: Indicates the latest IP address layout
845
+ # used by all newly created private clouds. This version supports all current
846
+ # features.
847
+ # Corresponds to the JSON property `managementIpAddressLayoutVersion`
848
+ # @return [Fixnum]
849
+ attr_accessor :management_ip_address_layout_version
850
+
851
+ # Optional. The relative resource name of the VMware Engine network attached to
852
+ # the private cloud. Specify the name in the following form: `projects/`project`/
853
+ # locations/`location`/vmwareEngineNetworks/`vmware_engine_network_id`` where ``
854
+ # project`` can either be a project number or a project ID.
855
+ # Corresponds to the JSON property `vmwareEngineNetwork`
856
+ # @return [String]
857
+ attr_accessor :vmware_engine_network
858
+
859
+ # Output only. The canonical name of the VMware Engine network in the form: `
860
+ # projects/`project_number`/locations/`location`/vmwareEngineNetworks/`
861
+ # vmware_engine_network_id``
862
+ # Corresponds to the JSON property `vmwareEngineNetworkCanonical`
863
+ # @return [String]
864
+ attr_accessor :vmware_engine_network_canonical
865
+
866
+ def initialize(**args)
867
+ update!(**args)
868
+ end
869
+
870
+ # Update properties of this object
871
+ def update!(**args)
872
+ @management_cidr = args[:management_cidr] if args.key?(:management_cidr)
873
+ @management_ip_address_layout_version = args[:management_ip_address_layout_version] if args.key?(:management_ip_address_layout_version)
874
+ @vmware_engine_network = args[:vmware_engine_network] if args.key?(:vmware_engine_network)
875
+ @vmware_engine_network_canonical = args[:vmware_engine_network_canonical] if args.key?(:vmware_engine_network_canonical)
876
+ end
877
+ end
878
+
879
+ # Represents a network policy resource. Network policies are regional resources.
880
+ # You can use a network policy to enable or disable internet access and external
881
+ # IP access. Network policies are associated with a VMware Engine network, which
882
+ # might span across regions. For a given region, a network policy applies to all
883
+ # private clouds in the VMware Engine network associated with the policy.
884
+ class NetworkPolicy
885
+ include Google::Apis::Core::Hashable
886
+
887
+ # Output only. Creation time of this resource.
888
+ # Corresponds to the JSON property `createTime`
889
+ # @return [String]
890
+ attr_accessor :create_time
891
+
892
+ # Optional. User-provided description for this network policy.
893
+ # Corresponds to the JSON property `description`
894
+ # @return [String]
895
+ attr_accessor :description
896
+
897
+ # Required. IP address range in CIDR notation used to create internet access and
898
+ # external IP access. An RFC 1918 CIDR block, with a "/26" prefix, is required.
899
+ # The range cannot overlap with any prefixes either in the consumer VPC network
900
+ # or in use by the private clouds attached to that VPC network.
901
+ # Corresponds to the JSON property `edgeServicesCidr`
902
+ # @return [String]
903
+ attr_accessor :edge_services_cidr
904
+
905
+ # Represents a network service that is managed by a `NetworkPolicy` resource. A
906
+ # network service provides a way to control an aspect of external access to
907
+ # VMware workloads. For example, whether the VMware workloads in the private
908
+ # clouds governed by a network policy can access or be accessed from the
909
+ # internet.
910
+ # Corresponds to the JSON property `externalIp`
911
+ # @return [Google::Apis::VmwareengineV1::NetworkService]
912
+ attr_accessor :external_ip
913
+
914
+ # Represents a network service that is managed by a `NetworkPolicy` resource. A
915
+ # network service provides a way to control an aspect of external access to
916
+ # VMware workloads. For example, whether the VMware workloads in the private
917
+ # clouds governed by a network policy can access or be accessed from the
918
+ # internet.
919
+ # Corresponds to the JSON property `internetAccess`
920
+ # @return [Google::Apis::VmwareengineV1::NetworkService]
921
+ attr_accessor :internet_access
922
+
923
+ # Output only. The resource name of this network policy. Resource names are
924
+ # schemeless URIs that follow the conventions in https://cloud.google.com/apis/
925
+ # design/resource_names. For example: `projects/my-project/locations/us-central1/
926
+ # networkPolicies/my-network-policy`
927
+ # Corresponds to the JSON property `name`
928
+ # @return [String]
929
+ attr_accessor :name
930
+
931
+ # Output only. System-generated unique identifier for the resource.
932
+ # Corresponds to the JSON property `uid`
933
+ # @return [String]
934
+ attr_accessor :uid
935
+
936
+ # Output only. Last update time of this resource.
937
+ # Corresponds to the JSON property `updateTime`
938
+ # @return [String]
939
+ attr_accessor :update_time
940
+
941
+ # Optional. The relative resource name of the VMware Engine network. Specify the
942
+ # name in the following form: `projects/`project`/locations/`location`/
943
+ # vmwareEngineNetworks/`vmware_engine_network_id`` where ``project`` can either
944
+ # be a project number or a project ID.
945
+ # Corresponds to the JSON property `vmwareEngineNetwork`
946
+ # @return [String]
947
+ attr_accessor :vmware_engine_network
948
+
949
+ # Output only. The canonical name of the VMware Engine network in the form: `
950
+ # projects/`project_number`/locations/`location`/vmwareEngineNetworks/`
951
+ # vmware_engine_network_id``
952
+ # Corresponds to the JSON property `vmwareEngineNetworkCanonical`
953
+ # @return [String]
954
+ attr_accessor :vmware_engine_network_canonical
955
+
956
+ def initialize(**args)
957
+ update!(**args)
958
+ end
959
+
960
+ # Update properties of this object
961
+ def update!(**args)
962
+ @create_time = args[:create_time] if args.key?(:create_time)
963
+ @description = args[:description] if args.key?(:description)
964
+ @edge_services_cidr = args[:edge_services_cidr] if args.key?(:edge_services_cidr)
965
+ @external_ip = args[:external_ip] if args.key?(:external_ip)
966
+ @internet_access = args[:internet_access] if args.key?(:internet_access)
967
+ @name = args[:name] if args.key?(:name)
968
+ @uid = args[:uid] if args.key?(:uid)
969
+ @update_time = args[:update_time] if args.key?(:update_time)
970
+ @vmware_engine_network = args[:vmware_engine_network] if args.key?(:vmware_engine_network)
971
+ @vmware_engine_network_canonical = args[:vmware_engine_network_canonical] if args.key?(:vmware_engine_network_canonical)
972
+ end
973
+ end
974
+
975
+ # Represents a network service that is managed by a `NetworkPolicy` resource. A
976
+ # network service provides a way to control an aspect of external access to
977
+ # VMware workloads. For example, whether the VMware workloads in the private
978
+ # clouds governed by a network policy can access or be accessed from the
979
+ # internet.
980
+ class NetworkService
981
+ include Google::Apis::Core::Hashable
982
+
983
+ # True if the service is enabled; false otherwise.
984
+ # Corresponds to the JSON property `enabled`
985
+ # @return [Boolean]
986
+ attr_accessor :enabled
987
+ alias_method :enabled?, :enabled
988
+
989
+ # Output only. State of the service. New values may be added to this enum when
990
+ # appropriate.
991
+ # Corresponds to the JSON property `state`
992
+ # @return [String]
993
+ attr_accessor :state
994
+
995
+ def initialize(**args)
996
+ update!(**args)
997
+ end
998
+
999
+ # Update properties of this object
1000
+ def update!(**args)
1001
+ @enabled = args[:enabled] if args.key?(:enabled)
1002
+ @state = args[:state] if args.key?(:state)
1003
+ end
1004
+ end
1005
+
1006
+ # Describes node type.
1007
+ class NodeType
1008
+ include Google::Apis::Core::Hashable
1009
+
1010
+ # Output only. List of possible values of custom core count.
1011
+ # Corresponds to the JSON property `availableCustomCoreCounts`
1012
+ # @return [Array<Fixnum>]
1013
+ attr_accessor :available_custom_core_counts
1014
+
1015
+ # Output only. The amount of storage available, defined in GB.
1016
+ # Corresponds to the JSON property `diskSizeGb`
1017
+ # @return [Fixnum]
1018
+ attr_accessor :disk_size_gb
1019
+
1020
+ # Output only. The friendly name for this node type. For example: ve1-standard-
1021
+ # 72
1022
+ # Corresponds to the JSON property `displayName`
1023
+ # @return [String]
1024
+ attr_accessor :display_name
1025
+
1026
+ # Output only. The amount of physical memory available, defined in GB.
1027
+ # Corresponds to the JSON property `memoryGb`
1028
+ # @return [Fixnum]
1029
+ attr_accessor :memory_gb
1030
+
1031
+ # Output only. The resource name of this node type. Resource names are
1032
+ # schemeless URIs that follow the conventions in https://cloud.google.com/apis/
1033
+ # design/resource_names. For example: `projects/my-proj/locations/us-central1-a/
1034
+ # nodeTypes/standard-72`
1035
+ # Corresponds to the JSON property `name`
1036
+ # @return [String]
1037
+ attr_accessor :name
1038
+
1039
+ # Output only. The canonical identifier of the node type (corresponds to the `
1040
+ # NodeType`). For example: standard-72.
1041
+ # Corresponds to the JSON property `nodeTypeId`
1042
+ # @return [String]
1043
+ attr_accessor :node_type_id
1044
+
1045
+ # Output only. The total number of CPU cores in a single node.
1046
+ # Corresponds to the JSON property `totalCoreCount`
1047
+ # @return [Fixnum]
1048
+ attr_accessor :total_core_count
1049
+
1050
+ # Output only. The total number of virtual CPUs in a single node.
1051
+ # Corresponds to the JSON property `virtualCpuCount`
1052
+ # @return [Fixnum]
1053
+ attr_accessor :virtual_cpu_count
1054
+
1055
+ def initialize(**args)
1056
+ update!(**args)
1057
+ end
1058
+
1059
+ # Update properties of this object
1060
+ def update!(**args)
1061
+ @available_custom_core_counts = args[:available_custom_core_counts] if args.key?(:available_custom_core_counts)
1062
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1063
+ @display_name = args[:display_name] if args.key?(:display_name)
1064
+ @memory_gb = args[:memory_gb] if args.key?(:memory_gb)
1065
+ @name = args[:name] if args.key?(:name)
1066
+ @node_type_id = args[:node_type_id] if args.key?(:node_type_id)
1067
+ @total_core_count = args[:total_core_count] if args.key?(:total_core_count)
1068
+ @virtual_cpu_count = args[:virtual_cpu_count] if args.key?(:virtual_cpu_count)
1069
+ end
1070
+ end
1071
+
1072
+ # Information about the type and number of nodes associated with the cluster.
1073
+ class NodeTypeConfig
1074
+ include Google::Apis::Core::Hashable
1075
+
1076
+ # Optional. Customized number of cores available to each node of the type. This
1077
+ # number must always be one of `nodeType.availableCustomCoreCounts`. If zero is
1078
+ # provided max value from `nodeType.availableCustomCoreCounts` will be used.
1079
+ # Corresponds to the JSON property `customCoreCount`
1080
+ # @return [Fixnum]
1081
+ attr_accessor :custom_core_count
1082
+
1083
+ # Required. The number of nodes of this type in the cluster
1084
+ # Corresponds to the JSON property `nodeCount`
1085
+ # @return [Fixnum]
1086
+ attr_accessor :node_count
1087
+
1088
+ def initialize(**args)
1089
+ update!(**args)
1090
+ end
1091
+
1092
+ # Update properties of this object
1093
+ def update!(**args)
1094
+ @custom_core_count = args[:custom_core_count] if args.key?(:custom_core_count)
1095
+ @node_count = args[:node_count] if args.key?(:node_count)
1096
+ end
1097
+ end
1098
+
1099
+ # Details about a NSX Manager appliance.
1100
+ class Nsx
1101
+ include Google::Apis::Core::Hashable
1102
+
1103
+ # Fully qualified domain name of the appliance.
1104
+ # Corresponds to the JSON property `fqdn`
1105
+ # @return [String]
1106
+ attr_accessor :fqdn
1107
+
1108
+ # Internal IP address of the appliance.
1109
+ # Corresponds to the JSON property `internalIp`
1110
+ # @return [String]
1111
+ attr_accessor :internal_ip
1112
+
1113
+ # Output only. The state of the appliance.
1114
+ # Corresponds to the JSON property `state`
1115
+ # @return [String]
1116
+ attr_accessor :state
1117
+
1118
+ # Version of the appliance.
1119
+ # Corresponds to the JSON property `version`
1120
+ # @return [String]
1121
+ attr_accessor :version
1122
+
1123
+ def initialize(**args)
1124
+ update!(**args)
1125
+ end
1126
+
1127
+ # Update properties of this object
1128
+ def update!(**args)
1129
+ @fqdn = args[:fqdn] if args.key?(:fqdn)
1130
+ @internal_ip = args[:internal_ip] if args.key?(:internal_ip)
1131
+ @state = args[:state] if args.key?(:state)
1132
+ @version = args[:version] if args.key?(:version)
1133
+ end
1134
+ end
1135
+
1136
+ # This resource represents a long-running operation that is the result of a
1137
+ # network API call.
1138
+ class Operation
1139
+ include Google::Apis::Core::Hashable
1140
+
1141
+ # If the value is `false`, it means the operation is still in progress. If `true`
1142
+ # , the operation is completed, and either `error` or `response` is available.
1143
+ # Corresponds to the JSON property `done`
1144
+ # @return [Boolean]
1145
+ attr_accessor :done
1146
+ alias_method :done?, :done
1147
+
1148
+ # The `Status` type defines a logical error model that is suitable for different
1149
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1150
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1151
+ # data: error code, error message, and error details. You can find out more
1152
+ # about this error model and how to work with it in the [API Design Guide](https:
1153
+ # //cloud.google.com/apis/design/errors).
1154
+ # Corresponds to the JSON property `error`
1155
+ # @return [Google::Apis::VmwareengineV1::Status]
1156
+ attr_accessor :error
1157
+
1158
+ # Service-specific metadata associated with the operation. It typically contains
1159
+ # progress information and common metadata such as create time. Some services
1160
+ # might not provide such metadata. Any method that returns a long-running
1161
+ # operation should document the metadata type, if any.
1162
+ # Corresponds to the JSON property `metadata`
1163
+ # @return [Hash<String,Object>]
1164
+ attr_accessor :metadata
1165
+
1166
+ # The server-assigned name, which is only unique within the same service that
1167
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1168
+ # be a resource name ending with `operations/`unique_id``.
1169
+ # Corresponds to the JSON property `name`
1170
+ # @return [String]
1171
+ attr_accessor :name
1172
+
1173
+ # The normal, successful response of the operation. If the original method
1174
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
1175
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
1176
+ # response should be the resource. For other methods, the response should have
1177
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
1178
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
1179
+ # `TakeSnapshotResponse`.
1180
+ # Corresponds to the JSON property `response`
1181
+ # @return [Hash<String,Object>]
1182
+ attr_accessor :response
1183
+
1184
+ def initialize(**args)
1185
+ update!(**args)
1186
+ end
1187
+
1188
+ # Update properties of this object
1189
+ def update!(**args)
1190
+ @done = args[:done] if args.key?(:done)
1191
+ @error = args[:error] if args.key?(:error)
1192
+ @metadata = args[:metadata] if args.key?(:metadata)
1193
+ @name = args[:name] if args.key?(:name)
1194
+ @response = args[:response] if args.key?(:response)
1195
+ end
1196
+ end
1197
+
1198
+ # Represents the metadata of the long-running operation.
1199
+ class OperationMetadata
1200
+ include Google::Apis::Core::Hashable
1201
+
1202
+ # Output only. API version used to start the operation.
1203
+ # Corresponds to the JSON property `apiVersion`
1204
+ # @return [String]
1205
+ attr_accessor :api_version
1206
+
1207
+ # Output only. The time the operation was created.
1208
+ # Corresponds to the JSON property `createTime`
1209
+ # @return [String]
1210
+ attr_accessor :create_time
1211
+
1212
+ # Output only. The time the operation finished running.
1213
+ # Corresponds to the JSON property `endTime`
1214
+ # @return [String]
1215
+ attr_accessor :end_time
1216
+
1217
+ # Output only. True if the user has requested cancellation of the operation;
1218
+ # false otherwise. Operations that have successfully been cancelled have
1219
+ # Operation.error value with a google.rpc.Status.code of 1, corresponding to `
1220
+ # Code.CANCELLED`.
1221
+ # Corresponds to the JSON property `requestedCancellation`
1222
+ # @return [Boolean]
1223
+ attr_accessor :requested_cancellation
1224
+ alias_method :requested_cancellation?, :requested_cancellation
1225
+
1226
+ # Output only. Human-readable status of the operation, if any.
1227
+ # Corresponds to the JSON property `statusMessage`
1228
+ # @return [String]
1229
+ attr_accessor :status_message
1230
+
1231
+ # Output only. Server-defined resource path for the target of the operation.
1232
+ # Corresponds to the JSON property `target`
1233
+ # @return [String]
1234
+ attr_accessor :target
1235
+
1236
+ # Output only. Name of the verb executed by the operation.
1237
+ # Corresponds to the JSON property `verb`
1238
+ # @return [String]
1239
+ attr_accessor :verb
1240
+
1241
+ def initialize(**args)
1242
+ update!(**args)
1243
+ end
1244
+
1245
+ # Update properties of this object
1246
+ def update!(**args)
1247
+ @api_version = args[:api_version] if args.key?(:api_version)
1248
+ @create_time = args[:create_time] if args.key?(:create_time)
1249
+ @end_time = args[:end_time] if args.key?(:end_time)
1250
+ @requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
1251
+ @status_message = args[:status_message] if args.key?(:status_message)
1252
+ @target = args[:target] if args.key?(:target)
1253
+ @verb = args[:verb] if args.key?(:verb)
1254
+ end
1255
+ end
1256
+
1257
+ # Exchanged network peering route.
1258
+ class PeeringRoute
1259
+ include Google::Apis::Core::Hashable
1260
+
1261
+ # Output only. Destination range of the peering route in CIDR notation.
1262
+ # Corresponds to the JSON property `destRange`
1263
+ # @return [String]
1264
+ attr_accessor :dest_range
1265
+
1266
+ # Output only. Direction of the routes exchanged with the peer network, from the
1267
+ # VMware Engine network perspective: * Routes of direction `INCOMING` are
1268
+ # imported from the peer network. * Routes of direction `OUTGOING` are exported
1269
+ # from the intranet VPC network of the VMware Engine network.
1270
+ # Corresponds to the JSON property `direction`
1271
+ # @return [String]
1272
+ attr_accessor :direction
1273
+
1274
+ # Output only. True if the peering route has been imported from a peered VPC
1275
+ # network; false otherwise. The import happens if the field `NetworkPeering.
1276
+ # importCustomRoutes` is true for this network, `NetworkPeering.
1277
+ # exportCustomRoutes` is true for the peer VPC network, and the import does not
1278
+ # result in a route conflict.
1279
+ # Corresponds to the JSON property `imported`
1280
+ # @return [Boolean]
1281
+ attr_accessor :imported
1282
+ alias_method :imported?, :imported
1283
+
1284
+ # Output only. Region containing the next hop of the peering route. This field
1285
+ # only applies to dynamic routes in the peer VPC network.
1286
+ # Corresponds to the JSON property `nextHopRegion`
1287
+ # @return [String]
1288
+ attr_accessor :next_hop_region
1289
+
1290
+ # Output only. The priority of the peering route.
1291
+ # Corresponds to the JSON property `priority`
1292
+ # @return [Fixnum]
1293
+ attr_accessor :priority
1294
+
1295
+ # Output only. Type of the route in the peer VPC network.
1296
+ # Corresponds to the JSON property `type`
1297
+ # @return [String]
1298
+ attr_accessor :type
1299
+
1300
+ def initialize(**args)
1301
+ update!(**args)
1302
+ end
1303
+
1304
+ # Update properties of this object
1305
+ def update!(**args)
1306
+ @dest_range = args[:dest_range] if args.key?(:dest_range)
1307
+ @direction = args[:direction] if args.key?(:direction)
1308
+ @imported = args[:imported] if args.key?(:imported)
1309
+ @next_hop_region = args[:next_hop_region] if args.key?(:next_hop_region)
1310
+ @priority = args[:priority] if args.key?(:priority)
1311
+ @type = args[:type] if args.key?(:type)
1312
+ end
1313
+ end
1314
+
1315
+ # An Identity and Access Management (IAM) policy, which specifies access
1316
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1317
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1318
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1319
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1320
+ # an IAM predefined role or a user-created custom role. For some types of Google
1321
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1322
+ # logical expression that allows access to a resource only if the expression
1323
+ # evaluates to `true`. A condition can add constraints based on attributes of
1324
+ # the request, the resource, or both. To learn which resources support
1325
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1326
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1327
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1328
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1329
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1330
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1331
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1332
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1333
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1334
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1335
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1336
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1337
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1338
+ # title: expirable access description: Does not grant access after Sep 2020
1339
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1340
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1341
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1342
+ class Policy
1343
+ include Google::Apis::Core::Hashable
1344
+
1345
+ # Specifies cloud audit logging configuration for this policy.
1346
+ # Corresponds to the JSON property `auditConfigs`
1347
+ # @return [Array<Google::Apis::VmwareengineV1::AuditConfig>]
1348
+ attr_accessor :audit_configs
1349
+
1350
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1351
+ # specify a `condition` that determines how and when the `bindings` are applied.
1352
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1353
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1354
+ # can be Google groups. Each occurrence of a principal counts towards these
1355
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1356
+ # example.com`, and not to any other principal, then you can add another 1,450
1357
+ # principals to the `bindings` in the `Policy`.
1358
+ # Corresponds to the JSON property `bindings`
1359
+ # @return [Array<Google::Apis::VmwareengineV1::Binding>]
1360
+ attr_accessor :bindings
1361
+
1362
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1363
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1364
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1365
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1366
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1367
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1368
+ # applied to the same version of the policy. **Important:** If you use IAM
1369
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1370
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1371
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1372
+ # are lost.
1373
+ # Corresponds to the JSON property `etag`
1374
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1375
+ # @return [String]
1376
+ attr_accessor :etag
1377
+
1378
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1379
+ # Requests that specify an invalid value are rejected. Any operation that
1380
+ # affects conditional role bindings must specify version `3`. This requirement
1381
+ # applies to the following operations: * Getting a policy that includes a
1382
+ # conditional role binding * Adding a conditional role binding to a policy *
1383
+ # Changing a conditional role binding in a policy * Removing any role binding,
1384
+ # with or without a condition, from a policy that includes conditions **
1385
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1386
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1387
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1388
+ # conditions in the version `3` policy are lost. If a policy does not include
1389
+ # any conditions, operations on that policy may specify any valid version or
1390
+ # leave the field unset. To learn which resources support conditions in their
1391
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1392
+ # conditions/resource-policies).
1393
+ # Corresponds to the JSON property `version`
1394
+ # @return [Fixnum]
1395
+ attr_accessor :version
1396
+
1397
+ def initialize(**args)
1398
+ update!(**args)
1399
+ end
1400
+
1401
+ # Update properties of this object
1402
+ def update!(**args)
1403
+ @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
1404
+ @bindings = args[:bindings] if args.key?(:bindings)
1405
+ @etag = args[:etag] if args.key?(:etag)
1406
+ @version = args[:version] if args.key?(:version)
1407
+ end
1408
+ end
1409
+
1410
+ # Represents a private cloud resource. Private clouds of type `STANDARD` and `
1411
+ # TIME_LIMITED` are zonal resources, `STRETCHED` private clouds are regional.
1412
+ class PrivateCloud
1413
+ include Google::Apis::Core::Hashable
1414
+
1415
+ # Output only. Creation time of this resource.
1416
+ # Corresponds to the JSON property `createTime`
1417
+ # @return [String]
1418
+ attr_accessor :create_time
1419
+
1420
+ # Output only. Time when the resource was scheduled for deletion.
1421
+ # Corresponds to the JSON property `deleteTime`
1422
+ # @return [String]
1423
+ attr_accessor :delete_time
1424
+
1425
+ # User-provided description for this private cloud.
1426
+ # Corresponds to the JSON property `description`
1427
+ # @return [String]
1428
+ attr_accessor :description
1429
+
1430
+ # Output only. Time when the resource will be irreversibly deleted.
1431
+ # Corresponds to the JSON property `expireTime`
1432
+ # @return [String]
1433
+ attr_accessor :expire_time
1434
+
1435
+ # Details about a HCX Cloud Manager appliance.
1436
+ # Corresponds to the JSON property `hcx`
1437
+ # @return [Google::Apis::VmwareengineV1::Hcx]
1438
+ attr_accessor :hcx
1439
+
1440
+ # Management cluster configuration.
1441
+ # Corresponds to the JSON property `managementCluster`
1442
+ # @return [Google::Apis::VmwareengineV1::ManagementCluster]
1443
+ attr_accessor :management_cluster
1444
+
1445
+ # Output only. The resource name of this private cloud. Resource names are
1446
+ # schemeless URIs that follow the conventions in https://cloud.google.com/apis/
1447
+ # design/resource_names. For example: `projects/my-project/locations/us-central1-
1448
+ # a/privateClouds/my-cloud`
1449
+ # Corresponds to the JSON property `name`
1450
+ # @return [String]
1451
+ attr_accessor :name
1452
+
1453
+ # Network configuration in the consumer project with which the peering has to be
1454
+ # done.
1455
+ # Corresponds to the JSON property `networkConfig`
1456
+ # @return [Google::Apis::VmwareengineV1::NetworkConfig]
1457
+ attr_accessor :network_config
1458
+
1459
+ # Details about a NSX Manager appliance.
1460
+ # Corresponds to the JSON property `nsx`
1461
+ # @return [Google::Apis::VmwareengineV1::Nsx]
1462
+ attr_accessor :nsx
1463
+
1464
+ # Output only. State of the resource. New values may be added to this enum when
1465
+ # appropriate.
1466
+ # Corresponds to the JSON property `state`
1467
+ # @return [String]
1468
+ attr_accessor :state
1469
+
1470
+ # Optional. Type of the private cloud. Defaults to STANDARD.
1471
+ # Corresponds to the JSON property `type`
1472
+ # @return [String]
1473
+ attr_accessor :type
1474
+
1475
+ # Output only. System-generated unique identifier for the resource.
1476
+ # Corresponds to the JSON property `uid`
1477
+ # @return [String]
1478
+ attr_accessor :uid
1479
+
1480
+ # Output only. Last update time of this resource.
1481
+ # Corresponds to the JSON property `updateTime`
1482
+ # @return [String]
1483
+ attr_accessor :update_time
1484
+
1485
+ # Details about a vCenter Server management appliance.
1486
+ # Corresponds to the JSON property `vcenter`
1487
+ # @return [Google::Apis::VmwareengineV1::Vcenter]
1488
+ attr_accessor :vcenter
1489
+
1490
+ def initialize(**args)
1491
+ update!(**args)
1492
+ end
1493
+
1494
+ # Update properties of this object
1495
+ def update!(**args)
1496
+ @create_time = args[:create_time] if args.key?(:create_time)
1497
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
1498
+ @description = args[:description] if args.key?(:description)
1499
+ @expire_time = args[:expire_time] if args.key?(:expire_time)
1500
+ @hcx = args[:hcx] if args.key?(:hcx)
1501
+ @management_cluster = args[:management_cluster] if args.key?(:management_cluster)
1502
+ @name = args[:name] if args.key?(:name)
1503
+ @network_config = args[:network_config] if args.key?(:network_config)
1504
+ @nsx = args[:nsx] if args.key?(:nsx)
1505
+ @state = args[:state] if args.key?(:state)
1506
+ @type = args[:type] if args.key?(:type)
1507
+ @uid = args[:uid] if args.key?(:uid)
1508
+ @update_time = args[:update_time] if args.key?(:update_time)
1509
+ @vcenter = args[:vcenter] if args.key?(:vcenter)
1510
+ end
1511
+ end
1512
+
1513
+ # Private connection resource that provides connectivity for VMware Engine
1514
+ # private clouds.
1515
+ class PrivateConnection
1516
+ include Google::Apis::Core::Hashable
1517
+
1518
+ # Output only. Creation time of this resource.
1519
+ # Corresponds to the JSON property `createTime`
1520
+ # @return [String]
1521
+ attr_accessor :create_time
1522
+
1523
+ # Optional. User-provided description for this private connection.
1524
+ # Corresponds to the JSON property `description`
1525
+ # @return [String]
1526
+ attr_accessor :description
1527
+
1528
+ # Output only. The resource name of the private connection. Resource names are
1529
+ # schemeless URIs that follow the conventions in https://cloud.google.com/apis/
1530
+ # design/resource_names. For example: `projects/my-project/locations/us-central1/
1531
+ # privateConnections/my-connection`
1532
+ # Corresponds to the JSON property `name`
1533
+ # @return [String]
1534
+ attr_accessor :name
1535
+
1536
+ # Output only. VPC network peering id between given network VPC and
1537
+ # VMwareEngineNetwork.
1538
+ # Corresponds to the JSON property `peeringId`
1539
+ # @return [String]
1540
+ attr_accessor :peering_id
1541
+
1542
+ # Output only. Peering state between service network and VMware Engine network.
1543
+ # Corresponds to the JSON property `peeringState`
1544
+ # @return [String]
1545
+ attr_accessor :peering_state
1546
+
1547
+ # Optional. Routing Mode. Default value is set to GLOBAL. For type =
1548
+ # PRIVATE_SERVICE_ACCESS, this field can be set to GLOBAL or REGIONAL, for other
1549
+ # types only GLOBAL is supported.
1550
+ # Corresponds to the JSON property `routingMode`
1551
+ # @return [String]
1552
+ attr_accessor :routing_mode
1553
+
1554
+ # Required. Service network to create private connection. Specify the name in
1555
+ # the following form: `projects/`project`/global/networks/`network_id`` For type
1556
+ # = PRIVATE_SERVICE_ACCESS, this field represents servicenetworking VPC, e.g.
1557
+ # projects/project-tp/global/networks/servicenetworking. For type =
1558
+ # NETAPP_CLOUD_VOLUME, this field represents NetApp service VPC, e.g. projects/
1559
+ # project-tp/global/networks/netapp-tenant-vpc. For type = DELL_POWERSCALE, this
1560
+ # field represent Dell service VPC, e.g. projects/project-tp/global/networks/
1561
+ # dell-tenant-vpc. For type= THIRD_PARTY_SERVICE, this field could represent a
1562
+ # consumer VPC or any other producer VPC to which the VMware Engine Network
1563
+ # needs to be connected, e.g. projects/project/global/networks/vpc.
1564
+ # Corresponds to the JSON property `serviceNetwork`
1565
+ # @return [String]
1566
+ attr_accessor :service_network
1567
+
1568
+ # Output only. State of the private connection.
1569
+ # Corresponds to the JSON property `state`
1570
+ # @return [String]
1571
+ attr_accessor :state
1572
+
1573
+ # Required. Private connection type.
1574
+ # Corresponds to the JSON property `type`
1575
+ # @return [String]
1576
+ attr_accessor :type
1577
+
1578
+ # Output only. System-generated unique identifier for the resource.
1579
+ # Corresponds to the JSON property `uid`
1580
+ # @return [String]
1581
+ attr_accessor :uid
1582
+
1583
+ # Output only. Last update time of this resource.
1584
+ # Corresponds to the JSON property `updateTime`
1585
+ # @return [String]
1586
+ attr_accessor :update_time
1587
+
1588
+ # Required. The relative resource name of Legacy VMware Engine network. Specify
1589
+ # the name in the following form: `projects/`project`/locations/`location`/
1590
+ # vmwareEngineNetworks/`vmware_engine_network_id`` where ``project``, ``location`
1591
+ # ` will be same as specified in private connection resource name and ``
1592
+ # vmware_engine_network_id`` will be in the form of ``location``-default e.g.
1593
+ # projects/project/locations/us-central1/vmwareEngineNetworks/us-central1-
1594
+ # default.
1595
+ # Corresponds to the JSON property `vmwareEngineNetwork`
1596
+ # @return [String]
1597
+ attr_accessor :vmware_engine_network
1598
+
1599
+ # Output only. The canonical name of the VMware Engine network in the form: `
1600
+ # projects/`project_number`/locations/`location`/vmwareEngineNetworks/`
1601
+ # vmware_engine_network_id``
1602
+ # Corresponds to the JSON property `vmwareEngineNetworkCanonical`
1603
+ # @return [String]
1604
+ attr_accessor :vmware_engine_network_canonical
1605
+
1606
+ def initialize(**args)
1607
+ update!(**args)
1608
+ end
1609
+
1610
+ # Update properties of this object
1611
+ def update!(**args)
1612
+ @create_time = args[:create_time] if args.key?(:create_time)
1613
+ @description = args[:description] if args.key?(:description)
1614
+ @name = args[:name] if args.key?(:name)
1615
+ @peering_id = args[:peering_id] if args.key?(:peering_id)
1616
+ @peering_state = args[:peering_state] if args.key?(:peering_state)
1617
+ @routing_mode = args[:routing_mode] if args.key?(:routing_mode)
1618
+ @service_network = args[:service_network] if args.key?(:service_network)
1619
+ @state = args[:state] if args.key?(:state)
1620
+ @type = args[:type] if args.key?(:type)
1621
+ @uid = args[:uid] if args.key?(:uid)
1622
+ @update_time = args[:update_time] if args.key?(:update_time)
1623
+ @vmware_engine_network = args[:vmware_engine_network] if args.key?(:vmware_engine_network)
1624
+ @vmware_engine_network_canonical = args[:vmware_engine_network_canonical] if args.key?(:vmware_engine_network_canonical)
1625
+ end
1626
+ end
1627
+
1628
+ # Request message for VmwareEngine.ResetNsxCredentials
1629
+ class ResetNsxCredentialsRequest
1630
+ include Google::Apis::Core::Hashable
1631
+
1632
+ # Optional. A request ID to identify requests. Specify a unique request ID so
1633
+ # that if you must retry your request, the server will know to ignore the
1634
+ # request if it has already been completed. The server guarantees that a request
1635
+ # doesn't result in creation of duplicate commitments for at least 60 minutes.
1636
+ # For example, consider a situation where you make an initial request and the
1637
+ # request times out. If you make the request again with the same request ID, the
1638
+ # server can check if original operation with the same request ID was received,
1639
+ # and if so, will ignore the second request. This prevents clients from
1640
+ # accidentally creating duplicate commitments. The request ID must be a valid
1641
+ # UUID with the exception that zero UUID is not supported (00000000-0000-0000-
1642
+ # 0000-000000000000).
1643
+ # Corresponds to the JSON property `requestId`
1644
+ # @return [String]
1645
+ attr_accessor :request_id
1646
+
1647
+ def initialize(**args)
1648
+ update!(**args)
1649
+ end
1650
+
1651
+ # Update properties of this object
1652
+ def update!(**args)
1653
+ @request_id = args[:request_id] if args.key?(:request_id)
1654
+ end
1655
+ end
1656
+
1657
+ # Request message for VmwareEngine.ResetVcenterCredentials
1658
+ class ResetVcenterCredentialsRequest
1659
+ include Google::Apis::Core::Hashable
1660
+
1661
+ # Optional. A request ID to identify requests. Specify a unique request ID so
1662
+ # that if you must retry your request, the server will know to ignore the
1663
+ # request if it has already been completed. The server guarantees that a request
1664
+ # doesn't result in creation of duplicate commitments for at least 60 minutes.
1665
+ # For example, consider a situation where you make an initial request and the
1666
+ # request times out. If you make the request again with the same request ID, the
1667
+ # server can check if original operation with the same request ID was received,
1668
+ # and if so, will ignore the second request. This prevents clients from
1669
+ # accidentally creating duplicate commitments. The request ID must be a valid
1670
+ # UUID with the exception that zero UUID is not supported (00000000-0000-0000-
1671
+ # 0000-000000000000).
1672
+ # Corresponds to the JSON property `requestId`
1673
+ # @return [String]
1674
+ attr_accessor :request_id
1675
+
1676
+ def initialize(**args)
1677
+ update!(**args)
1678
+ end
1679
+
1680
+ # Update properties of this object
1681
+ def update!(**args)
1682
+ @request_id = args[:request_id] if args.key?(:request_id)
1683
+ end
1684
+ end
1685
+
1686
+ # Request message for `SetIamPolicy` method.
1687
+ class SetIamPolicyRequest
1688
+ include Google::Apis::Core::Hashable
1689
+
1690
+ # An Identity and Access Management (IAM) policy, which specifies access
1691
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1692
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1693
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1694
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1695
+ # an IAM predefined role or a user-created custom role. For some types of Google
1696
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1697
+ # logical expression that allows access to a resource only if the expression
1698
+ # evaluates to `true`. A condition can add constraints based on attributes of
1699
+ # the request, the resource, or both. To learn which resources support
1700
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1701
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ``` ` "
1702
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1703
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1704
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1705
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1706
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1707
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1708
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` ``` **YAML
1709
+ # example:** ``` bindings: - members: - user:mike@example.com - group:admins@
1710
+ # example.com - domain:google.com - serviceAccount:my-project-id@appspot.
1711
+ # gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: -
1712
+ # user:eve@example.com role: roles/resourcemanager.organizationViewer condition:
1713
+ # title: expirable access description: Does not grant access after Sep 2020
1714
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag:
1715
+ # BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the
1716
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
1717
+ # Corresponds to the JSON property `policy`
1718
+ # @return [Google::Apis::VmwareengineV1::Policy]
1719
+ attr_accessor :policy
1720
+
1721
+ # OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only
1722
+ # the fields in the mask will be modified. If no mask is provided, the following
1723
+ # default mask is used: `paths: "bindings, etag"`
1724
+ # Corresponds to the JSON property `updateMask`
1725
+ # @return [String]
1726
+ attr_accessor :update_mask
1727
+
1728
+ def initialize(**args)
1729
+ update!(**args)
1730
+ end
1731
+
1732
+ # Update properties of this object
1733
+ def update!(**args)
1734
+ @policy = args[:policy] if args.key?(:policy)
1735
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
1736
+ end
1737
+ end
1738
+
1739
+ # The `Status` type defines a logical error model that is suitable for different
1740
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1741
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1742
+ # data: error code, error message, and error details. You can find out more
1743
+ # about this error model and how to work with it in the [API Design Guide](https:
1744
+ # //cloud.google.com/apis/design/errors).
1745
+ class Status
1746
+ include Google::Apis::Core::Hashable
1747
+
1748
+ # The status code, which should be an enum value of google.rpc.Code.
1749
+ # Corresponds to the JSON property `code`
1750
+ # @return [Fixnum]
1751
+ attr_accessor :code
1752
+
1753
+ # A list of messages that carry the error details. There is a common set of
1754
+ # message types for APIs to use.
1755
+ # Corresponds to the JSON property `details`
1756
+ # @return [Array<Hash<String,Object>>]
1757
+ attr_accessor :details
1758
+
1759
+ # A developer-facing error message, which should be in English. Any user-facing
1760
+ # error message should be localized and sent in the google.rpc.Status.details
1761
+ # field, or localized by the client.
1762
+ # Corresponds to the JSON property `message`
1763
+ # @return [String]
1764
+ attr_accessor :message
1765
+
1766
+ def initialize(**args)
1767
+ update!(**args)
1768
+ end
1769
+
1770
+ # Update properties of this object
1771
+ def update!(**args)
1772
+ @code = args[:code] if args.key?(:code)
1773
+ @details = args[:details] if args.key?(:details)
1774
+ @message = args[:message] if args.key?(:message)
1775
+ end
1776
+ end
1777
+
1778
+ # Subnet in a private cloud. Either `management` subnets (such as vMotion) that
1779
+ # are read-only, or `userDefined`, which can also be updated.
1780
+ class Subnet
1781
+ include Google::Apis::Core::Hashable
1782
+
1783
+ # The IP address of the gateway of this subnet. Must fall within the IP prefix
1784
+ # defined above.
1785
+ # Corresponds to the JSON property `gatewayIp`
1786
+ # @return [String]
1787
+ attr_accessor :gateway_ip
1788
+
1789
+ # The IP address range of the subnet in CIDR format '10.0.0.0/24'.
1790
+ # Corresponds to the JSON property `ipCidrRange`
1791
+ # @return [String]
1792
+ attr_accessor :ip_cidr_range
1793
+
1794
+ # Output only. The resource name of this subnet. Resource names are schemeless
1795
+ # URIs that follow the conventions in https://cloud.google.com/apis/design/
1796
+ # resource_names. For example: `projects/my-project/locations/us-central1-a/
1797
+ # privateClouds/my-cloud/subnets/my-subnet`
1798
+ # Corresponds to the JSON property `name`
1799
+ # @return [String]
1800
+ attr_accessor :name
1801
+
1802
+ # Output only. The state of the resource.
1803
+ # Corresponds to the JSON property `state`
1804
+ # @return [String]
1805
+ attr_accessor :state
1806
+
1807
+ # Output only. The type of the subnet. For example "management" or "userDefined".
1808
+ # Corresponds to the JSON property `type`
1809
+ # @return [String]
1810
+ attr_accessor :type
1811
+
1812
+ def initialize(**args)
1813
+ update!(**args)
1814
+ end
1815
+
1816
+ # Update properties of this object
1817
+ def update!(**args)
1818
+ @gateway_ip = args[:gateway_ip] if args.key?(:gateway_ip)
1819
+ @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
1820
+ @name = args[:name] if args.key?(:name)
1821
+ @state = args[:state] if args.key?(:state)
1822
+ @type = args[:type] if args.key?(:type)
1823
+ end
1824
+ end
1825
+
1826
+ # Request message for `TestIamPermissions` method.
1827
+ class TestIamPermissionsRequest
1828
+ include Google::Apis::Core::Hashable
1829
+
1830
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1831
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
1832
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1833
+ # Corresponds to the JSON property `permissions`
1834
+ # @return [Array<String>]
1835
+ attr_accessor :permissions
1836
+
1837
+ def initialize(**args)
1838
+ update!(**args)
1839
+ end
1840
+
1841
+ # Update properties of this object
1842
+ def update!(**args)
1843
+ @permissions = args[:permissions] if args.key?(:permissions)
1844
+ end
1845
+ end
1846
+
1847
+ # Response message for `TestIamPermissions` method.
1848
+ class TestIamPermissionsResponse
1849
+ include Google::Apis::Core::Hashable
1850
+
1851
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1852
+ # Corresponds to the JSON property `permissions`
1853
+ # @return [Array<String>]
1854
+ attr_accessor :permissions
1855
+
1856
+ def initialize(**args)
1857
+ update!(**args)
1858
+ end
1859
+
1860
+ # Update properties of this object
1861
+ def update!(**args)
1862
+ @permissions = args[:permissions] if args.key?(:permissions)
1863
+ end
1864
+ end
1865
+
1866
+ # Request message for VmwareEngine.UndeletePrivateCloud
1867
+ class UndeletePrivateCloudRequest
1868
+ include Google::Apis::Core::Hashable
1869
+
1870
+ # Optional. The request ID must be a valid UUID with the exception that zero
1871
+ # UUID is not supported (00000000-0000-0000-0000-000000000000).
1872
+ # Corresponds to the JSON property `requestId`
1873
+ # @return [String]
1874
+ attr_accessor :request_id
1875
+
1876
+ def initialize(**args)
1877
+ update!(**args)
1878
+ end
1879
+
1880
+ # Update properties of this object
1881
+ def update!(**args)
1882
+ @request_id = args[:request_id] if args.key?(:request_id)
1883
+ end
1884
+ end
1885
+
1886
+ # Details about a vCenter Server management appliance.
1887
+ class Vcenter
1888
+ include Google::Apis::Core::Hashable
1889
+
1890
+ # Fully qualified domain name of the appliance.
1891
+ # Corresponds to the JSON property `fqdn`
1892
+ # @return [String]
1893
+ attr_accessor :fqdn
1894
+
1895
+ # Internal IP address of the appliance.
1896
+ # Corresponds to the JSON property `internalIp`
1897
+ # @return [String]
1898
+ attr_accessor :internal_ip
1899
+
1900
+ # Output only. The state of the appliance.
1901
+ # Corresponds to the JSON property `state`
1902
+ # @return [String]
1903
+ attr_accessor :state
1904
+
1905
+ # Version of the appliance.
1906
+ # Corresponds to the JSON property `version`
1907
+ # @return [String]
1908
+ attr_accessor :version
1909
+
1910
+ def initialize(**args)
1911
+ update!(**args)
1912
+ end
1913
+
1914
+ # Update properties of this object
1915
+ def update!(**args)
1916
+ @fqdn = args[:fqdn] if args.key?(:fqdn)
1917
+ @internal_ip = args[:internal_ip] if args.key?(:internal_ip)
1918
+ @state = args[:state] if args.key?(:state)
1919
+ @version = args[:version] if args.key?(:version)
1920
+ end
1921
+ end
1922
+
1923
+ # VMware Engine network resource that provides connectivity for VMware Engine
1924
+ # private clouds.
1925
+ class VmwareEngineNetwork
1926
+ include Google::Apis::Core::Hashable
1927
+
1928
+ # Output only. Creation time of this resource.
1929
+ # Corresponds to the JSON property `createTime`
1930
+ # @return [String]
1931
+ attr_accessor :create_time
1932
+
1933
+ # User-provided description for this VMware Engine network.
1934
+ # Corresponds to the JSON property `description`
1935
+ # @return [String]
1936
+ attr_accessor :description
1937
+
1938
+ # Checksum that may be sent on update and delete requests to ensure that the
1939
+ # user-provided value is up to date before the server processes a request. The
1940
+ # server computes checksums based on the value of other fields in the request.
1941
+ # Corresponds to the JSON property `etag`
1942
+ # @return [String]
1943
+ attr_accessor :etag
1944
+
1945
+ # Output only. The resource name of the VMware Engine network. Resource names
1946
+ # are schemeless URIs that follow the conventions in https://cloud.google.com/
1947
+ # apis/design/resource_names. For example: `projects/my-project/locations/global/
1948
+ # vmwareEngineNetworks/my-network`
1949
+ # Corresponds to the JSON property `name`
1950
+ # @return [String]
1951
+ attr_accessor :name
1952
+
1953
+ # Output only. State of the VMware Engine network.
1954
+ # Corresponds to the JSON property `state`
1955
+ # @return [String]
1956
+ attr_accessor :state
1957
+
1958
+ # Required. VMware Engine network type.
1959
+ # Corresponds to the JSON property `type`
1960
+ # @return [String]
1961
+ attr_accessor :type
1962
+
1963
+ # Output only. System-generated unique identifier for the resource.
1964
+ # Corresponds to the JSON property `uid`
1965
+ # @return [String]
1966
+ attr_accessor :uid
1967
+
1968
+ # Output only. Last update time of this resource.
1969
+ # Corresponds to the JSON property `updateTime`
1970
+ # @return [String]
1971
+ attr_accessor :update_time
1972
+
1973
+ # Output only. VMware Engine service VPC networks that provide connectivity from
1974
+ # a private cloud to customer projects, the internet, and other Google Cloud
1975
+ # services.
1976
+ # Corresponds to the JSON property `vpcNetworks`
1977
+ # @return [Array<Google::Apis::VmwareengineV1::VpcNetwork>]
1978
+ attr_accessor :vpc_networks
1979
+
1980
+ def initialize(**args)
1981
+ update!(**args)
1982
+ end
1983
+
1984
+ # Update properties of this object
1985
+ def update!(**args)
1986
+ @create_time = args[:create_time] if args.key?(:create_time)
1987
+ @description = args[:description] if args.key?(:description)
1988
+ @etag = args[:etag] if args.key?(:etag)
1989
+ @name = args[:name] if args.key?(:name)
1990
+ @state = args[:state] if args.key?(:state)
1991
+ @type = args[:type] if args.key?(:type)
1992
+ @uid = args[:uid] if args.key?(:uid)
1993
+ @update_time = args[:update_time] if args.key?(:update_time)
1994
+ @vpc_networks = args[:vpc_networks] if args.key?(:vpc_networks)
1995
+ end
1996
+ end
1997
+
1998
+ # Represents a VMware Engine VPC network that is managed by a VMware Engine
1999
+ # network resource.
2000
+ class VpcNetwork
2001
+ include Google::Apis::Core::Hashable
2002
+
2003
+ # Output only. The relative resource name of the service VPC network this VMware
2004
+ # Engine network is attached to. For example: `projects/123123/global/networks/
2005
+ # my-network`
2006
+ # Corresponds to the JSON property `network`
2007
+ # @return [String]
2008
+ attr_accessor :network
2009
+
2010
+ # Output only. Type of VPC network (INTRANET, INTERNET, or GOOGLE_CLOUD)
2011
+ # Corresponds to the JSON property `type`
2012
+ # @return [String]
2013
+ attr_accessor :type
2014
+
2015
+ def initialize(**args)
2016
+ update!(**args)
2017
+ end
2018
+
2019
+ # Update properties of this object
2020
+ def update!(**args)
2021
+ @network = args[:network] if args.key?(:network)
2022
+ @type = args[:type] if args.key?(:type)
2023
+ end
2024
+ end
2025
+ end
2026
+ end
2027
+ end