google-apis-gkehub_v1alpha 0.12.0 → 0.16.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,6 +22,38 @@ module Google
22
22
  module Apis
23
23
  module GkehubV1alpha
24
24
 
25
+ # Spec for App Dev Experience Feature.
26
+ class AppDevExperienceFeatureSpec
27
+ include Google::Apis::Core::Hashable
28
+
29
+ def initialize(**args)
30
+ update!(**args)
31
+ end
32
+
33
+ # Update properties of this object
34
+ def update!(**args)
35
+ end
36
+ end
37
+
38
+ # State for App Dev Exp Feature.
39
+ class AppDevExperienceFeatureState
40
+ include Google::Apis::Core::Hashable
41
+
42
+ # Status specifies state for the subcomponent.
43
+ # Corresponds to the JSON property `networkingInstallSucceeded`
44
+ # @return [Google::Apis::GkehubV1alpha::Status]
45
+ attr_accessor :networking_install_succeeded
46
+
47
+ def initialize(**args)
48
+ update!(**args)
49
+ end
50
+
51
+ # Update properties of this object
52
+ def update!(**args)
53
+ @networking_install_succeeded = args[:networking_install_succeeded] if args.key?(:networking_install_succeeded)
54
+ end
55
+ end
56
+
25
57
  # Specifies the audit configuration for a service. The configuration determines
26
58
  # which permission types are logged, and what identities, if any, are exempted
27
59
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -147,7 +179,7 @@ module Google
147
179
  end
148
180
  end
149
181
 
150
- # Associates `members` with a `role`.
182
+ # Associates `members`, or principals, with a `role`.
151
183
  class Binding
152
184
  include Google::Apis::Core::Hashable
153
185
 
@@ -170,7 +202,7 @@ module Google
170
202
  # @return [Google::Apis::GkehubV1alpha::Expr]
171
203
  attr_accessor :condition
172
204
 
173
- # Specifies the identities requesting access for a Cloud Platform resource. `
205
+ # Specifies the principals requesting access for a Cloud Platform resource. `
174
206
  # members` can have the following values: * `allUsers`: A special identifier
175
207
  # that represents anyone who is on the internet; with or without a Google
176
208
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -200,8 +232,8 @@ module Google
200
232
  # @return [Array<String>]
201
233
  attr_accessor :members
202
234
 
203
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
204
- # , 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`.
205
237
  # Corresponds to the JSON property `role`
206
238
  # @return [String]
207
239
  attr_accessor :role
@@ -258,6 +290,11 @@ module Google
258
290
  class CommonFeatureSpec
259
291
  include Google::Apis::Core::Hashable
260
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
+
261
298
  # **Cloud Audit Logging**: Spec for Audit Logging Allowlisting.
262
299
  # Corresponds to the JSON property `cloudauditlogging`
263
300
  # @return [Google::Apis::GkehubV1alpha::CloudAuditLoggingFeatureSpec]
@@ -275,6 +312,7 @@ module Google
275
312
 
276
313
  # Update properties of this object
277
314
  def update!(**args)
315
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
278
316
  @cloudauditlogging = args[:cloudauditlogging] if args.key?(:cloudauditlogging)
279
317
  @multiclusteringress = args[:multiclusteringress] if args.key?(:multiclusteringress)
280
318
  end
@@ -284,6 +322,11 @@ module Google
284
322
  class CommonFeatureState
285
323
  include Google::Apis::Core::Hashable
286
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
+
287
330
  # **Service Mesh**: State for the whole Hub, as analyzed by the Service Mesh Hub
288
331
  # Controller.
289
332
  # Corresponds to the JSON property `servicemesh`
@@ -303,6 +346,7 @@ module Google
303
346
 
304
347
  # Update properties of this object
305
348
  def update!(**args)
349
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
306
350
  @servicemesh = args[:servicemesh] if args.key?(:servicemesh)
307
351
  @state = args[:state] if args.key?(:state)
308
352
  end
@@ -391,6 +435,14 @@ module Google
391
435
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementGitConfig]
392
436
  attr_accessor :git
393
437
 
438
+ # Set to true to enable the Config Sync admission webhook to prevent drifts. If
439
+ # set to `false`, disables the Config Sync admission webhook and does not
440
+ # prevent drifts.
441
+ # Corresponds to the JSON property `preventDrift`
442
+ # @return [Boolean]
443
+ attr_accessor :prevent_drift
444
+ alias_method :prevent_drift?, :prevent_drift
445
+
394
446
  # Specifies whether the Config Sync Repo is in “hierarchical” or “unstructured”
