google-apis-gkehub_v2alpha 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,3021 @@ 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
+ # FeatureSpec contains user input per-feature spec information.
1378
+ class FeatureSpec
1379
+ include Google::Apis::Core::Hashable
1380
+
1381
+ # **Cloud Build**: Configurations for each Cloud Build enabled cluster.
1382
+ # Corresponds to the JSON property `cloudbuild`
1383
+ # @return [Google::Apis::GkehubV2alpha::CloudBuildSpec]
1384
+ attr_accessor :cloudbuild
1385
+
1386
+ # **Anthos Config Management**: Configuration for a single cluster. Intended to
1387
+ # parallel the ConfigManagement CR.
1388
+ # Corresponds to the JSON property `configmanagement`
1389
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementSpec]
1390
+ attr_accessor :configmanagement
1391
+
1392
+ # **IdentityService**: Configuration for a single membership.
1393
+ # Corresponds to the JSON property `identityservice`
1394
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSpec]
1395
+ attr_accessor :identityservice
1396
+
1397
+ # Origin defines where this FeatureSpec originated from.
1398
+ # Corresponds to the JSON property `origin`
1399
+ # @return [Google::Apis::GkehubV2alpha::Origin]
1400
+ attr_accessor :origin
1401
+
1402
+ # **Policy Controller**: Configuration for a single cluster. Intended to
1403
+ # parallel the PolicyController CR.
1404
+ # Corresponds to the JSON property `policycontroller`
1405
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerSpec]
1406
+ attr_accessor :policycontroller
1407
+
1408
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
1409
+ # Corresponds to the JSON property `servicemesh`
1410
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshSpec]
1411
+ attr_accessor :servicemesh
1412
+
1413
+ # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate
1414
+ # feature.
1415
+ # Corresponds to the JSON property `workloadcertificate`
1416
+ # @return [Google::Apis::GkehubV2alpha::WorkloadCertificateSpec]
1417
+ attr_accessor :workloadcertificate
1418
+
1419
+ def initialize(**args)
1420
+ update!(**args)
1421
+ end
1422
+
1423
+ # Update properties of this object
1424
+ def update!(**args)
1425
+ @cloudbuild = args[:cloudbuild] if args.key?(:cloudbuild)
1426
+ @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1427
+ @identityservice = args[:identityservice] if args.key?(:identityservice)
1428
+ @origin = args[:origin] if args.key?(:origin)
1429
+ @policycontroller = args[:policycontroller] if args.key?(:policycontroller)
1430
+ @servicemesh = args[:servicemesh] if args.key?(:servicemesh)
1431
+ @workloadcertificate = args[:workloadcertificate] if args.key?(:workloadcertificate)
1432
+ end
1433
+ end
1434
+
1435
+ # FeatureState contains high-level state information and per-feature state
1436
+ # information for this MembershipFeature.
1437
+ class FeatureState
1438
+ include Google::Apis::Core::Hashable
1439
+
1440
+ # State for App Dev Exp Feature.
1441
+ # Corresponds to the JSON property `appdevexperience`
1442
+ # @return [Google::Apis::GkehubV2alpha::AppDevExperienceState]
1443
+ attr_accessor :appdevexperience
1444
+
1445
+ # Per-membership state for this feature.
1446
+ # Corresponds to the JSON property `clusterupgrade`
1447
+ # @return [Google::Apis::GkehubV2alpha::ClusterUpgradeState]
1448
+ attr_accessor :clusterupgrade
1449
+
1450
+ # **Anthos Config Management**: State for a single cluster.
1451
+ # Corresponds to the JSON property `configmanagement`
1452
+ # @return [Google::Apis::GkehubV2alpha::ConfigManagementState]
1453
+ attr_accessor :configmanagement
1454
+
1455
+ # **IdentityService**: State for a single membership, analyzed and reported by
1456
+ # feature controller.
1457
+ # Corresponds to the JSON property `identityservice`
1458
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceState]
1459
+ attr_accessor :identityservice
1460
+
1461
+ # **Metering**: State for a single membership, analyzed and reported by feature
1462
+ # controller.
1463
+ # Corresponds to the JSON property `metering`
1464
+ # @return [Google::Apis::GkehubV2alpha::MeteringState]
1465
+ attr_accessor :metering
1466
+
1467
+ # **Policy Controller**: State for a single cluster.
1468
+ # Corresponds to the JSON property `policycontroller`
1469
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerState]
1470
+ attr_accessor :policycontroller
1471
+
1472
+ # **Service Mesh**: State for a single Membership, as analyzed by the Service
1473
+ # Mesh Hub Controller.
1474
+ # Corresponds to the JSON property `servicemesh`
1475
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshState]
1476
+ attr_accessor :servicemesh
1477
+
1478
+ # High-level state of a MembershipFeature.
1479
+ # Corresponds to the JSON property `state`
1480
+ # @return [Google::Apis::GkehubV2alpha::State]
1481
+ attr_accessor :state
1482
+
1483
+ def initialize(**args)
1484
+ update!(**args)
1485
+ end
1486
+
1487
+ # Update properties of this object
1488
+ def update!(**args)
1489
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
1490
+ @clusterupgrade = args[:clusterupgrade] if args.key?(:clusterupgrade)
1491
+ @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1492
+ @identityservice = args[:identityservice] if args.key?(:identityservice)
1493
+ @metering = args[:metering] if args.key?(:metering)
1494
+ @policycontroller = args[:policycontroller] if args.key?(:policycontroller)
1495
+ @servicemesh = args[:servicemesh] if args.key?(:servicemesh)
1496
+ @state = args[:state] if args.key?(:state)
1497
+ end
1498
+ end
1499
+
1500
+ # The `Status` type defines a logical error model that is suitable for different
1501
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1502
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1503
+ # data: error code, error message, and error details. You can find out more
1504
+ # about this error model and how to work with it in the [API Design Guide](https:
1505
+ # //cloud.google.com/apis/design/errors).
1506
+ class GoogleRpcStatus
1507
+ include Google::Apis::Core::Hashable
1508
+
1509
+ # The status code, which should be an enum value of google.rpc.Code.
1510
+ # Corresponds to the JSON property `code`
1511
+ # @return [Fixnum]
1512
+ attr_accessor :code
1513
+
1514
+ # A list of messages that carry the error details. There is a common set of
1515
+ # message types for APIs to use.
1516
+ # Corresponds to the JSON property `details`
1517
+ # @return [Array<Hash<String,Object>>]
1518
+ attr_accessor :details
1519
+
1520
+ # A developer-facing error message, which should be in English. Any user-facing
1521
+ # error message should be localized and sent in the google.rpc.Status.details
1522
+ # field, or localized by the client.
1523
+ # Corresponds to the JSON property `message`
1524
+ # @return [String]
1525
+ attr_accessor :message
1526
+
1527
+ def initialize(**args)
1528
+ update!(**args)
1529
+ end
1530
+
1531
+ # Update properties of this object
1532
+ def update!(**args)
1533
+ @code = args[:code] if args.key?(:code)
1534
+ @details = args[:details] if args.key?(:details)
1535
+ @message = args[:message] if args.key?(:message)
1536
+ end
1537
+ end
1538
+
1539
+ # Configuration of an auth method for a member/cluster. Only one authentication
1540
+ # method (e.g., OIDC and LDAP) can be set per AuthMethod.
1541
+ class IdentityServiceAuthMethod
1542
+ include Google::Apis::Core::Hashable
1543
+
1544
+ # Configuration for the AzureAD Auth flow.
1545
+ # Corresponds to the JSON property `azureadConfig`
1546
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceAzureAdConfig]
1547
+ attr_accessor :azuread_config
1548
+
1549
+ # Configuration for the Google Plugin Auth flow.
1550
+ # Corresponds to the JSON property `googleConfig`
1551
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceGoogleConfig]
1552
+ attr_accessor :google_config
1553
+
1554
+ # Configuration for the LDAP Auth flow.
1555
+ # Corresponds to the JSON property `ldapConfig`
1556
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceLdapConfig]
1557
+ attr_accessor :ldap_config
1558
+
1559
+ # Identifier for auth config.
1560
+ # Corresponds to the JSON property `name`
1561
+ # @return [String]
1562
+ attr_accessor :name
1563
+
1564
+ # Configuration for OIDC Auth flow.
1565
+ # Corresponds to the JSON property `oidcConfig`
1566
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceOidcConfig]
1567
+ attr_accessor :oidc_config
1568
+
1569
+ # Proxy server address to use for auth method.
1570
+ # Corresponds to the JSON property `proxy`
1571
+ # @return [String]
1572
+ attr_accessor :proxy
1573
+
1574
+ # Configuration for the SAML Auth flow.
1575
+ # Corresponds to the JSON property `samlConfig`
1576
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSamlConfig]
1577
+ attr_accessor :saml_config
1578
+
1579
+ def initialize(**args)
1580
+ update!(**args)
1581
+ end
1582
+
1583
+ # Update properties of this object
1584
+ def update!(**args)
1585
+ @azuread_config = args[:azuread_config] if args.key?(:azuread_config)
1586
+ @google_config = args[:google_config] if args.key?(:google_config)
1587
+ @ldap_config = args[:ldap_config] if args.key?(:ldap_config)
1588
+ @name = args[:name] if args.key?(:name)
1589
+ @oidc_config = args[:oidc_config] if args.key?(:oidc_config)
1590
+ @proxy = args[:proxy] if args.key?(:proxy)
1591
+ @saml_config = args[:saml_config] if args.key?(:saml_config)
1592
+ end
1593
+ end
1594
+
1595
+ # Configuration for the AzureAD Auth flow.
1596
+ class IdentityServiceAzureAdConfig
1597
+ include Google::Apis::Core::Hashable
1598
+
1599
+ # ID for the registered client application that makes authentication requests to
1600
+ # the Azure AD identity provider.
1601
+ # Corresponds to the JSON property `clientId`
1602
+ # @return [String]
1603
+ attr_accessor :client_id
1604
+
1605
+ # Input only. Unencrypted AzureAD client secret will be passed to the GKE Hub
1606
+ # CLH.
1607
+ # Corresponds to the JSON property `clientSecret`
1608
+ # @return [String]
1609
+ attr_accessor :client_secret
1610
+
1611
+ # Output only. Encrypted AzureAD client secret.
1612
+ # Corresponds to the JSON property `encryptedClientSecret`
1613
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1614
+ # @return [String]
1615
+ attr_accessor :encrypted_client_secret
1616
+
1617
+ # Optional. Format of the AzureAD groups that the client wants for auth.
1618
+ # Corresponds to the JSON property `groupFormat`
1619
+ # @return [String]
1620
+ attr_accessor :group_format
1621
+
1622
+ # The redirect URL that kubectl uses for authorization.
1623
+ # Corresponds to the JSON property `kubectlRedirectUri`
1624
+ # @return [String]
1625
+ attr_accessor :kubectl_redirect_uri
1626
+
1627
+ # Kind of Azure AD account to be authenticated. Supported values are or for
1628
+ # accounts belonging to a specific tenant.
1629
+ # Corresponds to the JSON property `tenant`
1630
+ # @return [String]
1631
+ attr_accessor :tenant
1632
+
1633
+ # Optional. Claim in the AzureAD ID Token that holds the user details.
1634
+ # Corresponds to the JSON property `userClaim`
1635
+ # @return [String]
1636
+ attr_accessor :user_claim
1637
+
1638
+ def initialize(**args)
1639
+ update!(**args)
1640
+ end
1641
+
1642
+ # Update properties of this object
1643
+ def update!(**args)
1644
+ @client_id = args[:client_id] if args.key?(:client_id)
1645
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1646
+ @encrypted_client_secret = args[:encrypted_client_secret] if args.key?(:encrypted_client_secret)
1647
+ @group_format = args[:group_format] if args.key?(:group_format)
1648
+ @kubectl_redirect_uri = args[:kubectl_redirect_uri] if args.key?(:kubectl_redirect_uri)
1649
+ @tenant = args[:tenant] if args.key?(:tenant)
1650
+ @user_claim = args[:user_claim] if args.key?(:user_claim)
1651
+ end
1652
+ end
1653
+
1654
+ # Configuration options for the AIS diagnostic interface.
1655
+ class IdentityServiceDiagnosticInterface
1656
+ include Google::Apis::Core::Hashable
1657
+
1658
+ # Determines whether to enable the diagnostic interface.
1659
+ # Corresponds to the JSON property `enabled`
1660
+ # @return [Boolean]
1661
+ attr_accessor :enabled
1662
+ alias_method :enabled?, :enabled
1663
+
1664
+ # Determines the expiration time of the diagnostic interface enablement. When
1665
+ # reached, requests to the interface would be automatically rejected.
1666
+ # Corresponds to the JSON property `expirationTime`
1667
+ # @return [String]
1668
+ attr_accessor :expiration_time
1669
+
1670
+ def initialize(**args)
1671
+ update!(**args)
1672
+ end
1673
+
1674
+ # Update properties of this object
1675
+ def update!(**args)
1676
+ @enabled = args[:enabled] if args.key?(:enabled)
1677
+ @expiration_time = args[:expiration_time] if args.key?(:expiration_time)
1678
+ end
1679
+ end
1680
+
1681
+ # Configuration for the Google Plugin Auth flow.
1682
+ class IdentityServiceGoogleConfig
1683
+ include Google::Apis::Core::Hashable
1684
+
1685
+ # Disable automatic configuration of Google Plugin on supported platforms.
1686
+ # Corresponds to the JSON property `disable`
1687
+ # @return [Boolean]
1688
+ attr_accessor :disable
1689
+ alias_method :disable?, :disable
1690
+
1691
+ def initialize(**args)
1692
+ update!(**args)
1693
+ end
1694
+
1695
+ # Update properties of this object
1696
+ def update!(**args)
1697
+ @disable = args[:disable] if args.key?(:disable)
1698
+ end
1699
+ end
1700
+
1701
+ # Contains the properties for locating and authenticating groups in the
1702
+ # directory.
1703
+ class IdentityServiceGroupConfig
1704
+ include Google::Apis::Core::Hashable
1705
+
1706
+ # Required. The location of the subtree in the LDAP directory to search for
1707
+ # group entries.
1708
+ # Corresponds to the JSON property `baseDn`
1709
+ # @return [String]
1710
+ attr_accessor :base_dn
1711
+
1712
+ # Optional. Optional filter to be used when searching for groups a user belongs
1713
+ # to. This can be used to explicitly match only certain groups in order to
1714
+ # reduce the amount of groups returned for each user. This defaults to "(
1715
+ # objectClass=Group)".
1716
+ # Corresponds to the JSON property `filter`
1717
+ # @return [String]
1718
+ attr_accessor :filter
1719
+
1720
+ # Optional. The identifying name of each group a user belongs to. For example,
1721
+ # if this is set to "distinguishedName" then RBACs and other group expectations
1722
+ # should be written as full DNs. This defaults to "distinguishedName".
1723
+ # Corresponds to the JSON property `idAttribute`
1724
+ # @return [String]
1725
+ attr_accessor :id_attribute
1726
+
1727
+ def initialize(**args)
1728
+ update!(**args)
1729
+ end
1730
+
1731
+ # Update properties of this object
1732
+ def update!(**args)
1733
+ @base_dn = args[:base_dn] if args.key?(:base_dn)
1734
+ @filter = args[:filter] if args.key?(:filter)
1735
+ @id_attribute = args[:id_attribute] if args.key?(:id_attribute)
1736
+ end
1737
+ end
1738
+
1739
+ # Holds non-protocol-related configuration options.
1740
+ class IdentityServiceIdentityServiceOptions
1741
+ include Google::Apis::Core::Hashable
1742
+
1743
+ # Configuration options for the AIS diagnostic interface.
1744
+ # Corresponds to the JSON property `diagnosticInterface`
1745
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceDiagnosticInterface]
1746
+ attr_accessor :diagnostic_interface
1747
+
1748
+ # Determines the lifespan of STS tokens issued by Anthos Identity Service.
1749
+ # Corresponds to the JSON property `sessionDuration`
1750
+ # @return [String]
1751
+ attr_accessor :session_duration
1752
+
1753
+ def initialize(**args)
1754
+ update!(**args)
1755
+ end
1756
+
1757
+ # Update properties of this object
1758
+ def update!(**args)
1759
+ @diagnostic_interface = args[:diagnostic_interface] if args.key?(:diagnostic_interface)
1760
+ @session_duration = args[:session_duration] if args.key?(:session_duration)
1761
+ end
1762
+ end
1763
+
1764
+ # Configuration for the LDAP Auth flow.
1765
+ class IdentityServiceLdapConfig
1766
+ include Google::Apis::Core::Hashable
1767
+
1768
+ # Contains the properties for locating and authenticating groups in the
1769
+ # directory.
1770
+ # Corresponds to the JSON property `group`
1771
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceGroupConfig]
1772
+ attr_accessor :group
1773
+
1774
+ # Server settings for the external LDAP server.
1775
+ # Corresponds to the JSON property `server`
1776
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceServerConfig]
1777
+ attr_accessor :server
1778
+
1779
+ # Contains the credentials of the service account which is authorized to perform
1780
+ # the LDAP search in the directory. The credentials can be supplied by the
1781
+ # combination of the DN and password or the client certificate.
1782
+ # Corresponds to the JSON property `serviceAccount`
1783
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceServiceAccountConfig]
1784
+ attr_accessor :service_account
1785
+
1786
+ # Defines where users exist in the LDAP directory.
1787
+ # Corresponds to the JSON property `user`
1788
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceUserConfig]
1789
+ attr_accessor :user
1790
+
1791
+ def initialize(**args)
1792
+ update!(**args)
1793
+ end
1794
+
1795
+ # Update properties of this object
1796
+ def update!(**args)
1797
+ @group = args[:group] if args.key?(:group)
1798
+ @server = args[:server] if args.key?(:server)
1799
+ @service_account = args[:service_account] if args.key?(:service_account)
1800
+ @user = args[:user] if args.key?(:user)
1801
+ end
1802
+ end
1803
+
1804
+ # Configuration for OIDC Auth flow.
1805
+ class IdentityServiceOidcConfig
1806
+ include Google::Apis::Core::Hashable
1807
+
1808
+ # PEM-encoded CA for OIDC provider.
1809
+ # Corresponds to the JSON property `certificateAuthorityData`
1810
+ # @return [String]
1811
+ attr_accessor :certificate_authority_data
1812
+
1813
+ # ID for OIDC client application.
1814
+ # Corresponds to the JSON property `clientId`
1815
+ # @return [String]
1816
+ attr_accessor :client_id
1817
+
1818
+ # Input only. Unencrypted OIDC client secret will be passed to the GKE Hub CLH.
1819
+ # Corresponds to the JSON property `clientSecret`
1820
+ # @return [String]
1821
+ attr_accessor :client_secret
1822
+
1823
+ # Flag to denote if reverse proxy is used to connect to auth provider. This flag
1824
+ # should be set to true when provider is not reachable by Google Cloud Console.
1825
+ # Corresponds to the JSON property `deployCloudConsoleProxy`
1826
+ # @return [Boolean]
1827
+ attr_accessor :deploy_cloud_console_proxy
1828
+ alias_method :deploy_cloud_console_proxy?, :deploy_cloud_console_proxy
1829
+
1830
+ # Enable access token.
1831
+ # Corresponds to the JSON property `enableAccessToken`
1832
+ # @return [Boolean]
1833
+ attr_accessor :enable_access_token
1834
+ alias_method :enable_access_token?, :enable_access_token
1835
+
1836
+ # Output only. Encrypted OIDC Client secret
1837
+ # Corresponds to the JSON property `encryptedClientSecret`
1838
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1839
+ # @return [String]
1840
+ attr_accessor :encrypted_client_secret
1841
+
1842
+ # Comma-separated list of key-value pairs.
1843
+ # Corresponds to the JSON property `extraParams`
1844
+ # @return [String]
1845
+ attr_accessor :extra_params
1846
+
1847
+ # Prefix to prepend to group name.
1848
+ # Corresponds to the JSON property `groupPrefix`
1849
+ # @return [String]
1850
+ attr_accessor :group_prefix
1851
+
1852
+ # Claim in OIDC ID token that holds group information.
1853
+ # Corresponds to the JSON property `groupsClaim`
1854
+ # @return [String]
1855
+ attr_accessor :groups_claim
1856
+
1857
+ # URI for the OIDC provider. This should point to the level below .well-known/
1858
+ # openid-configuration.
1859
+ # Corresponds to the JSON property `issuerUri`
1860
+ # @return [String]
1861
+ attr_accessor :issuer_uri
1862
+
1863
+ # Registered redirect uri to redirect users going through OAuth flow using
1864
+ # kubectl plugin.
1865
+ # Corresponds to the JSON property `kubectlRedirectUri`
1866
+ # @return [String]
1867
+ attr_accessor :kubectl_redirect_uri
1868
+
1869
+ # Comma-separated list of identifiers.
1870
+ # Corresponds to the JSON property `scopes`
1871
+ # @return [String]
1872
+ attr_accessor :scopes
1873
+
1874
+ # Claim in OIDC ID token that holds username.
1875
+ # Corresponds to the JSON property `userClaim`
1876
+ # @return [String]
1877
+ attr_accessor :user_claim
1878
+
1879
+ # Prefix to prepend to user name.
1880
+ # Corresponds to the JSON property `userPrefix`
1881
+ # @return [String]
1882
+ attr_accessor :user_prefix
1883
+
1884
+ def initialize(**args)
1885
+ update!(**args)
1886
+ end
1887
+
1888
+ # Update properties of this object
1889
+ def update!(**args)
1890
+ @certificate_authority_data = args[:certificate_authority_data] if args.key?(:certificate_authority_data)
1891
+ @client_id = args[:client_id] if args.key?(:client_id)
1892
+ @client_secret = args[:client_secret] if args.key?(:client_secret)
1893
+ @deploy_cloud_console_proxy = args[:deploy_cloud_console_proxy] if args.key?(:deploy_cloud_console_proxy)
1894
+ @enable_access_token = args[:enable_access_token] if args.key?(:enable_access_token)
1895
+ @encrypted_client_secret = args[:encrypted_client_secret] if args.key?(:encrypted_client_secret)
1896
+ @extra_params = args[:extra_params] if args.key?(:extra_params)
1897
+ @group_prefix = args[:group_prefix] if args.key?(:group_prefix)
1898
+ @groups_claim = args[:groups_claim] if args.key?(:groups_claim)
1899
+ @issuer_uri = args[:issuer_uri] if args.key?(:issuer_uri)
1900
+ @kubectl_redirect_uri = args[:kubectl_redirect_uri] if args.key?(:kubectl_redirect_uri)
1901
+ @scopes = args[:scopes] if args.key?(:scopes)
1902
+ @user_claim = args[:user_claim] if args.key?(:user_claim)
1903
+ @user_prefix = args[:user_prefix] if args.key?(:user_prefix)
1904
+ end
1905
+ end
1906
+
1907
+ # Configuration for the SAML Auth flow.
1908
+ class IdentityServiceSamlConfig
1909
+ include Google::Apis::Core::Hashable
1910
+
1911
+ # Optional. The mapping of additional user attributes like nickname, birthday
1912
+ # and address etc.. `key` is the name of this additional attribute. `value` is a
1913
+ # string presenting as CEL(common expression language, go/cel) used for getting
1914
+ # the value from the resources. Take nickname as an example, in this case, `key`
1915
+ # is "attribute.nickname" and `value` is "assertion.nickname".
1916
+ # Corresponds to the JSON property `attributeMapping`
1917
+ # @return [Hash<String,String>]
1918
+ attr_accessor :attribute_mapping
1919
+
1920
+ # Optional. Prefix to prepend to group name.
1921
+ # Corresponds to the JSON property `groupPrefix`
1922
+ # @return [String]
1923
+ attr_accessor :group_prefix
1924
+
1925
+ # Optional. The SAML attribute to read groups from. This value is expected to be
1926
+ # a string and will be passed along as-is (with the option of being prefixed by
1927
+ # the `group_prefix`).
1928
+ # Corresponds to the JSON property `groupsAttribute`
1929
+ # @return [String]
1930
+ attr_accessor :groups_attribute
1931
+
1932
+ # Required. The list of IdP certificates to validate the SAML response against.
1933
+ # Corresponds to the JSON property `identityProviderCertificates`
1934
+ # @return [Array<String>]
1935
+ attr_accessor :identity_provider_certificates
1936
+
1937
+ # Required. The entity ID of the SAML IdP.
1938
+ # Corresponds to the JSON property `identityProviderId`
1939
+ # @return [String]
1940
+ attr_accessor :identity_provider_id
1941
+
1942
+ # Required. The URI where the SAML IdP exposes the SSO service.
1943
+ # Corresponds to the JSON property `identityProviderSsoUri`
1944
+ # @return [String]
1945
+ attr_accessor :identity_provider_sso_uri
1946
+
1947
+ # Optional. The SAML attribute to read username from. If unspecified, the
1948
+ # username will be read from the NameID element of the assertion in SAML
1949
+ # response. This value is expected to be a string and will be passed along as-is
1950
+ # (with the option of being prefixed by the `user_prefix`).
1951
+ # Corresponds to the JSON property `userAttribute`
1952
+ # @return [String]
1953
+ attr_accessor :user_attribute
1954
+
1955
+ # Optional. Prefix to prepend to user name.
1956
+ # Corresponds to the JSON property `userPrefix`
1957
+ # @return [String]
1958
+ attr_accessor :user_prefix
1959
+
1960
+ def initialize(**args)
1961
+ update!(**args)
1962
+ end
1963
+
1964
+ # Update properties of this object
1965
+ def update!(**args)
1966
+ @attribute_mapping = args[:attribute_mapping] if args.key?(:attribute_mapping)
1967
+ @group_prefix = args[:group_prefix] if args.key?(:group_prefix)
1968
+ @groups_attribute = args[:groups_attribute] if args.key?(:groups_attribute)
1969
+ @identity_provider_certificates = args[:identity_provider_certificates] if args.key?(:identity_provider_certificates)
1970
+ @identity_provider_id = args[:identity_provider_id] if args.key?(:identity_provider_id)
1971
+ @identity_provider_sso_uri = args[:identity_provider_sso_uri] if args.key?(:identity_provider_sso_uri)
1972
+ @user_attribute = args[:user_attribute] if args.key?(:user_attribute)
1973
+ @user_prefix = args[:user_prefix] if args.key?(:user_prefix)
1974
+ end
1975
+ end
1976
+
1977
+ # Server settings for the external LDAP server.
1978
+ class IdentityServiceServerConfig
1979
+ include Google::Apis::Core::Hashable
1980
+
1981
+ # Optional. Contains a Base64 encoded, PEM formatted certificate authority
1982
+ # certificate for the LDAP server. This must be provided for the "ldaps" and "
1983
+ # startTLS" connections.
1984
+ # Corresponds to the JSON property `certificateAuthorityData`
1985
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1986
+ # @return [String]
1987
+ attr_accessor :certificate_authority_data
1988
+
1989
+ # Optional. Defines the connection type to communicate with the LDAP server. If `
1990
+ # starttls` or `ldaps` is specified, the certificate_authority_data should not
1991
+ # be empty.
1992
+ # Corresponds to the JSON property `connectionType`
1993
+ # @return [String]
1994
+ attr_accessor :connection_type
1995
+
1996
+ # Required. Defines the hostname or IP of the LDAP server. Port is optional and
1997
+ # will default to 389, if unspecified. For example, "ldap.server.example" or "10.
1998
+ # 10.10.10:389".
1999
+ # Corresponds to the JSON property `host`
2000
+ # @return [String]
2001
+ attr_accessor :host
2002
+
2003
+ def initialize(**args)
2004
+ update!(**args)
2005
+ end
2006
+
2007
+ # Update properties of this object
2008
+ def update!(**args)
2009
+ @certificate_authority_data = args[:certificate_authority_data] if args.key?(:certificate_authority_data)
2010
+ @connection_type = args[:connection_type] if args.key?(:connection_type)
2011
+ @host = args[:host] if args.key?(:host)
2012
+ end
2013
+ end
2014
+
2015
+ # Contains the credentials of the service account which is authorized to perform
2016
+ # the LDAP search in the directory. The credentials can be supplied by the
2017
+ # combination of the DN and password or the client certificate.
2018
+ class IdentityServiceServiceAccountConfig
2019
+ include Google::Apis::Core::Hashable
2020
+
2021
+ # The structure holds the LDAP simple binding credential.
2022
+ # Corresponds to the JSON property `simpleBindCredentials`
2023
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSimpleBindCredentials]
2024
+ attr_accessor :simple_bind_credentials
2025
+
2026
+ def initialize(**args)
2027
+ update!(**args)
2028
+ end
2029
+
2030
+ # Update properties of this object
2031
+ def update!(**args)
2032
+ @simple_bind_credentials = args[:simple_bind_credentials] if args.key?(:simple_bind_credentials)
2033
+ end
2034
+ end
2035
+
2036
+ # The structure holds the LDAP simple binding credential.
2037
+ class IdentityServiceSimpleBindCredentials
2038
+ include Google::Apis::Core::Hashable
2039
+
2040
+ # Required. The distinguished name(DN) of the service account object/user.
2041
+ # Corresponds to the JSON property `dn`
2042
+ # @return [String]
2043
+ attr_accessor :dn
2044
+
2045
+ # Output only. The encrypted password of the service account object/user.
2046
+ # Corresponds to the JSON property `encryptedPassword`
2047
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
2048
+ # @return [String]
2049
+ attr_accessor :encrypted_password
2050
+
2051
+ # Required. Input only. The password of the service account object/user.
2052
+ # Corresponds to the JSON property `password`
2053
+ # @return [String]
2054
+ attr_accessor :password
2055
+
2056
+ def initialize(**args)
2057
+ update!(**args)
2058
+ end
2059
+
2060
+ # Update properties of this object
2061
+ def update!(**args)
2062
+ @dn = args[:dn] if args.key?(:dn)
2063
+ @encrypted_password = args[:encrypted_password] if args.key?(:encrypted_password)
2064
+ @password = args[:password] if args.key?(:password)
2065
+ end
2066
+ end
2067
+
2068
+ # **IdentityService**: Configuration for a single membership.
2069
+ class IdentityServiceSpec
2070
+ include Google::Apis::Core::Hashable
2071
+
2072
+ # A member may support multiple auth methods.
2073
+ # Corresponds to the JSON property `authMethods`
2074
+ # @return [Array<Google::Apis::GkehubV2alpha::IdentityServiceAuthMethod>]
2075
+ attr_accessor :auth_methods
2076
+
2077
+ # Holds non-protocol-related configuration options.
2078
+ # Corresponds to the JSON property `identityServiceOptions`
2079
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceIdentityServiceOptions]
2080
+ attr_accessor :identity_service_options
2081
+
2082
+ def initialize(**args)
2083
+ update!(**args)
2084
+ end
2085
+
2086
+ # Update properties of this object
2087
+ def update!(**args)
2088
+ @auth_methods = args[:auth_methods] if args.key?(:auth_methods)
2089
+ @identity_service_options = args[:identity_service_options] if args.key?(:identity_service_options)
2090
+ end
2091
+ end
2092
+
2093
+ # **IdentityService**: State for a single membership, analyzed and reported by
2094
+ # feature controller.
2095
+ class IdentityServiceState
2096
+ include Google::Apis::Core::Hashable
2097
+
2098
+ # The reason of the failure.
2099
+ # Corresponds to the JSON property `failureReason`
2100
+ # @return [String]
2101
+ attr_accessor :failure_reason
2102
+
2103
+ # Installed AIS version. This is the AIS version installed on this member. The
2104
+ # values makes sense iff state is OK.
2105
+ # Corresponds to the JSON property `installedVersion`
2106
+ # @return [String]
2107
+ attr_accessor :installed_version
2108
+
2109
+ # **IdentityService**: Configuration for a single membership.
2110
+ # Corresponds to the JSON property `memberConfig`
2111
+ # @return [Google::Apis::GkehubV2alpha::IdentityServiceSpec]
2112
+ attr_accessor :member_config
2113
+
2114
+ # Deployment state on this member
2115
+ # Corresponds to the JSON property `state`
2116
+ # @return [String]
2117
+ attr_accessor :state
2118
+
2119
+ def initialize(**args)
2120
+ update!(**args)
2121
+ end
2122
+
2123
+ # Update properties of this object
2124
+ def update!(**args)
2125
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
2126
+ @installed_version = args[:installed_version] if args.key?(:installed_version)
2127
+ @member_config = args[:member_config] if args.key?(:member_config)
2128
+ @state = args[:state] if args.key?(:state)
2129
+ end
2130
+ end
2131
+
2132
+ # Defines where users exist in the LDAP directory.
2133
+ class IdentityServiceUserConfig
2134
+ include Google::Apis::Core::Hashable
2135
+
2136
+ # Required. The location of the subtree in the LDAP directory to search for user
2137
+ # entries.
2138
+ # Corresponds to the JSON property `baseDn`
2139
+ # @return [String]
2140
+ attr_accessor :base_dn
2141
+
2142
+ # Optional. Filter to apply when searching for the user. This can be used to
2143
+ # further restrict the user accounts which are allowed to login. This defaults
2144
+ # to "(objectClass=User)".
2145
+ # Corresponds to the JSON property `filter`
2146
+ # @return [String]
2147
+ attr_accessor :filter
2148
+
2149
+ # Optional. Determines which attribute to use as the user's identity after they
2150
+ # are authenticated. This is distinct from the loginAttribute field to allow
2151
+ # users to login with a username, but then have their actual identifier be an
2152
+ # email address or full Distinguished Name (DN). For example, setting
2153
+ # loginAttribute to "sAMAccountName" and identifierAttribute to "
2154
+ # userPrincipalName" would allow a user to login as "bsmith", but actual RBAC
2155
+ # policies for the user would be written as "bsmith@example.com". Using "
2156
+ # userPrincipalName" is recommended since this will be unique for each user.
2157
+ # This defaults to "userPrincipalName".
2158
+ # Corresponds to the JSON property `idAttribute`
2159
+ # @return [String]
2160
+ attr_accessor :id_attribute
2161
+
2162
+ # Optional. The name of the attribute which matches against the input username.
2163
+ # This is used to find the user in the LDAP database e.g. "(=)" and is combined
2164
+ # with the optional filter field. This defaults to "userPrincipalName".
2165
+ # Corresponds to the JSON property `loginAttribute`
2166
+ # @return [String]
2167
+ attr_accessor :login_attribute
2168
+
2169
+ def initialize(**args)
2170
+ update!(**args)
2171
+ end
2172
+
2173
+ # Update properties of this object
2174
+ def update!(**args)
2175
+ @base_dn = args[:base_dn] if args.key?(:base_dn)
2176
+ @filter = args[:filter] if args.key?(:filter)
2177
+ @id_attribute = args[:id_attribute] if args.key?(:id_attribute)
2178
+ @login_attribute = args[:login_attribute] if args.key?(:login_attribute)
2179
+ end
2180
+ end
2181
+
2182
+ # LifecycleState describes the state of a MembershipFeature *resource* in the
2183
+ # GkeHub API. See `FeatureState` for the "running state" of the
2184
+ # MembershipFeature.
2185
+ class LifecycleState
2186
+ include Google::Apis::Core::Hashable
2187
+
2188
+ # Output only. The current state of the Feature resource in the Hub API.
2189
+ # Corresponds to the JSON property `state`
2190
+ # @return [String]
2191
+ attr_accessor :state
2192
+
2193
+ def initialize(**args)
2194
+ update!(**args)
2195
+ end
2196
+
2197
+ # Update properties of this object
2198
+ def update!(**args)
2199
+ @state = args[:state] if args.key?(:state)
2200
+ end
2201
+ end
2202
+
2203
+ # The response message for Locations.ListLocations.
2204
+ class ListLocationsResponse
2205
+ include Google::Apis::Core::Hashable
2206
+
2207
+ # A list of locations that matches the specified filter in the request.
2208
+ # Corresponds to the JSON property `locations`
2209
+ # @return [Array<Google::Apis::GkehubV2alpha::Location>]
2210
+ attr_accessor :locations
2211
+
2212
+ # The standard List next-page token.
2213
+ # Corresponds to the JSON property `nextPageToken`
2214
+ # @return [String]
2215
+ attr_accessor :next_page_token
2216
+
2217
+ def initialize(**args)
2218
+ update!(**args)
2219
+ end
2220
+
2221
+ # Update properties of this object
2222
+ def update!(**args)
2223
+ @locations = args[:locations] if args.key?(:locations)
2224
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2225
+ end
2226
+ end
2227
+
2228
+ # Response message for the `GkeHubFeature.ListMembershipFeatures` method.
2229
+ class ListMembershipFeaturesResponse
2230
+ include Google::Apis::Core::Hashable
2231
+
2232
+ # The list of matching MembershipFeatures.
2233
+ # Corresponds to the JSON property `membershipFeatures`
2234
+ # @return [Array<Google::Apis::GkehubV2alpha::MembershipFeature>]
2235
+ attr_accessor :membership_features
2236
+
2237
+ # A token to request the next page of resources from the `ListMembershipFeatures`
2238
+ # method. The value of an empty string means that there are no more resources
2239
+ # to return.
2240
+ # Corresponds to the JSON property `nextPageToken`
2241
+ # @return [String]
2242
+ attr_accessor :next_page_token
2243
+
2244
+ # List of locations that could not be reached while fetching this list.
2245
+ # Corresponds to the JSON property `unreachable`
2246
+ # @return [Array<String>]
2247
+ attr_accessor :unreachable
2248
+
2249
+ def initialize(**args)
2250
+ update!(**args)
2251
+ end
2252
+
2253
+ # Update properties of this object
2254
+ def update!(**args)
2255
+ @membership_features = args[:membership_features] if args.key?(:membership_features)
2256
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2257
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2258
+ end
2259
+ end
2260
+
2261
+ # The response message for Operations.ListOperations.
2262
+ class ListOperationsResponse
2263
+ include Google::Apis::Core::Hashable
2264
+
2265
+ # The standard List next-page token.
2266
+ # Corresponds to the JSON property `nextPageToken`
2267
+ # @return [String]
2268
+ attr_accessor :next_page_token
2269
+
2270
+ # A list of operations that matches the specified filter in the request.
2271
+ # Corresponds to the JSON property `operations`
2272
+ # @return [Array<Google::Apis::GkehubV2alpha::Operation>]
2273
+ attr_accessor :operations
2274
+
2275
+ def initialize(**args)
2276
+ update!(**args)
2277
+ end
2278
+
2279
+ # Update properties of this object
2280
+ def update!(**args)
2281
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2282
+ @operations = args[:operations] if args.key?(:operations)
2283
+ end
2284
+ end
2285
+
2286
+ # A resource that represents a Google Cloud location.
2287
+ class Location
2288
+ include Google::Apis::Core::Hashable
2289
+
2290
+ # The friendly name for this location, typically a nearby city name. For example,
2291
+ # "Tokyo".
2292
+ # Corresponds to the JSON property `displayName`
2293
+ # @return [String]
2294
+ attr_accessor :display_name
2295
+
2296
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
2297
+ # region": "us-east1"`
2298
+ # Corresponds to the JSON property `labels`
2299
+ # @return [Hash<String,String>]
2300
+ attr_accessor :labels
2301
+
2302
+ # The canonical id for this location. For example: `"us-east1"`.
2303
+ # Corresponds to the JSON property `locationId`
2304
+ # @return [String]
2305
+ attr_accessor :location_id
2306
+
2307
+ # Service-specific metadata. For example the available capacity at the given
2308
+ # location.
2309
+ # Corresponds to the JSON property `metadata`
2310
+ # @return [Hash<String,Object>]
2311
+ attr_accessor :metadata
2312
+
2313
+ # Resource name for the location, which may vary between implementations. For
2314
+ # example: `"projects/example-project/locations/us-east1"`
2315
+ # Corresponds to the JSON property `name`
2316
+ # @return [String]
2317
+ attr_accessor :name
2318
+
2319
+ def initialize(**args)
2320
+ update!(**args)
2321
+ end
2322
+
2323
+ # Update properties of this object
2324
+ def update!(**args)
2325
+ @display_name = args[:display_name] if args.key?(:display_name)
2326
+ @labels = args[:labels] if args.key?(:labels)
2327
+ @location_id = args[:location_id] if args.key?(:location_id)
2328
+ @metadata = args[:metadata] if args.key?(:metadata)
2329
+ @name = args[:name] if args.key?(:name)
2330
+ end
2331
+ end
2332
+
2333
+ # MembershipFeature represents the settings and status of a Fleet Feature
2334
+ # enabled on a single Fleet Membership.
2335
+ class MembershipFeature
2336
+ include Google::Apis::Core::Hashable
2337
+
2338
+ # Output only. When the MembershipFeature resource was created.
2339
+ # Corresponds to the JSON property `createTime`
2340
+ # @return [String]
2341
+ attr_accessor :create_time
2342
+
2343
+ # Output only. When the MembershipFeature resource was deleted.
2344
+ # Corresponds to the JSON property `deleteTime`
2345
+ # @return [String]
2346
+ attr_accessor :delete_time
2347
+
2348
+ # GCP labels for this MembershipFeature.
2349
+ # Corresponds to the JSON property `labels`
2350
+ # @return [Hash<String,String>]
2351
+ attr_accessor :labels
2352
+
2353
+ # LifecycleState describes the state of a MembershipFeature *resource* in the
2354
+ # GkeHub API. See `FeatureState` for the "running state" of the
2355
+ # MembershipFeature.
2356
+ # Corresponds to the JSON property `lifecycleState`
2357
+ # @return [Google::Apis::GkehubV2alpha::LifecycleState]
2358
+ attr_accessor :lifecycle_state
2359
+
2360
+ # Output only. The resource name of the membershipFeature, in the format: `
2361
+ # projects/`project`/locations/`location`/memberships/`membership`/features/`
2362
+ # feature``. Note that `membershipFeatures` is shortened to `features` in the
2363
+ # resource name. (see http://go/aip/122#collection-identifiers)
2364
+ # Corresponds to the JSON property `name`
2365
+ # @return [String]
2366
+ attr_accessor :name
2367
+
2368
+ # FeatureSpec contains user input per-feature spec information.
2369
+ # Corresponds to the JSON property `spec`
2370
+ # @return [Google::Apis::GkehubV2alpha::FeatureSpec]
2371
+ attr_accessor :spec
2372
+
2373
+ # FeatureState contains high-level state information and per-feature state
2374
+ # information for this MembershipFeature.
2375
+ # Corresponds to the JSON property `state`
2376
+ # @return [Google::Apis::GkehubV2alpha::FeatureState]
2377
+ attr_accessor :state
2378
+
2379
+ # Output only. When the MembershipFeature resource was last updated.
2380
+ # Corresponds to the JSON property `updateTime`
2381
+ # @return [String]
2382
+ attr_accessor :update_time
2383
+
2384
+ def initialize(**args)
2385
+ update!(**args)
2386
+ end
2387
+
2388
+ # Update properties of this object
2389
+ def update!(**args)
2390
+ @create_time = args[:create_time] if args.key?(:create_time)
2391
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
2392
+ @labels = args[:labels] if args.key?(:labels)
2393
+ @lifecycle_state = args[:lifecycle_state] if args.key?(:lifecycle_state)
2394
+ @name = args[:name] if args.key?(:name)
2395
+ @spec = args[:spec] if args.key?(:spec)
2396
+ @state = args[:state] if args.key?(:state)
2397
+ @update_time = args[:update_time] if args.key?(:update_time)
2398
+ end
2399
+ end
2400
+
2401
+ # **Metering**: State for a single membership, analyzed and reported by feature
2402
+ # controller.
2403
+ class MeteringState
2404
+ include Google::Apis::Core::Hashable
2405
+
2406
+ # The time stamp of the most recent measurement of the number of vCPUs in the
2407
+ # cluster.
2408
+ # Corresponds to the JSON property `lastMeasurementTime`
2409
+ # @return [String]
2410
+ attr_accessor :last_measurement_time
2411
+
2412
+ # The vCPUs capacity in the cluster according to the most recent measurement (1/
2413
+ # 1000 precision).
2414
+ # Corresponds to the JSON property `preciseLastMeasuredClusterVcpuCapacity`
2415
+ # @return [Float]
2416
+ attr_accessor :precise_last_measured_cluster_vcpu_capacity
2417
+
2418
+ def initialize(**args)
2419
+ update!(**args)
2420
+ end
2421
+
2422
+ # Update properties of this object
2423
+ def update!(**args)
2424
+ @last_measurement_time = args[:last_measurement_time] if args.key?(:last_measurement_time)
2425
+ @precise_last_measured_cluster_vcpu_capacity = args[:precise_last_measured_cluster_vcpu_capacity] if args.key?(:precise_last_measured_cluster_vcpu_capacity)
2426
+ end
2427
+ end
2428
+
2429
+ # This resource represents a long-running operation that is the result of a
2430
+ # network API call.
2431
+ class Operation
2432
+ include Google::Apis::Core::Hashable
2433
+
2434
+ # If the value is `false`, it means the operation is still in progress. If `true`
2435
+ # , the operation is completed, and either `error` or `response` is available.
2436
+ # Corresponds to the JSON property `done`
2437
+ # @return [Boolean]
2438
+ attr_accessor :done
2439
+ alias_method :done?, :done
2440
+
2441
+ # The `Status` type defines a logical error model that is suitable for different
2442
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2443
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2444
+ # data: error code, error message, and error details. You can find out more
2445
+ # about this error model and how to work with it in the [API Design Guide](https:
2446
+ # //cloud.google.com/apis/design/errors).
2447
+ # Corresponds to the JSON property `error`
2448
+ # @return [Google::Apis::GkehubV2alpha::GoogleRpcStatus]
2449
+ attr_accessor :error
2450
+
2451
+ # Service-specific metadata associated with the operation. It typically contains
2452
+ # progress information and common metadata such as create time. Some services
2453
+ # might not provide such metadata. Any method that returns a long-running
2454
+ # operation should document the metadata type, if any.
2455
+ # Corresponds to the JSON property `metadata`
2456
+ # @return [Hash<String,Object>]
2457
+ attr_accessor :metadata
2458
+
2459
+ # The server-assigned name, which is only unique within the same service that
2460
+ # originally returns it. If you use the default HTTP mapping, the `name` should
2461
+ # be a resource name ending with `operations/`unique_id``.
2462
+ # Corresponds to the JSON property `name`
2463
+ # @return [String]
2464
+ attr_accessor :name
2465
+
2466
+ # The normal, successful response of the operation. If the original method
2467
+ # returns no data on success, such as `Delete`, the response is `google.protobuf.
2468
+ # Empty`. If the original method is standard `Get`/`Create`/`Update`, the
2469
+ # response should be the resource. For other methods, the response should have
2470
+ # the type `XxxResponse`, where `Xxx` is the original method name. For example,
2471
+ # if the original method name is `TakeSnapshot()`, the inferred response type is
2472
+ # `TakeSnapshotResponse`.
2473
+ # Corresponds to the JSON property `response`
2474
+ # @return [Hash<String,Object>]
2475
+ attr_accessor :response
2476
+
2477
+ def initialize(**args)
2478
+ update!(**args)
2479
+ end
2480
+
2481
+ # Update properties of this object
2482
+ def update!(**args)
2483
+ @done = args[:done] if args.key?(:done)
2484
+ @error = args[:error] if args.key?(:error)
2485
+ @metadata = args[:metadata] if args.key?(:metadata)
2486
+ @name = args[:name] if args.key?(:name)
2487
+ @response = args[:response] if args.key?(:response)
2488
+ end
2489
+ end
2490
+
2491
+ # Metadata of the long-running operation.
2492
+ class OperationMetadata
2493
+ include Google::Apis::Core::Hashable
2494
+
2495
+ # Output only. API version used to start the operation.
2496
+ # Corresponds to the JSON property `apiVersion`
2497
+ # @return [String]
2498
+ attr_accessor :api_version
2499
+
2500
+ # Output only. Identifies whether the user has requested cancellation of the
2501
+ # operation. Operations that have successfully been cancelled have Operation.
2502
+ # error value with a google.rpc.Status.code of 1, corresponding to `Code.
2503
+ # CANCELLED`.
2504
+ # Corresponds to the JSON property `cancelRequested`
2505
+ # @return [Boolean]
2506
+ attr_accessor :cancel_requested
2507
+ alias_method :cancel_requested?, :cancel_requested
2508
+
2509
+ # Output only. The time the operation was created.
2510
+ # Corresponds to the JSON property `createTime`
2511
+ # @return [String]
2512
+ attr_accessor :create_time
2513
+
2514
+ # Output only. The time the operation finished running.
2515
+ # Corresponds to the JSON property `endTime`
2516
+ # @return [String]
2517
+ attr_accessor :end_time
2518
+
2519
+ # Output only. Human-readable status of the operation, if any.
2520
+ # Corresponds to the JSON property `statusDetail`
2521
+ # @return [String]
2522
+ attr_accessor :status_detail
2523
+
2524
+ # Output only. Server-defined resource path for the target of the operation.
2525
+ # Corresponds to the JSON property `target`
2526
+ # @return [String]
2527
+ attr_accessor :target
2528
+
2529
+ # Output only. Name of the verb executed by the operation.
2530
+ # Corresponds to the JSON property `verb`
2531
+ # @return [String]
2532
+ attr_accessor :verb
2533
+
2534
+ def initialize(**args)
2535
+ update!(**args)
2536
+ end
2537
+
2538
+ # Update properties of this object
2539
+ def update!(**args)
2540
+ @api_version = args[:api_version] if args.key?(:api_version)
2541
+ @cancel_requested = args[:cancel_requested] if args.key?(:cancel_requested)
2542
+ @create_time = args[:create_time] if args.key?(:create_time)
2543
+ @end_time = args[:end_time] if args.key?(:end_time)
2544
+ @status_detail = args[:status_detail] if args.key?(:status_detail)
2545
+ @target = args[:target] if args.key?(:target)
2546
+ @verb = args[:verb] if args.key?(:verb)
2547
+ end
2548
+ end
2549
+
2550
+ # Origin defines where this FeatureSpec originated from.
2551
+ class Origin
2552
+ include Google::Apis::Core::Hashable
2553
+
2554
+ # Type specifies which type of origin is set.
2555
+ # Corresponds to the JSON property `type`
2556
+ # @return [String]
2557
+ attr_accessor :type
2558
+
2559
+ def initialize(**args)
2560
+ update!(**args)
2561
+ end
2562
+
2563
+ # Update properties of this object
2564
+ def update!(**args)
2565
+ @type = args[:type] if args.key?(:type)
2566
+ end
2567
+ end
2568
+
2569
+ # BundleInstallSpec is the specification configuration for a single managed
2570
+ # bundle.
2571
+ class PolicyControllerBundleInstallSpec
2572
+ include Google::Apis::Core::Hashable
2573
+
2574
+ # the set of namespaces to be exempted from the bundle
2575
+ # Corresponds to the JSON property `exemptedNamespaces`
2576
+ # @return [Array<String>]
2577
+ attr_accessor :exempted_namespaces
2578
+
2579
+ def initialize(**args)
2580
+ update!(**args)
2581
+ end
2582
+
2583
+ # Update properties of this object
2584
+ def update!(**args)
2585
+ @exempted_namespaces = args[:exempted_namespaces] if args.key?(:exempted_namespaces)
2586
+ end
2587
+ end
2588
+
2589
+ # Configuration for Policy Controller
2590
+ class PolicyControllerHubConfig
2591
+ include Google::Apis::Core::Hashable
2592
+
2593
+ # Sets the interval for Policy Controller Audit Scans (in seconds). When set to
2594
+ # 0, this disables audit functionality altogether.
2595
+ # Corresponds to the JSON property `auditIntervalSeconds`
2596
+ # @return [Fixnum]
2597
+ attr_accessor :audit_interval_seconds
2598
+
2599
+ # The maximum number of audit violations to be stored in a constraint. If not
2600
+ # set, the internal default (currently 20) will be used.
2601
+ # Corresponds to the JSON property `constraintViolationLimit`
2602
+ # @return [Fixnum]
2603
+ attr_accessor :constraint_violation_limit
2604
+
2605
+ # Map of deployment configs to deployments (“admission”, “audit”, “mutation”).
2606
+ # Corresponds to the JSON property `deploymentConfigs`
2607
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerPolicyControllerDeploymentConfig>]
2608
+ attr_accessor :deployment_configs
2609
+
2610
+ # The set of namespaces that are excluded from Policy Controller checks.
2611
+ # Namespaces do not need to currently exist on the cluster.
2612
+ # Corresponds to the JSON property `exemptableNamespaces`
2613
+ # @return [Array<String>]
2614
+ attr_accessor :exemptable_namespaces
2615
+
2616
+ # The install_spec represents the intended state specified by the latest request
2617
+ # that mutated install_spec in the feature spec, not the lifecycle state of the
2618
+ # feature observed by the Hub feature controller that is reported in the feature
2619
+ # state.
2620
+ # Corresponds to the JSON property `installSpec`
2621
+ # @return [String]
2622
+ attr_accessor :install_spec
2623
+
2624
+ # Logs all denies and dry run failures.
2625
+ # Corresponds to the JSON property `logDeniesEnabled`
2626
+ # @return [Boolean]
2627
+ attr_accessor :log_denies_enabled
2628
+ alias_method :log_denies_enabled?, :log_denies_enabled
2629
+
2630
+ # MonitoringConfig specifies the backends Policy Controller should export
2631
+ # metrics to. For example, to specify metrics should be exported to Cloud
2632
+ # Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]
2633
+ # Corresponds to the JSON property `monitoring`
2634
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerMonitoringConfig]
2635
+ attr_accessor :monitoring
2636
+
2637
+ # Enables the ability to mutate resources using Policy Controller.
2638
+ # Corresponds to the JSON property `mutationEnabled`
2639
+ # @return [Boolean]
2640
+ attr_accessor :mutation_enabled
2641
+ alias_method :mutation_enabled?, :mutation_enabled
2642
+
2643
+ # PolicyContentSpec defines the user's desired content configuration on the
2644
+ # cluster.
2645
+ # Corresponds to the JSON property `policyContent`
2646
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerPolicyContentSpec]
2647
+ attr_accessor :policy_content
2648
+
2649
+ # Enables the ability to use Constraint Templates that reference to objects
2650
+ # other than the object currently being evaluated.
2651
+ # Corresponds to the JSON property `referentialRulesEnabled`
2652
+ # @return [Boolean]
2653
+ attr_accessor :referential_rules_enabled
2654
+ alias_method :referential_rules_enabled?, :referential_rules_enabled
2655
+
2656
+ def initialize(**args)
2657
+ update!(**args)
2658
+ end
2659
+
2660
+ # Update properties of this object
2661
+ def update!(**args)
2662
+ @audit_interval_seconds = args[:audit_interval_seconds] if args.key?(:audit_interval_seconds)
2663
+ @constraint_violation_limit = args[:constraint_violation_limit] if args.key?(:constraint_violation_limit)
2664
+ @deployment_configs = args[:deployment_configs] if args.key?(:deployment_configs)
2665
+ @exemptable_namespaces = args[:exemptable_namespaces] if args.key?(:exemptable_namespaces)
2666
+ @install_spec = args[:install_spec] if args.key?(:install_spec)
2667
+ @log_denies_enabled = args[:log_denies_enabled] if args.key?(:log_denies_enabled)
2668
+ @monitoring = args[:monitoring] if args.key?(:monitoring)
2669
+ @mutation_enabled = args[:mutation_enabled] if args.key?(:mutation_enabled)
2670
+ @policy_content = args[:policy_content] if args.key?(:policy_content)
2671
+ @referential_rules_enabled = args[:referential_rules_enabled] if args.key?(:referential_rules_enabled)
2672
+ end
2673
+ end
2674
+
2675
+ # MonitoringConfig specifies the backends Policy Controller should export
2676
+ # metrics to. For example, to specify metrics should be exported to Cloud
2677
+ # Monitoring and Prometheus, specify backends: ["cloudmonitoring", "prometheus"]
2678
+ class PolicyControllerMonitoringConfig
2679
+ include Google::Apis::Core::Hashable
2680
+
2681
+ # Specifies the list of backends Policy Controller will export to. An empty list
2682
+ # would effectively disable metrics export.
2683
+ # Corresponds to the JSON property `backends`
2684
+ # @return [Array<String>]
2685
+ attr_accessor :backends
2686
+
2687
+ def initialize(**args)
2688
+ update!(**args)
2689
+ end
2690
+
2691
+ # Update properties of this object
2692
+ def update!(**args)
2693
+ @backends = args[:backends] if args.key?(:backends)
2694
+ end
2695
+ end
2696
+
2697
+ # OnClusterState represents the state of a sub-component of Policy Controller.
2698
+ class PolicyControllerOnClusterState
2699
+ include Google::Apis::Core::Hashable
2700
+
2701
+ # Surface potential errors or information logs.
2702
+ # Corresponds to the JSON property `details`
2703
+ # @return [String]
2704
+ attr_accessor :details
2705
+
2706
+ # The lifecycle state of this component.
2707
+ # Corresponds to the JSON property `state`
2708
+ # @return [String]
2709
+ attr_accessor :state
2710
+
2711
+ def initialize(**args)
2712
+ update!(**args)
2713
+ end
2714
+
2715
+ # Update properties of this object
2716
+ def update!(**args)
2717
+ @details = args[:details] if args.key?(:details)
2718
+ @state = args[:state] if args.key?(:state)
2719
+ end
2720
+ end
2721
+
2722
+ # PolicyContentSpec defines the user's desired content configuration on the
2723
+ # cluster.
2724
+ class PolicyControllerPolicyContentSpec
2725
+ include Google::Apis::Core::Hashable
2726
+
2727
+ # map of bundle name to BundleInstallSpec. The bundle name maps to the `
2728
+ # bundleName` key in the `policycontroller.gke.io/constraintData` annotation on
2729
+ # a constraint.
2730
+ # Corresponds to the JSON property `bundles`
2731
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerBundleInstallSpec>]
2732
+ attr_accessor :bundles
2733
+
2734
+ # The config specifying which default library templates to install.
2735
+ # Corresponds to the JSON property `templateLibrary`
2736
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerTemplateLibraryConfig]
2737
+ attr_accessor :template_library
2738
+
2739
+ def initialize(**args)
2740
+ update!(**args)
2741
+ end
2742
+
2743
+ # Update properties of this object
2744
+ def update!(**args)
2745
+ @bundles = args[:bundles] if args.key?(:bundles)
2746
+ @template_library = args[:template_library] if args.key?(:template_library)
2747
+ end
2748
+ end
2749
+
2750
+ # The state of the policy controller policy content
2751
+ class PolicyControllerPolicyContentState
2752
+ include Google::Apis::Core::Hashable
2753
+
2754
+ # The state of the any bundles included in the chosen version of the manifest
2755
+ # Corresponds to the JSON property `bundleStates`
2756
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState>]
2757
+ attr_accessor :bundle_states
2758
+
2759
+ # OnClusterState represents the state of a sub-component of Policy Controller.
2760
+ # Corresponds to the JSON property `referentialSyncConfigState`
2761
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState]
2762
+ attr_accessor :referential_sync_config_state
2763
+
2764
+ # OnClusterState represents the state of a sub-component of Policy Controller.
2765
+ # Corresponds to the JSON property `templateLibraryState`
2766
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState]
2767
+ attr_accessor :template_library_state
2768
+
2769
+ def initialize(**args)
2770
+ update!(**args)
2771
+ end
2772
+
2773
+ # Update properties of this object
2774
+ def update!(**args)
2775
+ @bundle_states = args[:bundle_states] if args.key?(:bundle_states)
2776
+ @referential_sync_config_state = args[:referential_sync_config_state] if args.key?(:referential_sync_config_state)
2777
+ @template_library_state = args[:template_library_state] if args.key?(:template_library_state)
2778
+ end
2779
+ end
2780
+
2781
+ # Deployment-specific configuration.
2782
+ class PolicyControllerPolicyControllerDeploymentConfig
2783
+ include Google::Apis::Core::Hashable
2784
+
2785
+ # ResourceRequirements describes the compute resource requirements.
2786
+ # Corresponds to the JSON property `containerResources`
2787
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerResourceRequirements]
2788
+ attr_accessor :container_resources
2789
+
2790
+ # Pod affinity configuration.
2791
+ # Corresponds to the JSON property `podAffinity`
2792
+ # @return [String]
2793
+ attr_accessor :pod_affinity
2794
+
2795
+ # Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.
2796
+ # Corresponds to the JSON property `podAntiAffinity`
2797
+ # @return [Boolean]
2798
+ attr_accessor :pod_anti_affinity
2799
+ alias_method :pod_anti_affinity?, :pod_anti_affinity
2800
+
2801
+ # Pod tolerations of node taints.
2802
+ # Corresponds to the JSON property `podTolerations`
2803
+ # @return [Array<Google::Apis::GkehubV2alpha::PolicyControllerToleration>]
2804
+ attr_accessor :pod_tolerations
2805
+
2806
+ # Pod replica count.
2807
+ # Corresponds to the JSON property `replicaCount`
2808
+ # @return [Fixnum]
2809
+ attr_accessor :replica_count
2810
+
2811
+ def initialize(**args)
2812
+ update!(**args)
2813
+ end
2814
+
2815
+ # Update properties of this object
2816
+ def update!(**args)
2817
+ @container_resources = args[:container_resources] if args.key?(:container_resources)
2818
+ @pod_affinity = args[:pod_affinity] if args.key?(:pod_affinity)
2819
+ @pod_anti_affinity = args[:pod_anti_affinity] if args.key?(:pod_anti_affinity)
2820
+ @pod_tolerations = args[:pod_tolerations] if args.key?(:pod_tolerations)
2821
+ @replica_count = args[:replica_count] if args.key?(:replica_count)
2822
+ end
2823
+ end
2824
+
2825
+ # ResourceList contains container resource requirements.
2826
+ class PolicyControllerResourceList
2827
+ include Google::Apis::Core::Hashable
2828
+
2829
+ # CPU requirement expressed in Kubernetes resource units.
2830
+ # Corresponds to the JSON property `cpu`
2831
+ # @return [String]
2832
+ attr_accessor :cpu
2833
+
2834
+ # Memory requirement expressed in Kubernetes resource units.
2835
+ # Corresponds to the JSON property `memory`
2836
+ # @return [String]
2837
+ attr_accessor :memory
2838
+
2839
+ def initialize(**args)
2840
+ update!(**args)
2841
+ end
2842
+
2843
+ # Update properties of this object
2844
+ def update!(**args)
2845
+ @cpu = args[:cpu] if args.key?(:cpu)
2846
+ @memory = args[:memory] if args.key?(:memory)
2847
+ end
2848
+ end
2849
+
2850
+ # ResourceRequirements describes the compute resource requirements.
2851
+ class PolicyControllerResourceRequirements
2852
+ include Google::Apis::Core::Hashable
2853
+
2854
+ # ResourceList contains container resource requirements.
2855
+ # Corresponds to the JSON property `limits`
2856
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerResourceList]
2857
+ attr_accessor :limits
2858
+
2859
+ # ResourceList contains container resource requirements.
2860
+ # Corresponds to the JSON property `requests`
2861
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerResourceList]
2862
+ attr_accessor :requests
2863
+
2864
+ def initialize(**args)
2865
+ update!(**args)
2866
+ end
2867
+
2868
+ # Update properties of this object
2869
+ def update!(**args)
2870
+ @limits = args[:limits] if args.key?(:limits)
2871
+ @requests = args[:requests] if args.key?(:requests)
2872
+ end
2873
+ end
2874
+
2875
+ # **Policy Controller**: Configuration for a single cluster. Intended to
2876
+ # parallel the PolicyController CR.
2877
+ class PolicyControllerSpec
2878
+ include Google::Apis::Core::Hashable
2879
+
2880
+ # Configuration for Policy Controller
2881
+ # Corresponds to the JSON property `policyControllerHubConfig`
2882
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerHubConfig]
2883
+ attr_accessor :policy_controller_hub_config
2884
+
2885
+ # Version of Policy Controller installed.
2886
+ # Corresponds to the JSON property `version`
2887
+ # @return [String]
2888
+ attr_accessor :version
2889
+
2890
+ def initialize(**args)
2891
+ update!(**args)
2892
+ end
2893
+
2894
+ # Update properties of this object
2895
+ def update!(**args)
2896
+ @policy_controller_hub_config = args[:policy_controller_hub_config] if args.key?(:policy_controller_hub_config)
2897
+ @version = args[:version] if args.key?(:version)
2898
+ end
2899
+ end
2900
+
2901
+ # **Policy Controller**: State for a single cluster.
2902
+ class PolicyControllerState
2903
+ include Google::Apis::Core::Hashable
2904
+
2905
+ # Currently these include (also serving as map keys): 1. "admission" 2. "audit"
2906
+ # 3. "mutation"
2907
+ # Corresponds to the JSON property `componentStates`
2908
+ # @return [Hash<String,Google::Apis::GkehubV2alpha::PolicyControllerOnClusterState>]
2909
+ attr_accessor :component_states
2910
+
2911
+ # The state of the policy controller policy content
2912
+ # Corresponds to the JSON property `policyContentState`
2913
+ # @return [Google::Apis::GkehubV2alpha::PolicyControllerPolicyContentState]
2914
+ attr_accessor :policy_content_state
2915
+
2916
+ # The overall Policy Controller lifecycle state observed by the Hub Feature
2917
+ # controller.
2918
+ # Corresponds to the JSON property `state`
2919
+ # @return [String]
2920
+ attr_accessor :state
2921
+
2922
+ def initialize(**args)
2923
+ update!(**args)
2924
+ end
2925
+
2926
+ # Update properties of this object
2927
+ def update!(**args)
2928
+ @component_states = args[:component_states] if args.key?(:component_states)
2929
+ @policy_content_state = args[:policy_content_state] if args.key?(:policy_content_state)
2930
+ @state = args[:state] if args.key?(:state)
2931
+ end
2932
+ end
2933
+
2934
+ # The config specifying which default library templates to install.
2935
+ class PolicyControllerTemplateLibraryConfig
2936
+ include Google::Apis::Core::Hashable
2937
+
2938
+ # Configures the manner in which the template library is installed on the
2939
+ # cluster.
2940
+ # Corresponds to the JSON property `installation`
2941
+ # @return [String]
2942
+ attr_accessor :installation
2943
+
2944
+ def initialize(**args)
2945
+ update!(**args)
2946
+ end
2947
+
2948
+ # Update properties of this object
2949
+ def update!(**args)
2950
+ @installation = args[:installation] if args.key?(:installation)
2951
+ end
2952
+ end
2953
+
2954
+ # Toleration of a node taint.
2955
+ class PolicyControllerToleration
43
2956
  include Google::Apis::Core::Hashable
