google-apis-gkehub_v1alpha 0.10.0 → 0.14.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,6 +420,16 @@ 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]
@@ -339,6 +447,7 @@ module Google
339
447
 
340
448
  # Update properties of this object
341
449
  def update!(**args)
450
+ @enabled = args[:enabled] if args.key?(:enabled)
342
451
  @git = args[:git] if args.key?(:git)
343
452
  @source_format = args[:source_format] if args.key?(:source_format)
344
453
  end
@@ -348,6 +457,11 @@ module Google
348
457
  class ConfigManagementConfigSyncDeploymentState
349
458
  include Google::Apis::Core::Hashable
350
459
 
460
+ # Deployment state of admission-webhook
461
+ # Corresponds to the JSON property `admissionWebhook`
462
+ # @return [String]
463
+ attr_accessor :admission_webhook
464
+
351
465
  # Deployment state of the git-sync pod
352
466
  # Corresponds to the JSON property `gitSync`
353
467
  # @return [String]
@@ -384,6 +498,7 @@ module Google
384
498
 
385
499
  # Update properties of this object
386
500
  def update!(**args)
501
+ @admission_webhook = args[:admission_webhook] if args.key?(:admission_webhook)
387
502
  @git_sync = args[:git_sync] if args.key?(:git_sync)
388
503
  @importer = args[:importer] if args.key?(:importer)
389
504
  @monitor = args[:monitor] if args.key?(:monitor)
@@ -428,6 +543,11 @@ module Google
428
543
  class ConfigManagementConfigSyncVersion
429
544
  include Google::Apis::Core::Hashable
430
545
 
546
+ # Version of the deployed admission_webhook pod
547
+ # Corresponds to the JSON property `admissionWebhook`
548
+ # @return [String]
549
+ attr_accessor :admission_webhook
550
+
431
551
  # Version of the deployed git-sync pod
432
552
  # Corresponds to the JSON property `gitSync`
433
553
  # @return [String]
@@ -464,6 +584,7 @@ module Google
464
584
 
465
585
  # Update properties of this object
466
586
  def update!(**args)
587
+ @admission_webhook = args[:admission_webhook] if args.key?(:admission_webhook)
467
588
  @git_sync = args[:git_sync] if args.key?(:git_sync)
468
589
  @importer = args[:importer] if args.key?(:importer)
469
590
  @monitor = args[:monitor] if args.key?(:monitor)
@@ -1096,6 +1217,33 @@ module Google
1096
1217
  end
1097
1218
  end
1098
1219
 
1220
+ # ConnectAgentResource represents a Kubernetes resource manifest for Connect
1221
+ # Agent deployment.
1222
+ class ConnectAgentResource
1223
+ include Google::Apis::Core::Hashable
1224
+
1225
+ # YAML manifest of the resource.
1226
+ # Corresponds to the JSON property `manifest`
1227
+ # @return [String]
1228
+ attr_accessor :manifest
1229
+
1230
+ # TypeMeta is the type information needed for content unmarshalling of
1231
+ # Kubernetes resources in the manifest.
1232
+ # Corresponds to the JSON property `type`
1233
+ # @return [Google::Apis::GkehubV1alpha::TypeMeta]
1234
+ attr_accessor :type
1235
+
1236
+ def initialize(**args)
1237
+ update!(**args)
1238
+ end
1239
+
1240
+ # Update properties of this object
1241
+ def update!(**args)
1242
+ @manifest = args[:manifest] if args.key?(:manifest)
1243
+ @type = args[:type] if args.key?(:type)
1244
+ end
1245
+ end
1246
+
1099
1247
  # A generic empty message that you can re-use to avoid defining duplicated empty
1100
1248
  # messages in your APIs. A typical example is to use it as the request or the
1101
1249
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1312,6 +1460,56 @@ module Google
1312
1460
  end
1313
1461
  end
1314
1462
 