395
447
  # mode.
396
448
  # Corresponds to the JSON property `sourceFormat`
@@ -405,6 +457,7 @@ module Google
405
457
  def update!(**args)
406
458
  @enabled = args[:enabled] if args.key?(:enabled)
407
459
  @git = args[:git] if args.key?(:git)
460
+ @prevent_drift = args[:prevent_drift] if args.key?(:prevent_drift)
408
461
  @source_format = args[:source_format] if args.key?(:source_format)
409
462
  end
410
463
  end
@@ -639,7 +692,9 @@ module Google
639
692
  # @return [String]
640
693
  attr_accessor :policy_dir
641
694
 
642
- # Type of secret configured for access to the Git repo.
695
+ # Type of secret configured for access to the Git repo. Must be one of ssh,
696
+ # cookiefile, gcenode, token, gcpserviceaccount or none. The validation of this
697
+ # is case-sensitive. Required.
643
698
  # Corresponds to the JSON property `secretType`
644
699
  # @return [String]
645
700
  attr_accessor :secret_type
@@ -1173,6 +1228,33 @@ module Google
1173
1228
  end
1174
1229
  end
1175
1230
 
1231
+ # ConnectAgentResource represents a Kubernetes resource manifest for Connect
1232
+ # Agent deployment.
1233
+ class ConnectAgentResource
1234
+ include Google::Apis::Core::Hashable
1235
+
1236
+ # YAML manifest of the resource.
1237
+ # Corresponds to the JSON property `manifest`
1238
+ # @return [String]
1239
+ attr_accessor :manifest
1240
+
1241
+ # TypeMeta is the type information needed for content unmarshalling of
1242
+ # Kubernetes resources in the manifest.
1243
+ # Corresponds to the JSON property `type`
1244
+ # @return [Google::Apis::GkehubV1alpha::TypeMeta]
1245
+ attr_accessor :type
1246
+
1247
+ def initialize(**args)
1248
+ update!(**args)
1249
+ end
1250
+
1251
+ # Update properties of this object
1252
+ def update!(**args)
1253
+ @manifest = args[:manifest] if args.key?(:manifest)
1254
+ @type = args[:type] if args.key?(:type)
1255
+ end
1256
+ end
1257
+
1176
1258
  # A generic empty message that you can re-use to avoid defining duplicated empty
1177
1259
  # messages in your APIs. A typical example is to use it as the request or the
1178
1260
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1389,6 +1471,93 @@ module Google
1389
1471
  end
1390
1472
  end
1391
1473
 
