google-apis-gkehub_v2alpha 0.16.0 → 0.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,50 @@ module Google
22
22
  module Apis
23
23
  module GkehubV2alpha
24
24
 
25
+ # State for App Dev Exp Feature.
26
+ class AppDevExperienceState
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Status specifies state for the subcomponent.
30
+ # Corresponds to the JSON property `networkingInstallSucceeded`
31
+ # @return [Google::Apis::GkehubV2alpha::AppDevExperienceStatus]
32
+ attr_accessor :networking_install_succeeded
33
+
34
+ def initialize(**args)
35
+ update!(**args)
36
+ end
37
+
38
+ # Update properties of this object
39
+ def update!(**args)
40
+ @networking_install_succeeded = args[:networking_install_succeeded] if args.key?(:networking_install_succeeded)
41
+ end
42
+ end
43
+
44
+ # Status specifies state for the subcomponent.
45
+ class AppDevExperienceStatus
46
+ include Google::Apis::Core::Hashable
47
+
48
+ # Code specifies AppDevExperienceFeature's subcomponent ready state.
49
+ # Corresponds to the JSON property `code`
50
+ # @return [String]
51
+ attr_accessor :code
52
+
53
+ # Description is populated if Code is Failed, explaining why it has failed.
54
+ # Corresponds to the JSON property `description`
55
+ # @return [String]
56
+ attr_accessor :description
57
+
58
+ def initialize(**args)
59
+ update!(**args)
60
+ end
61
+
62
+ # Update properties of this object
63
+ def update!(**args)
64
+ @code = args[:code] if args.key?(:code)
65
+ @description = args[:description] if args.key?(:description)
66
+ end
67
+ end
68
+
25
69
  # The request message for Operations.CancelOperation.
26
70
  class CancelOperationRequest
27
71
  include Google::Apis::Core::Hashable
@@ -35,48 +79,3059 @@ module Google
35
79
  end
36
80
  end
37
81
 
