google-apis-gkehub_v1alpha 0.11.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,38 @@ module Google
22
22
  module Apis
23
23
  module GkehubV1alpha
24
24
 
25
+ # Spec for App Dev Experience Feature.
26
+ class AppDevExperienceFeatureSpec
27
+ include Google::Apis::Core::Hashable
28
+
29
+ def initialize(**args)
30
+ update!(**args)
31
+ end
32
+
33
+ # Update properties of this object
34
+ def update!(**args)
35
+ end
36
+ end
37
+
38
+ # State for App Dev Exp Feature.
39
+ class AppDevExperienceFeatureState
40
+ include Google::Apis::Core::Hashable
41
+
42
+ # Status specifies state for the subcomponent.
43
+ # Corresponds to the JSON property `networkingInstallSucceeded`
44
+ # @return [Google::Apis::GkehubV1alpha::Status]
45
+ attr_accessor :networking_install_succeeded
46
+
47
+ def initialize(**args)
48
+ update!(**args)
49
+ end
50
+
51
+ # Update properties of this object
52
+ def update!(**args)
53
+ @networking_install_succeeded = args[:networking_install_succeeded] if args.key?(:networking_install_succeeded)
54
+ end
55
+ end
56
+
25
57
  # Specifies the audit configuration for a service. The configuration determines
26
58
  # which permission types are logged, and what identities, if any, are exempted
27
59
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -93,7 +125,61 @@ module Google
93
125
  end
94
126
  end
95
127
 
96
- # Associates `members` with a `role`.
128
+ # Authority encodes how Google will recognize identities from this Membership.
129
+ # See the workload identity documentation for more details: https://cloud.google.
130
+ # com/kubernetes-engine/docs/how-to/workload-identity
131
+ class Authority
132
+ include Google::Apis::Core::Hashable
133
+
134
+ # Output only. An identity provider that reflects the `issuer` in the workload
135
+ # identity pool.
136
+ # Corresponds to the JSON property `identityProvider`
137
+ # @return [String]
138
+ attr_accessor :identity_provider
139
+
140
+ # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://
141
+ # ` and be a valid URL with length <2000 characters. If set, then Google will
142
+ # allow valid OIDC tokens from this issuer to authenticate within the
143
+ # workload_identity_pool. OIDC discovery will be performed on this URI to
144
+ # validate tokens from the issuer. Clearing `issuer` disables Workload Identity.
145
+ # `issuer` cannot be directly modified; it must be cleared (and Workload
146
+ # Identity disabled) before using a new issuer (and re-enabling Workload
147
+ # Identity).
148
+ # Corresponds to the JSON property `issuer`
149
+ # @return [String]
150
+ attr_accessor :issuer
151
+
152
+ # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517).
153
+ # When this field is set, OIDC discovery will NOT be performed on `issuer`, and
154
+ # instead OIDC tokens will be validated using this field.
155
+ # Corresponds to the JSON property `oidcJwks`
156
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
157
+ # @return [String]
158
+ attr_accessor :oidc_jwks
159
+
160
+ # Output only. The name of the workload identity pool in which `issuer` will be
161
+ # recognized. There is a single Workload Identity Pool per Hub that is shared
162
+ # between all Memberships that belong to that Hub. For a Hub hosted in `
163
+ # PROJECT_ID`, the workload pool format is ``PROJECT_ID`.hub.id.goog`, although
164
+ # this is subject to change in newer versions of this API.
165
+ # Corresponds to the JSON property `workloadIdentityPool`
166
+ # @return [String]
167
+ attr_accessor :workload_identity_pool
168
+
169
+ def initialize(**args)
170
+ update!(**args)
171
+ end
172
+
173
+ # Update properties of this object
174
+ def update!(**args)
175
+ @identity_provider = args[:identity_provider] if args.key?(:identity_provider)
176
+ @issuer = args[:issuer] if args.key?(:issuer)
177
+ @oidc_jwks = args[:oidc_jwks] if args.key?(:oidc_jwks)
178
+ @workload_identity_pool = args[:workload_identity_pool] if args.key?(:workload_identity_pool)
179
+ end
180
+ end
181
+
182
+ # Associates `members`, or principals, with a `role`.
97
183
  class Binding
98
184
  include Google::Apis::Core::Hashable
99
185
 
@@ -116,7 +202,7 @@ module Google
116
202
  # @return [Google::Apis::GkehubV1alpha::Expr]
117
203
  attr_accessor :condition
118
204
 
119
- # Specifies the identities requesting access for a Cloud Platform resource. `
205
+ # Specifies the principals requesting access for a Cloud Platform resource. `
120
206
  # members` can have the following values: * `allUsers`: A special identifier
121
207
  # that represents anyone who is on the internet; with or without a Google
122
208
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -146,8 +232,8 @@ module Google
146
232
  # @return [Array<String>]
147
233
  attr_accessor :members
148
234
 
149
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
150
- # , or `roles/owner`.
235
+ # Role that is assigned to the list of `members`, or principals. For example, `
236
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
151
237
  # Corresponds to the JSON property `role`
152
238
  # @return [String]
153
239
  attr_accessor :role
@@ -204,6 +290,11 @@ module Google
204
290
  class CommonFeatureSpec
205
291
  include Google::Apis::Core::Hashable
206
292
 
293
+ # Spec for App Dev Experience Feature.
294
+ # Corresponds to the JSON property `appdevexperience`
295
+ # @return [Google::Apis::GkehubV1alpha::AppDevExperienceFeatureSpec]
296
+ attr_accessor :appdevexperience
297
+
207
298
  # **Cloud Audit Logging**: Spec for Audit Logging Allowlisting.
208
299
  # Corresponds to the JSON property `cloudauditlogging`
209
300
  # @return [Google::Apis::GkehubV1alpha::CloudAuditLoggingFeatureSpec]
@@ -221,6 +312,7 @@ module Google
221
312
 
222
313
  # Update properties of this object
223
314
  def update!(**args)
315
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
224
316
  @cloudauditlogging = args[:cloudauditlogging] if args.key?(:cloudauditlogging)
225
317
  @multiclusteringress = args[:multiclusteringress] if args.key?(:multiclusteringress)
226
318
  end
@@ -230,6 +322,11 @@ module Google
230
322
  class CommonFeatureState
