google-apis-gkehub_v1alpha 0.9.0 → 0.13.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.
@@ -93,7 +93,61 @@ module Google
93
93
  end
94
94
  end
95
95
 
96
- # Associates `members` with a `role`.
96
+ # Authority encodes how Google will recognize identities from this Membership.
97
+ # See the workload identity documentation for more details: https://cloud.google.
98
+ # com/kubernetes-engine/docs/how-to/workload-identity
99
+ class Authority
100
+ include Google::Apis::Core::Hashable
101
+
102
+ # Output only. An identity provider that reflects the `issuer` in the workload
103
+ # identity pool.
104
+ # Corresponds to the JSON property `identityProvider`
105
+ # @return [String]
106
+ attr_accessor :identity_provider
107
+
108
+ # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://
109
+ # ` and be a valid URL with length <2000 characters. If set, then Google will
110
+ # allow valid OIDC tokens from this issuer to authenticate within the
111
+ # workload_identity_pool. OIDC discovery will be performed on this URI to
112
+ # validate tokens from the issuer. Clearing `issuer` disables Workload Identity.
113
+ # `issuer` cannot be directly modified; it must be cleared (and Workload
114
+ # Identity disabled) before using a new issuer (and re-enabling Workload
115
+ # Identity).
116
+ # Corresponds to the JSON property `issuer`
117
+ # @return [String]
118
+ attr_accessor :issuer
119
+
120
+ # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517).
121
+ # When this field is set, OIDC discovery will NOT be performed on `issuer`, and
122
+ # instead OIDC tokens will be validated using this field.
123
+ # Corresponds to the JSON property `oidcJwks`
124
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
125
+ # @return [String]
126
+ attr_accessor :oidc_jwks
127
+
128
+ # Output only. The name of the workload identity pool in which `issuer` will be
129
+ # recognized. There is a single Workload Identity Pool per Hub that is shared
130
+ # between all Memberships that belong to that Hub. For a Hub hosted in `
131
+ # PROJECT_ID`, the workload pool format is ``PROJECT_ID`.hub.id.goog`, although
132
+ # this is subject to change in newer versions of this API.
133
+ # Corresponds to the JSON property `workloadIdentityPool`
134
+ # @return [String]
135
+ attr_accessor :workload_identity_pool
136
+
137
+ def initialize(**args)
138
+ update!(**args)
139
+ end
140
+
141
+ # Update properties of this object
142
+ def update!(**args)
143
+ @identity_provider = args[:identity_provider] if args.key?(:identity_provider)
144
+ @issuer = args[:issuer] if args.key?(:issuer)
145
+ @oidc_jwks = args[:oidc_jwks] if args.key?(:oidc_jwks)
146
+ @workload_identity_pool = args[:workload_identity_pool] if args.key?(:workload_identity_pool)
147
+ end
148
+ end
149
+
150
+ # Associates `members`, or principals, with a `role`.
97
151
  class Binding
98
152
  include Google::Apis::Core::Hashable
99
153
 
@@ -116,7 +170,7 @@ module Google
116
170
  # @return [Google::Apis::GkehubV1alpha::Expr]
117
171
  attr_accessor :condition
118
172
 
119
- # Specifies the identities requesting access for a Cloud Platform resource. `
173
+ # Specifies the principals requesting access for a Cloud Platform resource. `
120
174
  # members` can have the following values: * `allUsers`: A special identifier
121
175
  # that represents anyone who is on the internet; with or without a Google
122
176
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -146,8 +200,8 @@ module Google
146
200
  # @return [Array<String>]
147
201
  attr_accessor :members
148
202
 
149
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
150
- # , or `roles/owner`.
203
+ # Role that is assigned to the list of `members`, or principals. For example, `
204
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
151
205
  # Corresponds to the JSON property `role`
152
206
  # @return [String]
153
207
  attr_accessor :role
@@ -322,6 +376,16 @@ module Google
322
376
  class ConfigManagementConfigSync
323
377
  include Google::Apis::Core::Hashable
324
378
 
379
+ # Enables the installation of ConfigSync. If set to true, ConfigSync resources
380
+ # will be created and the other ConfigSync fields will be applied if exist. If
381
+ # set to false, all other ConfigSync fields will be ignored, ConfigSync
382
+ # resources will be deleted. If omitted, ConfigSync resources will be managed
383
+ # depends on the presence of git field.
384
+ # Corresponds to the JSON property `enabled`
385
+ # @return [Boolean]
386
+ attr_accessor :enabled
387
+ alias_method :enabled?, :enabled
388
+
325
389
  # Git repo configuration for a single cluster.
326
390
  # Corresponds to the JSON property `git`
327
391
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementGitConfig]
@@ -339,6 +403,7 @@ module Google
339
403
 
340
404
  # Update properties of this object
341
405
  def update!(**args)
406
+ @enabled = args[:enabled] if args.key?(:enabled)
342
407
  @git = args[:git] if args.key?(:git)
343
408
  @source_format = args[:source_format] if args.key?(:source_format)
344
409
  end
@@ -348,6 +413,11 @@ module Google
348
413
  class ConfigManagementConfigSyncDeploymentState
349
414
  include Google::Apis::Core::Hashable
350
415
 
416
+ # Deployment state of admission-webhook
417
+ # Corresponds to the JSON property `admissionWebhook`
418
+ # @return [String]
419
+ attr_accessor :admission_webhook
420
+
351
421
  # Deployment state of the git-sync pod
352
422
  # Corresponds to the JSON property `gitSync`