38
- # A generic empty message that you can re-use to avoid defining duplicated empty
39
- # messages in your APIs. A typical example is to use it as the request or the
40
- # response type of an API method. For instance: service Foo ` rpc Bar(google.
41
- # protobuf.Empty) returns (google.protobuf.Empty); `
42
- class Empty
82
+ # **Cloud Build**: Configurations for each Cloud Build enabled cluster.
83
+ class CloudBuildSpec
84
+ include Google::Apis::Core::Hashable
85
+
86
+ # Whether it is allowed to run the privileged builds on the cluster or not.
87
+ # Corresponds to the JSON property `securityPolicy`
88
+ # @return [String]
89
+ attr_accessor :security_policy
90
+
91
+ # Version of the cloud build software on the cluster.
92
+ # Corresponds to the JSON property `version`
93
+ # @return [String]
94
+ attr_accessor :version
95
+
96
+ def initialize(**args)
97
+ update!(**args)
98
+ end
99
+
100
+ # Update properties of this object
101
+ def update!(**args)
102
+ @security_policy = args[:security_policy] if args.key?(:security_policy)
103
+ @version = args[:version] if args.key?(:version)
104
+ end
105
+ end
106
+
107
+ # GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade.
108
+ class ClusterUpgradeGkeUpgrade
109
+ include Google::Apis::Core::Hashable
110
+
111
+ # Name of the upgrade, e.g., "k8s_control_plane".
112
+ # Corresponds to the JSON property `name`
113
+ # @return [String]
114
+ attr_accessor :name
115
+
116
+ # Version of the upgrade, e.g., "1.22.1-gke.100".
117
+ # Corresponds to the JSON property `version`
118
+ # @return [String]
119
+ attr_accessor :version
120
+
121
+ def initialize(**args)
122
+ update!(**args)
123
+ end
124
+
125
+ # Update properties of this object
126
+ def update!(**args)
127
+ @name = args[:name] if args.key?(:name)
128
+ @version = args[:version] if args.key?(:version)
129
+ end
130
+ end
131
+
132
+ # IgnoredMembership represents a membership ignored by the feature. A membership
133
+ # can be ignored because it was manually upgraded to a newer version than RC
134
+ # default.
135
+ class ClusterUpgradeIgnoredMembership
136
+ include Google::Apis::Core::Hashable
137
+
138
+ # Time when the membership was first set to ignored.
139
+ # Corresponds to the JSON property `ignoredTime`
140
+ # @return [String]
141
+ attr_accessor :ignored_time
142
+
143
+ # Reason why the membership is ignored.
144
+ # Corresponds to the JSON property `reason`
145
+ # @return [String]
146
+ attr_accessor :reason
147
+
148
+ def initialize(**args)
149
+ update!(**args)
150
+ end
151
+
152
+ # Update properties of this object
153
+ def update!(**args)
154
+ @ignored_time = args[:ignored_time] if args.key?(:ignored_time)
155
+ @reason = args[:reason] if args.key?(:reason)
156
+ end
157
+ end
158
+
159
+ # MembershipGKEUpgradeState is a GKEUpgrade and its state per-membership.
160
+ class ClusterUpgradeMembershipGkeUpgradeState
161
+ include Google::Apis::Core::Hashable
162
+
163
+ # UpgradeStatus provides status information for each upgrade.
164
+ # Corresponds to the JSON property `status`
165
+ # @return [Google::Apis::GkehubV2alpha::ClusterUpgradeUpgradeStatus]
166
+ attr_accessor :status
167
+
168
+ # GKEUpgrade represents a GKE provided upgrade, e.g., control plane upgrade.
169
+ # Corresponds to the JSON property `upgrade`
170
+ # @return [Google::Apis::GkehubV2alpha::ClusterUpgradeGkeUpgrade]
171
+ attr_accessor :upgrade
172
+
173
+ def initialize(**args)
174
+ update!(**args)
175
+ end
176
+
177
+ # Update properties of this object
178
+ def update!(**args)
179
+ @status = args[:status] if args.key?(:status)
180
+ @upgrade = args[:upgrade] if args.key?(:upgrade)
181
+ end
182
+ end
183
+
184
+ # Per-membership state for this feature.
185
+ class ClusterUpgradeState
186
+ include Google::Apis::Core::Hashable
187
+
188
+ # IgnoredMembership represents a membership ignored by the feature. A membership
189
+ # can be ignored because it was manually upgraded to a newer version than RC
190
+ # default.
191
+ # Corresponds to the JSON property `ignored`
192
+ # @return [Google::Apis::GkehubV2alpha::ClusterUpgradeIgnoredMembership]
193
+ attr_accessor :ignored
194
+
195
+ # Actual upgrade state against desired.
196
+ # Corresponds to the JSON property `upgrades`
197
+ # @return [Array<Google::Apis::GkehubV2alpha::ClusterUpgradeMembershipGkeUpgradeState>]
198
+ attr_accessor :upgrades
199
+
200
+ def initialize(**args)
201
+ update!(**args)
202
+ end
203
+
204
+ # Update properties of this object
205
+ def update!(**args)
206
+ @ignored = args[:ignored] if args.key?(:ignored)
207
+ @upgrades = args[:upgrades] if args.key?(:upgrades)
208
+ end
209
+ end
210
+
211
+ # UpgradeStatus provides status information for each upgrade.
212
+ class ClusterUpgradeUpgradeStatus
213
+ include Google::Apis::Core::Hashable
214
+
215
+ # Status code of the upgrade.
216
+ # Corresponds to the JSON property `code`
217
+ # @return [String]
218
+ attr_accessor :code
219
+
220
+ # Reason for this status.
221
+ # Corresponds to the JSON property `reason`
222
+ # @return [String]
223
+ attr_accessor :reason
224
+
225
+ # Last timestamp the status was updated.
226
+ # Corresponds to the JSON property `updateTime`
227
+ # @return [String]
228
+ attr_accessor :update_time
229
+
230
+ def initialize(**args)
231
+ update!(**args)
232
+ end
233
+
234
+ # Update properties of this object
235
+ def update!(**args)
236
+ @code = args[:code] if args.key?(:code)
237
+ @reason = args[:reason] if args.key?(:reason)
238
+ @update_time = args[:update_time] if args.key?(:update_time)
239
+ end
240
+ end
241
+
242
+ # Configuration for Binauthz.
243
+ class ConfigManagementBinauthzConfig
244
+ include Google::Apis::Core::Hashable
245
+
246
+ # Whether binauthz is enabled in this cluster.
247
+ # Corresponds to the JSON property `enabled`
248
+ # @return [Boolean]
249
+ attr_accessor :enabled
250
+ alias_method :enabled?, :enabled
251
+
252
+ def initialize(**args)
253
+ update!(**args)
254
+ end
255
+
256
+ # Update properties of this object
257
+ def update!(**args)
258
+ @enabled = args[:enabled] if args.key?(:enabled)
259
+ end
260
+ end
261
+
262
+ # State for Binauthz.
263
+ class ConfigManagementBinauthzState
264
+ include Google::Apis::Core::Hashable
265
+
266
+ # The version of binauthz.
267
+ # Corresponds to the JSON property `version`
268
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementBinauthzVersion]
269
+ attr_accessor :version
270
+
271
+ # The state of the binauthz webhook.
272
+ # Corresponds to the JSON property `webhook`
273
+ # @return [String]
274
+ attr_accessor :webhook
275
+
276
+ def initialize(**args)
277
+ update!(**args)
278
+ end
279
+
280
+ # Update properties of this object
281
+ def update!(**args)
282
+ @version = args[:version] if args.key?(:version)
283
+ @webhook = args[:webhook] if args.key?(:webhook)
284
+ end
285
+ end
286
+
287
+ # The version of binauthz.
288
+ class ConfigManagementBinauthzVersion
289
+ include Google::Apis::Core::Hashable
290
+
291
+ # The version of the binauthz webhook.
292
+ # Corresponds to the JSON property `webhookVersion`
293
+ # @return [String]
294
+ attr_accessor :webhook_version
295
+
296
+ def initialize(**args)
297
+ update!(**args)
298
+ end
299
+
300
+ # Update properties of this object
301
+ def update!(**args)
302
+ @webhook_version = args[:webhook_version] if args.key?(:webhook_version)
303
+ end
304
+ end
305
+
306
+ # Configuration for Config Sync
307
+ class ConfigManagementConfigSync
308
+ include Google::Apis::Core::Hashable
309
+
310
+ # Set to true to allow the vertical scaling. Defaults to false which disallows
311
+ # vertical scaling. This field is deprecated.
312
+ # Corresponds to the JSON property `allowVerticalScale`
313
+ # @return [Boolean]
314
+ attr_accessor :allow_vertical_scale
315
+ alias_method :allow_vertical_scale?, :allow_vertical_scale
316
+
317
+ # Enables the installation of ConfigSync. If set to true, ConfigSync resources
318
+ # will be created and the other ConfigSync fields will be applied if exist. If
319
+ # set to false, all other ConfigSync fields will be ignored, ConfigSync
320
+ # resources will be deleted. If omitted, ConfigSync resources will be managed
321
+ # depends on the presence of the git or oci field.
322
+ # Corresponds to the JSON property `enabled`
323
+ # @return [Boolean]
324
+ attr_accessor :enabled
325
+ alias_method :enabled?, :enabled
326
+
327
+ # Git repo configuration for a single cluster.
328
+ # Corresponds to the JSON property `git`
329
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementGitConfig]
330
+ attr_accessor :git
331
+
332
+ # The Email of the Google Cloud Service Account (GSA) used for exporting Config
333
+ # Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is
334
+ # enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.
335
+ # metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the
336
+ # namespace `config-management-monitoring` should be bound to the GSA.
337
+ # Deprecated: If Workload Identity Federation for GKE is enabled, Google Cloud
338
+ # Service Account is no longer needed for exporting Config Sync metrics: https://
339
+ # cloud.google.com/kubernetes-engine/enterprise/config-sync/docs/how-to/monitor-
340
+ # config-sync-cloud-monitoring#custom-monitoring.
341
+ # Corresponds to the JSON property `metricsGcpServiceAccountEmail`
342
+ # @return [String]
343
+ attr_accessor :metrics_gcp_service_account_email
344
+
345
+ # OCI repo configuration for a single cluster.
346
+ # Corresponds to the JSON property `oci`
347
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementOciConfig]
348
+ attr_accessor :oci
349
+
350
+ # Set to true to enable the Config Sync admission webhook to prevent drifts. If
351
+ # set to `false`, disables the Config Sync admission webhook and does not
352
+ # prevent drifts.
353
+ # Corresponds to the JSON property `preventDrift`
354
+ # @return [Boolean]
355
+ attr_accessor :prevent_drift
356
+ alias_method :prevent_drift?, :prevent_drift
357
+
358
+ # Specifies whether the Config Sync Repo is in "hierarchical" or "unstructured"
359
+ # mode.
360
+ # Corresponds to the JSON property `sourceFormat`
361
+ # @return [String]
362
+ attr_accessor :source_format
363
+
364
+ # Set to true to stop syncing configs for a single cluster. Default to false.
365
+ # Corresponds to the JSON property `stopSyncing`
366
+ # @return [Boolean]
367
+ attr_accessor :stop_syncing
368
+ alias_method :stop_syncing?, :stop_syncing
369
+
370
+ def initialize(**args)
371
+ update!(**args)
372
+ end
373
+
374
+ # Update properties of this object
375
+ def update!(**args)
376
+ @allow_vertical_scale = args[:allow_vertical_scale] if args.key?(:allow_vertical_scale)
377
+ @enabled = args[:enabled] if args.key?(:enabled)
378
+ @git = args[:git] if args.key?(:git)
379
+ @metrics_gcp_service_account_email = args[:metrics_gcp_service_account_email] if args.key?(:metrics_gcp_service_account_email)
380
+ @oci = args[:oci] if args.key?(:oci)
381
+ @prevent_drift = args[:prevent_drift] if args.key?(:prevent_drift)
382
+ @source_format = args[:source_format] if args.key?(:source_format)
383
+ @stop_syncing = args[:stop_syncing] if args.key?(:stop_syncing)
384
+ end
385
+ end
386
+
387
+ # The state of ConfigSync's deployment on a cluster.
388
+ class ConfigManagementConfigSyncDeploymentState
389
+ include Google::Apis::Core::Hashable
390
+
391
+ # Deployment state of admission-webhook.
392
+ # Corresponds to the JSON property `admissionWebhook`
393
+ # @return [String]
394
+ attr_accessor :admission_webhook
395
+
396
+ # Deployment state of the git-sync pod.
397
+ # Corresponds to the JSON property `gitSync`
398
+ # @return [String]
399
+ attr_accessor :git_sync
400
+
401
+ # Deployment state of the importer pod.
402
+ # Corresponds to the JSON property `importer`
403
+ # @return [String]
404
+ attr_accessor :importer
405
+
406
+ # Deployment state of the monitor pod.
407
+ # Corresponds to the JSON property `monitor`
408
+ # @return [String]
409
+ attr_accessor :monitor
410
+
411
+ # Deployment state of otel-collector
412
+ # Corresponds to the JSON property `otelCollector`
413
+ # @return [String]
414
+ attr_accessor :otel_collector
415
+
416
+ # Deployment state of reconciler-manager pod.
417
+ # Corresponds to the JSON property `reconcilerManager`
418
+ # @return [String]
419
+ attr_accessor :reconciler_manager
420
+
421
+ # Deployment state of resource-group-controller-manager
422
+ # Corresponds to the JSON property `resourceGroupControllerManager`
423
+ # @return [String]
424
+ attr_accessor :resource_group_controller_manager
425
+
426
+ # Deployment state of root-reconciler.
427
+ # Corresponds to the JSON property `rootReconciler`
428
+ # @return [String]
429
+ attr_accessor :root_reconciler
430
+
431
+ # Deployment state of the syncer pod.
432
+ # Corresponds to the JSON property `syncer`
433
+ # @return [String]
434
+ attr_accessor :syncer
435
+
436
+ def initialize(**args)
437
+ update!(**args)
438
+ end
439
+
440
+ # Update properties of this object
441
+ def update!(**args)
442
+ @admission_webhook = args[:admission_webhook] if args.key?(:admission_webhook)
443
+ @git_sync = args[:git_sync] if args.key?(:git_sync)
444
+ @importer = args[:importer] if args.key?(:importer)
445
+ @monitor = args[:monitor] if args.key?(:monitor)
446
+ @otel_collector = args[:otel_collector] if args.key?(:otel_collector)
447
+ @reconciler_manager = args[:reconciler_manager] if args.key?(:reconciler_manager)
448
+ @resource_group_controller_manager = args[:resource_group_controller_manager] if args.key?(:resource_group_controller_manager)
449
+ @root_reconciler = args[:root_reconciler] if args.key?(:root_reconciler)
450
+ @syncer = args[:syncer] if args.key?(:syncer)
451
+ end
452
+ end
453
+
454
+ # Errors pertaining to the installation of Config Sync
455
+ class ConfigManagementConfigSyncError
456
+ include Google::Apis::Core::Hashable
457
+
458
+ # A string representing the user facing error message
459
+ # Corresponds to the JSON property `errorMessage`
460
+ # @return [String]
461
+ attr_accessor :error_message
462
+
463
+ def initialize(**args)
464
+ update!(**args)
465
+ end
466
+
467
+ # Update properties of this object
468
+ def update!(**args)
469
+ @error_message = args[:error_message] if args.key?(:error_message)
470
+ end
471
+ end
472
+
473
+ # State information for ConfigSync.
474
+ class ConfigManagementConfigSyncState
475
+ include Google::Apis::Core::Hashable
476
+
477
+ # Whether syncing resources to the cluster is stopped at the cluster level.
478
+ # Corresponds to the JSON property `clusterLevelStopSyncingState`
479
+ # @return [String]
480
+ attr_accessor :cluster_level_stop_syncing_state
481
+
482
+ # Output only. The number of RootSync and RepoSync CRs in the cluster.
483
+ # Corresponds to the JSON property `crCount`
484
+ # @return [Fixnum]
485
+ attr_accessor :cr_count
486
+
487
+ # The state of ConfigSync's deployment on a cluster.
488
+ # Corresponds to the JSON property `deploymentState`
489
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementConfigSyncDeploymentState]
490
+ attr_accessor :deployment_state
491
+
492
+ # Errors pertaining to the installation of Config Sync.
493
+ # Corresponds to the JSON property `errors`
494
+ # @return [Array<Google::Apis::GkehubV2alpha::ConfigManagementConfigSyncError>]
495
+ attr_accessor :errors
496
+
497
+ # The state of the Reposync CRD
498
+ # Corresponds to the JSON property `reposyncCrd`
499
+ # @return [String]
500
+ attr_accessor :reposync_crd
501
+
502
+ # The state of the RootSync CRD
503
+ # Corresponds to the JSON property `rootsyncCrd`
504
+ # @return [String]
505
+ attr_accessor :rootsync_crd
506
+
507
+ # The state of CS This field summarizes the other fields in this message.
508
+ # Corresponds to the JSON property `state`
509
+ # @return [String]
510
+ attr_accessor :state
511
+
512
+ # State indicating an ACM's progress syncing configurations to a cluster.
513
+ # Corresponds to the JSON property `syncState`
514
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementSyncState]
515
+ attr_accessor :sync_state
516
+
517
+ # Specific versioning information pertaining to ConfigSync's Pods.
518
+ # Corresponds to the JSON property `version`
519
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementConfigSyncVersion]
520
+ attr_accessor :version
521
+
522
+ def initialize(**args)
523
+ update!(**args)
524
+ end
525
+
526
+ # Update properties of this object
527
+ def update!(**args)
528
+ @cluster_level_stop_syncing_state = args[:cluster_level_stop_syncing_state] if args.key?(:cluster_level_stop_syncing_state)
529
+ @cr_count = args[:cr_count] if args.key?(:cr_count)
530
+ @deployment_state = args[:deployment_state] if args.key?(:deployment_state)
531
+ @errors = args[:errors] if args.key?(:errors)
532
+ @reposync_crd = args[:reposync_crd] if args.key?(:reposync_crd)
533
+ @rootsync_crd = args[:rootsync_crd] if args.key?(:rootsync_crd)
534
+ @state = args[:state] if args.key?(:state)
535
+ @sync_state = args[:sync_state] if args.key?(:sync_state)
536
+ @version = args[:version] if args.key?(:version)
537
+ end
538
+ end
539
+
540
+ # Specific versioning information pertaining to ConfigSync's Pods.
541
+ class ConfigManagementConfigSyncVersion
542
+ include Google::Apis::Core::Hashable
543
+
544
+ # Version of the deployed admission-webhook pod.
545
+ # Corresponds to the JSON property `admissionWebhook`
546
+ # @return [String]
547
+ attr_accessor :admission_webhook
548
+
549
+ # Version of the deployed git-sync pod.
550
+ # Corresponds to the JSON property `gitSync`
551
+ # @return [String]
552
+ attr_accessor :git_sync
553
+
554
+ # Version of the deployed importer pod.
555
+ # Corresponds to the JSON property `importer`
556
+ # @return [String]
557
+ attr_accessor :importer
558
+
559
+ # Version of the deployed monitor pod.
560
+ # Corresponds to the JSON property `monitor`
561
+ # @return [String]
562
+ attr_accessor :monitor
563
+
564
+ # Version of the deployed otel-collector pod
565
+ # Corresponds to the JSON property `otelCollector`
566
+ # @return [String]
567
+ attr_accessor :otel_collector
568
+
569
+ # Version of the deployed reconciler-manager pod.
570
+ # Corresponds to the JSON property `reconcilerManager`
571
+ # @return [String]
572
+ attr_accessor :reconciler_manager
573
+
574
+ # Version of the deployed resource-group-controller-manager pod
575
+ # Corresponds to the JSON property `resourceGroupControllerManager`
576
+ # @return [String]
577
+ attr_accessor :resource_group_controller_manager
578
+
579
+ # Version of the deployed reconciler container in root-reconciler pod.
580
+ # Corresponds to the JSON property `rootReconciler`
581
+ # @return [String]
582
+ attr_accessor :root_reconciler
583
+
584
+ # Version of the deployed syncer pod.
585
+ # Corresponds to the JSON property `syncer`
586
+ # @return [String]
587
+ attr_accessor :syncer
588
+
589
+ def initialize(**args)
590
+ update!(**args)
591
+ end
592
+
593
+ # Update properties of this object
594
+ def update!(**args)
595
+ @admission_webhook = args[:admission_webhook] if args.key?(:admission_webhook)
596
+ @git_sync = args[:git_sync] if args.key?(:git_sync)
597
+ @importer = args[:importer] if args.key?(:importer)
598
+ @monitor = args[:monitor] if args.key?(:monitor)
599
+ @otel_collector = args[:otel_collector] if args.key?(:otel_collector)
600
+ @reconciler_manager = args[:reconciler_manager] if args.key?(:reconciler_manager)
601
+ @resource_group_controller_manager = args[:resource_group_controller_manager] if args.key?(:resource_group_controller_manager)
602
+ @root_reconciler = args[:root_reconciler] if args.key?(:root_reconciler)
603
+ @syncer = args[:syncer] if args.key?(:syncer)
604
+ end
605
+ end
606
+
607
+ # Model for a config file in the git repo with an associated Sync error.
608
+ class ConfigManagementErrorResource
609
+ include Google::Apis::Core::Hashable
610
+
611
+ # A Kubernetes object's GVK.
612
+ # Corresponds to the JSON property `resourceGvk`
613
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementGroupVersionKind]
614
+ attr_accessor :resource_gvk
615
+
616
+ # Metadata name of the resource that is causing an error
617
+ # Corresponds to the JSON property `resourceName`
618
+ # @return [String]
619
+ attr_accessor :resource_name
620
+
621
+ # Namespace of the resource that is causing an error
622
+ # Corresponds to the JSON property `resourceNamespace`
623
+ # @return [String]
624
+ attr_accessor :resource_namespace
625
+
626
+ # Path in the git repo of the erroneous config
627
+ # Corresponds to the JSON property `sourcePath`
628
+ # @return [String]
629
+ attr_accessor :source_path
630
+
631
+ def initialize(**args)
632
+ update!(**args)
633
+ end
634
+
635
+ # Update properties of this object
636
+ def update!(**args)
637
+ @resource_gvk = args[:resource_gvk] if args.key?(:resource_gvk)
638
+ @resource_name = args[:resource_name] if args.key?(:resource_name)
639
+ @resource_namespace = args[:resource_namespace] if args.key?(:resource_namespace)
640
+ @source_path = args[:source_path] if args.key?(:source_path)
641
+ end
642
+ end
643
+
644
+ # State of Policy Controller installation.
645
+ class ConfigManagementGatekeeperDeploymentState
646
+ include Google::Apis::Core::Hashable
647
+
648
+ # Status of gatekeeper-audit deployment.
649
+ # Corresponds to the JSON property `gatekeeperAudit`
650
+ # @return [String]
651
+ attr_accessor :gatekeeper_audit
652
+
653
+ # Status of gatekeeper-controller-manager pod.
654
+ # Corresponds to the JSON property `gatekeeperControllerManagerState`
655
+ # @return [String]
656
+ attr_accessor :gatekeeper_controller_manager_state
657
+
658
+ # Status of the pod serving the mutation webhook.
659
+ # Corresponds to the JSON property `gatekeeperMutation`
660
+ # @return [String]
661
+ attr_accessor :gatekeeper_mutation
662
+
663
+ def initialize(**args)
664
+ update!(**args)
665
+ end
666
+
667
+ # Update properties of this object
668
+ def update!(**args)
669
+ @gatekeeper_audit = args[:gatekeeper_audit] if args.key?(:gatekeeper_audit)
670
+ @gatekeeper_controller_manager_state = args[:gatekeeper_controller_manager_state] if args.key?(:gatekeeper_controller_manager_state)
671
+ @gatekeeper_mutation = args[:gatekeeper_mutation] if args.key?(:gatekeeper_mutation)
672
+ end
673
+ end
674
+
675
+ # Git repo configuration for a single cluster.
676
+ class ConfigManagementGitConfig
677
+ include Google::Apis::Core::Hashable
678
+
679
+ # The Google Cloud Service Account Email used for auth when secret_type is
680
+ # gcpServiceAccount.
681
+ # Corresponds to the JSON property `gcpServiceAccountEmail`
682
+ # @return [String]
683
+ attr_accessor :gcp_service_account_email
684
+
685
+ # URL for the HTTPS proxy to be used when communicating with the Git repo.
686
+ # Corresponds to the JSON property `httpsProxy`
687
+ # @return [String]
688
+ attr_accessor :https_proxy
689
+
690
+ # The path within the Git repository that represents the top level of the repo
691
+ # to sync. Default: the root directory of the repository.
692
+ # Corresponds to the JSON property `policyDir`
693
+ # @return [String]
694
+ attr_accessor :policy_dir
695
+
696
+ # Type of secret configured for access to the Git repo. Must be one of ssh,
697
+ # cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this
698
+ # is case-sensitive. Required.
699
+ # Corresponds to the JSON property `secretType`
700
+ # @return [String]
701
+ attr_accessor :secret_type
702
+
703
+ # The branch of the repository to sync from. Default: master.
704
+ # Corresponds to the JSON property `syncBranch`
705
+ # @return [String]
706
+ attr_accessor :sync_branch
707
+
708
+ # The URL of the Git repository to use as the source of truth.
709
+ # Corresponds to the JSON property `syncRepo`
710
+ # @return [String]
711
+ attr_accessor :sync_repo
712
+
713
+ # Git revision (tag or hash) to check out. Default HEAD.
714
+ # Corresponds to the JSON property `syncRev`
715
+ # @return [String]
716
+ attr_accessor :sync_rev
717
+
718
+ # Period in seconds between consecutive syncs. Default: 15.
719
+ # Corresponds to the JSON property `syncWaitSecs`
720
+ # @return [Fixnum]
721
+ attr_accessor :sync_wait_secs
722
+
723
+ def initialize(**args)
724
+ update!(**args)
725
+ end
726
+
727
+ # Update properties of this object
728
+ def update!(**args)
729
+ @gcp_service_account_email = args[:gcp_service_account_email] if args.key?(:gcp_service_account_email)
730
+ @https_proxy = args[:https_proxy] if args.key?(:https_proxy)
731
+ @policy_dir = args[:policy_dir] if args.key?(:policy_dir)
732
+ @secret_type = args[:secret_type] if args.key?(:secret_type)
733
+ @sync_branch = args[:sync_branch] if args.key?(:sync_branch)
734
+ @sync_repo = args[:sync_repo] if args.key?(:sync_repo)
735
+ @sync_rev = args[:sync_rev] if args.key?(:sync_rev)
736
+ @sync_wait_secs = args[:sync_wait_secs] if args.key?(:sync_wait_secs)
737
+ end
738
+ end
739
+
740
+ # A Kubernetes object's GVK.
741
+ class ConfigManagementGroupVersionKind
742
+ include Google::Apis::Core::Hashable
743
+
744
+ # Kubernetes Group
745
+ # Corresponds to the JSON property `group`
746
+ # @return [String]
747
+ attr_accessor :group
748
+
749
+ # Kubernetes Kind
750
+ # Corresponds to the JSON property `kind`
751
+ # @return [String]
752
+ attr_accessor :kind
753
+
754
+ # Kubernetes Version
755
+ # Corresponds to the JSON property `version`
756
+ # @return [String]
757
+ attr_accessor :version
758
+
759
+ def initialize(**args)
760
+ update!(**args)
761
+ end
762
+
763
+ # Update properties of this object
764
+ def update!(**args)
765
+ @group = args[:group] if args.key?(:group)
766
+ @kind = args[:kind] if args.key?(:kind)
767
+ @version = args[:version] if args.key?(:version)
768
+ end
769
+ end
770
+
771
+ # Configuration for Hierarchy Controller.
772
+ class ConfigManagementHierarchyControllerConfig
773
+ include Google::Apis::Core::Hashable
774
+
775
+ # Whether hierarchical resource quota is enabled in this cluster.
776
+ # Corresponds to the JSON property `enableHierarchicalResourceQuota`
777
+ # @return [Boolean]
778
+ attr_accessor :enable_hierarchical_resource_quota
779
+ alias_method :enable_hierarchical_resource_quota?, :enable_hierarchical_resource_quota
780
+
781
+ # Whether pod tree labels are enabled in this cluster.
782
+ # Corresponds to the JSON property `enablePodTreeLabels`
783
+ # @return [Boolean]
784
+ attr_accessor :enable_pod_tree_labels
785
+ alias_method :enable_pod_tree_labels?, :enable_pod_tree_labels
786
+
787
+ # Whether Hierarchy Controller is enabled in this cluster.
788
+ # Corresponds to the JSON property `enabled`
789
+ # @return [Boolean]
790
+ attr_accessor :enabled
791
+ alias_method :enabled?, :enabled
792
+
793
+ def initialize(**args)
794
+ update!(**args)
795
+ end
796
+
797
+ # Update properties of this object
798
+ def update!(**args)
799
+ @enable_hierarchical_resource_quota = args[:enable_hierarchical_resource_quota] if args.key?(:enable_hierarchical_resource_quota)
800
+ @enable_pod_tree_labels = args[:enable_pod_tree_labels] if args.key?(:enable_pod_tree_labels)
801
+ @enabled = args[:enabled] if args.key?(:enabled)
802
+ end
803
+ end
804
+
805
+ # Deployment state for Hierarchy Controller
806
+ class ConfigManagementHierarchyControllerDeploymentState
807
+ include Google::Apis::Core::Hashable
808
+
809
+ # The deployment state for Hierarchy Controller extension (e.g. v0.7.0-hc.1).
810
+ # Corresponds to the JSON property `extension`
811
+ # @return [String]
812
+ attr_accessor :extension
813
+
814
+ # The deployment state for open source HNC (e.g. v0.7.0-hc.0).
815
+ # Corresponds to the JSON property `hnc`
816
+ # @return [String]
817
+ attr_accessor :hnc
818
+
819
+ def initialize(**args)
820
+ update!(**args)
821
+ end
822
+
823
+ # Update properties of this object
824
+ def update!(**args)
825
+ @extension = args[:extension] if args.key?(:extension)
826
+ @hnc = args[:hnc] if args.key?(:hnc)
827
+ end
828
+ end
829
+
830
+ # State for Hierarchy Controller.
831
+ class ConfigManagementHierarchyControllerState
832
+ include Google::Apis::Core::Hashable
833
+
834
+ # Deployment state for Hierarchy Controller
835
+ # Corresponds to the JSON property `state`
836
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementHierarchyControllerDeploymentState]
837
+ attr_accessor :state
838
+
839
+ # Version for Hierarchy Controller.
840
+ # Corresponds to the JSON property `version`
841
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementHierarchyControllerVersion]
842
+ attr_accessor :version
843
+
844
+ def initialize(**args)
845
+ update!(**args)
846
+ end
847
+
848
+ # Update properties of this object
849
+ def update!(**args)
850
+ @state = args[:state] if args.key?(:state)
851
+ @version = args[:version] if args.key?(:version)
852
+ end
853
+ end
854
+
855
+ # Version for Hierarchy Controller.
856
+ class ConfigManagementHierarchyControllerVersion
857
+ include Google::Apis::Core::Hashable
858
+
859
+ # Version for Hierarchy Controller extension.
860
+ # Corresponds to the JSON property `extension`
861
+ # @return [String]
862
+ attr_accessor :extension
863
+
864
+ # Version for open source HNC.
865
+ # Corresponds to the JSON property `hnc`
866
+ # @return [String]
867
+ attr_accessor :hnc
868
+
869
+ def initialize(**args)
870
+ update!(**args)
871
+ end
872
+
873
+ # Update properties of this object
874
+ def update!(**args)
875
+ @extension = args[:extension] if args.key?(:extension)
876
+ @hnc = args[:hnc] if args.key?(:hnc)
877
+ end
878
+ end
879
+
880
+ # Errors pertaining to the installation of ACM.
881
+ class ConfigManagementInstallError
882
+ include Google::Apis::Core::Hashable
883
+
884
+ # A string representing the user facing error message.
885
+ # Corresponds to the JSON property `errorMessage`
886
+ # @return [String]
887
+ attr_accessor :error_message
888
+
889
+ def initialize(**args)
890
+ update!(**args)
891
+ end
892
+
893
+ # Update properties of this object
894
+ def update!(**args)
895
+ @error_message = args[:error_message] if args.key?(:error_message)
896
+ end
897
+ end
898
+
899
+ # OCI repo configuration for a single cluster.
900
+ class ConfigManagementOciConfig
901
+ include Google::Apis::Core::Hashable
902
+
903
+ # The Google Cloud Service Account Email used for auth when secret_type is
904
+ # gcpServiceAccount.
905
+ # Corresponds to the JSON property `gcpServiceAccountEmail`
906
+ # @return [String]
907
+ attr_accessor :gcp_service_account_email
908
+
909
+ # The absolute path of the directory that contains the local resources. Default:
910
+ # the root directory of the image.
911
+ # Corresponds to the JSON property `policyDir`
912
+ # @return [String]
913
+ attr_accessor :policy_dir
914
+
915
+ # Type of secret configured for access to the Git repo.
916
+ # Corresponds to the JSON property `secretType`
917
+ # @return [String]
918
+ attr_accessor :secret_type
919
+
920
+ # The OCI image repository URL for the package to sync from. e.g. `LOCATION-
921
+ # docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME`.
922
+ # Corresponds to the JSON property `syncRepo`
923
+ # @return [String]
924
+ attr_accessor :sync_repo
925
+
926
+ # Period in seconds between consecutive syncs. Default: 15.
927
+ # Corresponds to the JSON property `syncWaitSecs`
928
+ # @return [Fixnum]
929
+ attr_accessor :sync_wait_secs
930
+
931
+ def initialize(**args)
932
+ update!(**args)
933
+ end
934
+
935
+ # Update properties of this object
936
+ def update!(**args)
937
+ @gcp_service_account_email = args[:gcp_service_account_email] if args.key?(:gcp_service_account_email)
938
+ @policy_dir = args[:policy_dir] if args.key?(:policy_dir)
939
+ @secret_type = args[:secret_type] if args.key?(:secret_type)
940
+ @sync_repo = args[:sync_repo] if args.key?(:sync_repo)
941
+ @sync_wait_secs = args[:sync_wait_secs] if args.key?(:sync_wait_secs)
942
+ end
943
+ end
944
+
945
+ # State information for an ACM's Operator.
946
+ class ConfigManagementOperatorState
947
+ include Google::Apis::Core::Hashable
948
+
949
+ # The state of the Operator's deployment.
950
+ # Corresponds to the JSON property `deploymentState`
951
+ # @return [String]
952
+ attr_accessor :deployment_state
953
+
954
+ # Install errors.
955
+ # Corresponds to the JSON property `errors`
956
+ # @return [Array<Google::Apis::GkehubV2alpha::ConfigManagementInstallError>]
957
+ attr_accessor :errors
958
+
959
+ # The semenatic version number of the operator.
960
+ # Corresponds to the JSON property `version`
961
+ # @return [String]
962
+ attr_accessor :version
963
+
964
+ def initialize(**args)
965
+ update!(**args)
966
+ end
967
+
968
+ # Update properties of this object
969
+ def update!(**args)
970
+ @deployment_state = args[:deployment_state] if args.key?(:deployment_state)
971
+ @errors = args[:errors] if args.key?(:errors)
972
+ @version = args[:version] if args.key?(:version)
973
+ end
974
+ end
975
+
976
+ # Configuration for Policy Controller
977
+ class ConfigManagementPolicyController
978
+ include Google::Apis::Core::Hashable
979
+
980
+ # Sets the interval for Policy Controller Audit Scans (in seconds). When set to
981
+ # 0, this disables audit functionality altogether.
982
+ # Corresponds to the JSON property `auditIntervalSeconds`
983
+ # @return [Fixnum]
984
+ attr_accessor :audit_interval_seconds
985
+
986
+ # Enables the installation of Policy Controller. If false, the rest of
987
+ # PolicyController fields take no effect.
988
+ # Corresponds to the JSON property `enabled`
989
+ # @return [Boolean]
990
+ attr_accessor :enabled
991
+ alias_method :enabled?, :enabled
992
+
993
+ # The set of namespaces that are excluded from Policy Controller checks.
994
+ # Namespaces do not need to currently exist on the cluster.
995
+ # Corresponds to the JSON property `exemptableNamespaces`
996
+ # @return [Array<String>]
997
+ attr_accessor :exemptable_namespaces
998
+
999
+ # Logs all denies and dry run failures.
1000
+ # Corresponds to the JSON property `logDeniesEnabled`
1001
+ # @return [Boolean]
1002
+ attr_accessor :log_denies_enabled
1003
+ alias_method :log_denies_enabled?, :log_denies_enabled
1004
+
1005
+ # PolicyControllerMonitoring specifies the backends Policy Controller should
1006
+ # export metrics to. For example, to specify metrics should be exported to Cloud
1007
+ # Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]
1008
+ # Corresponds to the JSON property `monitoring`
1009
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementPolicyControllerMonitoring]
1010
+ attr_accessor :monitoring
1011
+
1012
+ # Enable or disable mutation in policy controller. If true, mutation CRDs,
1013
+ # webhook and controller deployment will be deployed to the cluster.
1014
+ # Corresponds to the JSON property `mutationEnabled`
1015
+ # @return [Boolean]
1016
+ attr_accessor :mutation_enabled
1017
+ alias_method :mutation_enabled?, :mutation_enabled
1018
+
1019
+ # Enables the ability to use Constraint Templates that reference to objects
1020
+ # other than the object currently being evaluated.
1021
+ # Corresponds to the JSON property `referentialRulesEnabled`
1022
+ # @return [Boolean]
1023
+ attr_accessor :referential_rules_enabled
1024
+ alias_method :referential_rules_enabled?, :referential_rules_enabled
1025
+
1026
+ # Installs the default template library along with Policy Controller.
1027
+ # Corresponds to the JSON property `templateLibraryInstalled`
1028
+ # @return [Boolean]
1029
+ attr_accessor :template_library_installed
1030
+ alias_method :template_library_installed?, :template_library_installed
1031
+
1032
+ # Output only. Last time this membership spec was updated.
1033
+ # Corresponds to the JSON property `updateTime`
1034
+ # @return [String]
1035
+ attr_accessor :update_time
1036
+
1037
+ def initialize(**args)
1038
+ update!(**args)
1039
+ end
1040
+
1041
+ # Update properties of this object
1042
+ def update!(**args)
1043
+ @audit_interval_seconds = args[:audit_interval_seconds] if args.key?(:audit_interval_seconds)
1044
+ @enabled = args[:enabled] if args.key?(:enabled)
1045
+ @exemptable_namespaces = args[:exemptable_namespaces] if args.key?(:exemptable_namespaces)
1046
+ @log_denies_enabled = args[:log_denies_enabled] if args.key?(:log_denies_enabled)
1047
+ @monitoring = args[:monitoring] if args.key?(:monitoring)
1048
+ @mutation_enabled = args[:mutation_enabled] if args.key?(:mutation_enabled)
1049
+ @referential_rules_enabled = args[:referential_rules_enabled] if args.key?(:referential_rules_enabled)
1050
+ @template_library_installed = args[:template_library_installed] if args.key?(:template_library_installed)
1051
+ @update_time = args[:update_time] if args.key?(:update_time)
1052
+ end
1053
+ end
1054
+
1055
+ # State for the migration of PolicyController from ACM -> PoCo Hub.
1056
+ class ConfigManagementPolicyControllerMigration
1057
+ include Google::Apis::Core::Hashable
1058
+
1059
+ # Last time this membership spec was copied to PoCo feature.
1060
+ # Corresponds to the JSON property `copyTime`
1061
+ # @return [String]
1062
+ attr_accessor :copy_time
1063
+
1064
+ # Stage of the migration.
1065
+ # Corresponds to the JSON property `stage`
1066
+ # @return [String]
1067
+ attr_accessor :stage
1068
+
1069
+ def initialize(**args)
1070
+ update!(**args)
1071
+ end
1072
+
1073
+ # Update properties of this object
1074
+ def update!(**args)
1075
+ @copy_time = args[:copy_time] if args.key?(:copy_time)
1076
+ @stage = args[:stage] if args.key?(:stage)
1077
+ end
1078
+ end
1079
+
1080
+ # PolicyControllerMonitoring specifies the backends Policy Controller should
1081
+ # export metrics to. For example, to specify metrics should be exported to Cloud
1082
+ # Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]
1083
+ class ConfigManagementPolicyControllerMonitoring
1084
+ include Google::Apis::Core::Hashable
1085
+
1086
+ # Specifies the list of backends Policy Controller will export to. An empty list
1087
+ # would effectively disable metrics export.
1088
+ # Corresponds to the JSON property `backends`
1089
+ # @return [Array<String>]
1090
+ attr_accessor :backends
1091
+
1092
+ def initialize(**args)
1093
+ update!(**args)
1094
+ end
1095
+
1096
+ # Update properties of this object
1097
+ def update!(**args)
1098
+ @backends = args[:backends] if args.key?(:backends)
1099
+ end
1100
+ end
1101
+
1102
+ # State for PolicyControllerState.
1103
+ class ConfigManagementPolicyControllerState
1104
+ include Google::Apis::Core::Hashable
1105
+
1106
+ # State of Policy Controller installation.
1107
+ # Corresponds to the JSON property `deploymentState`
1108
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementGatekeeperDeploymentState]
1109
+ attr_accessor :deployment_state
1110
+
1111
+ # State for the migration of PolicyController from ACM -> PoCo Hub.
1112
+ # Corresponds to the JSON property `migration`
1113
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementPolicyControllerMigration]
1114
+ attr_accessor :migration
1115
+
1116
+ # The build version of Gatekeeper Policy Controller is using.
1117
+ # Corresponds to the JSON property `version`
1118
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementPolicyControllerVersion]
1119
+ attr_accessor :version
1120
+
1121
+ def initialize(**args)
1122
+ update!(**args)
1123
+ end
1124
+
1125
+ # Update properties of this object
1126
+ def update!(**args)
1127
+ @deployment_state = args[:deployment_state] if args.key?(:deployment_state)
1128
+ @migration = args[:migration] if args.key?(:migration)
1129
+ @version = args[:version] if args.key?(:version)
1130
+ end
1131
+ end
1132
+
1133
+ # The build version of Gatekeeper Policy Controller is using.
1134
+ class ConfigManagementPolicyControllerVersion
1135
+ include Google::Apis::Core::Hashable
1136
+
1137
+ # The gatekeeper image tag that is composed of ACM version, git tag, build
1138
+ # number.
1139
+ # Corresponds to the JSON property `version`
1140
+ # @return [String]
1141
+ attr_accessor :version
1142
+
1143
+ def initialize(**args)
1144
+ update!(**args)
1145
+ end
1146
+
1147
+ # Update properties of this object
1148
+ def update!(**args)
1149
+ @version = args[:version] if args.key?(:version)
1150
+ end
1151
+ end
1152
+
1153
+ # **Anthos Config Management**: Configuration for a single cluster. Intended to
1154
+ # parallel the ConfigManagement CR.
1155
+ class ConfigManagementSpec
1156
+ include Google::Apis::Core::Hashable
1157
+
1158
+ # Configuration for Binauthz.
1159
+ # Corresponds to the JSON property `binauthz`
1160
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementBinauthzConfig]
1161
+ attr_accessor :binauthz
1162
+
1163
+ # The user-specified cluster name used by Config Sync cluster-name-selector
1164
+ # annotation or ClusterSelector, for applying configs to only a subset of
1165
+ # clusters. Omit this field if the cluster's fleet membership name is used by
1166
+ # Config Sync cluster-name-selector annotation or ClusterSelector. Set this
1167
+ # field if a name different from the cluster's fleet membership name is used by
1168
+ # Config Sync cluster-name-selector annotation or ClusterSelector.
1169
+ # Corresponds to the JSON property `cluster`
1170
+ # @return [String]
1171
+ attr_accessor :cluster
1172
+
1173
+ # Configuration for Config Sync
1174
+ # Corresponds to the JSON property `configSync`
1175
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementConfigSync]
1176
+ attr_accessor :config_sync
1177
+
1178
+ # Configuration for Hierarchy Controller.
1179
+ # Corresponds to the JSON property `hierarchyController`
1180
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementHierarchyControllerConfig]
1181
+ attr_accessor :hierarchy_controller
1182
+
1183
+ # Enables automatic Feature management.
1184
+ # Corresponds to the JSON property `management`
1185
+ # @return [String]
1186
+ attr_accessor :management
1187
+
1188
+ # Configuration for Policy Controller
1189
+ # Corresponds to the JSON property `policyController`
1190
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementPolicyController]
1191
+ attr_accessor :policy_controller
1192
+
1193
+ # Version of ACM installed.
1194
+ # Corresponds to the JSON property `version`
1195
+ # @return [String]
1196
+ attr_accessor :version
1197
+
1198
+ def initialize(**args)
1199
+ update!(**args)
1200
+ end
1201
+
1202
+ # Update properties of this object
1203
+ def update!(**args)
1204
+ @binauthz = args[:binauthz] if args.key?(:binauthz)
1205
+ @cluster = args[:cluster] if args.key?(:cluster)
1206
+ @config_sync = args[:config_sync] if args.key?(:config_sync)
1207
+ @hierarchy_controller = args[:hierarchy_controller] if args.key?(:hierarchy_controller)
1208
+ @management = args[:management] if args.key?(:management)
1209
+ @policy_controller = args[:policy_controller] if args.key?(:policy_controller)
1210
+ @version = args[:version] if args.key?(:version)
1211
+ end
1212
+ end
1213
+
1214
+ # **Anthos Config Management**: State for a single cluster.
1215
+ class ConfigManagementState
1216
+ include Google::Apis::Core::Hashable
1217
+
1218
+ # State for Binauthz.
1219
+ # Corresponds to the JSON property `binauthzState`
1220
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementBinauthzState]
1221
+ attr_accessor :binauthz_state
1222
+
1223
+ # This field is set to the `cluster_name` field of the Membership Spec if it is
1224
+ # not empty. Otherwise, it is set to the cluster's fleet membership name.
1225
+ # Corresponds to the JSON property `clusterName`
1226
+ # @return [String]
1227
+ attr_accessor :cluster_name
1228
+
1229
+ # State information for ConfigSync.
1230
+ # Corresponds to the JSON property `configSyncState`
1231
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementConfigSyncState]
1232
+ attr_accessor :config_sync_state
1233
+
1234
+ # State for Hierarchy Controller.
1235
+ # Corresponds to the JSON property `hierarchyControllerState`
1236
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementHierarchyControllerState]
1237
+ attr_accessor :hierarchy_controller_state
1238
+
1239
+ # **Anthos Config Management**: Configuration for a single cluster. Intended to
1240
+ # parallel the ConfigManagement CR.
1241
+ # Corresponds to the JSON property `membershipSpec`
1242
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementSpec]
1243
+ attr_accessor :membership_spec
1244
+
1245
+ # State information for an ACM's Operator.
1246
+ # Corresponds to the JSON property `operatorState`
1247
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementOperatorState]
1248
+ attr_accessor :operator_state
1249
+
1250
+ # State for PolicyControllerState.
1251
+ # Corresponds to the JSON property `policyControllerState`
1252
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementPolicyControllerState]
1253
+ attr_accessor :policy_controller_state
1254
+
1255
+ def initialize(**args)
1256
+ update!(**args)
1257
+ end
1258
+
1259
+ # Update properties of this object
1260
+ def update!(**args)
1261
+ @binauthz_state = args[:binauthz_state] if args.key?(:binauthz_state)
1262
+ @cluster_name = args[:cluster_name] if args.key?(:cluster_name)
1263
+ @config_sync_state = args[:config_sync_state] if args.key?(:config_sync_state)
1264
+ @hierarchy_controller_state = args[:hierarchy_controller_state] if args.key?(:hierarchy_controller_state)
1265
+ @membership_spec = args[:membership_spec] if args.key?(:membership_spec)
1266
+ @operator_state = args[:operator_state] if args.key?(:operator_state)
1267
+ @policy_controller_state = args[:policy_controller_state] if args.key?(:policy_controller_state)
1268
+ end
1269
+ end
1270
+
1271
+ # An ACM created error representing a problem syncing configurations.
1272
+ class ConfigManagementSyncError
1273
+ include Google::Apis::Core::Hashable
1274
+
1275
+ # An ACM defined error code
1276
+ # Corresponds to the JSON property `code`
1277
+ # @return [String]
1278
+ attr_accessor :code
1279
+
1280
+ # A description of the error
1281
+ # Corresponds to the JSON property `errorMessage`
1282
+ # @return [String]
1283
+ attr_accessor :error_message
1284
+
1285
+ # A list of config(s) associated with the error, if any
1286
+ # Corresponds to the JSON property `errorResources`
1287
+ # @return [Array<Google::Apis::GkehubV2alpha::ConfigManagementErrorResource>]
1288
+ attr_accessor :error_resources
1289
+
1290
+ def initialize(**args)
1291
+ update!(**args)
1292
+ end
1293
+
1294
+ # Update properties of this object
1295
+ def update!(**args)
1296
+ @code = args[:code] if args.key?(:code)
1297
+ @error_message = args[:error_message] if args.key?(:error_message)
1298
+ @error_resources = args[:error_resources] if args.key?(:error_resources)
1299
+ end
1300
+ end
1301
+
1302
+ # State indicating an ACM's progress syncing configurations to a cluster.
1303
+ class ConfigManagementSyncState
1304
+ include Google::Apis::Core::Hashable
1305
+
1306
+ # Sync status code.
1307
+ # Corresponds to the JSON property `code`
1308
+ # @return [String]
1309
+ attr_accessor :code
1310
+
1311
+ # A list of errors resulting from problematic configs. This list will be
1312
+ # truncated after 100 errors, although it is unlikely for that many errors to
1313
+ # simultaneously exist.
1314
+ # Corresponds to the JSON property `errors`
1315
+ # @return [Array<Google::Apis::GkehubV2alpha::ConfigManagementSyncError>]
1316
+ attr_accessor :errors
1317
+
1318
+ # Token indicating the state of the importer.
1319
+ # Corresponds to the JSON property `importToken`
1320
+ # @return [String]
1321
+ attr_accessor :import_token
1322
+
1323
+ # Deprecated: use last_sync_time instead. Timestamp of when ACM last
1324
+ # successfully synced the repo. The time format is specified in https://golang.
1325
+ # org/pkg/time/#Time.String
1326
+ # Corresponds to the JSON property `lastSync`
1327
+ # @return [String]
1328
+ attr_accessor :last_sync
1329
+
1330
+ # Timestamp type of when ACM last successfully synced the repo.
1331
+ # Corresponds to the JSON property `lastSyncTime`
1332
+ # @return [String]
1333
+ attr_accessor :last_sync_time
1334
+
1335
+ # Token indicating the state of the repo.
1336
+ # Corresponds to the JSON property `sourceToken`
1337
+ # @return [String]
1338
+ attr_accessor :source_token
1339
+
1340
+ # Token indicating the state of the syncer.
1341
+ # Corresponds to the JSON property `syncToken`
1342
+ # @return [String]
1343
+ attr_accessor :sync_token
1344
+
1345
+ def initialize(**args)
1346
+ update!(**args)
1347
+ end
1348
+
1349
+ # Update properties of this object
1350
+ def update!(**args)
1351
+ @code = args[:code] if args.key?(:code)
1352
+ @errors = args[:errors] if args.key?(:errors)
1353
+ @import_token = args[:import_token] if args.key?(:import_token)
1354
+ @last_sync = args[:last_sync] if args.key?(:last_sync)
1355
+ @last_sync_time = args[:last_sync_time] if args.key?(:last_sync_time)
1356
+ @source_token = args[:source_token] if args.key?(:source_token)
1357
+ @sync_token = args[:sync_token] if args.key?(:sync_token)
1358
+ end
1359
+ end
1360
+
1361
+ # A generic empty message that you can re-use to avoid defining duplicated empty
1362
+ # messages in your APIs. A typical example is to use it as the request or the
1363
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
1364
+ # protobuf.Empty) returns (google.protobuf.Empty); `
1365
+ class Empty
1366
+ include Google::Apis::Core::Hashable
1367
+
1368
+ def initialize(**args)
1369
+ update!(**args)
1370
+ end
1371
+
1372
+ # Update properties of this object
1373
+ def update!(**args)
1374
+ end
1375
+ end
1376
+
1377
+ # Information of the FeatureConfig applied on the MembershipFeature.
1378
+ class FeatureConfigRef
1379
+ include Google::Apis::Core::Hashable
1380
+
1381
+ # Input only. Resource name of FeatureConfig, in the format: `projects/`project`/
1382
+ # locations/global/featureConfigs/`feature_config``.
1383
+ # Corresponds to the JSON property `config`
1384
+ # @return [String]
1385
+ attr_accessor :config
1386
+
1387
+ # Output only. When the FeatureConfig was last applied and copied to FeatureSpec.
1388
+ # Corresponds to the JSON property `configUpdateTime`
1389
+ # @return [String]
1390
+ attr_accessor :config_update_time
1391
+
1392
+ # Output only. An id that uniquely identify a FeatureConfig object.
1393
+ # Corresponds to the JSON property `uuid`
1394
+ # @return [String]
1395
+ attr_accessor :uuid
1396
+
1397
+ def initialize(**args)
1398
+ update!(**args)
1399
+ end
1400
+
1401
+ # Update properties of this object
1402
+ def update!(**args)
1403
+ @config = args[:config] if args.key?(:config)
1404
+ @config_update_time = args[:config_update_time] if args.key?(:config_update_time)
1405
+ @uuid = args[:uuid] if args.key?(:uuid)
1406
+ end
1407
+ end
1408
+
1409
+ # FeatureSpec contains user input per-feature spec information.
1410
+ class FeatureSpec
1411
+ include Google::Apis::Core::Hashable
1412
+
1413
+ # **Cloud Build**: Configurations for each Cloud Build enabled cluster.
1414
+ # Corresponds to the JSON property `cloudbuild`
1415
+ # @return [Google::Apis::GkehubV2alpha::CloudBuildSpec]
1416
+ attr_accessor :cloudbuild
1417
+
1418
+ # **Anthos Config Management**: Configuration for a single cluster. Intended to
1419
+ # parallel the ConfigManagement CR.
1420
+ # Corresponds to the JSON property `configmanagement`
1421
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementSpec]
1422
+ attr_accessor :configmanagement
1423
+
1424
+ # **IdentityService**: Configuration for a single membership.
1425
+ # Corresponds to the JSON property `identityservice`
1426
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSpec]
1427
+ attr_accessor :identityservice
1428
+
1429
+ # Origin defines where this FeatureSpec originated from.
1430
+ # Corresponds to the JSON property `origin`
1431
+ # @return [Google::Apis::GkehubV2alpha::Origin]
1432
+ attr_accessor :origin
1433
+
1434
+ # **Policy Controller**: Configuration for a single cluster. Intended to
1435
+ # parallel the PolicyController CR.
1436
+ # Corresponds to the JSON property `policycontroller`
1437
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerSpec]
1438
+ attr_accessor :policycontroller
1439
+
1440
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
1441
+ # Corresponds to the JSON property `servicemesh`
1442
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshSpec]
1443
+ attr_accessor :servicemesh
1444
+
1445
+ # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate
1446
+ # feature.
1447
+ # Corresponds to the JSON property `workloadcertificate`
1448
+ # @return [Google::Apis::GkehubV2alpha::WorkloadCertificateSpec]
1449
+ attr_accessor :workloadcertificate
1450
+
1451
+ def initialize(**args)
1452
+ update!(**args)
1453
+ end
1454
+
1455
+ # Update properties of this object
1456
+ def update!(**args)
1457
+ @cloudbuild = args[:cloudbuild] if args.key?(:cloudbuild)
1458
+ @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1459
+ @identityservice = args[:identityservice] if args.key?(:identityservice)
1460
+ @origin = args[:origin] if args.key?(:origin)
1461
+ @policycontroller = args[:policycontroller] if args.key?(:policycontroller)
1462
+ @servicemesh = args[:servicemesh] if args.key?(:servicemesh)
1463
+ @workloadcertificate = args[:workloadcertificate] if args.key?(:workloadcertificate)
1464
+ end
1465
+ end
1466
+
1467
+ # FeatureState contains high-level state information and per-feature state
1468
+ # information for this MembershipFeature.
1469
+ class FeatureState
1470
+ include Google::Apis::Core::Hashable
1471
+
1472
+ # State for App Dev Exp Feature.
1473
+ # Corresponds to the JSON property `appdevexperience`
1474
+ # @return [Google::Apis::GkehubV2alpha::AppDevExperienceState]
1475
+ attr_accessor :appdevexperience
1476
+
1477
+ # Per-membership state for this feature.
1478
+ # Corresponds to the JSON property `clusterupgrade`
1479
+ # @return [Google::Apis::GkehubV2alpha::ClusterUpgradeState]
1480
+ attr_accessor :clusterupgrade
1481
+
1482
+ # **Anthos Config Management**: State for a single cluster.
1483
+ # Corresponds to the JSON property `configmanagement`
1484
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementState]
1485
+ attr_accessor :configmanagement
1486
+
1487
+ # **IdentityService**: State for a single membership, analyzed and reported by
1488
+ # feature controller.
1489
+ # Corresponds to the JSON property `identityservice`
1490
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceState]
1491
+ attr_accessor :identityservice
1492
+
1493
+ # **Metering**: State for a single membership, analyzed and reported by feature
1494
+ # controller.
1495
+ # Corresponds to the JSON property `metering`
1496
+ # @return [Google::Apis::GkehubV2alpha::MeteringState]
1497
+ attr_accessor :metering
1498
+
1499
+ # **Policy Controller**: State for a single cluster.
1500
+ # Corresponds to the JSON property `policycontroller`
1501
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerState]
1502
+ attr_accessor :policycontroller
1503
+
1504
+ # **Service Mesh**: State for a single Membership, as analyzed by the Service
1505
+ # Mesh Hub Controller.
1506
+ # Corresponds to the JSON property `servicemesh`
1507
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshState]
1508
+ attr_accessor :servicemesh
1509
+
1510
+ # High-level state of a MembershipFeature.
1511
+ # Corresponds to the JSON property `state`
1512
+ # @return [Google::Apis::GkehubV2alpha::State]
1513
+ attr_accessor :state
1514
+
1515
+ def initialize(**args)
1516
+ update!(**args)
1517
+ end
1518
+
1519
+ # Update properties of this object
1520
+ def update!(**args)
1521
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
1522
+ @clusterupgrade = args[:clusterupgrade] if args.key?(:clusterupgrade)
1523
+ @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1524
+ @identityservice = args[:identityservice] if args.key?(:identityservice)
1525
+ @metering = args[:metering] if args.key?(:metering)
1526
+ @policycontroller = args[:policycontroller] if args.key?(:policycontroller)
1527
+ @servicemesh = args[:servicemesh] if args.key?(:servicemesh)
1528
+ @state = args[:state] if args.key?(:state)
1529
+ end
1530
+ end
1531
+
1532
+ # The `Status` type defines a logical error model that is suitable for different
1533
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1534
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1535
+ # data: error code, error message, and error details. You can find out more
1536
+ # about this error model and how to work with it in the [API Design Guide](https:
1537
+ # //cloud.google.com/apis/design/errors).
1538
+ class GoogleRpcStatus
1539
+ include Google::Apis::Core::Hashable
1540
+
1541
+ # The status code, which should be an enum value of google.rpc.Code.
1542
+ # Corresponds to the JSON property `code`
1543
+ # @return [Fixnum]
1544
+ attr_accessor :code
1545
+
1546
+ # A list of messages that carry the error details. There is a common set of
1547
+ # message types for APIs to use.
1548
+ # Corresponds to the JSON property `details`
1549
+ # @return [Array<Hash<String,Object>>]
1550
+ attr_accessor :details
1551
+
1552
+ # A developer-facing error message, which should be in English. Any user-facing
1553
+ # error message should be localized and sent in the google.rpc.Status.details
1554
+ # field, or localized by the client.
1555
+ # Corresponds to the JSON property `message`
1556
+ # @return [String]
1557
+ attr_accessor :message
1558
+
1559
+ def initialize(**args)
1560
+ update!(**args)
1561
+ end
1562
+
1563
+ # Update properties of this object
1564
+ def update!(**args)
1565
+ @code = args[:code] if args.key?(:code)
1566
+ @details = args[:details] if args.key?(:details)
1567
+ @message = args[:message] if args.key?(:message)
1568
+ end
1569
+ end
1570
+
1571
+ # Configuration of an auth method for a member/cluster. Only one authentication
1572
+ # method (e.g., OIDC and LDAP) can be set per AuthMethod.
1573
+ class IdentityServiceAuthMethod
1574
+ include Google::Apis::Core::Hashable
1575
+
1576
+ # Configuration for the AzureAD Auth flow.
1577
+ # Corresponds to the JSON property `azureadConfig`
1578
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceAzureAdConfig]
1579
+ attr_accessor :azuread_config
1580
+
1581
+ # Configuration for the Google Plugin Auth flow.
1582
+ # Corresponds to the JSON property `googleConfig`
1583
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceGoogleConfig]
1584
+ attr_accessor :google_config
1585
+
1586
+ # Configuration for the LDAP Auth flow.
1587
+ # Corresponds to the JSON property `ldapConfig`
1588
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceLdapConfig]
1589
+ attr_accessor :ldap_config
1590
+
1591
+ # Identifier for auth config.
1592
+ # Corresponds to the JSON property `name`
1593
+ # @return [String]
1594
+ attr_accessor :name
1595
+
1596
+ # Configuration for OIDC Auth flow.
1597
+ # Corresponds to the JSON property `oidcConfig`
1598
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceOidcConfig]
1599
+ attr_accessor :oidc_config
1600
+
1601
+ # Proxy server address to use for auth method.
1602
+ # Corresponds to the JSON property `proxy`
1603
+ # @return [String]
1604
+ attr_accessor :proxy
1605
+
1606
+ # Configuration for the SAML Auth flow.
1607
+ # Corresponds to the JSON property `samlConfig`
1608
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSamlConfig]
1609
+ attr_accessor :saml_config
1610
+
1611
+ def initialize(**args)
1612
+ update!(**args)
1613
+ end
1614
+
1615
+ # Update properties of this object
1616
+ def update!(**args)
1617
+ @azuread_config = args[:azuread_config] if args.key?(:azuread_config)
1618
+ @google_config = args[:google_config] if args.key?(:google_config)
1619
+ @ldap_config = args[:ldap_config] if args.key?(:ldap_config)
1620
+ @name = args[:name] if args.key?(:name)
1621
+ @oidc_config = args[:oidc_config] if args.key?(:oidc_config)
1622
+ @proxy = args[:proxy] if args.key?(:proxy)
1623
+ @saml_config = args[:saml_config] if args.key?(:saml_config)
1624
+ end
1625
+ end
1626
+
1627
+ # Configuration for the AzureAD Auth flow.
1628
+ class IdentityServiceAzureAdConfig
1629
+ include Google::Apis::Core::Hashable
1630
+
1631
+ # ID for the registered client application that makes authentication requests to
1632
+ # the Azure AD identity provider.
1633
+ # Corresponds to the JSON property `clientId`
1634
+ # @return [String]
1635
+ attr_accessor :client_id
1636
+
1637
+ # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub
1638
+ # CLH.
1639
+ # Corresponds to the JSON property `clientSecret`
1640
+ # @return [String]
1641
+ attr_accessor :client_secret
1642
+
1643
+ # Output only. Encrypted AzureAD client secret.
1644
+ # Corresponds to the JSON property `encryptedClientSecret`
1645
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1646
+ # @return [String]
1647
+ attr_accessor :encrypted_client_secret
1648
+
1649
+ # Optional. Format of the AzureAD groups that the client wants for auth.
1650
+ # Corresponds to the JSON property `groupFormat`
1651
+ # @return [String]
1652
+ attr_accessor :group_format
1653
+
1654
+ # The redirect URL that kubectl uses for authorization.
1655
+ # Corresponds to the JSON property `kubectlRedirectUri`
1656
+ # @return [String]
1657
+ attr_accessor :kubectl_redirect_uri
1658
+
1659
+ # Kind of Azure AD account to be authenticated. Supported values are or for
1660
+ # accounts belonging to a specific tenant.
1661
+ # Corresponds to the JSON property `tenant`
1662
+ # @return [String]
1663
+ attr_accessor :tenant
1664
+
1665
+ # Optional. Claim in the AzureAD ID Token that holds the user details.
1666
+ # Corresponds to the JSON property `userClaim`
1667
+ # @return [String]
1668
+ attr_accessor :user_claim
1669
+
1670
+ def initialize(**args)
1671
+ update!(**args)
1672
+ end
1673
+
1674
+ # Update properties of this object
1675
+ def update!(**args)
1676
+ @client_id = args[:client_id] if args.key?(:client_id)
1677
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1678
+ @encrypted_client_secret = args[:encrypted_client_secret] if args.key?(:encrypted_client_secret)
1679
+ @group_format = args[:group_format] if args.key?(:group_format)
1680
+ @kubectl_redirect_uri = args[:kubectl_redirect_uri] if args.key?(:kubectl_redirect_uri)
1681
+ @tenant = args[:tenant] if args.key?(:tenant)
1682
+ @user_claim = args[:user_claim] if args.key?(:user_claim)
1683
+ end
1684
+ end
1685
+
1686
+ # Configuration options for the AIS diagnostic interface.
1687
+ class IdentityServiceDiagnosticInterface
1688
+ include Google::Apis::Core::Hashable
1689
+
1690
+ # Determines whether to enable the diagnostic interface.
1691
+ # Corresponds to the JSON property `enabled`
1692
+ # @return [Boolean]
1693
+ attr_accessor :enabled
1694
+ alias_method :enabled?, :enabled
1695
+
1696
+ # Determines the expiration time of the diagnostic interface enablement. When
1697
+ # reached, requests to the interface would be automatically rejected.
1698
+ # Corresponds to the JSON property `expirationTime`
1699
+ # @return [String]
1700
+ attr_accessor :expiration_time
1701
+
1702
+ def initialize(**args)
1703
+ update!(**args)
1704
+ end
1705
+
1706
+ # Update properties of this object
1707
+ def update!(**args)
1708
+ @enabled = args[:enabled] if args.key?(:enabled)
1709
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
1710
+ end
1711
+ end
1712
+
1713
+ # Configuration for the Google Plugin Auth flow.
1714
+ class IdentityServiceGoogleConfig
1715
+ include Google::Apis::Core::Hashable
1716
+
1717
+ # Disable automatic configuration of Google Plugin on supported platforms.
1718
+ # Corresponds to the JSON property `disable`
1719
+ # @return [Boolean]
1720
+ attr_accessor :disable
1721
+ alias_method :disable?, :disable
1722
+
1723
+ def initialize(**args)
1724
+ update!(**args)
1725
+ end
1726
+
1727
+ # Update properties of this object
1728
+ def update!(**args)
1729
+ @disable = args[:disable] if args.key?(:disable)
1730
+ end
1731
+ end
1732
+
1733
+ # Contains the properties for locating and authenticating groups in the
1734
+ # directory.
1735
+ class IdentityServiceGroupConfig
1736
+ include Google::Apis::Core::Hashable
1737
+
1738
+ # Required. The location of the subtree in the LDAP directory to search for
1739
+ # group entries.
1740
+ # Corresponds to the JSON property `baseDn`
1741
+ # @return [String]
1742
+ attr_accessor :base_dn
1743
+
1744
+ # Optional. Optional filter to be used when searching for groups a user belongs
1745
+ # to. This can be used to explicitly match only certain groups in order to
1746
+ # reduce the amount of groups returned for each user. This defaults to "(
1747
+ # objectClass=Group)".
1748
+ # Corresponds to the JSON property `filter`
1749
+ # @return [String]
1750
+ attr_accessor :filter
1751
+
1752
+ # Optional. The identifying name of each group a user belongs to. For example,
1753
+ # if this is set to "distinguishedName" then RBACs and other group expectations
1754
+ # should be written as full DNs. This defaults to "distinguishedName".
1755
+ # Corresponds to the JSON property `idAttribute`
1756
+ # @return [String]
1757
+ attr_accessor :id_attribute
1758
+
1759
+ def initialize(**args)
1760
+ update!(**args)
1761
+ end
1762
+
1763
+ # Update properties of this object
1764
+ def update!(**args)
1765
+ @base_dn = args[:base_dn] if args.key?(:base_dn)
1766
+ @filter = args[:filter] if args.key?(:filter)
1767
+ @id_attribute = args[:id_attribute] if args.key?(:id_attribute)
1768
+ end
1769
+ end
1770
+
1771
+ # Holds non-protocol-related configuration options.
1772
+ class IdentityServiceIdentityServiceOptions
1773
+ include Google::Apis::Core::Hashable
1774
+
1775
+ # Configuration options for the AIS diagnostic interface.
1776
+ # Corresponds to the JSON property `diagnosticInterface`
1777
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceDiagnosticInterface]
1778
+ attr_accessor :diagnostic_interface
1779
+
1780
+ # Determines the lifespan of STS tokens issued by Anthos Identity Service.
1781
+ # Corresponds to the JSON property `sessionDuration`
1782
+ # @return [String]
1783
+ attr_accessor :session_duration
1784
+
1785
+ def initialize(**args)
1786
+ update!(**args)
1787
+ end
1788
+
1789
+ # Update properties of this object
1790
+ def update!(**args)
1791
+ @diagnostic_interface = args[:diagnostic_interface] if args.key?(:diagnostic_interface)
1792
+ @session_duration = args[:session_duration] if args.key?(:session_duration)
1793
+ end
1794
+ end
1795
+
1796
+ # Configuration for the LDAP Auth flow.
1797
+ class IdentityServiceLdapConfig
1798
+ include Google::Apis::Core::Hashable
1799
+
1800
+ # Contains the properties for locating and authenticating groups in the
1801
+ # directory.
1802
+ # Corresponds to the JSON property `group`
1803
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceGroupConfig]
1804
+ attr_accessor :group
1805
+
1806
+ # Server settings for the external LDAP server.
1807
+ # Corresponds to the JSON property `server`
1808
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceServerConfig]
1809
+ attr_accessor :server
1810
+
1811
+ # Contains the credentials of the service account which is authorized to perform
1812
+ # the LDAP search in the directory. The credentials can be supplied by the
1813
+ # combination of the DN and password or the client certificate.
1814
+ # Corresponds to the JSON property `serviceAccount`
1815
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceServiceAccountConfig]
1816
+ attr_accessor :service_account
1817
+
1818
+ # Defines where users exist in the LDAP directory.
1819
+ # Corresponds to the JSON property `user`
1820
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceUserConfig]
1821
+ attr_accessor :user
1822
+
1823
+ def initialize(**args)
1824
+ update!(**args)
1825
+ end
1826
+
1827
+ # Update properties of this object
1828
+ def update!(**args)
1829
+ @group = args[:group] if args.key?(:group)
1830
+ @server = args[:server] if args.key?(:server)
1831
+ @service_account = args[:service_account] if args.key?(:service_account)
1832
+ @user = args[:user] if args.key?(:user)
1833
+ end
1834
+ end
1835
+
1836
+ # Configuration for OIDC Auth flow.
1837
+ class IdentityServiceOidcConfig
1838
+ include Google::Apis::Core::Hashable
1839
+
1840
+ # PEM-encoded CA for OIDC provider.
1841
+ # Corresponds to the JSON property `certificateAuthorityData`
1842
+ # @return [String]
1843
+ attr_accessor :certificate_authority_data
1844
+
1845
+ # ID for OIDC client application.
1846
+ # Corresponds to the JSON property `clientId`
1847
+ # @return [String]
1848
+ attr_accessor :client_id
1849
+
1850
+ # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
1851
+ # Corresponds to the JSON property `clientSecret`
1852
+ # @return [String]
1853
+ attr_accessor :client_secret
1854
+
1855
+ # Flag to denote if reverse proxy is used to connect to auth provider. This flag
1856
+ # should be set to true when provider is not reachable by Google Cloud Console.
1857
+ # Corresponds to the JSON property `deployCloudConsoleProxy`
1858
+ # @return [Boolean]
1859
+ attr_accessor :deploy_cloud_console_proxy
1860
+ alias_method :deploy_cloud_console_proxy?, :deploy_cloud_console_proxy
1861
+
1862
+ # Enable access token.
1863
+ # Corresponds to the JSON property `enableAccessToken`
1864
+ # @return [Boolean]
1865
+ attr_accessor :enable_access_token
1866
+ alias_method :enable_access_token?, :enable_access_token
1867
+
1868
+ # Output only. Encrypted OIDC Client secret
1869
+ # Corresponds to the JSON property `encryptedClientSecret`
1870
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1871
+ # @return [String]
1872
+ attr_accessor :encrypted_client_secret
1873
+
1874
+ # Comma-separated list of key-value pairs.
1875
+ # Corresponds to the JSON property `extraParams`
1876
+ # @return [String]
1877
+ attr_accessor :extra_params
1878
+
1879
+ # Prefix to prepend to group name.
1880
+ # Corresponds to the JSON property `groupPrefix`
1881
+ # @return [String]
1882
+ attr_accessor :group_prefix
1883
+
1884
+ # Claim in OIDC ID token that holds group information.
1885
+ # Corresponds to the JSON property `groupsClaim`
1886
+ # @return [String]
1887
+ attr_accessor :groups_claim
1888
+
1889
+ # URI for the OIDC provider. This should point to the level below .well-known/
1890
+ # openid-configuration.
1891
+ # Corresponds to the JSON property `issuerUri`
1892
+ # @return [String]
1893
+ attr_accessor :issuer_uri
1894
+
1895
+ # Registered redirect uri to redirect users going through OAuth flow using
1896
+ # kubectl plugin.
1897
+ # Corresponds to the JSON property `kubectlRedirectUri`
1898
+ # @return [String]
1899
+ attr_accessor :kubectl_redirect_uri
1900
+
1901
+ # Comma-separated list of identifiers.
1902
+ # Corresponds to the JSON property `scopes`
1903
+ # @return [String]
1904
+ attr_accessor :scopes
1905
+
1906
+ # Claim in OIDC ID token that holds username.
1907
+ # Corresponds to the JSON property `userClaim`
1908
+ # @return [String]
1909
+ attr_accessor :user_claim
1910
+
1911
+ # Prefix to prepend to user name.
1912
+ # Corresponds to the JSON property `userPrefix`
1913
+ # @return [String]
1914
+ attr_accessor :user_prefix
1915
+
1916
+ def initialize(**args)
1917
+ update!(**args)
1918
+ end
1919
+
1920
+ # Update properties of this object
1921
+ def update!(**args)
1922
+ @certificate_authority_data = args[:certificate_authority_data] if args.key?(:certificate_authority_data)
1923
+ @client_id = args[:client_id] if args.key?(:client_id)
1924
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1925
+ @deploy_cloud_console_proxy = args[:deploy_cloud_console_proxy] if args.key?(:deploy_cloud_console_proxy)
1926
+ @enable_access_token = args[:enable_access_token] if args.key?(:enable_access_token)
1927
+ @encrypted_client_secret = args[:encrypted_client_secret] if args.key?(:encrypted_client_secret)
1928
+ @extra_params = args[:extra_params] if args.key?(:extra_params)
1929
+ @group_prefix = args[:group_prefix] if args.key?(:group_prefix)
1930
+ @groups_claim = args[:groups_claim] if args.key?(:groups_claim)
1931
+ @issuer_uri = args[:issuer_uri] if args.key?(:issuer_uri)
1932
+ @kubectl_redirect_uri = args[:kubectl_redirect_uri] if args.key?(:kubectl_redirect_uri)
1933
+ @scopes = args[:scopes] if args.key?(:scopes)
1934
+ @user_claim = args[:user_claim] if args.key?(:user_claim)
1935
+ @user_prefix = args[:user_prefix] if args.key?(:user_prefix)
1936
+ end
1937
+ end
1938
+
1939
+ # Configuration for the SAML Auth flow.
1940
+ class IdentityServiceSamlConfig
1941
+ include Google::Apis::Core::Hashable
1942
+
1943
+ # Optional. The mapping of additional user attributes like nickname, birthday
1944
+ # and address etc.. `key` is the name of this additional attribute. `value` is a
1945
+ # string presenting as CEL(common expression language, go/cel) used for getting
1946
+ # the value from the resources. Take nickname as an example, in this case, `key`
1947
+ # is "attribute.nickname" and `value` is "assertion.nickname".
1948
+ # Corresponds to the JSON property `attributeMapping`
1949
+ # @return [Hash<String,String>]
1950
+ attr_accessor :attribute_mapping
1951
+
1952
+ # Optional. Prefix to prepend to group name.
1953
+ # Corresponds to the JSON property `groupPrefix`
1954
+ # @return [String]
1955
+ attr_accessor :group_prefix
1956
+
1957
+ # Optional. The SAML attribute to read groups from. This value is expected to be
1958
+ # a string and will be passed along as-is (with the option of being prefixed by
1959
+ # the `group_prefix`).
1960
+ # Corresponds to the JSON property `groupsAttribute`
1961
+ # @return [String]
1962
+ attr_accessor :groups_attribute
1963
+
1964
+ # Required. The list of IdP certificates to validate the SAML response against.
1965
+ # Corresponds to the JSON property `identityProviderCertificates`
1966
+ # @return [Array<String>]
1967
+ attr_accessor :identity_provider_certificates
1968
+
1969
+ # Required. The entity ID of the SAML IdP.
1970
+ # Corresponds to the JSON property `identityProviderId`
1971
+ # @return [String]
1972
+ attr_accessor :identity_provider_id
1973
+
1974
+ # Required. The URI where the SAML IdP exposes the SSO service.
1975
+ # Corresponds to the JSON property `identityProviderSsoUri`
1976
+ # @return [String]
1977
+ attr_accessor :identity_provider_sso_uri
1978
+
1979
+ # Optional. The SAML attribute to read username from. If unspecified, the
1980
+ # username will be read from the NameID element of the assertion in SAML
1981
+ # response. This value is expected to be a string and will be passed along as-is
1982
+ # (with the option of being prefixed by the `user_prefix`).
1983
+ # Corresponds to the JSON property `userAttribute`
1984
+ # @return [String]
1985
+ attr_accessor :user_attribute
1986
+
1987
+ # Optional. Prefix to prepend to user name.
1988
+ # Corresponds to the JSON property `userPrefix`
1989
+ # @return [String]
1990
+ attr_accessor :user_prefix
1991
+
1992
+ def initialize(**args)
1993
+ update!(**args)
1994
+ end
1995
+
1996
+ # Update properties of this object
1997
+ def update!(**args)
1998
+ @attribute_mapping = args[:attribute_mapping] if args.key?(:attribute_mapping)
1999
+ @group_prefix = args[:group_prefix] if args.key?(:group_prefix)
2000
+ @groups_attribute = args[:groups_attribute] if args.key?(:groups_attribute)
2001
+ @identity_provider_certificates = args[:identity_provider_certificates] if args.key?(:identity_provider_certificates)
2002
+ @identity_provider_id = args[:identity_provider_id] if args.key?(:identity_provider_id)
2003
+ @identity_provider_sso_uri = args[:identity_provider_sso_uri] if args.key?(:identity_provider_sso_uri)
2004
+ @user_attribute = args[:user_attribute] if args.key?(:user_attribute)
2005
+ @user_prefix = args[:user_prefix] if args.key?(:user_prefix)
2006
+ end
2007
+ end
2008
+
2009
+ # Server settings for the external LDAP server.
2010
+ class IdentityServiceServerConfig
2011
+ include Google::Apis::Core::Hashable
2012
+
2013
+ # Optional. Contains a Base64 encoded, PEM formatted certificate authority
2014
+ # certificate for the LDAP server. This must be provided for the "ldaps" and "
2015
+ # startTLS" connections.
2016
+ # Corresponds to the JSON property `certificateAuthorityData`
2017
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2018
+ # @return [String]
2019
+ attr_accessor :certificate_authority_data
2020
+
2021
+ # Optional. Defines the connection type to communicate with the LDAP server. If `
2022
+ # starttls` or `ldaps` is specified, the certificate_authority_data should not
2023
+ # be empty.
2024
+ # Corresponds to the JSON property `connectionType`
2025
+ # @return [String]
2026
+ attr_accessor :connection_type
2027
+
2028
+ # Required. Defines the hostname or IP of the LDAP server. Port is optional and
2029
+ # will default to 389, if unspecified. For example, "ldap.server.example" or "10.
2030
+ # 10.10.10:389".
2031
+ # Corresponds to the JSON property `host`
2032
+ # @return [String]
2033
+ attr_accessor :host
2034
+
2035
+ def initialize(**args)
2036
+ update!(**args)
2037
+ end
2038
+
2039
+ # Update properties of this object
2040
+ def update!(**args)
2041
+ @certificate_authority_data = args[:certificate_authority_data] if args.key?(:certificate_authority_data)
2042
+ @connection_type = args[:connection_type] if args.key?(:connection_type)
2043
+ @host = args[:host] if args.key?(:host)
2044
+ end
2045
+ end
2046
+
2047
+ # Contains the credentials of the service account which is authorized to perform
2048
+ # the LDAP search in the directory. The credentials can be supplied by the
2049
+ # combination of the DN and password or the client certificate.
2050
+ class IdentityServiceServiceAccountConfig
2051
+ include Google::Apis::Core::Hashable
2052
+
2053
+ # The structure holds the LDAP simple binding credential.
2054
+ # Corresponds to the JSON property `simpleBindCredentials`
2055
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSimpleBindCredentials]
2056
+ attr_accessor :simple_bind_credentials
2057
+
2058
+ def initialize(**args)
2059
+ update!(**args)
2060
+ end
2061
+
2062
+ # Update properties of this object
2063
+ def update!(**args)
2064
+ @simple_bind_credentials = args[:simple_bind_credentials] if args.key?(:simple_bind_credentials)
2065
+ end
2066
+ end
2067
+
2068
+ # The structure holds the LDAP simple binding credential.
2069
+ class IdentityServiceSimpleBindCredentials
2070
+ include Google::Apis::Core::Hashable
2071
+
2072
+ # Required. The distinguished name(DN) of the service account object/user.
2073
+ # Corresponds to the JSON property `dn`
2074
+ # @return [String]
2075
+ attr_accessor :dn
2076
+
2077
+ # Output only. The encrypted password of the service account object/user.
2078
+ # Corresponds to the JSON property `encryptedPassword`
2079
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2080
+ # @return [String]
2081
+ attr_accessor :encrypted_password
2082
+
2083
+ # Required. Input only. The password of the service account object/user.
2084
+ # Corresponds to the JSON property `password`
2085
+ # @return [String]
2086
+ attr_accessor :password
2087
+
2088
+ def initialize(**args)
2089
+ update!(**args)
2090
+ end
2091
+
2092
+ # Update properties of this object
2093
+ def update!(**args)
2094
+ @dn = args[:dn] if args.key?(:dn)
2095
+ @encrypted_password = args[:encrypted_password] if args.key?(:encrypted_password)
2096
+ @password = args[:password] if args.key?(:password)
2097
+ end
2098
+ end
2099
+
2100
+ # **IdentityService**: Configuration for a single membership.
2101
+ class IdentityServiceSpec
2102
+ include Google::Apis::Core::Hashable
2103
+
2104
+ # A member may support multiple auth methods.
2105
+ # Corresponds to the JSON property `authMethods`
2106
+ # @return [Array<Google::Apis::GkehubV2alpha::IdentityServiceAuthMethod>]
2107
+ attr_accessor :auth_methods
2108
+
2109
+ # Holds non-protocol-related configuration options.
2110
+ # Corresponds to the JSON property `identityServiceOptions`
2111
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceIdentityServiceOptions]
2112
+ attr_accessor :identity_service_options
2113
+
2114
+ def initialize(**args)
2115
+ update!(**args)
2116
+ end
2117
+
2118
+ # Update properties of this object
2119
+ def update!(**args)
2120
+ @auth_methods = args[:auth_methods] if args.key?(:auth_methods)
2121
+ @identity_service_options = args[:identity_service_options] if args.key?(:identity_service_options)
2122
+ end
2123
+ end
2124
+
2125
+ # **IdentityService**: State for a single membership, analyzed and reported by
2126
+ # feature controller.
2127
+ class IdentityServiceState
2128
+ include Google::Apis::Core::Hashable
2129
+
2130
+ # The reason of the failure.
2131
+ # Corresponds to the JSON property `failureReason`
2132
+ # @return [String]
2133
+ attr_accessor :failure_reason
2134
+
2135
+ # Installed AIS version. This is the AIS version installed on this member. The
2136
+ # values makes sense iff state is OK.
2137
+ # Corresponds to the JSON property `installedVersion`
2138
+ # @return [String]
2139
+ attr_accessor :installed_version
2140
+
2141
+ # **IdentityService**: Configuration for a single membership.
2142
+ # Corresponds to the JSON property `memberConfig`
2143
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSpec]
2144
+ attr_accessor :member_config
2145
+
2146
+ # Deployment state on this member
2147
+ # Corresponds to the JSON property `state`
2148
+ # @return [String]
2149
+ attr_accessor :state
2150
+
2151
+ def initialize(**args)
2152
+ update!(**args)
2153
+ end
2154
+
2155
+ # Update properties of this object
2156
+ def update!(**args)
2157
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
2158
+ @installed_version = args[:installed_version] if args.key?(:installed_version)
2159
+ @member_config = args[:member_config] if args.key?(:member_config)
2160
+ @state = args[:state] if args.key?(:state)
2161
+ end
2162
+ end
2163
+
2164
+ # Defines where users exist in the LDAP directory.
2165
+ class IdentityServiceUserConfig
2166
+ include Google::Apis::Core::Hashable
2167
+
2168
+ # Required. The location of the subtree in the LDAP directory to search for user
2169
+ # entries.
2170
+ # Corresponds to the JSON property `baseDn`
2171
+ # @return [String]
2172
+ attr_accessor :base_dn
2173
+
2174
+ # Optional. Filter to apply when searching for the user. This can be used to
2175
+ # further restrict the user accounts which are allowed to login. This defaults
2176
+ # to "(objectClass=User)".
2177
+ # Corresponds to the JSON property `filter`
2178
+ # @return [String]
2179
+ attr_accessor :filter
2180
+
2181
+ # Optional. Determines which attribute to use as the user's identity after they
2182
+ # are authenticated. This is distinct from the loginAttribute field to allow
2183
+ # users to login with a username, but then have their actual identifier be an
2184
+ # email address or full Distinguished Name (DN). For example, setting
2185
+ # loginAttribute to "sAMAccountName" and identifierAttribute to "
2186
+ # userPrincipalName" would allow a user to login as "bsmith", but actual RBAC
2187
+ # policies for the user would be written as "bsmith@example.com". Using "
2188
+ # userPrincipalName" is recommended since this will be unique for each user.
2189
+ # This defaults to "userPrincipalName".
2190
+ # Corresponds to the JSON property `idAttribute`
2191
+ # @return [String]
2192
+ attr_accessor :id_attribute
2193
+
2194
+ # Optional. The name of the attribute which matches against the input username.
2195
+ # This is used to find the user in the LDAP database e.g. "(=)" and is combined
2196
+ # with the optional filter field. This defaults to "userPrincipalName".
2197
+ # Corresponds to the JSON property `loginAttribute`
2198
+ # @return [String]
2199
+ attr_accessor :login_attribute
2200
+
2201
+ def initialize(**args)
2202
+ update!(**args)
2203
+ end
2204
+
2205
+ # Update properties of this object
2206
+ def update!(**args)
2207
+ @base_dn = args[:base_dn] if args.key?(:base_dn)
2208
+ @filter = args[:filter] if args.key?(:filter)
2209
+ @id_attribute = args[:id_attribute] if args.key?(:id_attribute)
2210
+ @login_attribute = args[:login_attribute] if args.key?(:login_attribute)
2211
+ end
2212
+ end
2213
+
2214
+ # LifecycleState describes the state of a MembershipFeature *resource* in the
2215
+ # GkeHub API. See `FeatureState` for the "running state" of the
2216
+ # MembershipFeature.
2217
+ class LifecycleState
2218
+ include Google::Apis::Core::Hashable
2219
+
2220
+ # Output only. The current state of the Feature resource in the Hub API.
2221
+ # Corresponds to the JSON property `state`
2222
+ # @return [String]
2223
+ attr_accessor :state
2224
+
2225
+ def initialize(**args)
2226
+ update!(**args)
2227
+ end
2228
+
2229
+ # Update properties of this object
2230
+ def update!(**args)
2231
+ @state = args[:state] if args.key?(:state)
2232
+ end
2233
+ end
2234
+
2235
+ # The response message for Locations.ListLocations.
2236
+ class ListLocationsResponse
2237
+ include Google::Apis::Core::Hashable
2238
+
2239
+ # A list of locations that matches the specified filter in the request.
2240
+ # Corresponds to the JSON property `locations`
2241
+ # @return [Array<Google::Apis::GkehubV2alpha::Location>]
2242
+ attr_accessor :locations
2243
+
2244
+ # The standard List next-page token.
2245
+ # Corresponds to the JSON property `nextPageToken`
2246
+ # @return [String]
2247
+ attr_accessor :next_page_token
2248
+
2249
+ def initialize(**args)
2250
+ update!(**args)
2251
+ end
2252
+
2253
+ # Update properties of this object
2254
+ def update!(**args)
2255
+ @locations = args[:locations] if args.key?(:locations)
2256
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2257
+ end
2258
+ end
2259
+
2260
+ # Response message for the `GkeHubFeature.ListMembershipFeatures` method.
2261
+ class ListMembershipFeaturesResponse
2262
+ include Google::Apis::Core::Hashable
2263
+
2264
+ # The list of matching MembershipFeatures.
2265
+ # Corresponds to the JSON property `membershipFeatures`
2266
+ # @return [Array<Google::Apis::GkehubV2alpha::MembershipFeature>]
2267
+ attr_accessor :membership_features
2268
+
2269
+ # A token to request the next page of resources from the `ListMembershipFeatures`
2270
+ # method. The value of an empty string means that there are no more resources
2271
+ # to return.
2272
+ # Corresponds to the JSON property `nextPageToken`
2273
+ # @return [String]
2274
+ attr_accessor :next_page_token
2275
+
2276
+ # List of locations that could not be reached while fetching this list.
2277
+ # Corresponds to the JSON property `unreachable`
2278
+ # @return [Array<String>]
2279
+ attr_accessor :unreachable
2280
+
2281
+ def initialize(**args)
2282
+ update!(**args)
2283
+ end
2284
+
2285
+ # Update properties of this object
2286
+ def update!(**args)
2287
+ @membership_features = args[:membership_features] if args.key?(:membership_features)
2288
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2289
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2290
+ end
2291
+ end
2292
+
2293
+ # The response message for Operations.ListOperations.
2294
+ class ListOperationsResponse
2295
+ include Google::Apis::Core::Hashable
2296
+
2297
+ # The standard List next-page token.
2298
+ # Corresponds to the JSON property `nextPageToken`
2299
+ # @return [String]
2300
+ attr_accessor :next_page_token
2301
+
2302
+ # A list of operations that matches the specified filter in the request.
2303
+ # Corresponds to the JSON property `operations`
2304
+ # @return [Array<Google::Apis::GkehubV2alpha::Operation>]
2305
+ attr_accessor :operations
2306
+
2307
+ def initialize(**args)
2308
+ update!(**args)
2309
+ end
2310
+
2311
+ # Update properties of this object
2312
+ def update!(**args)
2313
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2314
+ @operations = args[:operations] if args.key?(:operations)
2315
+ end
2316
+ end
2317
+
2318
+ # A resource that represents a Google Cloud location.
2319
+ class Location
2320
+ include Google::Apis::Core::Hashable
2321
+
2322
+ # The friendly name for this location, typically a nearby city name. For example,
2323
+ # "Tokyo".
2324
+ # Corresponds to the JSON property `displayName`
2325
+ # @return [String]
2326
+ attr_accessor :display_name
2327
+
2328
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
2329
+ # region": "us-east1"`
2330
+ # Corresponds to the JSON property `labels`
2331
+ # @return [Hash<String,String>]
2332
+ attr_accessor :labels
2333
+
2334
+ # The canonical id for this location. For example: `"us-east1"`.
2335
+ # Corresponds to the JSON property `locationId`
2336
+ # @return [String]
2337
+ attr_accessor :location_id
2338
+
2339
+ # Service-specific metadata. For example the available capacity at the given
2340
+ # location.
2341
+ # Corresponds to the JSON property `metadata`
2342
+ # @return [Hash<String,Object>]
2343
+ attr_accessor :metadata
2344
+
2345
+ # Resource name for the location, which may vary between implementations. For
2346
+ # example: `"projects/example-project/locations/us-east1"`
2347
+ # Corresponds to the JSON property `name`
2348
+ # @return [String]
2349
+ attr_accessor :name
2350
+
2351
+ def initialize(**args)
2352
+ update!(**args)
2353
+ end
2354
+
2355
+ # Update properties of this object
2356
+ def update!(**args)
2357
+ @display_name = args[:display_name] if args.key?(:display_name)
2358
+ @labels = args[:labels] if args.key?(:labels)
2359
+ @location_id = args[:location_id] if args.key?(:location_id)
2360
+ @metadata = args[:metadata] if args.key?(:metadata)
2361
+ @name = args[:name] if args.key?(:name)
2362
+ end
2363
+ end
2364
+
2365
+ # MembershipFeature represents the settings and status of a Fleet Feature
2366
+ # enabled on a single Fleet Membership.
2367
+ class MembershipFeature
2368
+ include Google::Apis::Core::Hashable
2369
+
2370
+ # Output only. When the MembershipFeature resource was created.
2371
+ # Corresponds to the JSON property `createTime`
2372
+ # @return [String]
2373
+ attr_accessor :create_time
2374
+
2375
+ # Output only. When the MembershipFeature resource was deleted.
2376
+ # Corresponds to the JSON property `deleteTime`
2377
+ # @return [String]
2378
+ attr_accessor :delete_time
2379
+
2380
+ # Information of the FeatureConfig applied on the MembershipFeature.
2381
+ # Corresponds to the JSON property `featureConfigRef`
2382
+ # @return [Google::Apis::GkehubV2alpha::FeatureConfigRef]
2383
+ attr_accessor :feature_config_ref
2384
+
2385
+ # GCP labels for this MembershipFeature.
2386
+ # Corresponds to the JSON property `labels`
2387
+ # @return [Hash<String,String>]
2388
+ attr_accessor :labels
2389
+
2390
+ # LifecycleState describes the state of a MembershipFeature *resource* in the
2391
+ # GkeHub API. See `FeatureState` for the "running state" of the
2392
+ # MembershipFeature.
2393
+ # Corresponds to the JSON property `lifecycleState`
2394
+ # @return [Google::Apis::GkehubV2alpha::LifecycleState]
2395
+ attr_accessor :lifecycle_state
2396
+
2397
+ # Output only. The resource name of the membershipFeature, in the format: `
2398
+ # projects/`project`/locations/`location`/memberships/`membership`/features/`
2399
+ # feature``. Note that `membershipFeatures` is shortened to `features` in the
2400
+ # resource name. (see http://go/aip/122#collection-identifiers)
2401
+ # Corresponds to the JSON property `name`
2402
+ # @return [String]
2403
+ attr_accessor :name
2404
+
2405
+ # FeatureSpec contains user input per-feature spec information.
2406
+ # Corresponds to the JSON property `spec`
2407
+ # @return [Google::Apis::GkehubV2alpha::FeatureSpec]
2408
+ attr_accessor :spec
2409
+
2410
+ # FeatureState contains high-level state information and per-feature state
2411
+ # information for this MembershipFeature.
2412
+ # Corresponds to the JSON property `state`
2413
+ # @return [Google::Apis::GkehubV2alpha::FeatureState]
2414
+ attr_accessor :state
2415
+
2416
+ # Output only. When the MembershipFeature resource was last updated.
2417
+ # Corresponds to the JSON property `updateTime`
2418
+ # @return [String]
2419
+ attr_accessor :update_time
2420
+
2421
+ def initialize(**args)
2422
+ update!(**args)
2423
+ end
2424
+
2425
+ # Update properties of this object
2426
+ def update!(**args)
2427
+ @create_time = args[:create_time] if args.key?(:create_time)
2428
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
2429
+ @feature_config_ref = args[:feature_config_ref] if args.key?(:feature_config_ref)
2430
+ @labels = args[:labels] if args.key?(:labels)
2431
+ @lifecycle_state = args[:lifecycle_state] if args.key?(:lifecycle_state)
2432
+ @name = args[:name] if args.key?(:name)
2433
+ @spec = args[:spec] if args.key?(:spec)
2434
+ @state = args[:state] if args.key?(:state)
2435
+ @update_time = args[:update_time] if args.key?(:update_time)
2436
+ end
2437
+ end
2438
+
2439
+ # **Metering**: State for a single membership, analyzed and reported by feature
2440
+ # controller.
2441
+ class MeteringState
2442
+ include Google::Apis::Core::Hashable
2443
+
2444
+ # The time stamp of the most recent measurement of the number of vCPUs in the
2445
+ # cluster.
2446
+ # Corresponds to the JSON property `lastMeasurementTime`
2447
+ # @return [String]
2448
+ attr_accessor :last_measurement_time
2449
+
2450
+ # The vCPUs capacity in the cluster according to the most recent measurement (1/
2451
+ # 1000 precision).
2452
+ # Corresponds to the JSON property `preciseLastMeasuredClusterVcpuCapacity`
2453
+ # @return [Float]
2454
+ attr_accessor :precise_last_measured_cluster_vcpu_capacity
2455
+
2456
+ def initialize(**args)
2457
+ update!(**args)
2458
+ end
2459
+
2460
+ # Update properties of this object
2461
+ def update!(**args)
2462
+ @last_measurement_time = args[:last_measurement_time] if args.key?(:last_measurement_time)
2463
+ @precise_last_measured_cluster_vcpu_capacity = args[:precise_last_measured_cluster_vcpu_capacity] if args.key?(:precise_last_measured_cluster_vcpu_capacity)
2464
+ end
2465
+ end
2466
+
2467
+ # This resource represents a long-running operation that is the result of a
2468
+ # network API call.
2469
+ class Operation
2470
+ include Google::Apis::Core::Hashable
2471
+
2472
+ # If the value is `false`, it means the operation is still in progress. If `true`
2473
+ # , the operation is completed, and either `error` or `response` is available.
2474
+ # Corresponds to the JSON property `done`
2475
+ # @return [Boolean]
2476
+ attr_accessor :done
2477
+ alias_method :done?, :done
2478
+
2479
+ # The `Status` type defines a logical error model that is suitable for different
2480
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2481
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2482
+ # data: error code, error message, and error details. You can find out more
2483
+ # about this error model and how to work with it in the [API Design Guide](https:
2484
+ # //cloud.google.com/apis/design/errors).
2485
+ # Corresponds to the JSON property `error`
2486
+ # @return [Google::Apis::GkehubV2alpha::GoogleRpcStatus]
2487
+ attr_accessor :error
2488
+
2489
+ # Service-specific metadata associated with the operation. It typically contains
2490
+ # progress information and common metadata such as create time. Some services
2491
+ # might not provide such metadata. Any method that returns a long-running
2492
+ # operation should document the metadata type, if any.
2493
+ # Corresponds to the JSON property `metadata`
2494
+ # @return [Hash<String,Object>]
2495
+ attr_accessor :metadata
2496
+
2497
+ # The server-assigned name, which is only unique within the same service that
2498
+ # originally returns it. If you use the default HTTP mapping, the `name` should
2499
+ # be a resource name ending with `operations/`unique_id``.
2500
+ # Corresponds to the JSON property `name`
2501
+ # @return [String]
2502
+ attr_accessor :name
2503
+
2504
+ # The normal, successful response of the operation. If the original method
2505
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
2506
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
2507
+ # response should be the resource. For other methods, the response should have
2508
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
2509
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
2510
+ # `TakeSnapshotResponse`.
2511
+ # Corresponds to the JSON property `response`
2512
+ # @return [Hash<String,Object>]
2513
+ attr_accessor :response
2514
+
2515
+ def initialize(**args)
2516
+ update!(**args)
2517
+ end
2518
+
2519
+ # Update properties of this object
2520
+ def update!(**args)
2521
+ @done = args[:done] if args.key?(:done)
2522
+ @error = args[:error] if args.key?(:error)
2523
+ @metadata = args[:metadata] if args.key?(:metadata)
2524
+ @name = args[:name] if args.key?(:name)
2525
+ @response = args[:response] if args.key?(:response)
2526
+ end
2527
+ end
2528
+
2529
+ # Metadata of the long-running operation.
2530
+ class OperationMetadata
2531
+ include Google::Apis::Core::Hashable
2532
+
2533
+ # Output only. API version used to start the operation.
2534
+ # Corresponds to the JSON property `apiVersion`
2535
+ # @return [String]
2536
+ attr_accessor :api_version
2537
+
2538
+ # Output only. Identifies whether the user has requested cancellation of the
2539
+ # operation. Operations that have successfully been cancelled have Operation.
2540
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
2541
+ # CANCELLED`.
2542
+ # Corresponds to the JSON property `cancelRequested`
2543
+ # @return [Boolean]
2544
+ attr_accessor :cancel_requested
2545
+ alias_method :cancel_requested?, :cancel_requested
2546
+
2547
+ # Output only. The time the operation was created.
2548
+ # Corresponds to the JSON property `createTime`
2549
+ # @return [String]
2550
+ attr_accessor :create_time
2551
+
2552
+ # Output only. The time the operation finished running.
2553
+ # Corresponds to the JSON property `endTime`
2554
+ # @return [String]
2555
+ attr_accessor :end_time
2556
+
2557
+ # Output only. Human-readable status of the operation, if any.
2558
+ # Corresponds to the JSON property `statusDetail`
2559
+ # @return [String]
2560
+ attr_accessor :status_detail
2561
+
2562
+ # Output only. Server-defined resource path for the target of the operation.
2563
+ # Corresponds to the JSON property `target`
2564
+ # @return [String]
2565
+ attr_accessor :target
2566
+
2567
+ # Output only. Name of the verb executed by the operation.
2568
+ # Corresponds to the JSON property `verb`
2569
+ # @return [String]
2570
+ attr_accessor :verb
2571
+
2572
+ def initialize(**args)
2573
+ update!(**args)
2574
+ end
2575
+
2576
+ # Update properties of this object
2577
+ def update!(**args)
2578
+ @api_version = args[:api_version] if args.key?(:api_version)
2579
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
2580
+ @create_time = args[:create_time] if args.key?(:create_time)
2581
+ @end_time = args[:end_time] if args.key?(:end_time)
2582
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
2583
+ @target = args[:target] if args.key?(:target)
2584
+ @verb = args[:verb] if args.key?(:verb)
2585
+ end
2586
+ end
2587
+
2588
+ # Origin defines where this FeatureSpec originated from.
2589
+ class Origin
2590
+ include Google::Apis::Core::Hashable
2591
+
2592
+ # Type specifies which type of origin is set.
2593
+ # Corresponds to the JSON property `type`
2594
+ # @return [String]
2595
+ attr_accessor :type
2596
+
2597
+ def initialize(**args)
2598
+ update!(**args)
2599
+ end
2600
+
2601
+ # Update properties of this object
2602
+ def update!(**args)
2603
+ @type = args[:type] if args.key?(:type)
2604
+ end
2605
+ end
2606
+
2607
+ # BundleInstallSpec is the specification configuration for a single managed
2608
+ # bundle.
2609
+ class PolicyControllerBundleInstallSpec
2610
+ include Google::Apis::Core::Hashable
2611
+
2612
+ # the set of namespaces to be exempted from the bundle
2613
+ # Corresponds to the JSON property `exemptedNamespaces`
2614
+ # @return [Array<String>]
2615
+ attr_accessor :exempted_namespaces
2616
+
2617
+ def initialize(**args)
2618
+ update!(**args)
2619
+ end
2620
+
2621
+ # Update properties of this object
2622
+ def update!(**args)
2623
+ @exempted_namespaces = args[:exempted_namespaces] if args.key?(:exempted_namespaces)
2624
+ end
2625
+ end
2626
+
2627
+ # Configuration for Policy Controller
2628
+ class PolicyControllerHubConfig
2629
+ include Google::Apis::Core::Hashable
2630
+
2631
+ # Sets the interval for Policy Controller Audit Scans (in seconds). When set to
2632
+ # 0, this disables audit functionality altogether.
2633
+ # Corresponds to the JSON property `auditIntervalSeconds`
2634
+ # @return [Fixnum]
2635
+ attr_accessor :audit_interval_seconds
2636
+
2637
+ # The maximum number of audit violations to be stored in a constraint. If not
2638
+ # set, the internal default (currently 20) will be used.
2639
+ # Corresponds to the JSON property `constraintViolationLimit`
2640
+ # @return [Fixnum]
2641
+ attr_accessor :constraint_violation_limit
2642
+
2643
+ # Map of deployment configs to deployments (“admission”, “audit”, “mutation”).
2644
+ # Corresponds to the JSON property `deploymentConfigs`
2645
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerPolicyControllerDeploymentConfig>]
2646
+ attr_accessor :deployment_configs
2647
+
2648
+ # The set of namespaces that are excluded from Policy Controller checks.
2649
+ # Namespaces do not need to currently exist on the cluster.
2650
+ # Corresponds to the JSON property `exemptableNamespaces`
2651
+ # @return [Array<String>]
2652
+ attr_accessor :exemptable_namespaces
2653
+
2654
+ # The install_spec represents the intended state specified by the latest request
2655
+ # that mutated install_spec in the feature spec, not the lifecycle state of the
2656
+ # feature observed by the Hub feature controller that is reported in the feature
2657
+ # state.
2658
+ # Corresponds to the JSON property `installSpec`
2659
+ # @return [String]
2660
+ attr_accessor :install_spec
2661
+
2662
+ # Logs all denies and dry run failures.
2663
+ # Corresponds to the JSON property `logDeniesEnabled`
2664
+ # @return [Boolean]
2665
+ attr_accessor :log_denies_enabled
2666
+ alias_method :log_denies_enabled?, :log_denies_enabled
2667
+
2668
+ # MonitoringConfig specifies the backends Policy Controller should export
2669
+ # metrics to. For example, to specify metrics should be exported to Cloud
2670
+ # Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]
2671
+ # Corresponds to the JSON property `monitoring`
2672
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerMonitoringConfig]
2673
+ attr_accessor :monitoring
2674
+
2675
+ # Enables the ability to mutate resources using Policy Controller.
2676
+ # Corresponds to the JSON property `mutationEnabled`
2677
+ # @return [Boolean]
2678
+ attr_accessor :mutation_enabled
2679
+ alias_method :mutation_enabled?, :mutation_enabled
2680
+
2681
+ # PolicyContentSpec defines the user's desired content configuration on the
2682
+ # cluster.
2683
+ # Corresponds to the JSON property `policyContent`
2684
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerPolicyContentSpec]
2685
+ attr_accessor :policy_content
2686
+
2687
+ # Enables the ability to use Constraint Templates that reference to objects
2688
+ # other than the object currently being evaluated.
2689
+ # Corresponds to the JSON property `referentialRulesEnabled`
2690
+ # @return [Boolean]
2691
+ attr_accessor :referential_rules_enabled
2692
+ alias_method :referential_rules_enabled?, :referential_rules_enabled
2693
+
2694
+ def initialize(**args)
2695
+ update!(**args)
2696
+ end
2697
+
2698
+ # Update properties of this object
2699
+ def update!(**args)
2700
+ @audit_interval_seconds = args[:audit_interval_seconds] if args.key?(:audit_interval_seconds)
2701
+ @constraint_violation_limit = args[:constraint_violation_limit] if args.key?(:constraint_violation_limit)
2702
+ @deployment_configs = args[:deployment_configs] if args.key?(:deployment_configs)
2703
+ @exemptable_namespaces = args[:exemptable_namespaces] if args.key?(:exemptable_namespaces)
2704
+ @install_spec = args[:install_spec] if args.key?(:install_spec)
2705
+ @log_denies_enabled = args[:log_denies_enabled] if args.key?(:log_denies_enabled)
2706
+ @monitoring = args[:monitoring] if args.key?(:monitoring)
2707
+ @mutation_enabled = args[:mutation_enabled] if args.key?(:mutation_enabled)
2708
+ @policy_content = args[:policy_content] if args.key?(:policy_content)
2709
+ @referential_rules_enabled = args[:referential_rules_enabled] if args.key?(:referential_rules_enabled)
2710
+ end
2711
+ end
2712
+
2713
+ # MonitoringConfig specifies the backends Policy Controller should export
2714
+ # metrics to. For example, to specify metrics should be exported to Cloud
2715
+ # Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]
2716
+ class PolicyControllerMonitoringConfig
2717
+ include Google::Apis::Core::Hashable
2718
+
2719
+ # Specifies the list of backends Policy Controller will export to. An empty list
2720
+ # would effectively disable metrics export.
2721
+ # Corresponds to the JSON property `backends`
2722
+ # @return [Array<String>]
2723
+ attr_accessor :backends
2724
+
2725
+ def initialize(**args)
2726
+ update!(**args)
2727
+ end
2728
+
2729
+ # Update properties of this object
2730
+ def update!(**args)
2731
+ @backends = args[:backends] if args.key?(:backends)
2732
+ end
2733
+ end
2734
+
2735
+ # OnClusterState represents the state of a sub-component of Policy Controller.
2736
+ class PolicyControllerOnClusterState
2737
+ include Google::Apis::Core::Hashable
2738
+
2739
+ # Surface potential errors or information logs.
2740
+ # Corresponds to the JSON property `details`
2741
+ # @return [String]
2742
+ attr_accessor :details
2743
+
2744
+ # The lifecycle state of this component.
2745
+ # Corresponds to the JSON property `state`
2746
+ # @return [String]
2747
+ attr_accessor :state
2748
+
2749
+ def initialize(**args)
2750
+ update!(**args)
2751
+ end
2752
+
2753
+ # Update properties of this object
2754
+ def update!(**args)
2755
+ @details = args[:details] if args.key?(:details)
2756
+ @state = args[:state] if args.key?(:state)
2757
+ end
2758
+ end
2759
+
2760
+ # PolicyContentSpec defines the user's desired content configuration on the
2761
+ # cluster.
2762
+ class PolicyControllerPolicyContentSpec
2763
+ include Google::Apis::Core::Hashable
2764
+
2765
+ # map of bundle name to BundleInstallSpec. The bundle name maps to the `
2766
+ # bundleName` key in the `policycontroller.gke.io/constraintData` annotation on
2767
+ # a constraint.
2768
+ # Corresponds to the JSON property `bundles`
2769
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerBundleInstallSpec>]
2770
+ attr_accessor :bundles
2771
+
2772
+ # The config specifying which default library templates to install.
2773
+ # Corresponds to the JSON property `templateLibrary`
2774
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerTemplateLibraryConfig]
2775
+ attr_accessor :template_library
2776
+
2777
+ def initialize(**args)
2778
+ update!(**args)
2779
+ end
2780
+
2781
+ # Update properties of this object
2782
+ def update!(**args)
2783
+ @bundles = args[:bundles] if args.key?(:bundles)
2784
+ @template_library = args[:template_library] if args.key?(:template_library)
2785
+ end
2786
+ end
2787
+
2788
+ # The state of the policy controller policy content
2789
+ class PolicyControllerPolicyContentState
2790
+ include Google::Apis::Core::Hashable
2791
+
2792
+ # The state of the any bundles included in the chosen version of the manifest
2793
+ # Corresponds to the JSON property `bundleStates`
2794
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState>]
2795
+ attr_accessor :bundle_states
2796
+
2797
+ # OnClusterState represents the state of a sub-component of Policy Controller.
2798
+ # Corresponds to the JSON property `referentialSyncConfigState`
2799
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState]
2800
+ attr_accessor :referential_sync_config_state
2801
+
2802
+ # OnClusterState represents the state of a sub-component of Policy Controller.
2803
+ # Corresponds to the JSON property `templateLibraryState`
2804
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState]
2805
+ attr_accessor :template_library_state
2806
+
2807
+ def initialize(**args)
2808
+ update!(**args)
2809
+ end
2810
+
2811
+ # Update properties of this object
2812
+ def update!(**args)
2813
+ @bundle_states = args[:bundle_states] if args.key?(:bundle_states)
2814
+ @referential_sync_config_state = args[:referential_sync_config_state] if args.key?(:referential_sync_config_state)
2815
+ @template_library_state = args[:template_library_state] if args.key?(:template_library_state)
2816
+ end
2817
+ end
2818
+
2819
+ # Deployment-specific configuration.
2820
+ class PolicyControllerPolicyControllerDeploymentConfig
2821
+ include Google::Apis::Core::Hashable
2822
+
2823
+ # ResourceRequirements describes the compute resource requirements.
2824
+ # Corresponds to the JSON property `containerResources`
2825
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerResourceRequirements]
2826
+ attr_accessor :container_resources
2827
+
2828
+ # Pod affinity configuration.
2829
+ # Corresponds to the JSON property `podAffinity`
2830
+ # @return [String]
2831
+ attr_accessor :pod_affinity
2832
+
2833
+ # Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.
2834
+ # Corresponds to the JSON property `podAntiAffinity`
2835
+ # @return [Boolean]
2836
+ attr_accessor :pod_anti_affinity
2837
+ alias_method :pod_anti_affinity?, :pod_anti_affinity
2838
+
2839
+ # Pod tolerations of node taints.
2840
+ # Corresponds to the JSON property `podTolerations`
2841
+ # @return [Array<Google::Apis::GkehubV2alpha::PolicyControllerToleration>]
2842
+ attr_accessor :pod_tolerations
2843
+
2844
+ # Pod replica count.
2845
+ # Corresponds to the JSON property `replicaCount`
2846
+ # @return [Fixnum]
2847
+ attr_accessor :replica_count
2848
+
2849
+ def initialize(**args)
2850
+ update!(**args)
2851
+ end
2852
+
2853
+ # Update properties of this object
2854
+ def update!(**args)
2855
+ @container_resources = args[:container_resources] if args.key?(:container_resources)
2856
+ @pod_affinity = args[:pod_affinity] if args.key?(:pod_affinity)
2857
+ @pod_anti_affinity = args[:pod_anti_affinity] if args.key?(:pod_anti_affinity)
2858
+ @pod_tolerations = args[:pod_tolerations] if args.key?(:pod_tolerations)
2859
+ @replica_count = args[:replica_count] if args.key?(:replica_count)
2860
+ end
2861
+ end
2862
+
2863
+ # ResourceList contains container resource requirements.
2864
+ class PolicyControllerResourceList
2865
+ include Google::Apis::Core::Hashable
2866
+
2867
+ # CPU requirement expressed in Kubernetes resource units.
2868
+ # Corresponds to the JSON property `cpu`
2869
+ # @return [String]
2870
+ attr_accessor :cpu
2871
+
2872
+ # Memory requirement expressed in Kubernetes resource units.
2873
+ # Corresponds to the JSON property `memory`
2874
+ # @return [String]
2875
+ attr_accessor :memory
2876
+
2877
+ def initialize(**args)
2878
+ update!(**args)
2879
+ end
2880
+
2881
+ # Update properties of this object
2882
+ def update!(**args)
2883
+ @cpu = args[:cpu] if args.key?(:cpu)
2884
+ @memory = args[:memory] if args.key?(:memory)
2885
+ end
2886
+ end
2887
+
2888
+ # ResourceRequirements describes the compute resource requirements.
2889
+ class PolicyControllerResourceRequirements
2890
+ include Google::Apis::Core::Hashable
2891
+
2892
+ # ResourceList contains container resource requirements.
2893
+ # Corresponds to the JSON property `limits`
2894
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerResourceList]
2895
+ attr_accessor :limits
2896
+
2897
+ # ResourceList contains container resource requirements.
2898
+ # Corresponds to the JSON property `requests`
2899
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerResourceList]
2900
+ attr_accessor :requests
2901
+
2902
+ def initialize(**args)
2903
+ update!(**args)
2904
+ end
2905
+
2906
+ # Update properties of this object
2907
+ def update!(**args)
2908
+ @limits = args[:limits] if args.key?(:limits)
2909
+ @requests = args[:requests] if args.key?(:requests)
2910
+ end
2911
+ end
2912
+
2913
+ # **Policy Controller**: Configuration for a single cluster. Intended to
2914
+ # parallel the PolicyController CR.
2915
+ class PolicyControllerSpec
2916
+ include Google::Apis::Core::Hashable
2917
+
2918
+ # Configuration for Policy Controller
2919
+ # Corresponds to the JSON property `policyControllerHubConfig`
2920
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerHubConfig]
2921
+ attr_accessor :policy_controller_hub_config
2922
+
2923
+ # Version of Policy Controller installed.
2924
+ # Corresponds to the JSON property `version`
2925
+ # @return [String]
2926
+ attr_accessor :version
2927
+
2928
+ def initialize(**args)
2929
+ update!(**args)
2930
+ end
2931
+
2932
+ # Update properties of this object
2933
+ def update!(**args)
2934
+ @policy_controller_hub_config = args[:policy_controller_hub_config] if args.key?(:policy_controller_hub_config)
2935
+ @version = args[:version] if args.key?(:version)
2936
+ end
2937
+ end
2938
+
2939
+ # **Policy Controller**: State for a single cluster.
2940
+ class PolicyControllerState
2941
+ include Google::Apis::Core::Hashable
2942
+
2943
+ # Currently these include (also serving as map keys): 1. "admission" 2. "audit"
2944
+ # 3. "mutation"
2945
+ # Corresponds to the JSON property `componentStates`
2946
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState>]
2947
+ attr_accessor :component_states
2948
+
2949
+ # The state of the policy controller policy content
2950
+ # Corresponds to the JSON property `policyContentState`
2951
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerPolicyContentState]
2952
+ attr_accessor :policy_content_state
2953
+
2954
+ # The overall Policy Controller lifecycle state observed by the Hub Feature
2955
+ # controller.
2956
+ # Corresponds to the JSON property `state`
2957
+ # @return [String]
2958
+ attr_accessor :state
2959
+
2960
+ def initialize(**args)
2961
+ update!(**args)
2962
+ end
2963
+
2964
+ # Update properties of this object
2965
+ def update!(**args)
2966
+ @component_states = args[:component_states] if args.key?(:component_states)
2967
+ @policy_content_state = args[:policy_content_state] if args.key?(:policy_content_state)
2968
+ @state = args[:state] if args.key?(:state)
2969
+ end
2970
+ end
2971
+
2972
+ # The config specifying which default library templates to install.
2973
+ class PolicyControllerTemplateLibraryConfig
2974
+ include Google::Apis::Core::Hashable
2975
+
2976
+ # Configures the manner in which the template library is installed on the
2977
+ # cluster.
2978
+ # Corresponds to the JSON property `installation`
2979
+ # @return [String]
2980
+ attr_accessor :installation
2981
+
2982
+ def initialize(**args)
2983
+ update!(**args)
2984
+ end
2985
+
2986
+ # Update properties of this object
2987
+ def update!(**args)
2988
+ @installation = args[:installation] if args.key?(:installation)
2989
+ end
2990
+ end
2991
+
2992
+ # Toleration of a node taint.
2993
+ class PolicyControllerToleration
43
2994
  include Google::Apis::Core::Hashable
