google-apis-gkehub_v1alpha 0.11.0 → 0.15.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,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