1463
+ # GenerateConnectManifestResponse contains manifest information for installing/
1464
+ # upgrading a Connect agent.
1465
+ class GenerateConnectManifestResponse
1466
+ include Google::Apis::Core::Hashable
1467
+
1468
+ # The ordered list of Kubernetes resources that need to be applied to the
1469
+ # cluster for GKE Connect agent installation/upgrade.
1470
+ # Corresponds to the JSON property `manifest`
1471
+ # @return [Array<Google::Apis::GkehubV1alpha::ConnectAgentResource>]
1472
+ attr_accessor :manifest
1473
+
1474
+ def initialize(**args)
1475
+ update!(**args)
1476
+ end
1477
+
1478
+ # Update properties of this object
1479
+ def update!(**args)
1480
+ @manifest = args[:manifest] if args.key?(:manifest)
1481
+ end
1482
+ end
1483
+
1484
+ # GkeCluster contains information specific to GKE clusters.
1485
+ class GkeCluster
1486
+ include Google::Apis::Core::Hashable
1487
+
1488
+ # Output only. If cluster_missing is set then it denotes that the GKE cluster no
1489
+ # longer exists in the GKE Control Plane.
1490
+ # Corresponds to the JSON property `clusterMissing`
1491
+ # @return [Boolean]
1492
+ attr_accessor :cluster_missing
1493
+ alias_method :cluster_missing?, :cluster_missing
1494
+
1495
+ # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //
1496
+ # container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-
1497
+ # cluster Zonal clusters are also supported.
1498
+ # Corresponds to the JSON property `resourceLink`
1499
+ # @return [String]
1500
+ attr_accessor :resource_link
1501
+
1502
+ def initialize(**args)
1503
+ update!(**args)
1504
+ end
1505
+
1506
+ # Update properties of this object
1507
+ def update!(**args)
1508
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
1509
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
1510
+ end
1511
+ end
1512
+
1315
1513
  # The `Status` type defines a logical error model that is suitable for different
1316
1514
  # programming environments, including REST APIs and RPC APIs. It is used by [
1317
1515
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -1523,6 +1721,95 @@ module Google
1523
1721
  end
1524
1722
  end
1525
1723
 