44
2995
 
2996
+ # Matches a taint effect.
2997
+ # Corresponds to the JSON property `effect`
2998
+ # @return [String]
2999
+ attr_accessor :effect
3000
+
3001
+ # Matches a taint key (not necessarily unique).
3002
+ # Corresponds to the JSON property `key`
3003
+ # @return [String]
3004
+ attr_accessor :key
3005
+
3006
+ # Matches a taint operator.
3007
+ # Corresponds to the JSON property `operator`
3008
+ # @return [String]
3009
+ attr_accessor :operator
3010
+
3011
+ # Matches a taint value.
3012
+ # Corresponds to the JSON property `value`
3013
+ # @return [String]
3014
+ attr_accessor :value
3015
+
45
3016
  def initialize(**args)
46
3017
  update!(**args)
47
3018
  end
48
3019
 
49
3020
  # Update properties of this object
50
3021
  def update!(**args)
3022
+ @effect = args[:effect] if args.key?(:effect)
3023
+ @key = args[:key] if args.key?(:key)
3024
+ @operator = args[:operator] if args.key?(:operator)
3025
+ @value = args[:value] if args.key?(:value)
51
3026
  end
52
3027
  end
53
3028
 
54
- # The `Status` type defines a logical error model that is suitable for different
55
- # programming environments, including REST APIs and RPC APIs. It is used by [
56
- # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
57
- # data: error code, error message, and error details. You can find out more
58
- # about this error model and how to work with it in the [API Design Guide](https:
59
- # //cloud.google.com/apis/design/errors).
60
- class GoogleRpcStatus
3029
+ # AnalysisMessage is a single message produced by an analyzer, and it used to
3030
+ # communicate to the end user about the state of their Service Mesh
3031
+ # configuration.
3032
+ class ServiceMeshAnalysisMessage
61
3033
  include Google::Apis::Core::Hashable