1474
+ # Fleet contains the Fleet-wide metadata and configuration.
1475
+ class Fleet
1476
+ include Google::Apis::Core::Hashable
1477
+
1478
+ # Output only. When the Fleet was created.
1479
+ # Corresponds to the JSON property `createTime`
1480
+ # @return [String]
1481
+ attr_accessor :create_time
1482
+
1483
+ # Output only. When the Fleet was deleted.
1484
+ # Corresponds to the JSON property `deleteTime`
1485
+ # @return [String]
1486
+ attr_accessor :delete_time
1487
+
1488
+ # Optional. A user-assigned display name of the Fleet. When present, it must be
1489
+ # between 4 to 30 characters. Allowed characters are: lowercase and uppercase
1490
+ # letters, numbers, hyphen, single-quote, double-quote, space, and exclamation
1491
+ # point. Example: `Production Fleet`
1492
+ # Corresponds to the JSON property `displayName`
1493
+ # @return [String]
1494
+ attr_accessor :display_name
1495
+
1496
+ # The name for the fleet. The name must meet the following constraints: + The
1497
+ # name of a fleet should be unique within the organization; + It must consist of
1498
+ # lower case alphanumeric characters or `-`; + The length of the name must be
1499
+ # less than or equal to 63; + Unicode names must be expressed in Punycode format
1500
+ # (rfc3492). Examples: + prod-fleet + xn--wlq33vhyw9jb (Punycode form for "生产环境")
1501
+ # Corresponds to the JSON property `fleetName`
1502
+ # @return [String]
1503
+ attr_accessor :fleet_name
1504
+
1505
+ # Output only. The full, unique resource name of this fleet in the format of `
1506
+ # projects/`project`/locations/`location`/fleets/`fleet``. Each GCP project can
1507
+ # have at most one fleet resource, named "default".
1508
+ # Corresponds to the JSON property `name`
1509
+ # @return [String]
1510
+ attr_accessor :name
1511
+
1512
+ # Output only. Google-generated UUID for this resource. This is unique across
1513
+ # all Fleet resources. If a Fleet resource is deleted and another resource with
1514
+ # the same name is created, it gets a different uid.
1515
+ # Corresponds to the JSON property `uid`
1516
+ # @return [String]
1517
+ attr_accessor :uid
1518
+
1519
+ # Output only. When the Fleet was last updated.
1520
+ # Corresponds to the JSON property `updateTime`
1521
+ # @return [String]
1522
+ attr_accessor :update_time
1523
+
1524
+ def initialize(**args)
1525
+ update!(**args)
1526
+ end
1527
+
1528
+ # Update properties of this object
1529
+ def update!(**args)
1530
+ @create_time = args[:create_time] if args.key?(:create_time)
1531
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
1532
+ @display_name = args[:display_name] if args.key?(:display_name)
1533
+ @fleet_name = args[:fleet_name] if args.key?(:fleet_name)
1534
+ @name = args[:name] if args.key?(:name)
1535
+ @uid = args[:uid] if args.key?(:uid)
1536
+ @update_time = args[:update_time] if args.key?(:update_time)
1537
+ end
1538
+ end
1539
+
1540
+ # GenerateConnectManifestResponse contains manifest information for installing/
1541
+ # upgrading a Connect agent.
1542
+ class GenerateConnectManifestResponse
1543
+ include Google::Apis::Core::Hashable
1544
+
1545
+ # The ordered list of Kubernetes resources that need to be applied to the
1546
+ # cluster for GKE Connect agent installation/upgrade.
1547
+ # Corresponds to the JSON property `manifest`
1548
+ # @return [Array<Google::Apis::GkehubV1alpha::ConnectAgentResource>]
1549
+ attr_accessor :manifest
1550
+
1551
+ def initialize(**args)
1552
+ update!(**args)
1553
+ end
1554
+
1555
+ # Update properties of this object
1556
+ def update!(**args)
1557
+ @manifest = args[:manifest] if args.key?(:manifest)
1558
+ end
1559
+ end
1560
+
1392
1561
  # GkeCluster contains information specific to GKE clusters.
1393
1562
  class GkeCluster
1394
1563
  include Google::Apis::Core::Hashable
@@ -1685,6 +1854,61 @@ module Google
1685
1854
  end
1686
1855
  end
1687
1856
 
1857
+ # KubernetesResource contains the YAML manifests and configuration for
1858
+ # Membership Kubernetes resources in the cluster. After CreateMembership or
1859
+ # UpdateMembership, these resources should be re-applied in the cluster.
1860
+ class KubernetesResource
1861
+ include Google::Apis::Core::Hashable
1862
+
1863
+ # Output only. The Kubernetes resources for installing the GKE Connect agent
1864
+ # This field is only populated in the Membership returned from a successful long-
1865
+ # running operation from CreateMembership or UpdateMembership. It is not
1866
+ # populated during normal GetMembership or ListMemberships requests. To get the
1867
+ # resource manifest after the initial registration, the caller should make a
1868
+ # UpdateMembership call with an empty field mask.
1869
+ # Corresponds to the JSON property `connectResources`
1870
+ # @return [Array<Google::Apis::GkehubV1alpha::ResourceManifest>]
1871
+ attr_accessor :connect_resources
1872
+
1873
+ # Input only. The YAML representation of the Membership CR. This field is
1874
+ # ignored for GKE clusters where Hub can read the CR directly. Callers should
1875
+ # provide the CR that is currently present in the cluster during
1876
+ # CreateMembership or UpdateMembership, or leave this field empty if none exists.
1877
+ # The CR manifest is used to validate the cluster has not been registered with
1878
+ # another Membership.
1879
+ # Corresponds to the JSON property `membershipCrManifest`
1880
+ # @return [String]
1881
+ attr_accessor :membership_cr_manifest
1882
+
1883
+ # Output only. Additional Kubernetes resources that need to be applied to the
1884
+ # cluster after Membership creation, and after every update. This field is only
1885
+ # populated in the Membership returned from a successful long-running operation
1886
+ # from CreateMembership or UpdateMembership. It is not populated during normal
1887
+ # GetMembership or ListMemberships requests. To get the resource manifest after
1888
+ # the initial registration, the caller should make a UpdateMembership call with
1889
+ # an empty field mask.
1890
+ # Corresponds to the JSON property `membershipResources`
1891
+ # @return [Array<Google::Apis::GkehubV1alpha::ResourceManifest>]
1892
+ attr_accessor :membership_resources
1893
+
1894
+ # ResourceOptions represent options for Kubernetes resource generation.
1895
+ # Corresponds to the JSON property `resourceOptions`
1896
+ # @return [Google::Apis::GkehubV1alpha::ResourceOptions]
1897
+ attr_accessor :resource_options
1898
+
1899
+ def initialize(**args)
1900
+ update!(**args)
1901
+ end
1902
+
1903
+ # Update properties of this object
1904
+ def update!(**args)
1905
+ @connect_resources = args[:connect_resources] if args.key?(:connect_resources)
1906
+ @membership_cr_manifest = args[:membership_cr_manifest] if args.key?(:membership_cr_manifest)
1907
+ @membership_resources = args[:membership_resources] if args.key?(:membership_resources)
1908
+ @resource_options = args[:resource_options] if args.key?(:resource_options)
1909
+ end
1910
+ end
1911
+
1688
1912
  # Response message for the `GkeHub.ListAdminClusterMemberships` method.