231
323
  include Google::Apis::Core::Hashable
232
324
 
325
+ # State for App Dev Exp Feature.
326
+ # Corresponds to the JSON property `appdevexperience`
327
+ # @return [Google::Apis::GkehubV1alpha::AppDevExperienceFeatureState]
328
+ attr_accessor :appdevexperience
329
+
233
330
  # **Service Mesh**: State for the whole Hub, as analyzed by the Service Mesh Hub
234
331
  # Controller.
235
332
  # Corresponds to the JSON property `servicemesh`
@@ -249,6 +346,7 @@ module Google
249
346
 
250
347
  # Update properties of this object
251
348
  def update!(**args)
349
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
252
350
  @servicemesh = args[:servicemesh] if args.key?(:servicemesh)
253
351
  @state = args[:state] if args.key?(:state)
254
352
  end
@@ -322,15 +420,28 @@ module Google
322
420
  class ConfigManagementConfigSync
323
421
  include Google::Apis::Core::Hashable
324
422
 
423
+ # Enables the installation of ConfigSync. If set to true, ConfigSync resources
424
+ # will be created and the other ConfigSync fields will be applied if exist. If
425
+ # set to false, all other ConfigSync fields will be ignored, ConfigSync
426
+ # resources will be deleted. If omitted, ConfigSync resources will be managed
427
+ # depends on the presence of git field.
428
+ # Corresponds to the JSON property `enabled`
429
+ # @return [Boolean]
430
+ attr_accessor :enabled
431
+ alias_method :enabled?, :enabled
432
+
325
433
  # Git repo configuration for a single cluster.
326
434
  # Corresponds to the JSON property `git`
327
435
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementGitConfig]
328
436
  attr_accessor :git
329
437
 
330
- # Specifies CPU and memory limits for containers, keyed by container name
331
- # Corresponds to the JSON property `resourceRequirements`
332
- # @return [Hash<String,Google::Apis::GkehubV1alpha::ConfigManagementContainerResourceRequirements>]
333
- attr_accessor :resource_requirements
438
+ # Set to true to enable the Config Sync admission webhook to prevent drifts. If
439
+ # set to `false`, disables the Config Sync admission webhook and does not
440
+ # prevent drifts.
441
+ # Corresponds to the JSON property `preventDrift`
442
+ # @return [Boolean]
443
+ attr_accessor :prevent_drift
444
+ alias_method :prevent_drift?, :prevent_drift
334
445
 
335
446
  # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured”
336
447
  # mode.
@@ -344,8 +455,9 @@ module Google
344
455
 
345
456
  # Update properties of this object
346
457
  def update!(**args)
458
+ @enabled = args[:enabled] if args.key?(:enabled)
347
459
  @git = args[:git] if args.key?(:git)
348
- @resource_requirements = args[:resource_requirements] if args.key?(:resource_requirements)
460
+ @prevent_drift = args[:prevent_drift] if args.key?(:prevent_drift)
349
461
  @source_format = args[:source_format] if args.key?(:source_format)
350
462
  end
351
463
  end
@@ -491,42 +603,6 @@ module Google
491
603
  end
492
604
  end
493
605
 
494
- # ResourceRequirements allows to override the CPU and memory resource
495
- # requirements of a container.
496
- class ConfigManagementContainerResourceRequirements
497
- include Google::Apis::Core::Hashable
498
-
499
- # Name of the container
500
- # Corresponds to the JSON property `containerName`
501
- # @return [String]
502
- attr_accessor :container_name
503
-
504
- # The view model of a single quantity, e.g. "800 MiB". Corresponds to https://
505
- # github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/
506
- # pkg/api/resource/generated.proto
507
- # Corresponds to the JSON property `cpuLimit`
508
- # @return [Google::Apis::GkehubV1alpha::ConfigManagementQuantity]
509
- attr_accessor :cpu_limit
510
-
511
- # The view model of a single quantity, e.g. "800 MiB". Corresponds to https://
512
- # github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/
513
- # pkg/api/resource/generated.proto
514
- # Corresponds to the JSON property `memoryLimit`
515
- # @return [Google::Apis::GkehubV1alpha::ConfigManagementQuantity]
516
- attr_accessor :memory_limit
517
-
518
- def initialize(**args)
519
- update!(**args)
520
- end
521
-
522
- # Update properties of this object
523
- def update!(**args)
524
- @container_name = args[:container_name] if args.key?(:container_name)
525
- @cpu_limit = args[:cpu_limit] if args.key?(:cpu_limit)
526
- @memory_limit = args[:memory_limit] if args.key?(:memory_limit)
527
- end
528
- end
529
-
530
606
  # Model for a config file in the git repo with an associated Sync error
531
607
  class ConfigManagementErrorResource
532
608
  include Google::Apis::Core::Hashable
@@ -610,19 +686,15 @@ module Google
610
686
  # @return [String]
611
687
  attr_accessor :https_proxy
612
688
 
613
- # Enable or disable the SSL certificate verification Default: false.
614
- # Corresponds to the JSON property `noSslVerify`
615
- # @return [Boolean]
616
- attr_accessor :no_ssl_verify
617
- alias_method :no_ssl_verify?, :no_ssl_verify
618
-
619
689
  # The path within the Git repository that represents the top level of the repo
620
690
  # to sync. Default: the root directory of the repository.
621
691
  # Corresponds to the JSON property `policyDir`
622
692
  # @return [String]
623
693
  attr_accessor :policy_dir
624
694
 
625
- # Type of secret configured for access to the Git repo.
695
+ # Type of secret configured for access to the Git repo. Must be one of ssh,
696
+ # cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this
697
+ # is case-sensitive. Required.
626
698
  # Corresponds to the JSON property `secretType`
627
699
  # @return [String]
628
700
  attr_accessor :secret_type
@@ -632,11 +704,6 @@ module Google
632
704
  # @return [String]
633
705
  attr_accessor :sync_branch
634
706
 
635
- # The depth of git commits synced by the git-sync container.
636
- # Corresponds to the JSON property `syncDepth`
637
- # @return [Fixnum]
638
- attr_accessor :sync_depth
639
-
640
707
  # The URL of the Git repository to use as the source of truth.
641
708
  # Corresponds to the JSON property `syncRepo`
642
709
  # @return [String]