62
3034
 
63
- # The status code, which should be an enum value of google.rpc.Code.
3035
+ # A UI can combine these args with a template (based on message_base.type) to
3036
+ # produce an internationalized message.
3037
+ # Corresponds to the JSON property `args`
3038
+ # @return [Hash<String,Object>]
3039
+ attr_accessor :args
3040
+
3041
+ # A human readable description of what the error means. It is suitable for non-
3042
+ # internationalize display purposes.
3043
+ # Corresponds to the JSON property `description`
3044
+ # @return [String]
3045
+ attr_accessor :description
3046
+
3047
+ # AnalysisMessageBase describes some common information that is needed for all
3048
+ # messages.
3049
+ # Corresponds to the JSON property `messageBase`
3050
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshAnalysisMessageBase]
3051
+ attr_accessor :message_base
3052
+
3053
+ # A list of strings specifying the resource identifiers that were the cause of
3054
+ # message generation. A "path" here may be: * MEMBERSHIP_ID if the cause is a
3055
+ # specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the
3056
+ # cause is a resource in a cluster
3057
+ # Corresponds to the JSON property `resourcePaths`
3058
+ # @return [Array<String>]
3059
+ attr_accessor :resource_paths
3060
+
3061
+ def initialize(**args)
3062
+ update!(**args)
3063
+ end
3064
+
3065
+ # Update properties of this object
3066
+ def update!(**args)
3067
+ @args = args[:args] if args.key?(:args)
3068
+ @description = args[:description] if args.key?(:description)
3069
+ @message_base = args[:message_base] if args.key?(:message_base)
3070
+ @resource_paths = args[:resource_paths] if args.key?(:resource_paths)
3071
+ end
3072
+ end
3073
+
3074
+ # AnalysisMessageBase describes some common information that is needed for all
3075
+ # messages.
3076
+ class ServiceMeshAnalysisMessageBase
3077
+ include Google::Apis::Core::Hashable
3078
+
3079
+ # A url pointing to the Service Mesh or Istio documentation for this specific
3080
+ # error type.
3081
+ # Corresponds to the JSON property `documentationUrl`
3082
+ # @return [String]
3083
+ attr_accessor :documentation_url
3084
+
3085
+ # Represents how severe a message is.
3086
+ # Corresponds to the JSON property `level`
3087
+ # @return [String]
3088
+ attr_accessor :level
3089
+
3090
+ # A unique identifier for the type of message. Display_name is intended to be
3091
+ # human-readable, code is intended to be machine readable. There should be a one-
3092
+ # to-one mapping between display_name and code. (i.e. do not re-use
3093
+ # display_names or codes between message types.) See istio.analysis.v1alpha1.
3094
+ # AnalysisMessageBase.Type
3095
+ # Corresponds to the JSON property `type`
3096
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshType]
3097
+ attr_accessor :type
3098
+
3099
+ def initialize(**args)
3100
+ update!(**args)
3101
+ end
3102
+
3103
+ # Update properties of this object
3104
+ def update!(**args)
3105
+ @documentation_url = args[:documentation_url] if args.key?(:documentation_url)
3106
+ @level = args[:level] if args.key?(:level)
3107
+ @type = args[:type] if args.key?(:type)
3108
+ end
3109
+ end
3110
+
3111
+ # Condition being reported.
3112
+ class ServiceMeshCondition
3113
+ include Google::Apis::Core::Hashable
3114
+
3115
+ # Unique identifier of the condition which describes the condition recognizable
3116
+ # to the user.
64
3117
  # Corresponds to the JSON property `code`