1689
1913
  class ListAdminClusterMembershipsResponse
1690
1914
  include Google::Apis::Core::Hashable
@@ -1769,6 +1993,39 @@ module Google
1769
1993
  end
1770
1994
  end
1771
1995
 
1996
+ # Response message for the `GkeHub.ListMemberships` method.
1997
+ class ListMembershipsResponse
1998
+ include Google::Apis::Core::Hashable
1999
+
2000
+ # A token to request the next page of resources from the `ListMemberships`
2001
+ # method. The value of an empty string means that there are no more resources to
2002
+ # return.
2003
+ # Corresponds to the JSON property `nextPageToken`
2004
+ # @return [String]
2005
+ attr_accessor :next_page_token
2006
+
2007
+ # The list of matching Memberships.
2008
+ # Corresponds to the JSON property `resources`
2009
+ # @return [Array<Google::Apis::GkehubV1alpha::Membership>]
2010
+ attr_accessor :resources
2011
+
2012
+ # List of locations that could not be reached while fetching this list.
2013
+ # Corresponds to the JSON property `unreachable`
2014
+ # @return [Array<String>]
2015
+ attr_accessor :unreachable
2016
+
2017
+ def initialize(**args)
2018
+ update!(**args)
2019
+ end
2020
+
2021
+ # Update properties of this object
2022
+ def update!(**args)
2023
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2024
+ @resources = args[:resources] if args.key?(:resources)
2025
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2026
+ end
2027
+ end
2028
+
1772
2029
  # The response message for Operations.ListOperations.
1773
2030
  class ListOperationsResponse
1774
2031
  include Google::Apis::Core::Hashable
@@ -1960,6 +2217,13 @@ module Google
1960
2217
  # @return [Google::Apis::GkehubV1alpha::KubernetesMetadata]
1961
2218
  attr_accessor :kubernetes_metadata
1962
2219
 
2220
+ # KubernetesResource contains the YAML manifests and configuration for
2221
+ # Membership Kubernetes resources in the cluster. After CreateMembership or
2222
+ # UpdateMembership, these resources should be re-applied in the cluster.
2223
+ # Corresponds to the JSON property `kubernetesResource`
2224
+ # @return [Google::Apis::GkehubV1alpha::KubernetesResource]
2225
+ attr_accessor :kubernetes_resource
2226
+
1963
2227
  # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
1964
2228
  # Corresponds to the JSON property `multiCloudCluster`
1965
2229
  # @return [Google::Apis::GkehubV1alpha::MultiCloudCluster]
@@ -1978,6 +2242,7 @@ module Google
1978
2242
  def update!(**args)
1979
2243
  @gke_cluster = args[:gke_cluster] if args.key?(:gke_cluster)
1980
2244
  @kubernetes_metadata = args[:kubernetes_metadata] if args.key?(:kubernetes_metadata)