1724
+ # KubernetesMetadata provides informational metadata for Memberships
1725
+ # representing Kubernetes clusters.
1726
+ class KubernetesMetadata
1727
+ include Google::Apis::Core::Hashable
1728
+
1729
+ # Output only. Kubernetes API server version string as reported by `/version`.
1730
+ # Corresponds to the JSON property `kubernetesApiServerVersion`
1731
+ # @return [String]
1732
+ attr_accessor :kubernetes_api_server_version
1733
+
1734
+ # Output only. The total memory capacity as reported by the sum of all
1735
+ # Kubernetes nodes resources, defined in MB.
1736
+ # Corresponds to the JSON property `memoryMb`
1737
+ # @return [Fixnum]
1738
+ attr_accessor :memory_mb
1739
+
1740
+ # Output only. Node count as reported by Kubernetes nodes resources.
1741
+ # Corresponds to the JSON property `nodeCount`
1742
+ # @return [Fixnum]
1743
+ attr_accessor :node_count
1744
+
1745
+ # Output only. Node providerID as reported by the first node in the list of
1746
+ # nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-
1747
+ # node clusters (like GKE-on-GCP), the node_count will be zero and the
1748
+ # node_provider_id will be empty.
1749
+ # Corresponds to the JSON property `nodeProviderId`
1750
+ # @return [String]
1751
+ attr_accessor :node_provider_id
1752
+
1753
+ # Output only. The time at which these details were last updated. This
1754
+ # update_time is different from the Membership-level update_time since
1755
+ # EndpointDetails are updated internally for API consumers.
1756
+ # Corresponds to the JSON property `updateTime`
1757
+ # @return [String]
1758
+ attr_accessor :update_time
1759
+
1760
+ # Output only. vCPU count as reported by Kubernetes nodes resources.
1761
+ # Corresponds to the JSON property `vcpuCount`
1762
+ # @return [Fixnum]
1763
+ attr_accessor :vcpu_count
1764
+
1765
+ def initialize(**args)
1766
+ update!(**args)
1767
+ end
1768
+
1769
+ # Update properties of this object
1770
+ def update!(**args)
1771
+ @kubernetes_api_server_version = args[:kubernetes_api_server_version] if args.key?(:kubernetes_api_server_version)
1772
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
1773
+ @node_count = args[:node_count] if args.key?(:node_count)
1774
+ @node_provider_id = args[:node_provider_id] if args.key?(:node_provider_id)
1775
+ @update_time = args[:update_time] if args.key?(:update_time)
1776
+ @vcpu_count = args[:vcpu_count] if args.key?(:vcpu_count)
1777
+ end
1778
+ end
1779
+
1780
+ # Response message for the `GkeHub.ListAdminClusterMemberships` method.
1781
+ class ListAdminClusterMembershipsResponse
1782
+ include Google::Apis::Core::Hashable
1783
+
1784
+ # The list of matching Memberships of admin clusters.
1785
+ # Corresponds to the JSON property `adminClusterMemberships`
1786
+ # @return [Array<Google::Apis::GkehubV1alpha::Membership>]
1787
+ attr_accessor :admin_cluster_memberships
1788
+
1789
+ # A token to request the next page of resources from the `
1790
+ # ListAdminClusterMemberships` method. The value of an empty string means that
1791
+ # there are no more resources to return.
1792
+ # Corresponds to the JSON property `nextPageToken`
1793
+ # @return [String]
1794
+ attr_accessor :next_page_token
1795
+
1796
+ # List of locations that could not be reached while fetching this list.
1797
+ # Corresponds to the JSON property `unreachable`
1798
+ # @return [Array<String>]
1799
+ attr_accessor :unreachable
1800
+
1801
+ def initialize(**args)
1802
+ update!(**args)
1803
+ end
1804
+
1805
+ # Update properties of this object
1806
+ def update!(**args)
1807
+ @admin_cluster_memberships = args[:admin_cluster_memberships] if args.key?(:admin_cluster_memberships)
1808
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1809
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1810
+ end
1811
+ end
1812
+
1526
1813
  # Response message for the `GkeHub.ListFeatures` method.
1527
1814
  class ListFeaturesResponse
1528
1815
  include Google::Apis::Core::Hashable
@@ -1574,6 +1861,39 @@ module Google
1574
1861
  end
1575
1862
  end
1576
1863
 
1864
+ # Response message for the `GkeHub.ListMemberships` method.
1865
+ class ListMembershipsResponse
1866
+ include Google::Apis::Core::Hashable
1867
+
1868
+ # A token to request the next page of resources from the `ListMemberships`
1869
+ # method. The value of an empty string means that there are no more resources to
1870
+ # return.
1871
+ # Corresponds to the JSON property `nextPageToken`
1872
+ # @return [String]
1873
+ attr_accessor :next_page_token
1874
+
1875
+ # The list of matching Memberships.
1876
+ # Corresponds to the JSON property `resources`
1877
+ # @return [Array<Google::Apis::GkehubV1alpha::Membership>]
1878
+ attr_accessor :resources
1879
+
1880
+ # List of locations that could not be reached while fetching this list.
1881
+ # Corresponds to the JSON property `unreachable`
1882
+ # @return [Array<String>]
1883
+ attr_accessor :unreachable
1884
+
1885
+ def initialize(**args)
1886
+ update!(**args)
1887
+ end
1888
+
1889
+ # Update properties of this object
1890
+ def update!(**args)
1891
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1892
+ @resources = args[:resources] if args.key?(:resources)
1893
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1894
+ end
1895
+ end
1896
+
1577
1897
  # The response message for Operations.ListOperations.
1578
1898
  class ListOperationsResponse
1579
1899
  include Google::Apis::Core::Hashable
@@ -1646,6 +1966,148 @@ module Google
1646
1966
  end
1647
1967
  end
1648
1968
 