65
- # @return [Fixnum]
3118
+ # @return [String]
66
3119
  attr_accessor :code
67
3120
 
68
- # A list of messages that carry the error details. There is a common set of
69
- # message types for APIs to use.
3121
+ # A short summary about the issue.
70
3122
  # Corresponds to the JSON property `details`
71
- # @return [Array<Hash<String,Object>>]
3123
+ # @return [String]
72
3124
  attr_accessor :details
73
3125
 
74
- # A developer-facing error message, which should be in English. Any user-facing
75
- # error message should be localized and sent in the google.rpc.Status.details
76
- # field, or localized by the client.
77
- # Corresponds to the JSON property `message`
3126
+ # Links contains actionable information.
3127
+ # Corresponds to the JSON property `documentationLink`
78
3128
  # @return [String]
79
- attr_accessor :message
3129
+ attr_accessor :documentation_link
3130
+
3131
+ # Severity level of the condition.
3132
+ # Corresponds to the JSON property `severity`
3133
+ # @return [String]
3134
+ attr_accessor :severity
80
3135
 
81
3136
  def initialize(**args)
82
3137
  update!(**args)
@@ -86,23 +3141,29 @@ module Google
86
3141
  def update!(**args)
87
3142
  @code = args[:code] if args.key?(:code)