@@ -660,11 +727,9 @@ module Google
660
727
  def update!(**args)
661
728
  @gcp_service_account_email = args[:gcp_service_account_email] if args.key?(:gcp_service_account_email)
662
729
  @https_proxy = args[:https_proxy] if args.key?(:https_proxy)
663
- @no_ssl_verify = args[:no_ssl_verify] if args.key?(:no_ssl_verify)
664
730
  @policy_dir = args[:policy_dir] if args.key?(:policy_dir)
665
731
  @secret_type = args[:secret_type] if args.key?(:secret_type)
666
732
  @sync_branch = args[:sync_branch] if args.key?(:sync_branch)
667
- @sync_depth = args[:sync_depth] if args.key?(:sync_depth)
668
733
  @sync_repo = args[:sync_repo] if args.key?(:sync_repo)
669
734
  @sync_rev = args[:sync_rev] if args.key?(:sync_rev)
670
735
  @sync_wait_secs = args[:sync_wait_secs] if args.key?(:sync_wait_secs)
@@ -1073,27 +1138,6 @@ module Google
1073
1138
  end
1074
1139
  end
1075
1140
 
1076
- # The view model of a single quantity, e.g. "800 MiB". Corresponds to https://
1077
- # github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/apimachinery/
1078
- # pkg/api/resource/generated.proto
1079
- class ConfigManagementQuantity
1080
- include Google::Apis::Core::Hashable
1081
-
1082
- # Stringified version of the quantity, e.g., "800 MiB".
1083
- # Corresponds to the JSON property `string`
1084
- # @return [String]
1085
- attr_accessor :string
1086
-
1087
- def initialize(**args)
1088
- update!(**args)
1089
- end
1090
-
1091
- # Update properties of this object
1092
- def update!(**args)
1093
- @string = args[:string] if args.key?(:string)
1094
- end
1095
- end
1096
-
1097
1141
  # An ACM created error representing a problem syncing configurations
1098
1142
  class ConfigManagementSyncError
1099
1143
  include Google::Apis::Core::Hashable
@@ -1184,6 +1228,33 @@ module Google
1184
1228
  end
1185
1229
  end
1186
1230
 
1231
+ # ConnectAgentResource represents a Kubernetes resource manifest for Connect
1232
+ # Agent deployment.
1233
+ class ConnectAgentResource
1234
+ include Google::Apis::Core::Hashable
1235
+
1236
+ # YAML manifest of the resource.
1237
+ # Corresponds to the JSON property `manifest`
1238
+ # @return [String]
1239
+ attr_accessor :manifest
1240
+
1241
+ # TypeMeta is the type information needed for content unmarshalling of
1242
+ # Kubernetes resources in the manifest.
1243
+ # Corresponds to the JSON property `type`
1244
+ # @return [Google::Apis::GkehubV1alpha::TypeMeta]
1245
+ attr_accessor :type
1246
+
1247
+ def initialize(**args)
1248
+ update!(**args)
1249
+ end
1250
+
1251
+ # Update properties of this object
1252
+ def update!(**args)
1253
+ @manifest = args[:manifest] if args.key?(:manifest)
1254
+ @type = args[:type] if args.key?(:type)
1255
+ end
1256
+ end
1257
+
1187
1258
  # A generic empty message that you can re-use to avoid defining duplicated empty
1188
1259
  # messages in your APIs. A typical example is to use it as the request or the
1189
1260
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1400,6 +1471,56 @@ module Google
1400
1471
  end
1401
1472
  end
1402
1473
 
1474
+ # GenerateConnectManifestResponse contains manifest information for installing/
1475
+ # upgrading a Connect agent.
1476
+ class GenerateConnectManifestResponse
1477
+ include Google::Apis::Core::Hashable
1478
+
1479
+ # The ordered list of Kubernetes resources that need to be applied to the
1480
+ # cluster for GKE Connect agent installation/upgrade.
1481
+ # Corresponds to the JSON property `manifest`
1482
+ # @return [Array<Google::Apis::GkehubV1alpha::ConnectAgentResource>]
1483
+ attr_accessor :manifest
1484
+
1485
+ def initialize(**args)
1486
+ update!(**args)
1487
+ end
1488
+
1489
+ # Update properties of this object
1490
+ def update!(**args)
1491
+ @manifest = args[:manifest] if args.key?(:manifest)
1492
+ end
1493
+ end
1494
+
1495
+ # GkeCluster contains information specific to GKE clusters.
1496
+ class GkeCluster
1497
+ include Google::Apis::Core::Hashable
1498
+
1499
+ # Output only. If cluster_missing is set then it denotes that the GKE cluster no
1500
+ # longer exists in the GKE Control Plane.
1501
+ # Corresponds to the JSON property `clusterMissing`
1502
+ # @return [Boolean]
1503
+ attr_accessor :cluster_missing
1504
+ alias_method :cluster_missing?, :cluster_missing
1505
+
1506
+ # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //
1507
+ # container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-
1508
+ # cluster Zonal clusters are also supported.
1509
+ # Corresponds to the JSON property `resourceLink`
1510
+ # @return [String]
1511
+ attr_accessor :resource_link
1512
+
1513
+ def initialize(**args)
1514
+ update!(**args)
1515
+ end
1516
+
1517
+ # Update properties of this object
1518
+ def update!(**args)
1519
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
1520
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
1521
+ end
1522
+ end
1523
+
1403
1524
  # The `Status` type defines a logical error model that is suitable for different
1404
1525
  # programming environments, including REST APIs and RPC APIs. It is used by [
1405
1526
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -1611,6 +1732,150 @@ module Google
1611
1732
  end
1612
1733
  end
1613
1734
 