1969
+ # Membership contains information about a member cluster.
1970
+ class Membership
1971
+ include Google::Apis::Core::Hashable
1972
+
1973
+ # Authority encodes how Google will recognize identities from this Membership.
1974
+ # See the workload identity documentation for more details: https://cloud.google.
1975
+ # com/kubernetes-engine/docs/how-to/workload-identity
1976
+ # Corresponds to the JSON property `authority`
1977
+ # @return [Google::Apis::GkehubV1alpha::Authority]
1978
+ attr_accessor :authority
1979
+
1980
+ # Output only. When the Membership was created.
1981
+ # Corresponds to the JSON property `createTime`
1982
+ # @return [String]
1983
+ attr_accessor :create_time
1984
+
1985
+ # Output only. When the Membership was deleted.
1986
+ # Corresponds to the JSON property `deleteTime`
1987
+ # @return [String]
1988
+ attr_accessor :delete_time
1989
+
1990
+ # Output only. Description of this membership, limited to 63 characters. Must
1991
+ # match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
1992
+ # Corresponds to the JSON property `description`
1993
+ # @return [String]
1994
+ attr_accessor :description
1995
+
1996
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
1997
+ # endpoint and any additional Kubernetes metadata.
1998
+ # Corresponds to the JSON property `endpoint`
1999
+ # @return [Google::Apis::GkehubV1alpha::MembershipEndpoint]
2000
+ attr_accessor :endpoint
2001
+
2002
+ # Optional. An externally-generated and managed ID for this Membership. This ID
2003
+ # may be modified after creation, but this is not recommended. The ID must match
2004
+ # the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster,
2005
+ # this value should be set to the UID of the `kube-system` namespace object.
2006
+ # Corresponds to the JSON property `externalId`
2007
+ # @return [String]
2008
+ attr_accessor :external_id
2009
+
2010
+ # Optional. GCP labels for this membership.
2011
+ # Corresponds to the JSON property `labels`
2012
+ # @return [Hash<String,String>]
2013
+ attr_accessor :labels
2014
+
2015
+ # Output only. For clusters using Connect, the timestamp of the most recent
2016
+ # connection established with Google Cloud. This time is updated every several
2017
+ # minutes, not continuously. For clusters that do not use GKE Connect, or that
2018
+ # have never connected successfully, this field will be unset.
2019
+ # Corresponds to the JSON property `lastConnectionTime`
2020
+ # @return [String]
2021
+ attr_accessor :last_connection_time
2022
+
2023
+ # Output only. The full, unique name of this Membership resource in the format `
2024
+ # projects/*/locations/*/memberships/`membership_id``, set during creation. `
2025
+ # membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63
2026
+ # characters in length 2. It must consist of lower case alphanumeric characters
2027
+ # or `-` 3. It must start and end with an alphanumeric character Which can be
2028
+ # expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length
2029
+ # of 63 characters.
2030
+ # Corresponds to the JSON property `name`
2031
+ # @return [String]
2032
+ attr_accessor :name
2033
+
2034
+ # MembershipState describes the state of a Membership resource.
2035
+ # Corresponds to the JSON property `state`
2036
+ # @return [Google::Apis::GkehubV1alpha::MembershipState]
2037
+ attr_accessor :state
2038
+
2039
+ # Output only. Google-generated UUID for this resource. This is unique across
2040
+ # all Membership resources. If a Membership resource is deleted and another
2041
+ # resource with the same name is created, it gets a different unique_id.
2042
+ # Corresponds to the JSON property `uniqueId`
2043
+ # @return [String]
2044
+ attr_accessor :unique_id
2045
+
2046
+ # Output only. When the Membership was last updated.
2047
+ # Corresponds to the JSON property `updateTime`
2048
+ # @return [String]
2049
+ attr_accessor :update_time
2050
+
2051
+ def initialize(**args)
2052
+ update!(**args)
2053
+ end
2054
+
2055
+ # Update properties of this object
2056
+ def update!(**args)
2057
+ @authority = args[:authority] if args.key?(:authority)
2058
+ @create_time = args[:create_time] if args.key?(:create_time)
2059
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
2060
+ @description = args[:description] if args.key?(:description)
2061
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2062
+ @external_id = args[:external_id] if args.key?(:external_id)
2063
+ @labels = args[:labels] if args.key?(:labels)
2064
+ @last_connection_time = args[:last_connection_time] if args.key?(:last_connection_time)
2065
+ @name = args[:name] if args.key?(:name)
2066
+ @state = args[:state] if args.key?(:state)
2067
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
2068
+ @update_time = args[:update_time] if args.key?(:update_time)
2069
+ end
2070
+ end
2071
+
2072
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
2073
+ # endpoint and any additional Kubernetes metadata.
2074
+ class MembershipEndpoint
2075
+ include Google::Apis::Core::Hashable
2076
+
2077
+ # GkeCluster contains information specific to GKE clusters.
2078
+ # Corresponds to the JSON property `gkeCluster`
2079
+ # @return [Google::Apis::GkehubV1alpha::GkeCluster]
2080
+ attr_accessor :gke_cluster
2081
+
2082
+ # KubernetesMetadata provides informational metadata for Memberships
2083
+ # representing Kubernetes clusters.
2084
+ # Corresponds to the JSON property `kubernetesMetadata`
2085
+ # @return [Google::Apis::GkehubV1alpha::KubernetesMetadata]
2086
+ attr_accessor :kubernetes_metadata
2087
+
2088
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
2089
+ # Corresponds to the JSON property `multiCloudCluster`
2090
+ # @return [Google::Apis::GkehubV1alpha::MultiCloudCluster]
2091
+ attr_accessor :multi_cloud_cluster
2092
+
2093
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
2094
+ # Corresponds to the JSON property `onPremCluster`
2095
+ # @return [Google::Apis::GkehubV1alpha::OnPremCluster]
2096
+ attr_accessor :on_prem_cluster
2097
+
2098
+ def initialize(**args)
2099
+ update!(**args)
2100
+ end
2101
+
2102
+ # Update properties of this object
2103
+ def update!(**args)
2104
+ @gke_cluster = args[:gke_cluster] if args.key?(:gke_cluster)
2105
+ @kubernetes_metadata = args[:kubernetes_metadata] if args.key?(:kubernetes_metadata)
2106
+ @multi_cloud_cluster = args[:multi_cloud_cluster] if args.key?(:multi_cloud_cluster)
2107
+ @on_prem_cluster = args[:on_prem_cluster] if args.key?(:on_prem_cluster)
2108
+ end
2109
+ end
2110
+
1649
2111
  # MembershipFeatureSpec contains configuration information for a single