88
3143
  @details = args[:details] if args.key?(:details)
89
- @message = args[:message] if args.key?(:message)
3144
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
3145
+ @severity = args[:severity] if args.key?(:severity)
90
3146
  end
91
3147
  end
92
3148
 
93
- # The response message for Locations.ListLocations.
94
- class ListLocationsResponse
3149
+ # Status of control plane management.
3150
+ class ServiceMeshControlPlaneManagement
95
3151
  include Google::Apis::Core::Hashable
96
3152
 
97
- # A list of locations that matches the specified filter in the request.
98
- # Corresponds to the JSON property `locations`
99
- # @return [Array<Google::Apis::GkehubV2alpha::Location>]
100
- attr_accessor :locations
3153
+ # Explanation of state.
3154
+ # Corresponds to the JSON property `details`
3155
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshStatusDetails>]
3156
+ attr_accessor :details
101
3157
 
102
- # The standard List next-page token.
103
- # Corresponds to the JSON property `nextPageToken`
3158
+ # Output only. Implementation of managed control plane.
3159
+ # Corresponds to the JSON property `implementation`
104
3160
  # @return [String]
105
- attr_accessor :next_page_token
3161
+ attr_accessor :implementation
3162
+
3163
+ # LifecycleState of control plane management.
3164
+ # Corresponds to the JSON property `state`
3165
+ # @return [String]
3166
+ attr_accessor :state
106
3167
 