1735
+ # KubernetesMetadata provides informational metadata for Memberships
1736
+ # representing Kubernetes clusters.
1737
+ class KubernetesMetadata
1738
+ include Google::Apis::Core::Hashable
1739
+
1740
+ # Output only. Kubernetes API server version string as reported by `/version`.
1741
+ # Corresponds to the JSON property `kubernetesApiServerVersion`
1742
+ # @return [String]
1743
+ attr_accessor :kubernetes_api_server_version
1744
+
1745
+ # Output only. The total memory capacity as reported by the sum of all
1746
+ # Kubernetes nodes resources, defined in MB.
1747
+ # Corresponds to the JSON property `memoryMb`
1748
+ # @return [Fixnum]
1749
+ attr_accessor :memory_mb
1750
+
1751
+ # Output only. Node count as reported by Kubernetes nodes resources.
1752
+ # Corresponds to the JSON property `nodeCount`
1753
+ # @return [Fixnum]
1754
+ attr_accessor :node_count
1755
+
1756
+ # Output only. Node providerID as reported by the first node in the list of
1757
+ # nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-
1758
+ # node clusters (like GKE-on-GCP), the node_count will be zero and the
1759
+ # node_provider_id will be empty.
1760
+ # Corresponds to the JSON property `nodeProviderId`
1761
+ # @return [String]
1762
+ attr_accessor :node_provider_id
1763
+
1764
+ # Output only. The time at which these details were last updated. This
1765
+ # update_time is different from the Membership-level update_time since
1766
+ # EndpointDetails are updated internally for API consumers.
1767
+ # Corresponds to the JSON property `updateTime`
1768
+ # @return [String]
1769
+ attr_accessor :update_time
1770
+
1771
+ # Output only. vCPU count as reported by Kubernetes nodes resources.
1772
+ # Corresponds to the JSON property `vcpuCount`
1773
+ # @return [Fixnum]
1774
+ attr_accessor :vcpu_count
1775
+
1776
+ def initialize(**args)
1777
+ update!(**args)
1778
+ end
1779
+
1780
+ # Update properties of this object
1781
+ def update!(**args)
1782
+ @kubernetes_api_server_version = args[:kubernetes_api_server_version] if args.key?(:kubernetes_api_server_version)
1783
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
1784
+ @node_count = args[:node_count] if args.key?(:node_count)
1785
+ @node_provider_id = args[:node_provider_id] if args.key?(:node_provider_id)
1786
+ @update_time = args[:update_time] if args.key?(:update_time)
1787
+ @vcpu_count = args[:vcpu_count] if args.key?(:vcpu_count)
1788
+ end
1789
+ end
1790
+
1791
+ # KubernetesResource contains the YAML manifests and configuration for
1792
+ # Membership Kubernetes resources in the cluster. After CreateMembership or
1793
+ # UpdateMembership, these resources should be re-applied in the cluster.
1794
+ class KubernetesResource
1795
+ include Google::Apis::Core::Hashable
1796
+
1797
+ # Output only. The Kubernetes resources for installing the GKE Connect agent
1798
+ # This field is only populated in the Membership returned from a successful long-
1799
+ # running operation from CreateMembership or UpdateMembership. It is not
1800
+ # populated during normal GetMembership or ListMemberships requests. To get the
1801
+ # resource manifest after the initial registration, the caller should make a
1802
+ # UpdateMembership call with an empty field mask.
1803
+ # Corresponds to the JSON property `connectResources`
1804
+ # @return [Array<Google::Apis::GkehubV1alpha::ResourceManifest>]
1805
+ attr_accessor :connect_resources
1806
+
1807
+ # Input only. The YAML representation of the Membership CR. This field is
1808
+ # ignored for GKE clusters where Hub can read the CR directly. Callers should
1809
+ # provide the CR that is currently present in the cluster during
1810
+ # CreateMembership or UpdateMembership, or leave this field empty if none exists.
1811
+ # The CR manifest is used to validate the cluster has not been registered with
1812
+ # another Membership.
1813
+ # Corresponds to the JSON property `membershipCrManifest`
1814
+ # @return [String]
1815
+ attr_accessor :membership_cr_manifest
1816
+
1817
+ # Output only. Additional Kubernetes resources that need to be applied to the
1818
+ # cluster after Membership creation, and after every update. This field is only
1819
+ # populated in the Membership returned from a successful long-running operation
1820
+ # from CreateMembership or UpdateMembership. It is not populated during normal
1821
+ # GetMembership or ListMemberships requests. To get the resource manifest after
1822
+ # the initial registration, the caller should make a UpdateMembership call with
1823
+ # an empty field mask.
1824
+ # Corresponds to the JSON property `membershipResources`
1825
+ # @return [Array<Google::Apis::GkehubV1alpha::ResourceManifest>]
1826
+ attr_accessor :membership_resources
1827
+
1828
+ # ResourceOptions represent options for Kubernetes resource generation.
1829
+ # Corresponds to the JSON property `resourceOptions`
1830
+ # @return [Google::Apis::GkehubV1alpha::ResourceOptions]
1831
+ attr_accessor :resource_options
1832
+
1833
+ def initialize(**args)
1834
+ update!(**args)
1835
+ end
1836
+
1837
+ # Update properties of this object
1838
+ def update!(**args)
1839
+ @connect_resources = args[:connect_resources] if args.key?(:connect_resources)
1840
+ @membership_cr_manifest = args[:membership_cr_manifest] if args.key?(:membership_cr_manifest)
1841
+ @membership_resources = args[:membership_resources] if args.key?(:membership_resources)
1842
+ @resource_options = args[:resource_options] if args.key?(:resource_options)
1843
+ end
1844
+ end
1845
+
1846
+ # Response message for the `GkeHub.ListAdminClusterMemberships` method.
1847
+ class ListAdminClusterMembershipsResponse
1848
+ include Google::Apis::Core::Hashable
1849
+
1850
+ # The list of matching Memberships of admin clusters.
1851
+ # Corresponds to the JSON property `adminClusterMemberships`
1852
+ # @return [Array<Google::Apis::GkehubV1alpha::Membership>]
1853
+ attr_accessor :admin_cluster_memberships
1854
+
1855
+ # A token to request the next page of resources from the `
1856
+ # ListAdminClusterMemberships` method. The value of an empty string means that
1857
+ # there are no more resources to return.
1858
+ # Corresponds to the JSON property `nextPageToken`
1859
+ # @return [String]
1860
+ attr_accessor :next_page_token
1861
+
1862
+ # List of locations that could not be reached while fetching this list.
1863
+ # Corresponds to the JSON property `unreachable`
1864
+ # @return [Array<String>]
1865
+ attr_accessor :unreachable
1866
+
1867
+ def initialize(**args)
1868
+ update!(**args)
1869
+ end
1870
+
1871
+ # Update properties of this object
1872
+ def update!(**args)
1873
+ @admin_cluster_memberships = args[:admin_cluster_memberships] if args.key?(:admin_cluster_memberships)
1874
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1875
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1876
+ end
1877
+ end
1878
+
1614
1879
  # Response message for the `GkeHub.ListFeatures` method.