1650
2112
  # Membership.
1651
2113
  class MembershipFeatureSpec
@@ -1662,6 +2124,11 @@ module Google
1662
2124
  # @return [Google::Apis::GkehubV1alpha::IdentityServiceMembershipSpec]
1663
2125
  attr_accessor :identityservice
1664
2126
 
2127
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2128
+ # Corresponds to the JSON property `mesh`
2129
+ # @return [Google::Apis::GkehubV1alpha::ServiceMeshMembershipSpec]
2130
+ attr_accessor :mesh
2131
+
1665
2132
  def initialize(**args)
1666
2133
  update!(**args)
1667
2134
  end
@@ -1670,6 +2137,7 @@ module Google
1670
2137
  def update!(**args)
1671
2138
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1672
2139
  @identityservice = args[:identityservice] if args.key?(:identityservice)
2140
+ @mesh = args[:mesh] if args.key?(:mesh)
1673
2141
  end
1674
2142
  end
1675
2143
 
@@ -1678,6 +2146,11 @@ module Google
1678
2146
  class MembershipFeatureState
1679
2147
  include Google::Apis::Core::Hashable
1680
2148
 
2149
+ # State for App Dev Exp Feature.
2150
+ # Corresponds to the JSON property `appdevexperience`
2151
+ # @return [Google::Apis::GkehubV1alpha::AppDevExperienceFeatureState]
2152
+ attr_accessor :appdevexperience
2153
+
1681
2154
  # **Anthos Config Management**: State for a single cluster.