353
423
  # @return [String]
@@ -384,6 +454,7 @@ module Google
384
454
 
385
455
  # Update properties of this object
386
456
  def update!(**args)
457
+ @admission_webhook = args[:admission_webhook] if args.key?(:admission_webhook)
387
458
  @git_sync = args[:git_sync] if args.key?(:git_sync)
388
459
  @importer = args[:importer] if args.key?(:importer)
389
460
  @monitor = args[:monitor] if args.key?(:monitor)
@@ -428,6 +499,11 @@ module Google
428
499
  class ConfigManagementConfigSyncVersion
429
500
  include Google::Apis::Core::Hashable
430
501
 
502
+ # Version of the deployed admission_webhook pod
503
+ # Corresponds to the JSON property `admissionWebhook`
504
+ # @return [String]
505
+ attr_accessor :admission_webhook
506
+
431
507
  # Version of the deployed git-sync pod
432
508
  # Corresponds to the JSON property `gitSync`
433
509
  # @return [String]
@@ -464,6 +540,7 @@ module Google
464
540
 
465
541
  # Update properties of this object
466
542
  def update!(**args)
543
+ @admission_webhook = args[:admission_webhook] if args.key?(:admission_webhook)
467
544
  @git_sync = args[:git_sync] if args.key?(:git_sync)
468
545
  @importer = args[:importer] if args.key?(:importer)
469
546
  @monitor = args[:monitor] if args.key?(:monitor)
@@ -1096,6 +1173,33 @@ module Google
1096
1173
  end
1097
1174
  end
1098
1175
 
1176
+ # ConnectAgentResource represents a Kubernetes resource manifest for Connect
1177
+ # Agent deployment.
1178
+ class ConnectAgentResource
1179
+ include Google::Apis::Core::Hashable
1180
+
1181
+ # YAML manifest of the resource.
1182
+ # Corresponds to the JSON property `manifest`
1183
+ # @return [String]
1184
+ attr_accessor :manifest
1185
+
1186
+ # TypeMeta is the type information needed for content unmarshalling of
1187
+ # Kubernetes resources in the manifest.
1188
+ # Corresponds to the JSON property `type`
1189
+ # @return [Google::Apis::GkehubV1alpha::TypeMeta]
1190
+ attr_accessor :type
1191
+
1192
+ def initialize(**args)
1193
+ update!(**args)
1194
+ end
1195
+
1196
+ # Update properties of this object
1197
+ def update!(**args)
1198
+ @manifest = args[:manifest] if args.key?(:manifest)
1199
+ @type = args[:type] if args.key?(:type)
1200
+ end
1201
+ end
1202
+
1099
1203
  # A generic empty message that you can re-use to avoid defining duplicated empty
1100
1204
  # messages in your APIs. A typical example is to use it as the request or the
1101
1205
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1312,6 +1416,56 @@ module Google
1312
1416
  end
1313
1417
  end
1314
1418
 
1419
+ # GenerateConnectManifestResponse contains manifest information for installing/
1420
+ # upgrading a Connect agent.
1421
+ class GenerateConnectManifestResponse
1422
+ include Google::Apis::Core::Hashable
1423
+
1424
+ # The ordered list of Kubernetes resources that need to be applied to the
1425
+ # cluster for GKE Connect agent installation/upgrade.
1426
+ # Corresponds to the JSON property `manifest`
1427
+ # @return [Array<Google::Apis::GkehubV1alpha::ConnectAgentResource>]
1428
+ attr_accessor :manifest
1429
+
1430
+ def initialize(**args)
1431
+ update!(**args)
1432
+ end
1433
+
1434
+ # Update properties of this object
1435
+ def update!(**args)
1436
+ @manifest = args[:manifest] if args.key?(:manifest)
1437
+ end
1438
+ end
1439
+
1440
+ # GkeCluster contains information specific to GKE clusters.
1441
+ class GkeCluster
1442
+ include Google::Apis::Core::Hashable
1443
+
1444
+ # Output only. If cluster_missing is set then it denotes that the GKE cluster no
1445
+ # longer exists in the GKE Control Plane.
1446
+ # Corresponds to the JSON property `clusterMissing`
1447
+ # @return [Boolean]
1448
+ attr_accessor :cluster_missing
1449
+ alias_method :cluster_missing?, :cluster_missing
1450
+
1451
+ # Immutable. Self-link of the GCP resource for the GKE cluster. For example: //
1452
+ # container.googleapis.com/projects/my-project/locations/us-west1-a/clusters/my-
1453
+ # cluster Zonal clusters are also supported.
1454
+ # Corresponds to the JSON property `resourceLink`
1455
+ # @return [String]
1456
+ attr_accessor :resource_link
1457
+
1458
+ def initialize(**args)
1459
+ update!(**args)
1460
+ end
1461
+
1462
+ # Update properties of this object
1463
+ def update!(**args)
1464
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
1465
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
1466
+ end
1467
+ end
1468
+
1315
1469
  # The `Status` type defines a logical error model that is suitable for different
1316
1470
  # programming environments, including REST APIs and RPC APIs. It is used by [
1317
1471
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -1351,6 +1505,267 @@ module Google
1351
1505
  end
1352
1506
  end
1353
1507
 