44
2957
 
2958
+ # Matches a taint effect.
2959
+ # Corresponds to the JSON property `effect`
2960
+ # @return [String]
2961
+ attr_accessor :effect
2962
+
2963
+ # Matches a taint key (not necessarily unique).
2964
+ # Corresponds to the JSON property `key`
2965
+ # @return [String]
2966
+ attr_accessor :key
2967
+
2968
+ # Matches a taint operator.
2969
+ # Corresponds to the JSON property `operator`
2970
+ # @return [String]
2971
+ attr_accessor :operator
2972
+
2973
+ # Matches a taint value.
2974
+ # Corresponds to the JSON property `value`
2975
+ # @return [String]
2976
+ attr_accessor :value
2977
+
45
2978
  def initialize(**args)
46
2979
  update!(**args)
47
2980
  end
48
2981
 
49
2982
  # Update properties of this object
50
2983
  def update!(**args)
2984
+ @effect = args[:effect] if args.key?(:effect)
2985
+ @key = args[:key] if args.key?(:key)
2986
+ @operator = args[:operator] if args.key?(:operator)
2987
+ @value = args[:value] if args.key?(:value)
51
2988
  end
52
2989
  end
53
2990
 
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
2991
+ # AnalysisMessage is a single message produced by an analyzer, and it used to
2992
+ # communicate to the end user about the state of their Service Mesh
2993
+ # configuration.
2994
+ class ServiceMeshAnalysisMessage
61
2995
  include Google::Apis::Core::Hashable