1682
2155
  # Corresponds to the JSON property `configmanagement`
1683
2156
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementMembershipState]
@@ -1712,6 +2185,7 @@ module Google
1712
2185
 
1713
2186
  # Update properties of this object
1714
2187
  def update!(**args)
2188
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
1715
2189
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
1716
2190
  @identityservice = args[:identityservice] if args.key?(:identityservice)
1717
2191
  @metering = args[:metering] if args.key?(:metering)
@@ -1720,6 +2194,25 @@ module Google
1720
2194
  end
1721
2195
  end
1722
2196
 
2197
+ # MembershipState describes the state of a Membership resource.
2198
+ class MembershipState
2199
+ include Google::Apis::Core::Hashable
2200
+
2201
+ # Output only. The current state of the Membership resource.
2202
+ # Corresponds to the JSON property `code`
2203
+ # @return [String]
2204
+ attr_accessor :code
2205
+
2206
+ def initialize(**args)
2207
+ update!(**args)
2208
+ end
2209
+
2210
+ # Update properties of this object
2211
+ def update!(**args)
2212
+ @code = args[:code] if args.key?(:code)
2213
+ end
2214
+ end
2215
+
1723
2216
  # **Metering**: Per-Membership Feature State.
1724
2217
  class MeteringMembershipState
1725
2218
  include Google::Apis::Core::Hashable
@@ -1747,6 +2240,36 @@ module Google
1747
2240
  end
1748
2241
  end
1749
2242
 
2243
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
2244
+ class MultiCloudCluster
2245
+ include Google::Apis::Core::Hashable
2246
+
2247
+ # Output only. If cluster_missing is set then it denotes that API(gkemulticloud.
2248
+ # googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.
2249
+ # Corresponds to the JSON property `clusterMissing`
2250
+ # @return [Boolean]
2251
+ attr_accessor :cluster_missing
2252
+ alias_method :cluster_missing?, :cluster_missing
2253
+
2254
+ # Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For
2255
+ # example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-
2256
+ # a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/
2257
+ # locations/us-west1-a/azureClusters/my-cluster
2258
+ # Corresponds to the JSON property `resourceLink`
2259
+ # @return [String]
2260
+ attr_accessor :resource_link
2261
+
2262
+ def initialize(**args)
2263
+ update!(**args)
2264
+ end
2265
+
2266
+ # Update properties of this object
2267
+ def update!(**args)
2268
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
2269
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
2270
+ end
2271
+ end
2272
+
1750
2273
  # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress
1751
2274
  # feature.
1752
2275
  class MultiClusterIngressFeatureSpec
@@ -1775,6 +2298,43 @@ module Google
1775
2298
  end
1776
2299
  end
1777
2300
 
2301
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
2302
+ class OnPremCluster
2303
+ include Google::Apis::Core::Hashable
2304
+
2305
+ # Immutable. Whether the cluster is an admin cluster.
2306
+ # Corresponds to the JSON property `adminCluster`
2307
+ # @return [Boolean]
2308
+ attr_accessor :admin_cluster
2309
+ alias_method :admin_cluster?, :admin_cluster
2310
+
2311
+ # Output only. If cluster_missing is set then it denotes that API(gkeonprem.
2312
+ # googleapis.com) resource for this GKE On-Prem cluster no longer exists.
2313
+ # Corresponds to the JSON property `clusterMissing`
2314
+ # @return [Boolean]
2315
+ attr_accessor :cluster_missing
2316
+ alias_method :cluster_missing?, :cluster_missing
2317
+
2318
+ # Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For
2319
+ # example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/
2320
+ # vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/
2321
+ # locations/us-west1-a/bareMetalClusters/my-cluster
2322
+ # Corresponds to the JSON property `resourceLink`
2323
+ # @return [String]
2324
+ attr_accessor :resource_link
2325
+
2326
+ def initialize(**args)
2327
+ update!(**args)
2328
+ end
2329
+
2330
+ # Update properties of this object
2331
+ def update!(**args)
2332
+ @admin_cluster = args[:admin_cluster] if args.key?(:admin_cluster)
2333
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
2334
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
2335
+ end
2336
+ end
2337
+
1778
2338
  # This resource represents a long-running operation that is the result of a