1508
+ # Configuration of an auth method for a member/cluster. Only one authentication
1509
+ # method (e.g., OIDC and LDAP) can be set per AuthMethod.
1510
+ class IdentityServiceAuthMethod
1511
+ include Google::Apis::Core::Hashable
1512
+
1513
+ # Identifier for auth config.
1514
+ # Corresponds to the JSON property `name`
1515
+ # @return [String]
1516
+ attr_accessor :name
1517
+
1518
+ # Configuration for OIDC Auth flow.
1519
+ # Corresponds to the JSON property `oidcConfig`
1520
+ # @return [Google::Apis::GkehubV1alpha::IdentityServiceOidcConfig]
1521
+ attr_accessor :oidc_config
1522
+
1523
+ # Proxy server address to use for auth method.
1524
+ # Corresponds to the JSON property `proxy`
1525
+ # @return [String]
1526
+ attr_accessor :proxy
1527
+
1528
+ def initialize(**args)
1529
+ update!(**args)
1530
+ end
1531
+
1532
+ # Update properties of this object
1533
+ def update!(**args)
1534
+ @name = args[:name] if args.key?(:name)
1535
+ @oidc_config = args[:oidc_config] if args.key?(:oidc_config)
1536
+ @proxy = args[:proxy] if args.key?(:proxy)
1537
+ end
1538
+ end
1539
+
1540
+ # **Anthos Identity Service**: Configuration for a single Membership.
1541
+ class IdentityServiceMembershipSpec
1542
+ include Google::Apis::Core::Hashable
1543
+
1544
+ # A member may support multiple auth methods.
1545
+ # Corresponds to the JSON property `authMethods`
1546
+ # @return [Array<Google::Apis::GkehubV1alpha::IdentityServiceAuthMethod>]
1547
+ attr_accessor :auth_methods
1548
+
1549
+ def initialize(**args)
1550
+ update!(**args)
1551
+ end
1552
+
1553
+ # Update properties of this object
1554
+ def update!(**args)
1555
+ @auth_methods = args[:auth_methods] if args.key?(:auth_methods)
1556
+ end
1557
+ end
1558
+
1559
+ # **Anthos Identity Service**: State for a single Membership.
1560
+ class IdentityServiceMembershipState
1561
+ include Google::Apis::Core::Hashable
1562
+
1563
+ # The reason of the failure.
1564
+ # Corresponds to the JSON property `failureReason`
1565
+ # @return [String]
1566
+ attr_accessor :failure_reason
1567
+
1568
+ # Installed AIS version. This is the AIS version installed on this member. The
1569
+ # values makes sense iff state is OK.
1570
+ # Corresponds to the JSON property `installedVersion`
1571
+ # @return [String]
1572
+ attr_accessor :installed_version
1573
+
1574
+ # **Anthos Identity Service**: Configuration for a single Membership.
1575
+ # Corresponds to the JSON property `memberConfig`
1576
+ # @return [Google::Apis::GkehubV1alpha::IdentityServiceMembershipSpec]
1577
+ attr_accessor :member_config
1578
+
1579
+ # Deployment state on this member
1580
+ # Corresponds to the JSON property `state`
1581
+ # @return [String]
1582
+ attr_accessor :state
1583
+
1584
+ def initialize(**args)
1585
+ update!(**args)
1586
+ end
1587
+
1588
+ # Update properties of this object
1589
+ def update!(**args)
1590
+ @failure_reason = args[:failure_reason] if args.key?(:failure_reason)
1591
+ @installed_version = args[:installed_version] if args.key?(:installed_version)
1592
+ @member_config = args[:member_config] if args.key?(:member_config)
1593
+ @state = args[:state] if args.key?(:state)
1594
+ end
1595
+ end
1596
+
1597
+ # Configuration for OIDC Auth flow.
1598
+ class IdentityServiceOidcConfig
1599
+ include Google::Apis::Core::Hashable
1600
+
1601
+ # PEM-encoded CA for OIDC provider.
1602
+ # Corresponds to the JSON property `certificateAuthorityData`
1603
+ # @return [String]
1604
+ attr_accessor :certificate_authority_data
1605
+
1606
+ # ID for OIDC client application.
1607
+ # Corresponds to the JSON property `clientId`
1608
+ # @return [String]
1609
+ attr_accessor :client_id
1610
+
1611
+ # Flag to denote if reverse proxy is used to connect to auth provider. This flag
1612
+ # should be set to true when provider is not reachable by Google Cloud Console.
1613
+ # Corresponds to the JSON property `deployCloudConsoleProxy`
1614
+ # @return [Boolean]
1615
+ attr_accessor :deploy_cloud_console_proxy
1616
+ alias_method :deploy_cloud_console_proxy?, :deploy_cloud_console_proxy
1617
+
1618
+ # Comma-separated list of key-value pairs.
1619
+ # Corresponds to the JSON property `extraParams`
1620
+ # @return [String]
1621
+ attr_accessor :extra_params
1622
+
1623
+ # Prefix to prepend to group name.
1624
+ # Corresponds to the JSON property `groupPrefix`
1625
+ # @return [String]
1626
+ attr_accessor :group_prefix
1627
+
1628
+ # Claim in OIDC ID token that holds group information.
1629
+ # Corresponds to the JSON property `groupsClaim`
1630
+ # @return [String]
1631
+ attr_accessor :groups_claim
1632
+
1633
+ # URI for the OIDC provider. This should point to the level below .well-known/
1634
+ # openid-configuration.
1635
+ # Corresponds to the JSON property `issuerUri`
1636
+ # @return [String]
1637
+ attr_accessor :issuer_uri
1638
+
1639
+ # Registered redirect uri to redirect users going through OAuth flow using
1640
+ # kubectl plugin.
1641
+ # Corresponds to the JSON property `kubectlRedirectUri`
1642
+ # @return [String]
1643
+ attr_accessor :kubectl_redirect_uri
1644
+
1645
+ # Comma-separated list of identifiers.
1646
+ # Corresponds to the JSON property `scopes`
1647
+ # @return [String]
1648
+ attr_accessor :scopes
1649
+
1650
+ # Claim in OIDC ID token that holds username.
1651
+ # Corresponds to the JSON property `userClaim`
1652
+ # @return [String]
1653
+ attr_accessor :user_claim
1654
+
1655
+ # Prefix to prepend to user name.
1656
+ # Corresponds to the JSON property `userPrefix`
1657
+ # @return [String]
1658
+ attr_accessor :user_prefix
1659
+
1660
+ def initialize(**args)
1661
+ update!(**args)
1662
+ end
1663
+
1664
+ # Update properties of this object
1665
+ def update!(**args)
1666
+ @certificate_authority_data = args[:certificate_authority_data] if args.key?(:certificate_authority_data)
1667
+ @client_id = args[:client_id] if args.key?(:client_id)
1668
+ @deploy_cloud_console_proxy = args[:deploy_cloud_console_proxy] if args.key?(:deploy_cloud_console_proxy)
1669
+ @extra_params = args[:extra_params] if args.key?(:extra_params)
1670
+ @group_prefix = args[:group_prefix] if args.key?(:group_prefix)
1671
+ @groups_claim = args[:groups_claim] if args.key?(:groups_claim)
1672
+ @issuer_uri = args[:issuer_uri] if args.key?(:issuer_uri)
1673
+ @kubectl_redirect_uri = args[:kubectl_redirect_uri] if args.key?(:kubectl_redirect_uri)
1674
+ @scopes = args[:scopes] if args.key?(:scopes)
1675
+ @user_claim = args[:user_claim] if args.key?(:user_claim)
1676
+ @user_prefix = args[:user_prefix] if args.key?(:user_prefix)
1677
+ end
1678
+ end
1679
+
1680
+ # KubernetesMetadata provides informational metadata for Memberships
1681
+ # representing Kubernetes clusters.
1682
+ class KubernetesMetadata
1683
+ include Google::Apis::Core::Hashable
1684
+
1685
+ # Output only. Kubernetes API server version string as reported by `/version`.
1686
+ # Corresponds to the JSON property `kubernetesApiServerVersion`
1687
+ # @return [String]
1688
+ attr_accessor :kubernetes_api_server_version
1689
+
1690
+ # Output only. The total memory capacity as reported by the sum of all
1691
+ # Kubernetes nodes resources, defined in MB.
1692
+ # Corresponds to the JSON property `memoryMb`
1693
+ # @return [Fixnum]
1694
+ attr_accessor :memory_mb
1695
+
1696
+ # Output only. Node count as reported by Kubernetes nodes resources.
1697
+ # Corresponds to the JSON property `nodeCount`
1698
+ # @return [Fixnum]
1699
+ attr_accessor :node_count
1700
+
1701
+ # Output only. Node providerID as reported by the first node in the list of
1702
+ # nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-
1703
+ # node clusters (like GKE-on-GCP), the node_count will be zero and the
1704
+ # node_provider_id will be empty.
1705
+ # Corresponds to the JSON property `nodeProviderId`
1706
+ # @return [String]
1707
+ attr_accessor :node_provider_id
1708
+
1709
+ # Output only. The time at which these details were last updated. This
1710
+ # update_time is different from the Membership-level update_time since
1711
+ # EndpointDetails are updated internally for API consumers.
1712
+ # Corresponds to the JSON property `updateTime`
1713
+ # @return [String]
1714
+ attr_accessor :update_time
1715
+
1716
+ # Output only. vCPU count as reported by Kubernetes nodes resources.
1717
+ # Corresponds to the JSON property `vcpuCount`
1718
+ # @return [Fixnum]
1719
+ attr_accessor :vcpu_count
1720
+
1721
+ def initialize(**args)
1722
+ update!(**args)
1723
+ end
1724
+
1725
+ # Update properties of this object
1726
+ def update!(**args)
1727
+ @kubernetes_api_server_version = args[:kubernetes_api_server_version] if args.key?(:kubernetes_api_server_version)
1728
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
1729
+ @node_count = args[:node_count] if args.key?(:node_count)
1730
+ @node_provider_id = args[:node_provider_id] if args.key?(:node_provider_id)
1731
+ @update_time = args[:update_time] if args.key?(:update_time)
1732
+ @vcpu_count = args[:vcpu_count] if args.key?(:vcpu_count)
1733
+ end
1734
+ end
1735
+
1736
+ # Response message for the `GkeHub.ListAdminClusterMemberships` method.
1737
+ class ListAdminClusterMembershipsResponse
1738
+ include Google::Apis::Core::Hashable
1739
+
1740
+ # The list of matching Memberships of admin clusters.
1741
+ # Corresponds to the JSON property `adminClusterMemberships`
1742
+ # @return [Array<Google::Apis::GkehubV1alpha::Membership>]
1743
+ attr_accessor :admin_cluster_memberships
1744
+
1745
+ # A token to request the next page of resources from the `
1746
+ # ListAdminClusterMemberships` method. The value of an empty string means that
1747
+ # there are no more resources to return.
1748
+ # Corresponds to the JSON property `nextPageToken`
1749
+ # @return [String]
1750
+ attr_accessor :next_page_token
1751
+
1752
+ # List of locations that could not be reached while fetching this list.
1753
+ # Corresponds to the JSON property `unreachable`
1754
+ # @return [Array<String>]
1755
+ attr_accessor :unreachable
1756
+
1757
+ def initialize(**args)
1758
+ update!(**args)
1759
+ end
1760
+
1761
+ # Update properties of this object
1762
+ def update!(**args)
1763
+ @admin_cluster_memberships = args[:admin_cluster_memberships] if args.key?(:admin_cluster_memberships)
1764
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1765
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1766
+ end
1767
+ end
1768
+
1354
1769
  # Response message for the `GkeHub.ListFeatures` method.