2245
+ @kubernetes_resource = args[:kubernetes_resource] if args.key?(:kubernetes_resource)
1981
2246
  @multi_cloud_cluster = args[:multi_cloud_cluster] if args.key?(:multi_cloud_cluster)
1982
2247
  @on_prem_cluster = args[:on_prem_cluster] if args.key?(:on_prem_cluster)
1983
2248
  end
@@ -1999,6 +2264,11 @@ module Google
1999
2264
  # @return [Google::Apis::GkehubV1alpha::IdentityServiceMembershipSpec]
2000
2265
  attr_accessor :identityservice
2001
2266
 
2267
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2268
+ # Corresponds to the JSON property `mesh`
2269
+ # @return [Google::Apis::GkehubV1alpha::ServiceMeshMembershipSpec]
2270
+ attr_accessor :mesh
2271
+
2002
2272
  def initialize(**args)
2003
2273
  update!(**args)
2004
2274
  end
@@ -2007,6 +2277,7 @@ module Google
2007
2277
  def update!(**args)
2008
2278
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
2009
2279
  @identityservice = args[:identityservice] if args.key?(:identityservice)
2280
+ @mesh = args[:mesh] if args.key?(:mesh)
2010
2281
  end
2011
2282
  end
2012
2283
 
@@ -2015,6 +2286,11 @@ module Google
2015
2286
  class MembershipFeatureState
2016
2287
  include Google::Apis::Core::Hashable
2017
2288
 
2289
+ # State for App Dev Exp Feature.
2290
+ # Corresponds to the JSON property `appdevexperience`
2291
+ # @return [Google::Apis::GkehubV1alpha::AppDevExperienceFeatureState]
2292
+ attr_accessor :appdevexperience
2293
+
2018
2294
  # **Anthos Config Management**: State for a single cluster.
2019
2295
  # Corresponds to the JSON property `configmanagement`
2020
2296
  # @return [Google::Apis::GkehubV1alpha::ConfigManagementMembershipState]
@@ -2049,6 +2325,7 @@ module Google
2049
2325
 
2050
2326
  # Update properties of this object
2051
2327
  def update!(**args)
2328
+ @appdevexperience = args[:appdevexperience] if args.key?(:appdevexperience)
2052
2329
  @configmanagement = args[:configmanagement] if args.key?(:configmanagement)
2053
2330
  @identityservice = args[:identityservice] if args.key?(:identityservice)
2054
2331
  @metering = args[:metering] if args.key?(:metering)
@@ -2321,31 +2598,31 @@ module Google
2321
2598
 
2322
2599
  # An Identity and Access Management (IAM) policy, which specifies access
2323
2600
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2324
- # A `binding` binds one or more `members` to a single `role`. Members can be
2325
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2326
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2327
- # role or a user-created custom role. For some types of Google Cloud resources,
2328
- # a `binding` can also specify a `condition`, which is a logical expression that
2329
- # allows access to a resource only if the expression evaluates to `true`. A
2330
- # condition can add constraints based on attributes of the request, the resource,
2331
- # or both. To learn which resources support conditions in their IAM policies,
2332
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2333
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2334
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2335
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2336
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2337
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2338
- # title": "expirable access", "description": "Does not grant access after Sep
2339
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2340
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2341
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2342
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2343
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2344
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2345
- # description: Does not grant access after Sep 2020 expression: request.time <
2346
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
2347
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2348
- # google.com/iam/docs/).
2601
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2602
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2603
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2604
+ # an IAM predefined role or a user-created custom role. For some types of Google
2605
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2606
+ # logical expression that allows access to a resource only if the expression
2607
+ # evaluates to `true`. A condition can add constraints based on attributes of
2608
+ # the request, the resource, or both. To learn which resources support
2609
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2610
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2611
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2612
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2613
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2614
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2615
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2616
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2617
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2618
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2619
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2620
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2621
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2622
+ # access description: Does not grant access after Sep 2020 expression: request.
2623
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2624
+ # a description of IAM and its features, see the [IAM documentation](https://
2625
+ # cloud.google.com/iam/docs/).
2349
2626
  class Policy
2350
2627
  include Google::Apis::Core::Hashable
2351
2628
 
@@ -2354,9 +2631,14 @@ module Google
2354
2631
  # @return [Array<Google::Apis::GkehubV1alpha::AuditConfig>]
2355
2632
  attr_accessor :audit_configs
2356
2633
 