107
3168
  def initialize(**args)
108
3169
  update!(**args)
@@ -110,24 +3171,63 @@ module Google
110
3171
 
111
3172
  # Update properties of this object
112
3173
  def update!(**args)
113
- @locations = args[:locations] if args.key?(:locations)
114
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3174
+ @details = args[:details] if args.key?(:details)
3175
+ @implementation = args[:implementation] if args.key?(:implementation)
3176
+ @state = args[:state] if args.key?(:state)
115
3177
  end
116
3178
  end
117
3179
 
118
- # The response message for Operations.ListOperations.
119
- class ListOperationsResponse
3180
+ # Status of data plane management. Only reported per-member.
3181
+ class ServiceMeshDataPlaneManagement
120
3182
  include Google::Apis::Core::Hashable
121
3183
 
122
- # The standard List next-page token.
123
- # Corresponds to the JSON property `nextPageToken`
3184
+ # Explanation of the status.
3185
+ # Corresponds to the JSON property `details`
3186
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshStatusDetails>]
3187
+ attr_accessor :details
3188
+
3189
+ # Lifecycle status of data plane management.
3190
+ # Corresponds to the JSON property `state`
124
3191
  # @return [String]
125
- attr_accessor :next_page_token
3192
+ attr_accessor :state
126
3193
 