1615
1880
  class ListFeaturesResponse
1616
1881
  include Google::Apis::Core::Hashable
@@ -1662,6 +1927,39 @@ module Google
1662
1927
  end
1663
1928
  end
1664
1929
 
1930
+ # Response message for the `GkeHub.ListMemberships` method.
1931
+ class ListMembershipsResponse
1932
+ include Google::Apis::Core::Hashable
1933
+
1934
+ # A token to request the next page of resources from the `ListMemberships`
1935
+ # method. The value of an empty string means that there are no more resources to
1936
+ # return.
1937
+ # Corresponds to the JSON property `nextPageToken`
1938
+ # @return [String]
1939
+ attr_accessor :next_page_token
1940
+
1941
+ # The list of matching Memberships.
1942
+ # Corresponds to the JSON property `resources`
1943
+ # @return [Array<Google::Apis::GkehubV1alpha::Membership>]
1944
+ attr_accessor :resources
1945
+
1946
+ # List of locations that could not be reached while fetching this list.
1947
+ # Corresponds to the JSON property `unreachable`
1948
+ # @return [Array<String>]
1949
+ attr_accessor :unreachable
1950
+
1951
+ def initialize(**args)
1952
+ update!(**args)
1953
+ end
1954
+
1955
+ # Update properties of this object
1956
+ def update!(**args)
1957
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1958
+ @resources = args[:resources] if args.key?(:resources)
1959
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1960
+ end
1961
+ end
1962
+
1665
1963
  # The response message for Operations.ListOperations.
1666
1964
  class ListOperationsResponse
1667
1965
  include Google::Apis::Core::Hashable
@@ -1734,6 +2032,156 @@ module Google
1734
2032
  end
1735
2033
  end
1736
2034
 
2035
+ # Membership contains information about a member cluster.
2036
+ class Membership
2037
+ include Google::Apis::Core::Hashable
2038
+
2039
+ # Authority encodes how Google will recognize identities from this Membership.
2040
+ # See the workload identity documentation for more details: https://cloud.google.
2041
+ # com/kubernetes-engine/docs/how-to/workload-identity
2042
+ # Corresponds to the JSON property `authority`
2043
+ # @return [Google::Apis::GkehubV1alpha::Authority]
2044
+ attr_accessor :authority
2045
+
2046
+ # Output only. When the Membership was created.
2047
+ # Corresponds to the JSON property `createTime`
2048
+ # @return [String]
2049
+ attr_accessor :create_time
2050
+
2051
+ # Output only. When the Membership was deleted.
2052
+ # Corresponds to the JSON property `deleteTime`
2053
+ # @return [String]
2054
+ attr_accessor :delete_time
2055
+
2056
+ # Output only. Description of this membership, limited to 63 characters. Must
2057
+ # match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
2058
+ # Corresponds to the JSON property `description`
2059
+ # @return [String]
2060
+ attr_accessor :description
2061
+
2062
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
2063
+ # endpoint and any additional Kubernetes metadata.
2064
+ # Corresponds to the JSON property `endpoint`
2065
+ # @return [Google::Apis::GkehubV1alpha::MembershipEndpoint]
2066
+ attr_accessor :endpoint
2067
+
2068
+ # Optional. An externally-generated and managed ID for this Membership. This ID
2069
+ # may be modified after creation, but this is not recommended. The ID must match
2070
+ # the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster,
2071
+ # this value should be set to the UID of the `kube-system` namespace object.
2072
+ # Corresponds to the JSON property `externalId`
2073
+ # @return [String]
2074
+ attr_accessor :external_id
2075
+
2076
+ # Optional. GCP labels for this membership.
2077
+ # Corresponds to the JSON property `labels`
2078
+ # @return [Hash<String,String>]
2079
+ attr_accessor :labels
2080
+
2081
+ # Output only. For clusters using Connect, the timestamp of the most recent
2082
+ # connection established with Google Cloud. This time is updated every several
2083
+ # minutes, not continuously. For clusters that do not use GKE Connect, or that
2084
+ # have never connected successfully, this field will be unset.
2085
+ # Corresponds to the JSON property `lastConnectionTime`
2086
+ # @return [String]
2087
+ attr_accessor :last_connection_time
2088
+
2089
+ # Output only. The full, unique name of this Membership resource in the format `
2090
+ # projects/*/locations/*/memberships/`membership_id``, set during creation. `
2091
+ # membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63
2092
+ # characters in length 2. It must consist of lower case alphanumeric characters
2093
+ # or `-` 3. It must start and end with an alphanumeric character Which can be
2094
+ # expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length
2095
+ # of 63 characters.
2096
+ # Corresponds to the JSON property `name`
2097
+ # @return [String]
2098
+ attr_accessor :name
2099
+
2100
+ # MembershipState describes the state of a Membership resource.
2101
+ # Corresponds to the JSON property `state`
2102
+ # @return [Google::Apis::GkehubV1alpha::MembershipState]
2103
+ attr_accessor :state
2104
+
2105
+ # Output only. Google-generated UUID for this resource. This is unique across
2106
+ # all Membership resources. If a Membership resource is deleted and another
2107
+ # resource with the same name is created, it gets a different unique_id.
2108
+ # Corresponds to the JSON property `uniqueId`
2109
+ # @return [String]
2110
+ attr_accessor :unique_id
2111
+
2112
+ # Output only. When the Membership was last updated.
2113
+ # Corresponds to the JSON property `updateTime`
2114
+ # @return [String]
2115
+ attr_accessor :update_time
2116
+
2117
+ def initialize(**args)
2118
+ update!(**args)
2119
+ end
2120
+
2121
+ # Update properties of this object
2122
+ def update!(**args)
2123
+ @authority = args[:authority] if args.key?(:authority)
2124
+ @create_time = args[:create_time] if args.key?(:create_time)
2125
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
2126
+ @description = args[:description] if args.key?(:description)
2127
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2128
+ @external_id = args[:external_id] if args.key?(:external_id)
2129
+ @labels = args[:labels] if args.key?(:labels)
2130
+ @last_connection_time = args[:last_connection_time] if args.key?(:last_connection_time)
2131
+ @name = args[:name] if args.key?(:name)
2132
+ @state = args[:state] if args.key?(:state)
2133
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
2134
+ @update_time = args[:update_time] if args.key?(:update_time)
2135
+ end
2136
+ end
2137
+
2138
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
2139
+ # endpoint and any additional Kubernetes metadata.
2140
+ class MembershipEndpoint
2141
+ include Google::Apis::Core::Hashable
2142
+
2143
+ # GkeCluster contains information specific to GKE clusters.
2144
+ # Corresponds to the JSON property `gkeCluster`
2145
+ # @return [Google::Apis::GkehubV1alpha::GkeCluster]
2146
+ attr_accessor :gke_cluster
2147
+
2148
+ # KubernetesMetadata provides informational metadata for Memberships
2149
+ # representing Kubernetes clusters.
2150
+ # Corresponds to the JSON property `kubernetesMetadata`
2151
+ # @return [Google::Apis::GkehubV1alpha::KubernetesMetadata]
2152
+ attr_accessor :kubernetes_metadata
2153
+
2154
+ # KubernetesResource contains the YAML manifests and configuration for
2155
+ # Membership Kubernetes resources in the cluster. After CreateMembership or
2156
+ # UpdateMembership, these resources should be re-applied in the cluster.
2157
+ # Corresponds to the JSON property `kubernetesResource`
2158
+ # @return [Google::Apis::GkehubV1alpha::KubernetesResource]
2159
+ attr_accessor :kubernetes_resource
2160
+
2161
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
2162
+ # Corresponds to the JSON property `multiCloudCluster`
2163
+ # @return [Google::Apis::GkehubV1alpha::MultiCloudCluster]
2164
+ attr_accessor :multi_cloud_cluster
2165
+
2166
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
2167
+ # Corresponds to the JSON property `onPremCluster`
2168
+ # @return [Google::Apis::GkehubV1alpha::OnPremCluster]
2169
+ attr_accessor :on_prem_cluster
2170
+
2171
+ def initialize(**args)
2172
+ update!(**args)
2173
+ end
2174
+
2175
+ # Update properties of this object
2176
+ def update!(**args)
2177
+ @gke_cluster = args[:gke_cluster] if args.key?(:gke_cluster)
2178
+ @kubernetes_metadata = args[:kubernetes_metadata] if args.key?(:kubernetes_metadata)
2179
+ @kubernetes_resource = args[:kubernetes_resource] if args.key?(:kubernetes_resource)
2180
+ @multi_cloud_cluster = args[:multi_cloud_cluster] if args.key?(:multi_cloud_cluster)
2181
+ @on_prem_cluster = args[:on_prem_cluster] if args.key?(:on_prem_cluster)
2182
+ end
2183
+ end
2184
+
1737
2185
  # MembershipFeatureSpec contains configuration information for a single