2357
- # Associates a list of `members` to a `role`. Optionally, may specify a `
2358
- # condition` that determines how and when the `bindings` are applied. Each of
2359
- # the `bindings` must contain at least one member.
2634
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
2635
+ # specify a `condition` that determines how and when the `bindings` are applied.
2636
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
2637
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
2638
+ # can be Google groups. Each occurrence of a principal counts towards these
2639
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
2640
+ # example.com`, and not to any other principal, then you can add another 1,450
2641
+ # principals to the `bindings` in the `Policy`.
2360
2642
  # Corresponds to the JSON property `bindings`
2361
2643
  # @return [Array<Google::Apis::GkehubV1alpha::Binding>]
2362
2644
  attr_accessor :bindings
@@ -2409,6 +2691,65 @@ module Google
2409
2691
  end
2410
2692
  end
2411
2693
 
2694
+ # ResourceManifest represents a single Kubernetes resource to be applied to the
2695
+ # cluster.
2696
+ class ResourceManifest
2697
+ include Google::Apis::Core::Hashable
2698
+
2699
+ # Whether the resource provided in the manifest is `cluster_scoped`. If unset,
2700
+ # the manifest is assumed to be namespace scoped. This field is used for REST
2701
+ # mapping when applying the resource in a cluster.
2702
+ # Corresponds to the JSON property `clusterScoped`
2703
+ # @return [Boolean]
2704
+ attr_accessor :cluster_scoped
2705
+ alias_method :cluster_scoped?, :cluster_scoped
2706
+
2707
+ # YAML manifest of the resource.
2708
+ # Corresponds to the JSON property `manifest`
2709
+ # @return [String]
2710
+ attr_accessor :manifest
2711
+
2712
+ def initialize(**args)
2713
+ update!(**args)
2714
+ end
2715
+
2716
+ # Update properties of this object
2717
+ def update!(**args)
2718
+ @cluster_scoped = args[:cluster_scoped] if args.key?(:cluster_scoped)
2719
+ @manifest = args[:manifest] if args.key?(:manifest)
2720
+ end
2721
+ end
2722
+
2723
+ # ResourceOptions represent options for Kubernetes resource generation.
2724
+ class ResourceOptions
2725
+ include Google::Apis::Core::Hashable
2726
+
2727
+ # Optional. The Connect agent version to use for connect_resources. Defaults to
2728
+ # the latest GKE Connect version. The version must be a currently supported
2729
+ # version, obsolete versions will be rejected.
2730
+ # Corresponds to the JSON property `connectVersion`
2731
+ # @return [String]
2732
+ attr_accessor :connect_version
2733
+
2734
+ # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for
2735
+ # CustomResourceDefinition resources. This option should be set for clusters
2736
+ # with Kubernetes apiserver versions <1.16.
2737
+ # Corresponds to the JSON property `v1beta1Crd`
2738
+ # @return [Boolean]
2739
+ attr_accessor :v1beta1_crd
2740
+ alias_method :v1beta1_crd?, :v1beta1_crd
2741
+
2742
+ def initialize(**args)
2743
+ update!(**args)
2744
+ end
2745
+
2746
+ # Update properties of this object
2747
+ def update!(**args)
2748
+ @connect_version = args[:connect_version] if args.key?(:connect_version)
2749
+ @v1beta1_crd = args[:v1beta1_crd] if args.key?(:v1beta1_crd)
2750
+ end
2751
+ end
2752
+
2412
2753
  # AnalysisMessage is a single message produced by an analyzer, and it used to
2413
2754
  # communicate to the end user about the state of their Service Mesh
2414
2755
  # configuration.
@@ -2511,6 +2852,19 @@ module Google
2511
2852
  end
2512
2853
  end
2513
2854
 
2855
+ # **Service Mesh**: Spec for a single Membership for the servicemesh feature
2856
+ class ServiceMeshMembershipSpec
2857
+ include Google::Apis::Core::Hashable
2858
+
2859
+ def initialize(**args)
2860
+ update!(**args)
2861
+ end
2862
+
2863
+ # Update properties of this object
2864
+ def update!(**args)
2865
+ end
2866
+ end
2867
+
2514
2868
  # **Service Mesh**: State for a single Membership, as analyzed by the Service
2515
2869
  # Mesh Hub Controller.
2516
2870
  class ServiceMeshMembershipState
@@ -2570,31 +2924,31 @@ module Google
2570
2924
 