1355
1770
  class ListFeaturesResponse
1356
1771
  include Google::Apis::Core::Hashable
@@ -1402,6 +1817,39 @@ module Google
1402
1817
  end
1403
1818
  end
1404
1819
 
1820
+ # Response message for the `GkeHub.ListMemberships` method.
1821
+ class ListMembershipsResponse
1822
+ include Google::Apis::Core::Hashable
1823
+
1824
+ # A token to request the next page of resources from the `ListMemberships`
1825
+ # method. The value of an empty string means that there are no more resources to
1826
+ # return.
1827
+ # Corresponds to the JSON property `nextPageToken`
1828
+ # @return [String]
1829
+ attr_accessor :next_page_token
1830
+
1831
+ # The list of matching Memberships.
1832
+ # Corresponds to the JSON property `resources`
1833
+ # @return [Array<Google::Apis::GkehubV1alpha::Membership>]
1834
+ attr_accessor :resources
1835
+
1836
+ # List of locations that could not be reached while fetching this list.
1837
+ # Corresponds to the JSON property `unreachable`
1838
+ # @return [Array<String>]
1839
+ attr_accessor :unreachable
1840
+
1841
+ def initialize(**args)
1842
+ update!(**args)
1843
+ end
1844
+
1845
+ # Update properties of this object
1846
+ def update!(**args)
1847
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1848
+ @resources = args[:resources] if args.key?(:resources)
1849
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
1850
+ end
1851
+ end
1852
+
1405
1853
  # The response message for Operations.ListOperations.