62
2996
 
63
- # The status code, which should be an enum value of google.rpc.Code.
2997
+ # A UI can combine these args with a template (based on message_base.type) to
2998
+ # produce an internationalized message.
2999
+ # Corresponds to the JSON property `args`
3000
+ # @return [Hash<String,Object>]
3001
+ attr_accessor :args
3002
+
3003
+ # A human readable description of what the error means. It is suitable for non-
3004
+ # internationalize display purposes.
3005
+ # Corresponds to the JSON property `description`
3006
+ # @return [String]
3007
+ attr_accessor :description
3008
+
3009
+ # AnalysisMessageBase describes some common information that is needed for all
3010
+ # messages.
3011
+ # Corresponds to the JSON property `messageBase`
3012
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshAnalysisMessageBase]
3013
+ attr_accessor :message_base
3014
+
3015
+ # A list of strings specifying the resource identifiers that were the cause of
3016
+ # message generation. A "path" here may be: * MEMBERSHIP_ID if the cause is a
3017
+ # specific member cluster * MEMBERSHIP_ID/(NAMESPACE\/)?RESOURCETYPE/NAME if the
3018
+ # cause is a resource in a cluster
3019
+ # Corresponds to the JSON property `resourcePaths`
3020
+ # @return [Array<String>]
3021
+ attr_accessor :resource_paths
3022
+
3023
+ def initialize(**args)
3024
+ update!(**args)
3025
+ end
3026
+
3027
+ # Update properties of this object
3028
+ def update!(**args)
3029
+ @args = args[:args] if args.key?(:args)
3030
+ @description = args[:description] if args.key?(:description)
3031
+ @message_base = args[:message_base] if args.key?(:message_base)
3032
+ @resource_paths = args[:resource_paths] if args.key?(:resource_paths)
3033
+ end
3034
+ end
3035
+
3036
+ # AnalysisMessageBase describes some common information that is needed for all
3037
+ # messages.
3038
+ class ServiceMeshAnalysisMessageBase
3039
+ include Google::Apis::Core::Hashable
3040
+
3041
+ # A url pointing to the Service Mesh or Istio documentation for this specific
3042
+ # error type.
3043
+ # Corresponds to the JSON property `documentationUrl`
3044
+ # @return [String]
3045
+ attr_accessor :documentation_url
3046
+
3047
+ # Represents how severe a message is.
3048
+ # Corresponds to the JSON property `level`
3049
+ # @return [String]
3050
+ attr_accessor :level
3051
+
3052
+ # A unique identifier for the type of message. Display_name is intended to be
3053
+ # human-readable, code is intended to be machine readable. There should be a one-
3054
+ # to-one mapping between display_name and code. (i.e. do not re-use
3055
+ # display_names or codes between message types.) See istio.analysis.v1alpha1.
3056
+ # AnalysisMessageBase.Type
3057
+ # Corresponds to the JSON property `type`
3058
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshType]
3059
+ attr_accessor :type
3060
+
3061
+ def initialize(**args)
3062
+ update!(**args)
3063
+ end
3064
+
3065
+ # Update properties of this object
3066
+ def update!(**args)
3067
+ @documentation_url = args[:documentation_url] if args.key?(:documentation_url)
3068
+ @level = args[:level] if args.key?(:level)
3069
+ @type = args[:type] if args.key?(:type)
3070
+ end
3071
+ end
3072
+
3073
+ # Condition being reported.
3074
+ class ServiceMeshCondition
3075
+ include Google::Apis::Core::Hashable
3076
+
3077
+ # Unique identifier of the condition which describes the condition recognizable
3078
+ # to the user.
64
3079
  # Corresponds to the JSON property `code`