2571
2925
  # An Identity and Access Management (IAM) policy, which specifies access
2572
2926
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
2573
- # A `binding` binds one or more `members` to a single `role`. Members can be
2574
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
2575
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
2576
- # role or a user-created custom role. For some types of Google Cloud resources,
2577
- # a `binding` can also specify a `condition`, which is a logical expression that
2578
- # allows access to a resource only if the expression evaluates to `true`. A
2579
- # condition can add constraints based on attributes of the request, the resource,
2580
- # or both. To learn which resources support conditions in their IAM policies,
2581
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
2582
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
2583
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
2584
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
2585
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
2586
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
2587
- # title": "expirable access", "description": "Does not grant access after Sep
2588
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
2589
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
2590
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
2591
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
2592
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
2593
- # roles/resourcemanager.organizationViewer condition: title: expirable access
2594
- # description: Does not grant access after Sep 2020 expression: request.time <
2595
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
2596
- # description of IAM and its features, see the [IAM documentation](https://cloud.
2597
- # google.com/iam/docs/).
2927
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
2928
+ # Principals can be user accounts, service accounts, Google groups, and domains (
2929
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
2930
+ # an IAM predefined role or a user-created custom role. For some types of Google
2931
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
2932
+ # logical expression that allows access to a resource only if the expression
2933
+ # evaluates to `true`. A condition can add constraints based on attributes of
2934
+ # the request, the resource, or both. To learn which resources support
2935
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
2936
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
2937
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
2938
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
2939
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
2940
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
2941
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
2942
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
2943
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
2944
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
2945
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
2946
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
2947
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
2948
+ # access description: Does not grant access after Sep 2020 expression: request.
2949
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
2950
+ # a description of IAM and its features, see the [IAM documentation](https://
2951
+ # cloud.google.com/iam/docs/).
2598
2952
  # Corresponds to the JSON property `policy`
2599
2953
  # @return [Google::Apis::GkehubV1alpha::Policy]
2600
2954
  attr_accessor :policy
@@ -2617,6 +2971,31 @@ module Google
2617
2971
  end
2618
2972
  end
2619
2973
 
2974
+ # Status specifies state for the subcomponent.
2975
+ class Status
2976
+ include Google::Apis::Core::Hashable
2977
+
2978
+ # Code specifies AppDevExperienceFeature's subcomponent ready state.
2979
+ # Corresponds to the JSON property `code`
2980
+ # @return [String]
2981
+ attr_accessor :code
2982
+
2983
+ # Description is populated if Code is Failed, explaining why it has failed.
2984
+ # Corresponds to the JSON property `description`
2985
+ # @return [String]
2986
+ attr_accessor :description
2987
+
2988
+ def initialize(**args)
2989
+ update!(**args)
2990
+ end
2991
+
2992
+ # Update properties of this object
2993
+ def update!(**args)
2994
+ @code = args[:code] if args.key?(:code)
2995
+ @description = args[:description] if args.key?(:description)
2996
+ end
2997
+ end
2998
+
2620
2999
  # Request message for `TestIamPermissions` method.
2621
3000
  class TestIamPermissionsRequest
2622
3001
  include Google::Apis::Core::Hashable
@@ -2656,6 +3035,32 @@ module Google
2656
3035
  @permissions = args[:permissions] if args.key?(:permissions)
2657
3036
  end
2658
3037
  end
3038
+
3039
+ # TypeMeta is the type information needed for content unmarshalling of
3040
+ # Kubernetes resources in the manifest.
3041
+ class TypeMeta
3042
+ include Google::Apis::Core::Hashable
3043
+
3044
+ # APIVersion of the resource (e.g. v1).
3045
+ # Corresponds to the JSON property `apiVersion`
3046
+ # @return [String]
3047
+ attr_accessor :api_version
3048
+
3049
+ # Kind of the resource (e.g. Deployment).
3050
+ # Corresponds to the JSON property `kind`
3051
+ # @return [String]
3052
+ attr_accessor :kind
3053
+
3054
+ def initialize(**args)
3055
+ update!(**args)
3056
+ end
3057
+
3058
+ # Update properties of this object
3059
+ def update!(**args)
3060
+ @api_version = args[:api_version] if args.key?(:api_version)
3061
+ @kind = args[:kind] if args.key?(:kind)
3062
+ end
3063
+ end
2659
3064
  end
2660
3065
  end
2661
3066
  end