127
- # A list of operations that matches the specified filter in the request.
128
- # Corresponds to the JSON property `operations`
129
- # @return [Array<Google::Apis::GkehubV2alpha::Operation>]
130
- attr_accessor :operations
3194
+ def initialize(**args)
3195
+ update!(**args)
3196
+ end
3197
+
3198
+ # Update properties of this object
3199
+ def update!(**args)
3200
+ @details = args[:details] if args.key?(:details)
3201
+ @state = args[:state] if args.key?(:state)
3202
+ end
3203
+ end
3204
+
3205
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
3206
+ class ServiceMeshSpec
3207
+ include Google::Apis::Core::Hashable
3208
+
3209
+ # Optional. Specifies the API that will be used for configuring the mesh
3210
+ # workloads.
3211
+ # Corresponds to the JSON property `configApi`
3212
+ # @return [String]
3213
+ attr_accessor :config_api
3214
+
3215
+ # Deprecated: use `management` instead Enables automatic control plane
3216
+ # management.
3217
+ # Corresponds to the JSON property `controlPlane`
3218
+ # @return [String]
3219
+ attr_accessor :control_plane
3220
+
3221
+ # Determines which release channel to use for default injection and service mesh
3222
+ # APIs.
3223
+ # Corresponds to the JSON property `defaultChannel`
3224
+ # @return [String]
3225
+ attr_accessor :default_channel
3226
+
3227
+ # Optional. Enables automatic Service Mesh management.
3228
+ # Corresponds to the JSON property `management`
3229
+ # @return [String]
3230
+ attr_accessor :management
131
3231
 
132
3232
  def initialize(**args)
133
3233
  update!(**args)
@@ -135,43 +3235,104 @@ module Google
135
3235
 
136
3236
  # Update properties of this object
137
3237
  def update!(**args)
138
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
139
- @operations = args[:operations] if args.key?(:operations)
3238
+ @config_api = args[:config_api] if args.key?(:config_api)
3239
+ @control_plane = args[:control_plane] if args.key?(:control_plane)
3240
+ @default_channel = args[:default_channel] if args.key?(:default_channel)
3241
+ @management = args[:management] if args.key?(:management)
140
3242
  end
141
3243
  end
142
3244
 
143
- # A resource that represents a Google Cloud location.
144
- class Location
3245
+ # **Service Mesh**: State for a single Membership, as analyzed by the Service
3246
+ # Mesh Hub Controller.
3247
+ class ServiceMeshState
145
3248
  include Google::Apis::Core::Hashable
146
3249
 
147
- # The friendly name for this location, typically a nearby city name. For example,
148
- # "Tokyo".
149
- # Corresponds to the JSON property `displayName`
3250
+ # Output only. Results of running Service Mesh analyzers.
3251
+ # Corresponds to the JSON property `analysisMessages`
3252
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshAnalysisMessage>]
3253
+ attr_accessor :analysis_messages
3254
+
3255
+ # Output only. List of conditions reported for this membership.
3256
+ # Corresponds to the JSON property `conditions`
3257
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshCondition>]
3258
+ attr_accessor :conditions
3259
+
3260
+ # The API version (i.e. Istio CRD version) for configuring service mesh in this
3261
+ # cluster. This version is influenced by the `default_channel` field.
3262
+ # Corresponds to the JSON property `configApiVersion`
150
3263
  # @return [String]
151
- attr_accessor :display_name
3264
+ attr_accessor :config_api_version
152
3265
 
153
- # Cross-service attributes for the location. For example `"cloud.googleapis.com/
154
- # region": "us-east1"`
155
- # Corresponds to the JSON property `labels`
156
- # @return [Hash<String,String>]
157
- attr_accessor :labels
3266
+ # Status of control plane management.
3267
+ # Corresponds to the JSON property `controlPlaneManagement`
3268
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshControlPlaneManagement]
3269
+ attr_accessor :control_plane_management
158
3270
 
159
- # The canonical id for this location. For example: `"us-east1"`.
160
- # Corresponds to the JSON property `locationId`
3271
+ # Status of data plane management. Only reported per-member.
3272
+ # Corresponds to the JSON property `dataPlaneManagement`
3273
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshDataPlaneManagement]
3274
+ attr_accessor :data_plane_management
3275
+
3276
+ def initialize(**args)
3277
+ update!(**args)
3278
+ end
3279
+
3280
+ # Update properties of this object
3281
+ def update!(**args)
3282
+ @analysis_messages = args[:analysis_messages] if args.key?(:analysis_messages)
3283
+ @conditions = args[:conditions] if args.key?(:conditions)
3284
+ @config_api_version = args[:config_api_version] if args.key?(:config_api_version)
3285
+ @control_plane_management = args[:control_plane_management] if args.key?(:control_plane_management)
3286
+ @data_plane_management = args[:data_plane_management] if args.key?(:data_plane_management)
3287
+ end
3288
+ end
3289
+
3290
+ # Structured and human-readable details for a status.
3291
+ class ServiceMeshStatusDetails
3292
+ include Google::Apis::Core::Hashable
3293
+
3294
+ # A machine-readable code that further describes a broad status.
3295
+ # Corresponds to the JSON property `code`
161
3296
  # @return [String]
162
- attr_accessor :location_id
3297
+ attr_accessor :code
163
3298
 
164
- # Service-specific metadata. For example the available capacity at the given
165
- # location.
166
- # Corresponds to the JSON property `metadata`
167
- # @return [Hash<String,Object>]
168
- attr_accessor :metadata
3299
+ # Human-readable explanation of code.
3300
+ # Corresponds to the JSON property `details`
3301
+ # @return [String]
3302
+ attr_accessor :details
169
3303
 
170
- # Resource name for the location, which may vary between implementations. For
171
- # example: `"projects/example-project/locations/us-east1"`
172
- # Corresponds to the JSON property `name`
3304
+ def initialize(**args)
3305
+ update!(**args)
3306
+ end
3307
+
3308
+ # Update properties of this object
3309
+ def update!(**args)
3310
+ @code = args[:code] if args.key?(:code)
3311
+ @details = args[:details] if args.key?(:details)
3312
+ end
3313
+ end
3314
+
3315
+ # A unique identifier for the type of message. Display_name is intended to be
3316
+ # human-readable, code is intended to be machine readable. There should be a one-
3317
+ # to-one mapping between display_name and code. (i.e. do not re-use
3318
+ # display_names or codes between message types.) See istio.analysis.v1alpha1.
3319
+ # AnalysisMessageBase.Type
3320
+ class ServiceMeshType
3321
+ include Google::Apis::Core::Hashable
3322
+
3323
+ # A 7 character code matching `^IST[0-9]`4`$` or `^ASM[0-9]`4`$`, intended to
3324
+ # uniquely identify the message type. (e.g. "IST0001" is mapped to the "
3325
+ # InternalError" message type.)
3326
+ # Corresponds to the JSON property `code`
173
3327
  # @return [String]
174
- attr_accessor :name
3328
+ attr_accessor :code
3329
+
3330
+ # A human-readable name for the message type. e.g. "InternalError", "
3331
+ # PodMissingProxy". This should be the same for all messages of the same type. (
3332
+ # This corresponds to the `name` field in open-source Istio.)
3333
+ # Corresponds to the JSON property `displayName`
3334
+ # @return [String]
3335
+ attr_accessor :display_name
175
3336
 
176
3337
  def initialize(**args)
177
3338
  update!(**args)
@@ -179,61 +3340,51 @@ module Google
179
3340
 
180
3341
  # Update properties of this object
181
3342
  def update!(**args)
3343
+ @code = args[:code] if args.key?(:code)
182
3344
  @display_name = args[:display_name] if args.key?(:display_name)
183
- @labels = args[:labels] if args.key?(:labels)
184
- @location_id = args[:location_id] if args.key?(:location_id)
185
- @metadata = args[:metadata] if args.key?(:metadata)
186
- @name = args[:name] if args.key?(:name)
187
3345
  end
188
3346
  end
189
3347
 
190
- # This resource represents a long-running operation that is the result of a
191
- # network API call.
192
- class Operation
3348
+ # High-level state of a MembershipFeature.
3349
+ class State
193
3350
  include Google::Apis::Core::Hashable
194
3351
 
195
- # If the value is `false`, it means the operation is still in progress. If `true`
196
- # , the operation is completed, and either `error` or `response` is available.
197
- # Corresponds to the JSON property `done`
198
- # @return [Boolean]
199
- attr_accessor :done
200
- alias_method :done?, :done
201
-
202
- # The `Status` type defines a logical error model that is suitable for different
203
- # programming environments, including REST APIs and RPC APIs. It is used by [
204
- # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
205
- # data: error code, error message, and error details. You can find out more
206
- # about this error model and how to work with it in the [API Design Guide](https:
207
- # //cloud.google.com/apis/design/errors).
208
- # Corresponds to the JSON property `error`
209
- # @return [Google::Apis::GkehubV2alpha::GoogleRpcStatus]
210
- attr_accessor :error
3352
+ # The high-level, machine-readable status of this MembershipFeature.
3353
+ # Corresponds to the JSON property `code`
3354
+ # @return [String]
3355
+ attr_accessor :code
211
3356
 
212
- # Service-specific metadata associated with the operation. It typically contains
213
- # progress information and common metadata such as create time. Some services
214
- # might not provide such metadata. Any method that returns a long-running
215
- # operation should document the metadata type, if any.
216
- # Corresponds to the JSON property `metadata`
217
- # @return [Hash<String,Object>]
218
- attr_accessor :metadata
3357
+ # A human-readable description of the current status.
3358
+ # Corresponds to the JSON property `description`
3359
+ # @return [String]
3360
+ attr_accessor :description
219
3361
 
220
- # The server-assigned name, which is only unique within the same service that
221
- # originally returns it. If you use the default HTTP mapping, the `name` should
222
- # be a resource name ending with `operations/`unique_id``.
223
- # Corresponds to the JSON property `name`
3362
+ # The time this status and any related Feature-specific details were updated.
3363
+ # Corresponds to the JSON property `updateTime`
224
3364
  # @return [String]
225
- attr_accessor :name
3365
+ attr_accessor :update_time
226
3366
 
227
- # The normal, successful response of the operation. If the original method
228
- # returns no data on success, such as `Delete`, the response is `google.protobuf.
229
- # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
230
- # response should be the resource. For other methods, the response should have
231
- # the type `XxxResponse`, where `Xxx` is the original method name. For example,
232
- # if the original method name is `TakeSnapshot()`, the inferred response type is
233
- # `TakeSnapshotResponse`.
234
- # Corresponds to the JSON property `response`
235
- # @return [Hash<String,Object>]
236
- attr_accessor :response
3367
+ def initialize(**args)
3368
+ update!(**args)
3369
+ end
3370
+
3371
+ # Update properties of this object
3372
+ def update!(**args)
3373
+ @code = args[:code] if args.key?(:code)
3374
+ @description = args[:description] if args.key?(:description)
3375
+ @update_time = args[:update_time] if args.key?(:update_time)
3376
+ end
3377
+ end
3378
+
3379
+ # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate
3380
+ # feature.
3381
+ class WorkloadCertificateSpec
3382
+ include Google::Apis::Core::Hashable
3383
+
3384
+ # CertificateManagement specifies workload certificate management.
3385
+ # Corresponds to the JSON property `certificateManagement`
3386
+ # @return [String]
3387
+ attr_accessor :certificate_management
237
3388
 
238
3389
  def initialize(**args)
239
3390
  update!(**args)
@@ -241,11 +3392,7 @@ module Google
241
3392
 
242
3393
  # Update properties of this object
243
3394
  def update!(**args)
244
- @done = args[:done] if args.key?(:done)
245
- @error = args[:error] if args.key?(:error)
246
- @metadata = args[:metadata] if args.key?(:metadata)
247
- @name = args[:name] if args.key?(:name)
248
- @response = args[:response] if args.key?(:response)
3395
+ @certificate_management = args[:certificate_management] if args.key?(:certificate_management)
249
3396
  end
250
3397
  end
251
3398
  end