65
- # @return [Fixnum]
3080
+ # @return [String]
66
3081
  attr_accessor :code
67
3082
 
68
- # A list of messages that carry the error details. There is a common set of
69
- # message types for APIs to use.
3083
+ # A short summary about the issue.
70
3084
  # Corresponds to the JSON property `details`
71
- # @return [Array<Hash<String,Object>>]
3085
+ # @return [String]
72
3086
  attr_accessor :details
73
3087
 
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`
3088
+ # Links contains actionable information.
3089
+ # Corresponds to the JSON property `documentationLink`
78
3090
  # @return [String]
79
- attr_accessor :message
3091
+ attr_accessor :documentation_link
3092
+
3093
+ # Severity level of the condition.
3094
+ # Corresponds to the JSON property `severity`
3095
+ # @return [String]
3096
+ attr_accessor :severity
80
3097
 
81
3098
  def initialize(**args)
82
3099
  update!(**args)
@@ -86,23 +3103,29 @@ module Google
86
3103
  def update!(**args)
87
3104
  @code = args[:code] if args.key?(:code)
88
3105
  @details = args[:details] if args.key?(:details)
89
- @message = args[:message] if args.key?(:message)
3106
+ @documentation_link = args[:documentation_link] if args.key?(:documentation_link)
3107
+ @severity = args[:severity] if args.key?(:severity)
90
3108
  end
91
3109
  end
92
3110
 
93
- # The response message for Locations.ListLocations.
94
- class ListLocationsResponse
3111
+ # Status of control plane management.
3112
+ class ServiceMeshControlPlaneManagement
95
3113
  include Google::Apis::Core::Hashable
96
3114
 
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
3115
+ # Explanation of state.
3116
+ # Corresponds to the JSON property `details`
3117
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshStatusDetails>]
3118
+ attr_accessor :details
101
3119
 
102
- # The standard List next-page token.
103
- # Corresponds to the JSON property `nextPageToken`
3120
+ # Output only. Implementation of managed control plane.
3121
+ # Corresponds to the JSON property `implementation`
104
3122
  # @return [String]
105
- attr_accessor :next_page_token
3123
+ attr_accessor :implementation
3124
+
3125
+ # LifecycleState of control plane management.
3126
+ # Corresponds to the JSON property `state`
3127
+ # @return [String]
3128
+ attr_accessor :state
106
3129
 
107
3130
  def initialize(**args)
108
3131
  update!(**args)
@@ -110,24 +3133,63 @@ module Google
110
3133
 
111
3134
  # Update properties of this object
112
3135
  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)
3136
+ @details = args[:details] if args.key?(:details)
3137
+ @implementation = args[:implementation] if args.key?(:implementation)
3138
+ @state = args[:state] if args.key?(:state)
115
3139
  end
116
3140
  end
117
3141
 
118
- # The response message for Operations.ListOperations.
119
- class ListOperationsResponse
3142
+ # Status of data plane management. Only reported per-member.
3143
+ class ServiceMeshDataPlaneManagement
120
3144
  include Google::Apis::Core::Hashable
121
3145
 
122
- # The standard List next-page token.
123
- # Corresponds to the JSON property `nextPageToken`
3146
+ # Explanation of the status.
3147
+ # Corresponds to the JSON property `details`
3148
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshStatusDetails>]
3149
+ attr_accessor :details
3150
+
3151
+ # Lifecycle status of data plane management.
3152
+ # Corresponds to the JSON property `state`
124
3153
  # @return [String]
125
- attr_accessor :next_page_token
3154
+ attr_accessor :state
126
3155
 
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
3156
+ def initialize(**args)
3157
+ update!(**args)
3158
+ end
3159
+
3160
+ # Update properties of this object
3161
+ def update!(**args)
3162
+ @details = args[:details] if args.key?(:details)
3163
+ @state = args[:state] if args.key?(:state)
3164
+ end
3165
+ end
3166
+
3167
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
3168
+ class ServiceMeshSpec
3169
+ include Google::Apis::Core::Hashable
3170
+
3171
+ # Optional. Specifies the API that will be used for configuring the mesh
3172
+ # workloads.
3173
+ # Corresponds to the JSON property `configApi`
3174
+ # @return [String]
3175
+ attr_accessor :config_api
3176
+
3177
+ # Deprecated: use `management` instead Enables automatic control plane
3178
+ # management.
3179
+ # Corresponds to the JSON property `controlPlane`
3180
+ # @return [String]
3181
+ attr_accessor :control_plane
3182
+
3183
+ # Determines which release channel to use for default injection and service mesh
3184
+ # APIs.
3185
+ # Corresponds to the JSON property `defaultChannel`
3186
+ # @return [String]
3187
+ attr_accessor :default_channel
3188
+
3189
+ # Optional. Enables automatic Service Mesh management.
3190
+ # Corresponds to the JSON property `management`
3191
+ # @return [String]
3192
+ attr_accessor :management
131
3193
 
132
3194
  def initialize(**args)
133
3195
  update!(**args)
@@ -135,43 +3197,104 @@ module Google
135
3197
 
136
3198
  # Update properties of this object
137
3199
  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)
3200
+ @config_api = args[:config_api] if args.key?(:config_api)
3201
+ @control_plane = args[:control_plane] if args.key?(:control_plane)
3202
+ @default_channel = args[:default_channel] if args.key?(:default_channel)
3203
+ @management = args[:management] if args.key?(:management)
140
3204
  end
141
3205
  end
142
3206
 
143
- # A resource that represents a Google Cloud location.
144
- class Location
3207
+ # **Service Mesh**: State for a single Membership, as analyzed by the Service
3208
+ # Mesh Hub Controller.
3209
+ class ServiceMeshState
145
3210
  include Google::Apis::Core::Hashable
146
3211
 
147
- # The friendly name for this location, typically a nearby city name. For example,
148
- # "Tokyo".
149
- # Corresponds to the JSON property `displayName`
3212
+ # Output only. Results of running Service Mesh analyzers.
3213
+ # Corresponds to the JSON property `analysisMessages`
3214
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshAnalysisMessage>]
3215
+ attr_accessor :analysis_messages
3216
+
3217
+ # Output only. List of conditions reported for this membership.
3218
+ # Corresponds to the JSON property `conditions`
3219
+ # @return [Array<Google::Apis::GkehubV2alpha::ServiceMeshCondition>]
3220
+ attr_accessor :conditions
3221
+
3222
+ # The API version (i.e. Istio CRD version) for configuring service mesh in this
3223
+ # cluster. This version is influenced by the `default_channel` field.
3224
+ # Corresponds to the JSON property `configApiVersion`
150
3225
  # @return [String]
151
- attr_accessor :display_name
3226
+ attr_accessor :config_api_version
152
3227
 
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
3228
+ # Status of control plane management.
3229
+ # Corresponds to the JSON property `controlPlaneManagement`
3230
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshControlPlaneManagement]
3231
+ attr_accessor :control_plane_management
158
3232
 
159
- # The canonical id for this location. For example: `"us-east1"`.
160
- # Corresponds to the JSON property `locationId`
3233
+ # Status of data plane management. Only reported per-member.
3234
+ # Corresponds to the JSON property `dataPlaneManagement`
3235
+ # @return [Google::Apis::GkehubV2alpha::ServiceMeshDataPlaneManagement]
3236
+ attr_accessor :data_plane_management
3237
+
3238
+ def initialize(**args)
3239
+ update!(**args)
3240
+ end
3241
+
3242
+ # Update properties of this object
3243
+ def update!(**args)
3244
+ @analysis_messages = args[:analysis_messages] if args.key?(:analysis_messages)
3245
+ @conditions = args[:conditions] if args.key?(:conditions)
3246
+ @config_api_version = args[:config_api_version] if args.key?(:config_api_version)
3247
+ @control_plane_management = args[:control_plane_management] if args.key?(:control_plane_management)
3248
+ @data_plane_management = args[:data_plane_management] if args.key?(:data_plane_management)
3249
+ end
3250
+ end
3251
+
3252
+ # Structured and human-readable details for a status.
3253
+ class ServiceMeshStatusDetails
3254
+ include Google::Apis::Core::Hashable
3255
+
3256
+ # A machine-readable code that further describes a broad status.
3257
+ # Corresponds to the JSON property `code`
161
3258
  # @return [String]
162
- attr_accessor :location_id
3259
+ attr_accessor :code
163
3260
 
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
3261
+ # Human-readable explanation of code.
3262
+ # Corresponds to the JSON property `details`
3263
+ # @return [String]
3264
+ attr_accessor :details
169
3265
 
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`
3266
+ def initialize(**args)
3267
+ update!(**args)
3268
+ end
3269
+
3270
+ # Update properties of this object
3271
+ def update!(**args)
3272
+ @code = args[:code] if args.key?(:code)
3273
+ @details = args[:details] if args.key?(:details)
3274
+ end
3275
+ end
3276
+
3277
+ # A unique identifier for the type of message. Display_name is intended to be
3278
+ # human-readable, code is intended to be machine readable. There should be a one-
3279
+ # to-one mapping between display_name and code. (i.e. do not re-use
3280
+ # display_names or codes between message types.) See istio.analysis.v1alpha1.
3281
+ # AnalysisMessageBase.Type
3282
+ class ServiceMeshType
3283
+ include Google::Apis::Core::Hashable
3284
+
3285
+ # A 7 character code matching `^IST[0-9]`4`$` or `^ASM[0-9]`4`$`, intended to
3286
+ # uniquely identify the message type. (e.g. "IST0001" is mapped to the "
3287
+ # InternalError" message type.)
3288
+ # Corresponds to the JSON property `code`
173
3289
  # @return [String]