1406
1854
  class ListOperationsResponse
1407
1855
  include Google::Apis::Core::Hashable
@@ -1474,6 +1922,148 @@ module Google
1474
1922
  end
1475
1923
  end
1476
1924
 
1925
+ # Membership contains information about a member cluster.
1926
+ class Membership
1927
+ include Google::Apis::Core::Hashable
1928
+
1929
+ # Authority encodes how Google will recognize identities from this Membership.
1930
+ # See the workload identity documentation for more details: https://cloud.google.
1931
+ # com/kubernetes-engine/docs/how-to/workload-identity
1932
+ # Corresponds to the JSON property `authority`
1933
+ # @return [Google::Apis::GkehubV1alpha::Authority]
1934
+ attr_accessor :authority
1935
+
1936
+ # Output only. When the Membership was created.
1937
+ # Corresponds to the JSON property `createTime`
1938
+ # @return [String]
1939
+ attr_accessor :create_time
1940
+
1941
+ # Output only. When the Membership was deleted.
1942
+ # Corresponds to the JSON property `deleteTime`
1943
+ # @return [String]
1944
+ attr_accessor :delete_time
1945
+
1946
+ # Output only. Description of this membership, limited to 63 characters. Must
1947
+ # match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
1948
+ # Corresponds to the JSON property `description`
1949
+ # @return [String]
1950
+ attr_accessor :description
1951
+
1952
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
1953
+ # endpoint and any additional Kubernetes metadata.
1954
+ # Corresponds to the JSON property `endpoint`
1955
+ # @return [Google::Apis::GkehubV1alpha::MembershipEndpoint]
1956
+ attr_accessor :endpoint
1957
+
1958
+ # Optional. An externally-generated and managed ID for this Membership. This ID
1959
+ # may be modified after creation, but this is not recommended. The ID must match
1960
+ # the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster,
1961
+ # this value should be set to the UID of the `kube-system` namespace object.
1962
+ # Corresponds to the JSON property `externalId`
1963
+ # @return [String]
1964
+ attr_accessor :external_id
1965
+
1966
+ # Optional. GCP labels for this membership.
1967
+ # Corresponds to the JSON property `labels`
1968
+ # @return [Hash<String,String>]
1969
+ attr_accessor :labels
1970
+
1971
+ # Output only. For clusters using Connect, the timestamp of the most recent
1972
+ # connection established with Google Cloud. This time is updated every several
1973
+ # minutes, not continuously. For clusters that do not use GKE Connect, or that
1974
+ # have never connected successfully, this field will be unset.
1975
+ # Corresponds to the JSON property `lastConnectionTime`
1976
+ # @return [String]
1977
+ attr_accessor :last_connection_time
1978
+
1979
+ # Output only. The full, unique name of this Membership resource in the format `
1980
+ # projects/*/locations/*/memberships/`membership_id``, set during creation. `
1981
+ # membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63
1982
+ # characters in length 2. It must consist of lower case alphanumeric characters
1983
+ # or `-` 3. It must start and end with an alphanumeric character Which can be
1984
+ # expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length
1985
+ # of 63 characters.
1986
+ # Corresponds to the JSON property `name`
1987
+ # @return [String]
1988
+ attr_accessor :name
1989
+
1990
+ # MembershipState describes the state of a Membership resource.
1991
+ # Corresponds to the JSON property `state`
1992
+ # @return [Google::Apis::GkehubV1alpha::MembershipState]
1993
+ attr_accessor :state
1994
+
1995
+ # Output only. Google-generated UUID for this resource. This is unique across
1996
+ # all Membership resources. If a Membership resource is deleted and another
1997
+ # resource with the same name is created, it gets a different unique_id.
1998
+ # Corresponds to the JSON property `uniqueId`
1999
+ # @return [String]
2000
+ attr_accessor :unique_id
2001
+
2002
+ # Output only. When the Membership was last updated.
2003
+ # Corresponds to the JSON property `updateTime`
2004
+ # @return [String]
2005
+ attr_accessor :update_time
2006
+
2007
+ def initialize(**args)
2008
+ update!(**args)
2009
+ end
2010
+
2011
+ # Update properties of this object
2012
+ def update!(**args)
2013
+ @authority = args[:authority] if args.key?(:authority)
2014
+ @create_time = args[:create_time] if args.key?(:create_time)
2015
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
2016
+ @description = args[:description] if args.key?(:description)
2017
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
2018
+ @external_id = args[:external_id] if args.key?(:external_id)
2019
+ @labels = args[:labels] if args.key?(:labels)
2020
+ @last_connection_time = args[:last_connection_time] if args.key?(:last_connection_time)
2021
+ @name = args[:name] if args.key?(:name)
2022
+ @state = args[:state] if args.key?(:state)
2023
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
2024
+ @update_time = args[:update_time] if args.key?(:update_time)
2025
+ end
2026
+ end
2027
+
2028
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
2029
+ # endpoint and any additional Kubernetes metadata.
2030
+ class MembershipEndpoint
2031
+ include Google::Apis::Core::Hashable
2032
+
2033
+ # GkeCluster contains information specific to GKE clusters.
2034
+ # Corresponds to the JSON property `gkeCluster`
2035
+ # @return [Google::Apis::GkehubV1alpha::GkeCluster]
2036
+ attr_accessor :gke_cluster
2037
+
2038
+ # KubernetesMetadata provides informational metadata for Memberships
2039
+ # representing Kubernetes clusters.
2040
+ # Corresponds to the JSON property `kubernetesMetadata`
2041
+ # @return [Google::Apis::GkehubV1alpha::KubernetesMetadata]
2042
+ attr_accessor :kubernetes_metadata
2043
+
2044
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
2045
+ # Corresponds to the JSON property `multiCloudCluster`
2046
+ # @return [Google::Apis::GkehubV1alpha::MultiCloudCluster]
2047
+ attr_accessor :multi_cloud_cluster
2048
+
2049
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
2050
+ # Corresponds to the JSON property `onPremCluster`
2051
+ # @return [Google::Apis::GkehubV1alpha::OnPremCluster]
2052
+ attr_accessor :on_prem_cluster
2053
+
2054
+ def initialize(**args)
2055
+ update!(**args)
2056
+ end
2057
+
2058
+ # Update properties of this object
2059
+ def update!(**args)
2060
+ @gke_cluster = args[:gke_cluster] if args.key?(:gke_cluster)
2061
+ @kubernetes_metadata = args[:kubernetes_metadata] if args.key?(:kubernetes_metadata)
2062
+ @multi_cloud_cluster = args[:multi_cloud_cluster] if args.key?(:multi_cloud_cluster)
2063
+ @on_prem_cluster = args[:on_prem_cluster] if args.key?(:on_prem_cluster)
2064
+ end
2065
+ end
2066
+
1477
2067
  # MembershipFeatureSpec contains configuration information for a single
