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