google-apis-vmwareengine_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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