174
- attr_accessor :name
3290
+ attr_accessor :code
3291
+
3292
+ # A human-readable name for the message type. e.g. "InternalError", "
3293
+ # PodMissingProxy". This should be the same for all messages of the same type. (
3294
+ # This corresponds to the `name` field in open-source Istio.)
3295
+ # Corresponds to the JSON property `displayName`
3296
+ # @return [String]
3297
+ attr_accessor :display_name
175
3298
 
176
3299
  def initialize(**args)
177
3300
  update!(**args)
@@ -179,61 +3302,51 @@ module Google
179
3302
 
180
3303
  # Update properties of this object
181
3304
  def update!(**args)
3305
+ @code = args[:code] if args.key?(:code)
182
3306
  @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
3307
  end
188
3308
  end
189
3309
 
190
- # This resource represents a long-running operation that is the result of a
191
- # network API call.
192
- class Operation
3310
+ # High-level state of a MembershipFeature.
3311
+ class State
193
3312
  include Google::Apis::Core::Hashable
194
3313
 
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
3314
+ # The high-level, machine-readable status of this MembershipFeature.
3315
+ # Corresponds to the JSON property `code`
3316
+ # @return [String]
3317
+ attr_accessor :code
211
3318
 
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
3319
+ # A human-readable description of the current status.
3320
+ # Corresponds to the JSON property `description`
3321
+ # @return [String]
3322
+ attr_accessor :description
219
3323
 
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`
3324
+ # The time this status and any related Feature-specific details were updated.
3325
+ # Corresponds to the JSON property `updateTime`
224
3326
  # @return [String]
225
- attr_accessor :name
3327
+ attr_accessor :update_time
226
3328
 
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
3329
+ def initialize(**args)
3330
+ update!(**args)
3331
+ end
3332
+
3333
+ # Update properties of this object
3334
+ def update!(**args)
3335
+ @code = args[:code] if args.key?(:code)
3336
+ @description = args[:description] if args.key?(:description)
3337
+ @update_time = args[:update_time] if args.key?(:update_time)
3338
+ end
3339
+ end
3340
+
3341
+ # **WorkloadCertificate**: The membership-specific input for WorkloadCertificate
3342
+ # feature.
3343
+ class WorkloadCertificateSpec
3344
+ include Google::Apis::Core::Hashable
3345
+
3346
+ # CertificateManagement specifies workload certificate management.
3347
+ # Corresponds to the JSON property `certificateManagement`
3348
+ # @return [String]
3349
+ attr_accessor :certificate_management
237
3350
 
238
3351
  def initialize(**args)
239
3352
  update!(**args)
@@ -241,11 +3354,7 @@ module Google
241
3354
 
242
3355
  # Update properties of this object
243
3356
  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)
3357
+ @certificate_management = args[:certificate_management] if args.key?(:certificate_management)
249
3358
  end
250
3359
  end
251
3360
  end