1779
2339
  # network API call.
1780
2340
  class Operation
@@ -1898,31 +2458,31 @@ module Google
1898
2458
 
1899
2459
  # An Identity and Access Management (IAM) policy, which specifies access
1900
2460
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1901
- # A `binding` binds one or more `members` to a single `role`. Members can be
1902
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
1903
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
1904
- # role or a user-created custom role. For some types of Google Cloud resources,
1905
- # a `binding` can also specify a `condition`, which is a logical expression that
1906
- # allows access to a resource only if the expression evaluates to `true`. A
1907
- # condition can add constraints based on attributes of the request, the resource,
1908
- # or both. To learn which resources support conditions in their IAM policies,
1909
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1910
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1911
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1912
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1913
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1914
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1915
- # title": "expirable access", "description": "Does not grant access after Sep
1916
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1917
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1918
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
1919
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1920
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1921
- # roles/resourcemanager.organizationViewer condition: title: expirable access
1922
- # description: Does not grant access after Sep 2020 expression: request.time <
1923
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
1924
- # description of IAM and its features, see the [IAM documentation](https://cloud.
1925
- # google.com/iam/docs/).
2461
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2462
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2463
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2464
+ # an IAM predefined role or a user-created custom role. For some types of Google
2465
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2466
+ # logical expression that allows access to a resource only if the expression
2467
+ # evaluates to `true`. A condition can add constraints based on attributes of
2468
+ # the request, the resource, or both. To learn which resources support
2469
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2470
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2471
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2472
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2473
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2474
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2475
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2476
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2477
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2478
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2479
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2480
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2481
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2482
+ # access description: Does not grant access after Sep 2020 expression: request.
2483
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2484
+ # a description of IAM and its features, see the [IAM documentation](https://
2485
+ # cloud.google.com/iam/docs/).
1926
2486
  class Policy
1927
2487
  include Google::Apis::Core::Hashable
1928
2488
 
@@ -1931,9 +2491,14 @@ module Google
1931
2491
  # @return [Array<Google::Apis::GkehubV1alpha::AuditConfig>]
1932
2492
  attr_accessor :audit_configs
1933
2493
 
1934
- # Associates a list of `members` to a `role`. Optionally, may specify a `
1935
- # condition` that determines how and when the `bindings` are applied. Each of
1936
- # the `bindings` must contain at least one member.
2494
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
2495
+ # specify a `condition` that determines how and when the `bindings` are applied.
2496
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
2497
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2498
+ # can be Google groups. Each occurrence of a principal counts towards these
2499
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2500
+ # example.com`, and not to any other principal, then you can add another 1,450
2501
+ # principals to the `bindings` in the `Policy`.
1937
2502
  # Corresponds to the JSON property `bindings`
1938
2503
  # @return [Array<Google::Apis::GkehubV1alpha::Binding>]
1939
2504
  attr_accessor :bindings
@@ -2088,6 +2653,19 @@ module Google
2088
2653
  end
2089
2654
  end
2090
2655
 
2656
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2657
+ class ServiceMeshMembershipSpec
2658
+ include Google::Apis::Core::Hashable
2659
+
2660
+ def initialize(**args)
2661
+ update!(**args)
2662
+ end
2663
+
2664
+ # Update properties of this object
2665
+ def update!(**args)
2666
+ end
2667
+ end
2668
+
2091
2669
  # **Service Mesh**: State for a single Membership, as analyzed by the Service
2092
2670
  # Mesh Hub Controller.
2093
2671
  class ServiceMeshMembershipState
@@ -2147,31 +2725,31 @@ module Google
2147
2725
 
2148
2726
  # An Identity and Access Management (IAM) policy, which specifies access