1738
2186
  # Membership.
1739
2187
  class MembershipFeatureSpec
@@ -1750,6 +2198,11 @@ module Google
1750
2198
  # @return [Google::Apis::GkehubV1alpha::IdentityServiceMembershipSpec]
1751
2199
  attr_accessor :identityservice
1752
2200
 
2201
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2202
+ # Corresponds to the JSON property `mesh`
2203
+ # @return [Google::Apis::GkehubV1alpha::ServiceMeshMembershipSpec]
2204
+ attr_accessor :mesh
2205
+
1753
2206
  def initialize(**args)
1754
2207
  update!(**args)
1755
2208
  end
@@ -1758,6 +2211,7 @@ module Google
1758
2211
  def update!(**args)
1759
2212
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1760
2213
  @identityservice = args[:identityservice] if args.key?(:identityservice)
2214
+ @mesh = args[:mesh] if args.key?(:mesh)
1761
2215
  end
1762
2216
  end
1763
2217
 
@@ -1766,6 +2220,11 @@ module Google
1766
2220
  class MembershipFeatureState
1767
2221
  include Google::Apis::Core::Hashable
1768
2222
 
2223
+ # State for App Dev Exp Feature.
2224
+ # Corresponds to the JSON property `appdevexperience`
2225
+ # @return [Google::Apis::GkehubV1alpha::AppDevExperienceFeatureState]
2226
+ attr_accessor :appdevexperience
2227
+
1769
2228
  # **Anthos Config Management**: State for a single cluster.
1770
2229
  # Corresponds to the JSON property `configmanagement`
1771
2230
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementMembershipState]
@@ -1800,6 +2259,7 @@ module Google
1800
2259
 
1801
2260
  # Update properties of this object
1802
2261
  def update!(**args)
2262
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
1803
2263
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1804
2264
  @identityservice = args[:identityservice] if args.key?(:identityservice)
1805
2265
  @metering = args[:metering] if args.key?(:metering)
@@ -1808,6 +2268,25 @@ module Google
1808
2268
  end
1809
2269
  end
1810
2270
 
2271
+ # MembershipState describes the state of a Membership resource.
2272
+ class MembershipState
2273
+ include Google::Apis::Core::Hashable
2274
+
2275
+ # Output only. The current state of the Membership resource.
2276
+ # Corresponds to the JSON property `code`
2277
+ # @return [String]
2278
+ attr_accessor :code
2279
+
2280
+ def initialize(**args)
2281
+ update!(**args)
2282
+ end
2283
+
2284
+ # Update properties of this object
2285
+ def update!(**args)
2286
+ @code = args[:code] if args.key?(:code)
2287
+ end
2288
+ end
2289
+
1811
2290
  # **Metering**: Per-Membership Feature State.
1812
2291
  class MeteringMembershipState
1813
2292
  include Google::Apis::Core::Hashable
@@ -1835,6 +2314,36 @@ module Google
1835
2314
  end
1836
2315
  end
1837
2316
 
2317
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
2318
+ class MultiCloudCluster
2319
+ include Google::Apis::Core::Hashable
2320
+
2321
+ # Output only. If cluster_missing is set then it denotes that API(gkemulticloud.
2322
+ # googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.
2323
+ # Corresponds to the JSON property `clusterMissing`
2324
+ # @return [Boolean]
2325
+ attr_accessor :cluster_missing
2326
+ alias_method :cluster_missing?, :cluster_missing
2327
+
2328
+ # Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For
2329
+ # example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-
2330
+ # a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/
2331
+ # locations/us-west1-a/azureClusters/my-cluster
2332
+ # Corresponds to the JSON property `resourceLink`
2333
+ # @return [String]
2334
+ attr_accessor :resource_link
2335
+
2336
+ def initialize(**args)
2337
+ update!(**args)
2338
+ end
2339
+
2340
+ # Update properties of this object
2341
+ def update!(**args)
2342
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
2343
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
2344
+ end
2345
+ end
2346
+
1838
2347
  # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress
1839
2348
  # feature.
1840
2349
  class MultiClusterIngressFeatureSpec
@@ -1863,6 +2372,43 @@ module Google
1863
2372
  end
1864
2373
  end
1865
2374
 
2375
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
2376
+ class OnPremCluster
2377
+ include Google::Apis::Core::Hashable
2378
+
2379
+ # Immutable. Whether the cluster is an admin cluster.
2380
+ # Corresponds to the JSON property `adminCluster`
2381
+ # @return [Boolean]
2382
+ attr_accessor :admin_cluster
2383
+ alias_method :admin_cluster?, :admin_cluster
2384
+
2385
+ # Output only. If cluster_missing is set then it denotes that API(gkeonprem.
2386
+ # googleapis.com) resource for this GKE On-Prem cluster no longer exists.
2387
+ # Corresponds to the JSON property `clusterMissing`
2388
+ # @return [Boolean]
2389
+ attr_accessor :cluster_missing
2390
+ alias_method :cluster_missing?, :cluster_missing
2391
+
2392
+ # Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For
2393
+ # example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/
2394
+ # vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/
2395
+ # locations/us-west1-a/bareMetalClusters/my-cluster
2396
+ # Corresponds to the JSON property `resourceLink`
2397
+ # @return [String]
2398
+ attr_accessor :resource_link
2399
+
2400
+ def initialize(**args)
2401
+ update!(**args)
2402
+ end
2403
+
2404
+ # Update properties of this object
2405
+ def update!(**args)
2406
+ @admin_cluster = args[:admin_cluster] if args.key?(:admin_cluster)
2407
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
2408
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
2409
+ end
2410
+ end
2411
+
1866
2412
  # This resource represents a long-running operation that is the result of a
1867
2413
  # network API call.
1868
2414
  class Operation
@@ -1986,31 +2532,31 @@ module Google
1986
2532
 
1987
2533
  # An Identity and Access Management (IAM) policy, which specifies access
1988
2534
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1989
- # A `binding` binds one or more `members` to a single `role`. Members can be
1990
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
1991
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
1992
- # role or a user-created custom role. For some types of Google Cloud resources,
1993
- # a `binding` can also specify a `condition`, which is a logical expression that
1994
- # allows access to a resource only if the expression evaluates to `true`. A
1995
- # condition can add constraints based on attributes of the request, the resource,
1996
- # or both. To learn which resources support conditions in their IAM policies,
1997
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1998
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1999
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2000
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2001
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2002
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2003
- # title": "expirable access", "description": "Does not grant access after Sep
2004
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2005
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2006
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2007
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2008
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2009
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2010
- # description: Does not grant access after Sep 2020 expression: request.time <
2011
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
2012
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2013
- # google.com/iam/docs/).
2535
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2536
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2537
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2538
+ # an IAM predefined role or a user-created custom role. For some types of Google
2539
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2540
+ # logical expression that allows access to a resource only if the expression
2541
+ # evaluates to `true`. A condition can add constraints based on attributes of
2542
+ # the request, the resource, or both. To learn which resources support
2543
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2544
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2545
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2546
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2547
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2548
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2549
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2550
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2551
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2552
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2553
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2554
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2555
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2556
+ # access description: Does not grant access after Sep 2020 expression: request.
2557
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2558
+ # a description of IAM and its features, see the [IAM documentation](https://
2559
+ # cloud.google.com/iam/docs/).
2014
2560
  class Policy
2015
2561
  include Google::Apis::Core::Hashable
2016
2562
 
@@ -2019,9 +2565,14 @@ module Google
2019
2565
  # @return [Array<Google::Apis::GkehubV1alpha::AuditConfig>]
2020
2566
  attr_accessor :audit_configs
2021
2567
 
2022
- # Associates a list of `members` to a `role`. Optionally, may specify a `
2023
- # condition` that determines how and when the `bindings` are applied. Each of
2024
- # the `bindings` must contain at least one member.
2568
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
2569
+ # specify a `condition` that determines how and when the `bindings` are applied.
2570
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
2571
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2572
+ # can be Google groups. Each occurrence of a principal counts towards these
2573
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2574
+ # example.com`, and not to any other principal, then you can add another 1,450
2575
+ # principals to the `bindings` in the `Policy`.
2025
2576
  # Corresponds to the JSON property `bindings`
2026
2577
  # @return [Array<Google::Apis::GkehubV1alpha::Binding>]
2027
2578
  attr_accessor :bindings
@@ -2074,6 +2625,65 @@ module Google
2074
2625
  end
2075
2626
  end
2076
2627
 