1478
2068
  # Membership.
1479
2069
  class MembershipFeatureSpec
@@ -1485,6 +2075,16 @@ module Google
1485
2075
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementMembershipSpec]
1486
2076
  attr_accessor :configmanagement
1487
2077
 
2078
+ # **Anthos Identity Service**: Configuration for a single Membership.
2079
+ # Corresponds to the JSON property `identityservice`
2080
+ # @return [Google::Apis::GkehubV1alpha::IdentityServiceMembershipSpec]
2081
+ attr_accessor :identityservice
2082
+
2083
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2084
+ # Corresponds to the JSON property `mesh`
2085
+ # @return [Google::Apis::GkehubV1alpha::ServiceMeshMembershipSpec]
2086
+ attr_accessor :mesh
2087
+
1488
2088
  def initialize(**args)
1489
2089
  update!(**args)
1490
2090
  end
@@ -1492,6 +2092,8 @@ module Google
1492
2092
  # Update properties of this object
1493
2093
  def update!(**args)
1494
2094
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
2095
+ @identityservice = args[:identityservice] if args.key?(:identityservice)
2096
+ @mesh = args[:mesh] if args.key?(:mesh)
1495
2097
  end
1496
2098
  end
1497
2099
 
@@ -1505,6 +2107,11 @@ module Google
1505
2107
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementMembershipState]
1506
2108
  attr_accessor :configmanagement
1507
2109
 
2110
+ # **Anthos Identity Service**: State for a single Membership.
2111
+ # Corresponds to the JSON property `identityservice`
2112
+ # @return [Google::Apis::GkehubV1alpha::IdentityServiceMembershipState]
2113
+ attr_accessor :identityservice
2114
+
1508
2115
  # **Metering**: Per-Membership Feature State.
1509
2116
  # Corresponds to the JSON property `metering`
1510
2117
  # @return [Google::Apis::GkehubV1alpha::MeteringMembershipState]
@@ -1530,12 +2137,32 @@ module Google
1530
2137
  # Update properties of this object