2149
2727
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2150
- # A `binding` binds one or more `members` to a single `role`. Members can be
2151
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2152
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2153
- # role or a user-created custom role. For some types of Google Cloud resources,
2154
- # a `binding` can also specify a `condition`, which is a logical expression that
2155
- # allows access to a resource only if the expression evaluates to `true`. A
2156
- # condition can add constraints based on attributes of the request, the resource,
2157
- # or both. To learn which resources support conditions in their IAM policies,
2158
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2159
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2160
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2161
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2162
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2163
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2164
- # title": "expirable access", "description": "Does not grant access after Sep
2165
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2166
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2167
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2168
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2169
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2170
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2171
- # description: Does not grant access after Sep 2020 expression: request.time <
2172
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
2173
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2174
- # google.com/iam/docs/).
2728
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2729
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2730
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2731
+ # an IAM predefined role or a user-created custom role. For some types of Google
2732
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2733
+ # logical expression that allows access to a resource only if the expression
2734
+ # evaluates to `true`. A condition can add constraints based on attributes of
2735
+ # the request, the resource, or both. To learn which resources support
2736
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2737
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2738
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2739
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2740
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2741
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2742
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2743
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2744
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2745
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2746
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2747
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2748
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2749
+ # access description: Does not grant access after Sep 2020 expression: request.
2750
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2751
+ # a description of IAM and its features, see the [IAM documentation](https://
2752
+ # cloud.google.com/iam/docs/).
2175
2753
  # Corresponds to the JSON property `policy`
2176
2754
  # @return [Google::Apis::GkehubV1alpha::Policy]
2177
2755
  attr_accessor :policy
@@ -2194,6 +2772,31 @@ module Google
2194
2772
  end
2195
2773
  end
2196
2774
 
2775
+ # Status specifies state for the subcomponent.
2776
+ class Status
2777
+ include Google::Apis::Core::Hashable
2778
+
2779
+ # Code specifies AppDevExperienceFeature's subcomponent ready state.
2780
+ # Corresponds to the JSON property `code`
2781
+ # @return [String]
2782
+ attr_accessor :code
2783
+
2784
+ # Description is populated if Code is Failed, explaining why it has failed.
2785
+ # Corresponds to the JSON property `description`
2786
+ # @return [String]
2787
+ attr_accessor :description
2788
+
2789
+ def initialize(**args)
2790
+ update!(**args)
2791
+ end
2792
+
2793
+ # Update properties of this object
2794
+ def update!(**args)
2795
+ @code = args[:code] if args.key?(:code)
2796
+ @description = args[:description] if args.key?(:description)
2797
+ end
2798
+ end
2799
+
2197
2800
  # Request message for `TestIamPermissions` method.
2198
2801
  class TestIamPermissionsRequest
2199
2802
  include Google::Apis::Core::Hashable
@@ -2233,6 +2836,32 @@ module Google
2233
2836
  @permissions = args[:permissions] if args.key?(:permissions)
2234
2837
  end
2235
2838
  end
2839
+
2840
+ # TypeMeta is the type information needed for content unmarshalling of
2841
+ # Kubernetes resources in the manifest.
2842
+ class TypeMeta
2843
+ include Google::Apis::Core::Hashable
2844
+
2845
+ # APIVersion of the resource (e.g. v1).
2846
+ # Corresponds to the JSON property `apiVersion`
2847
+ # @return [String]
2848
+ attr_accessor :api_version
2849
+
2850
+ # Kind of the resource (e.g. Deployment).
2851
+ # Corresponds to the JSON property `kind`
2852
+ # @return [String]
2853
+ attr_accessor :kind
2854
+
2855
+ def initialize(**args)
2856
+ update!(**args)
2857
+ end
2858
+
2859
+ # Update properties of this object
2860
+ def update!(**args)
2861
+ @api_version = args[:api_version] if args.key?(:api_version)
2862
+ @kind = args[:kind] if args.key?(:kind)
2863
+ end
2864
+ end
2236
2865
  end
2237
2866
  end
2238
2867
  end