2628
+ # ResourceManifest represents a single Kubernetes resource to be applied to the
2629
+ # cluster.
2630
+ class ResourceManifest
2631
+ include Google::Apis::Core::Hashable
2632
+
2633
+ # Whether the resource provided in the manifest is `cluster_scoped`. If unset,
2634
+ # the manifest is assumed to be namespace scoped. This field is used for REST
2635
+ # mapping when applying the resource in a cluster.
2636
+ # Corresponds to the JSON property `clusterScoped`
2637
+ # @return [Boolean]
2638
+ attr_accessor :cluster_scoped
2639
+ alias_method :cluster_scoped?, :cluster_scoped
2640
+
2641
+ # YAML manifest of the resource.
2642
+ # Corresponds to the JSON property `manifest`
2643
+ # @return [String]
2644
+ attr_accessor :manifest
2645
+
2646
+ def initialize(**args)
2647
+ update!(**args)
2648
+ end
2649
+
2650
+ # Update properties of this object
2651
+ def update!(**args)
2652
+ @cluster_scoped = args[:cluster_scoped] if args.key?(:cluster_scoped)
2653
+ @manifest = args[:manifest] if args.key?(:manifest)
2654
+ end
2655
+ end
2656
+
2657
+ # ResourceOptions represent options for Kubernetes resource generation.
2658
+ class ResourceOptions
2659
+ include Google::Apis::Core::Hashable
2660
+
2661
+ # Optional. The Connect agent version to use for connect_resources. Defaults to
2662
+ # the latest GKE Connect version. The version must be a currently supported
2663
+ # version, obsolete versions will be rejected.
2664
+ # Corresponds to the JSON property `connectVersion`
2665
+ # @return [String]
2666
+ attr_accessor :connect_version
2667
+
2668
+ # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for
2669
+ # CustomResourceDefinition resources. This option should be set for clusters
2670
+ # with Kubernetes apiserver versions <1.16.
2671
+ # Corresponds to the JSON property `v1beta1Crd`
2672
+ # @return [Boolean]
2673
+ attr_accessor :v1beta1_crd
2674
+ alias_method :v1beta1_crd?, :v1beta1_crd
2675
+
2676
+ def initialize(**args)
2677
+ update!(**args)
2678
+ end
2679
+
2680
+ # Update properties of this object
2681
+ def update!(**args)
2682
+ @connect_version = args[:connect_version] if args.key?(:connect_version)
2683
+ @v1beta1_crd = args[:v1beta1_crd] if args.key?(:v1beta1_crd)
2684
+ end
2685
+ end
2686
+
2077
2687
  # AnalysisMessage is a single message produced by an analyzer, and it used to
2078
2688
  # communicate to the end user about the state of their Service Mesh
2079
2689
  # configuration.
@@ -2176,6 +2786,19 @@ module Google
2176
2786
  end
2177
2787
  end
2178
2788
 
2789
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2790
+ class ServiceMeshMembershipSpec
2791
+ include Google::Apis::Core::Hashable
2792
+
2793
+ def initialize(**args)
2794
+ update!(**args)
2795
+ end
2796
+
2797
+ # Update properties of this object
2798
+ def update!(**args)
2799
+ end
2800
+ end
2801
+
2179
2802
  # **Service Mesh**: State for a single Membership, as analyzed by the Service
2180
2803
  # Mesh Hub Controller.
2181
2804
  class ServiceMeshMembershipState
@@ -2235,31 +2858,31 @@ module Google
2235
2858
 
2236
2859
  # An Identity and Access Management (IAM) policy, which specifies access
2237
2860
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2238
- # A `binding` binds one or more `members` to a single `role`. Members can be
2239
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2240
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2241
- # role or a user-created custom role. For some types of Google Cloud resources,
2242
- # a `binding` can also specify a `condition`, which is a logical expression that
2243
- # allows access to a resource only if the expression evaluates to `true`. A
2244
- # condition can add constraints based on attributes of the request, the resource,
2245
- # or both. To learn which resources support conditions in their IAM policies,
2246
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2247
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2248
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2249
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2250
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2251
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2252
- # title": "expirable access", "description": "Does not grant access after Sep
2253
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2254
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2255
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2256
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2257
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2258
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2259
- # description: Does not grant access after Sep 2020 expression: request.time <
2260
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
2261
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2262
- # google.com/iam/docs/).
2861
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2862
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2863
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2864
+ # an IAM predefined role or a user-created custom role. For some types of Google
2865
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2866
+ # logical expression that allows access to a resource only if the expression
2867
+ # evaluates to `true`. A condition can add constraints based on attributes of
2868
+ # the request, the resource, or both. To learn which resources support
2869
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2870
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2871
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2872
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2873
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2874
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2875
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2876
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2877
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2878
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2879
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2880
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2881
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2882
+ # access description: Does not grant access after Sep 2020 expression: request.
2883
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2884
+ # a description of IAM and its features, see the [IAM documentation](https://
2885
+ # cloud.google.com/iam/docs/).
2263
2886
  # Corresponds to the JSON property `policy`
2264
2887
  # @return [Google::Apis::GkehubV1alpha::Policy]
2265
2888
  attr_accessor :policy
@@ -2282,6 +2905,31 @@ module Google
2282
2905
  end
2283
2906
  end
2284
2907
 
2908
+ # Status specifies state for the subcomponent.
2909
+ class Status
2910
+ include Google::Apis::Core::Hashable
2911
+
2912
+ # Code specifies AppDevExperienceFeature's subcomponent ready state.
2913
+ # Corresponds to the JSON property `code`
2914
+ # @return [String]
2915
+ attr_accessor :code
2916
+
2917
+ # Description is populated if Code is Failed, explaining why it has failed.
2918
+ # Corresponds to the JSON property `description`
2919
+ # @return [String]
2920
+ attr_accessor :description
2921
+
2922
+ def initialize(**args)
2923
+ update!(**args)
2924
+ end
2925
+
2926
+ # Update properties of this object
2927
+ def update!(**args)
2928
+ @code = args[:code] if args.key?(:code)
2929
+ @description = args[:description] if args.key?(:description)
2930
+ end
2931
+ end
2932
+
2285
2933
  # Request message for `TestIamPermissions` method.
2286
2934
  class TestIamPermissionsRequest
2287
2935
  include Google::Apis::Core::Hashable
@@ -2321,6 +2969,32 @@ module Google
2321
2969
  @permissions = args[:permissions] if args.key?(:permissions)
2322
2970
  end
2323
2971
  end
2972
+
2973
+ # TypeMeta is the type information needed for content unmarshalling of
2974
+ # Kubernetes resources in the manifest.
2975
+ class TypeMeta
2976
+ include Google::Apis::Core::Hashable
2977
+
2978
+ # APIVersion of the resource (e.g. v1).
2979
+ # Corresponds to the JSON property `apiVersion`
2980
+ # @return [String]
2981
+ attr_accessor :api_version
2982
+
2983
+ # Kind of the resource (e.g. Deployment).
2984
+ # Corresponds to the JSON property `kind`
2985
+ # @return [String]
2986
+ attr_accessor :kind
2987
+
2988
+ def initialize(**args)
2989
+ update!(**args)
2990
+ end
2991
+
2992
+ # Update properties of this object
2993
+ def update!(**args)
2994
+ @api_version = args[:api_version] if args.key?(:api_version)
2995
+ @kind = args[:kind] if args.key?(:kind)
2996
+ end
2997
+ end
2324
2998
  end
2325
2999
  end
2326
3000
  end