1531
2138
  def update!(**args)
1532
2139
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
2140
+ @identityservice = args[:identityservice] if args.key?(:identityservice)
1533
2141
  @metering = args[:metering] if args.key?(:metering)
1534
2142
  @servicemesh = args[:servicemesh] if args.key?(:servicemesh)
1535
2143
  @state = args[:state] if args.key?(:state)
1536
2144
  end
1537
2145
  end
1538
2146
 
2147
+ # MembershipState describes the state of a Membership resource.
2148
+ class MembershipState
2149
+ include Google::Apis::Core::Hashable
2150
+
2151
+ # Output only. The current state of the Membership resource.
2152
+ # Corresponds to the JSON property `code`
2153
+ # @return [String]
2154
+ attr_accessor :code
2155
+
2156
+ def initialize(**args)
2157
+ update!(**args)
2158
+ end
2159
+
2160
+ # Update properties of this object
2161
+ def update!(**args)
2162
+ @code = args[:code] if args.key?(:code)
2163
+ end
2164
+ end
2165
+
1539
2166
  # **Metering**: Per-Membership Feature State.
1540
2167
  class MeteringMembershipState
1541
2168
  include Google::Apis::Core::Hashable
@@ -1563,6 +2190,36 @@ module Google
1563
2190
  end
1564
2191
  end
1565
2192
 
2193
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
2194
+ class MultiCloudCluster
2195
+ include Google::Apis::Core::Hashable
2196
+
2197
+ # Output only. If cluster_missing is set then it denotes that API(gkemulticloud.
2198
+ # googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.
2199
+ # Corresponds to the JSON property `clusterMissing`
2200
+ # @return [Boolean]
2201
+ attr_accessor :cluster_missing
2202
+ alias_method :cluster_missing?, :cluster_missing
2203
+
2204
+ # Immutable. Self-link of the GCP resource for the GKE Multi-Cloud cluster. For
2205
+ # example: //gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-
2206
+ # a/awsClusters/my-cluster //gkemulticloud.googleapis.com/projects/my-project/
2207
+ # locations/us-west1-a/azureClusters/my-cluster
2208
+ # Corresponds to the JSON property `resourceLink`
2209
+ # @return [String]
2210
+ attr_accessor :resource_link
2211
+
2212
+ def initialize(**args)
2213
+ update!(**args)
2214
+ end
2215
+
2216
+ # Update properties of this object
2217
+ def update!(**args)
2218
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
2219
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
2220
+ end
2221
+ end
2222
+
1566
2223
  # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress
1567
2224
  # feature.
1568
2225
  class MultiClusterIngressFeatureSpec
@@ -1591,6 +2248,43 @@ module Google
1591
2248
  end
1592
2249
  end
1593
2250
 
2251
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
2252
+ class OnPremCluster
2253
+ include Google::Apis::Core::Hashable
2254
+
2255
+ # Immutable. Whether the cluster is an admin cluster.
2256
+ # Corresponds to the JSON property `adminCluster`
2257
+ # @return [Boolean]
2258
+ attr_accessor :admin_cluster
2259
+ alias_method :admin_cluster?, :admin_cluster
2260
+
2261
+ # Output only. If cluster_missing is set then it denotes that API(gkeonprem.
2262
+ # googleapis.com) resource for this GKE On-Prem cluster no longer exists.
2263
+ # Corresponds to the JSON property `clusterMissing`
2264
+ # @return [Boolean]
2265
+ attr_accessor :cluster_missing
2266
+ alias_method :cluster_missing?, :cluster_missing
2267
+
2268
+ # Immutable. Self-link of the GCP resource for the GKE On-Prem cluster. For
2269
+ # example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-a/
2270
+ # vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/
2271
+ # locations/us-west1-a/bareMetalClusters/my-cluster
2272
+ # Corresponds to the JSON property `resourceLink`
2273
+ # @return [String]
2274
+ attr_accessor :resource_link
2275
+
2276
+ def initialize(**args)
2277
+ update!(**args)
2278
+ end
2279
+
2280
+ # Update properties of this object
2281
+ def update!(**args)
2282
+ @admin_cluster = args[:admin_cluster] if args.key?(:admin_cluster)
2283
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
2284
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
2285
+ end
2286
+ end
2287
+
1594
2288
  # This resource represents a long-running operation that is the result of a
1595
2289
  # network API call.
1596
2290
  class Operation
@@ -1714,31 +2408,31 @@ module Google
1714
2408
 
1715
2409
  # An Identity and Access Management (IAM) policy, which specifies access
1716
2410
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1717
- # A `binding` binds one or more `members` to a single `role`. Members can be
1718
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
1719
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
1720
- # role or a user-created custom role. For some types of Google Cloud resources,
1721
- # a `binding` can also specify a `condition`, which is a logical expression that
1722
- # allows access to a resource only if the expression evaluates to `true`. A
1723
- # condition can add constraints based on attributes of the request, the resource,
1724
- # or both. To learn which resources support conditions in their IAM policies,
1725
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1726
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1727
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1728
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1729
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1730
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1731
- # title": "expirable access", "description": "Does not grant access after Sep
1732
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1733
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1734
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
1735
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1736
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1737
- # roles/resourcemanager.organizationViewer condition: title: expirable access
1738
- # description: Does not grant access after Sep 2020 expression: request.time <
1739
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1740
- # description of IAM and its features, see the [IAM documentation](https://cloud.
1741
- # google.com/iam/docs/).
2411
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2412
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2413
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2414
+ # an IAM predefined role or a user-created custom role. For some types of Google
2415
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2416
+ # logical expression that allows access to a resource only if the expression
2417
+ # evaluates to `true`. A condition can add constraints based on attributes of
2418
+ # the request, the resource, or both. To learn which resources support
2419
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2420
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2421
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2422
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2423
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2424
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2425
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2426
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2427
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2428
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2429
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2430
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2431
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2432
+ # access description: Does not grant access after Sep 2020 expression: request.
2433
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2434
+ # a description of IAM and its features, see the [IAM documentation](https://
2435
+ # cloud.google.com/iam/docs/).
1742
2436
  class Policy
1743
2437
  include Google::Apis::Core::Hashable
1744
2438
 
@@ -1747,9 +2441,14 @@ module Google
1747
2441
  # @return [Array<Google::Apis::GkehubV1alpha::AuditConfig>]
1748
2442
  attr_accessor :audit_configs
1749
2443
 
1750
- # Associates a list of `members` to a `role`. Optionally, may specify a `
1751
- # condition` that determines how and when the `bindings` are applied. Each of
1752
- # the `bindings` must contain at least one member.
2444
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
2445
+ # specify a `condition` that determines how and when the `bindings` are applied.
2446
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
2447
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2448
+ # can be Google groups. Each occurrence of a principal counts towards these
2449
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2450
+ # example.com`, and not to any other principal, then you can add another 1,450
2451
+ # principals to the `bindings` in the `Policy`.
1753
2452
  # Corresponds to the JSON property `bindings`
1754
2453
  # @return [Array<Google::Apis::GkehubV1alpha::Binding>]
1755
2454
  attr_accessor :bindings
@@ -1904,6 +2603,19 @@ module Google
1904
2603
  end
1905
2604
  end
1906
2605
 
2606
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2607
+ class ServiceMeshMembershipSpec
2608
+ include Google::Apis::Core::Hashable
2609
+
2610
+ def initialize(**args)
2611
+ update!(**args)
2612
+ end
2613
+
2614
+ # Update properties of this object
2615
+ def update!(**args)
2616
+ end
2617
+ end
2618
+
1907
2619
  # **Service Mesh**: State for a single Membership, as analyzed by the Service
1908
2620
  # Mesh Hub Controller.
1909
2621
  class ServiceMeshMembershipState
@@ -1963,31 +2675,31 @@ module Google
1963
2675
 
1964
2676
  # An Identity and Access Management (IAM) policy, which specifies access
1965
2677
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1966
- # A `binding` binds one or more `members` to a single `role`. Members can be
1967
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
1968
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
1969
- # role or a user-created custom role. For some types of Google Cloud resources,
1970
- # a `binding` can also specify a `condition`, which is a logical expression that
1971
- # allows access to a resource only if the expression evaluates to `true`. A
1972
- # condition can add constraints based on attributes of the request, the resource,
1973
- # or both. To learn which resources support conditions in their IAM policies,
1974
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
1975
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
1976
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
1977
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
1978
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
1979
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
1980
- # title": "expirable access", "description": "Does not grant access after Sep
1981
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
1982
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
1983
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
1984
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
1985
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
1986
- # roles/resourcemanager.organizationViewer condition: title: expirable access
1987
- # description: Does not grant access after Sep 2020 expression: request.time <
1988
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
1989
- # description of IAM and its features, see the [IAM documentation](https://cloud.
1990
- # google.com/iam/docs/).
2678
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2679
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2680
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2681
+ # an IAM predefined role or a user-created custom role. For some types of Google
2682
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2683
+ # logical expression that allows access to a resource only if the expression
2684
+ # evaluates to `true`. A condition can add constraints based on attributes of
2685
+ # the request, the resource, or both. To learn which resources support
2686
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2687
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2688
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2689
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2690
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2691
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2692
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2693
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2694
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2695
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2696
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2697
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2698
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2699
+ # access description: Does not grant access after Sep 2020 expression: request.
2700
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2701
+ # a description of IAM and its features, see the [IAM documentation](https://
2702
+ # cloud.google.com/iam/docs/).
1991
2703
  # Corresponds to the JSON property `policy`
1992
2704
  # @return [Google::Apis::GkehubV1alpha::Policy]
1993
2705
  attr_accessor :policy
@@ -2049,6 +2761,32 @@ module Google
2049
2761
  @permissions = args[:permissions] if args.key?(:permissions)
2050
2762
  end
2051
2763
  end
2764
+
2765
+ # TypeMeta is the type information needed for content unmarshalling of
2766
+ # Kubernetes resources in the manifest.
2767
+ class TypeMeta
2768
+ include Google::Apis::Core::Hashable
2769
+
2770
+ # APIVersion of the resource (e.g. v1).
2771
+ # Corresponds to the JSON property `apiVersion`
2772
+ # @return [String]
2773
+ attr_accessor :api_version
2774
+
2775
+ # Kind of the resource (e.g. Deployment).
2776
+ # Corresponds to the JSON property `kind`
2777
+ # @return [String]
2778
+ attr_accessor :kind
2779
+
2780
+ def initialize(**args)
2781
+ update!(**args)
2782
+ end
2783
+
2784
+ # Update properties of this object
2785
+ def update!(**args)
2786
+ @api_version = args[:api_version] if args.key?(:api_version)
2787
+ @kind = args[:kind] if args.key?(:kind)
2788
+ end
2789
+ end
2052
2790
  end
2053
2791
  end
2054
2792
  end