google-apis-gkehub_v1beta 0.58.0 → 0.59.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.
@@ -108,6 +108,27 @@ module Google
108
108
  end
109
109
  end
110
110
 
111
+ # ApplianceCluster contains information specific to GDC Edge Appliance Clusters.
112
+ class ApplianceCluster
113
+ include Google::Apis::Core::Hashable
114
+
115
+ # Immutable. Self-link of the Google Cloud resource for the Appliance Cluster.
116
+ # For example: //transferappliance.googleapis.com/projects/my-project/locations/
117
+ # us-west1-a/appliances/my-appliance
118
+ # Corresponds to the JSON property `resourceLink`
119
+ # @return [String]
120
+ attr_accessor :resource_link
121
+
122
+ def initialize(**args)
123
+ update!(**args)
124
+ end
125
+
126
+ # Update properties of this object
127
+ def update!(**args)
128
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
129
+ end
130
+ end
131
+
111
132
  # Specifies the audit configuration for a service. The configuration determines
112
133
  # which permission types are logged, and what identities, if any, are exempted
113
134
  # from logging. An AuditConfig must have one or more AuditLogConfigs. If there
@@ -179,6 +200,60 @@ module Google
179
200
  end
180
201
  end
181
202
 
203
+ # Authority encodes how Google will recognize identities from this Membership.
204
+ # See the workload identity documentation for more details: https://cloud.google.
205
+ # com/kubernetes-engine/docs/how-to/workload-identity
206
+ class Authority
207
+ include Google::Apis::Core::Hashable
208
+
209
+ # Output only. An identity provider that reflects the `issuer` in the workload
210
+ # identity pool.
211
+ # Corresponds to the JSON property `identityProvider`
212
+ # @return [String]
213
+ attr_accessor :identity_provider
214
+
215
+ # Optional. A JSON Web Token (JWT) issuer URI. `issuer` must start with `https://
216
+ # ` and be a valid URL with length <2000 characters, it must use `location`
217
+ # rather than `zone` for GKE clusters. If set, then Google will allow valid OIDC
218
+ # tokens from this issuer to authenticate within the workload_identity_pool.
219
+ # OIDC discovery will be performed on this URI to validate tokens from the
220
+ # issuer. Clearing `issuer` disables Workload Identity. `issuer` cannot be
221
+ # directly modified; it must be cleared (and Workload Identity disabled) before
222
+ # using a new issuer (and re-enabling Workload Identity).
223
+ # Corresponds to the JSON property `issuer`
224
+ # @return [String]
225
+ attr_accessor :issuer
226
+
227
+ # Optional. OIDC verification keys for this Membership in JWKS format (RFC 7517).
228
+ # When this field is set, OIDC discovery will NOT be performed on `issuer`, and
229
+ # instead OIDC tokens will be validated using this field.
230
+ # Corresponds to the JSON property `oidcJwks`
231
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
232
+ # @return [String]
233
+ attr_accessor :oidc_jwks
234
+
235
+ # Output only. The name of the workload identity pool in which `issuer` will be
236
+ # recognized. There is a single Workload Identity Pool per Hub that is shared
237
+ # between all Memberships that belong to that Hub. For a Hub hosted in `
238
+ # PROJECT_ID`, the workload pool format is ``PROJECT_ID`.hub.id.goog`, although
239
+ # this is subject to change in newer versions of this API.
240
+ # Corresponds to the JSON property `workloadIdentityPool`
241
+ # @return [String]
242
+ attr_accessor :workload_identity_pool
243
+
244
+ def initialize(**args)
245
+ update!(**args)
246
+ end
247
+
248
+ # Update properties of this object
249
+ def update!(**args)
250
+ @identity_provider = args[:identity_provider] if args.key?(:identity_provider)
251
+ @issuer = args[:issuer] if args.key?(:issuer)
252
+ @oidc_jwks = args[:oidc_jwks] if args.key?(:oidc_jwks)
253
+ @workload_identity_pool = args[:workload_identity_pool] if args.key?(:workload_identity_pool)
254
+ end
255
+ end
256
+
182
257
  # Associates `members`, or principals, with a `role`.
183
258
  class Binding
184
259
  include Google::Apis::Core::Hashable
@@ -1430,6 +1505,54 @@ module Google
1430
1505
  end
1431
1506
  end
1432
1507
 
1508
+ # ConnectAgentResource represents a Kubernetes resource manifest for Connect
1509
+ # Agent deployment.
1510
+ class ConnectAgentResource
1511
+ include Google::Apis::Core::Hashable
1512
+
1513
+ # YAML manifest of the resource.
1514
+ # Corresponds to the JSON property `manifest`
1515
+ # @return [String]
1516
+ attr_accessor :manifest
1517
+
1518
+ # TypeMeta is the type information needed for content unmarshalling of
1519
+ # Kubernetes resources in the manifest.
1520
+ # Corresponds to the JSON property `type`
1521
+ # @return [Google::Apis::GkehubV1beta::TypeMeta]
1522
+ attr_accessor :type
1523
+
1524
+ def initialize(**args)
1525
+ update!(**args)
1526
+ end
1527
+
1528
+ # Update properties of this object
1529
+ def update!(**args)
1530
+ @manifest = args[:manifest] if args.key?(:manifest)
1531
+ @type = args[:type] if args.key?(:type)
1532
+ end
1533
+ end
1534
+
1535
+ # EdgeCluster contains information specific to Google Edge Clusters.
1536
+ class EdgeCluster
1537
+ include Google::Apis::Core::Hashable
1538
+
1539
+ # Immutable. Self-link of the Google Cloud resource for the Edge Cluster. For
1540
+ # example: //edgecontainer.googleapis.com/projects/my-project/locations/us-west1-
1541
+ # a/clusters/my-cluster
1542
+ # Corresponds to the JSON property `resourceLink`
1543
+ # @return [String]
1544
+ attr_accessor :resource_link
1545
+
1546
+ def initialize(**args)
1547
+ update!(**args)
1548
+ end
1549
+
1550
+ # Update properties of this object
1551
+ def update!(**args)
1552
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
1553
+ end
1554
+ end
1555
+
1433
1556
  # A generic empty message that you can re-use to avoid defining duplicated empty
1434
1557
  # messages in your APIs. A typical example is to use it as the request or the
1435
1558
  # response type of an API method. For instance: service Foo ` rpc Bar(google.
@@ -1975,6 +2098,27 @@ module Google
1975
2098
  end
1976
2099
  end
1977
2100
 
2101
+ # GenerateConnectManifestResponse contains manifest information for installing/
2102
+ # upgrading a Connect agent.
2103
+ class GenerateConnectManifestResponse
2104
+ include Google::Apis::Core::Hashable
2105
+
2106
+ # The ordered list of Kubernetes resources that need to be applied to the
2107
+ # cluster for GKE Connect agent installation/upgrade.
2108
+ # Corresponds to the JSON property `manifest`
2109
+ # @return [Array<Google::Apis::GkehubV1beta::ConnectAgentResource>]
2110
+ attr_accessor :manifest
2111
+
2112
+ def initialize(**args)
2113
+ update!(**args)
2114
+ end
2115
+
2116
+ # Update properties of this object
2117
+ def update!(**args)
2118
+ @manifest = args[:manifest] if args.key?(:manifest)
2119
+ end
2120
+ end
2121
+
1978
2122
  # Response for GenerateRBACRoleBindingYAML.
1979
2123
  class GenerateMembershipRbacRoleBindingYamlResponse
1980
2124
  include Google::Apis::Core::Hashable
@@ -1994,6 +2138,35 @@ module Google
1994
2138
  end
1995
2139
  end
1996
2140
 
2141
+ # GkeCluster contains information specific to GKE clusters.
2142
+ class GkeCluster
2143
+ include Google::Apis::Core::Hashable
2144
+
2145
+ # Output only. If cluster_missing is set then it denotes that the GKE cluster no
2146
+ # longer exists in the GKE Control Plane.
2147
+ # Corresponds to the JSON property `clusterMissing`
2148
+ # @return [Boolean]
2149
+ attr_accessor :cluster_missing
2150
+ alias_method :cluster_missing?, :cluster_missing
2151
+
2152
+ # Immutable. Self-link of the Google Cloud resource for the GKE cluster. For
2153
+ # example: //container.googleapis.com/projects/my-project/locations/us-west1-a/
2154
+ # clusters/my-cluster Zonal clusters are also supported.
2155
+ # Corresponds to the JSON property `resourceLink`
2156
+ # @return [String]
2157
+ attr_accessor :resource_link
2158
+
2159
+ def initialize(**args)
2160
+ update!(**args)
2161
+ end
2162
+
2163
+ # Update properties of this object
2164
+ def update!(**args)
2165
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
2166
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
2167
+ end
2168
+ end
2169
+
1997
2170
  # The `Status` type defines a logical error model that is suitable for different
1998
2171
  # programming environments, including REST APIs and RPC APIs. It is used by [
1999
2172
  # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
@@ -2304,6 +2477,117 @@ module Google
2304
2477
  end
2305
2478
  end
2306
2479
 
2480
+ # KubernetesMetadata provides informational metadata for Memberships
2481
+ # representing Kubernetes clusters.
2482
+ class KubernetesMetadata
2483
+ include Google::Apis::Core::Hashable
2484
+
2485
+ # Output only. Kubernetes API server version string as reported by `/version`.
2486
+ # Corresponds to the JSON property `kubernetesApiServerVersion`
2487
+ # @return [String]
2488
+ attr_accessor :kubernetes_api_server_version
2489
+
2490
+ # Output only. The total memory capacity as reported by the sum of all
2491
+ # Kubernetes nodes resources, defined in MB.
2492
+ # Corresponds to the JSON property `memoryMb`
2493
+ # @return [Fixnum]
2494
+ attr_accessor :memory_mb
2495
+
2496
+ # Output only. Node count as reported by Kubernetes nodes resources.
2497
+ # Corresponds to the JSON property `nodeCount`
2498
+ # @return [Fixnum]
2499
+ attr_accessor :node_count
2500
+
2501
+ # Output only. Node providerID as reported by the first node in the list of
2502
+ # nodes on the Kubernetes endpoint. On Kubernetes platforms that support zero-
2503
+ # node clusters (like GKE-on-GCP), the node_count will be zero and the
2504
+ # node_provider_id will be empty.
2505
+ # Corresponds to the JSON property `nodeProviderId`
2506
+ # @return [String]
2507
+ attr_accessor :node_provider_id
2508
+
2509
+ # Output only. The time at which these details were last updated. This
2510
+ # update_time is different from the Membership-level update_time since
2511
+ # EndpointDetails are updated internally for API consumers.
2512
+ # Corresponds to the JSON property `updateTime`
2513
+ # @return [String]
2514
+ attr_accessor :update_time
2515
+
2516
+ # Output only. vCPU count as reported by Kubernetes nodes resources.
2517
+ # Corresponds to the JSON property `vcpuCount`
2518
+ # @return [Fixnum]
2519
+ attr_accessor :vcpu_count
2520
+
2521
+ def initialize(**args)
2522
+ update!(**args)
2523
+ end
2524
+
2525
+ # Update properties of this object
2526
+ def update!(**args)
2527
+ @kubernetes_api_server_version = args[:kubernetes_api_server_version] if args.key?(:kubernetes_api_server_version)
2528
+ @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
2529
+ @node_count = args[:node_count] if args.key?(:node_count)
2530
+ @node_provider_id = args[:node_provider_id] if args.key?(:node_provider_id)
2531
+ @update_time = args[:update_time] if args.key?(:update_time)
2532
+ @vcpu_count = args[:vcpu_count] if args.key?(:vcpu_count)
2533
+ end
2534
+ end
2535
+
2536
+ # KubernetesResource contains the YAML manifests and configuration for
2537
+ # Membership Kubernetes resources in the cluster. After CreateMembership or
2538
+ # UpdateMembership, these resources should be re-applied in the cluster.
2539
+ class KubernetesResource
2540
+ include Google::Apis::Core::Hashable
2541
+
2542
+ # Output only. The Kubernetes resources for installing the GKE Connect agent
2543
+ # This field is only populated in the Membership returned from a successful long-
2544
+ # running operation from CreateMembership or UpdateMembership. It is not
2545
+ # populated during normal GetMembership or ListMemberships requests. To get the
2546
+ # resource manifest after the initial registration, the caller should make a
2547
+ # UpdateMembership call with an empty field mask.
2548
+ # Corresponds to the JSON property `connectResources`
2549
+ # @return [Array<Google::Apis::GkehubV1beta::ResourceManifest>]
2550
+ attr_accessor :connect_resources
2551
+
2552
+ # Input only. The YAML representation of the Membership CR. This field is
2553
+ # ignored for GKE clusters where Hub can read the CR directly. Callers should
2554
+ # provide the CR that is currently present in the cluster during
2555
+ # CreateMembership or UpdateMembership, or leave this field empty if none exists.
2556
+ # The CR manifest is used to validate the cluster has not been registered with
2557
+ # another Membership.
2558
+ # Corresponds to the JSON property `membershipCrManifest`
2559
+ # @return [String]
2560
+ attr_accessor :membership_cr_manifest
2561
+
2562
+ # Output only. Additional Kubernetes resources that need to be applied to the
2563
+ # cluster after Membership creation, and after every update. This field is only
2564
+ # populated in the Membership returned from a successful long-running operation
2565
+ # from CreateMembership or UpdateMembership. It is not populated during normal
2566
+ # GetMembership or ListMemberships requests. To get the resource manifest after
2567
+ # the initial registration, the caller should make a UpdateMembership call with
2568
+ # an empty field mask.
2569
+ # Corresponds to the JSON property `membershipResources`
2570
+ # @return [Array<Google::Apis::GkehubV1beta::ResourceManifest>]
2571
+ attr_accessor :membership_resources
2572
+
2573
+ # ResourceOptions represent options for Kubernetes resource generation.
2574
+ # Corresponds to the JSON property `resourceOptions`
2575
+ # @return [Google::Apis::GkehubV1beta::ResourceOptions]
2576
+ attr_accessor :resource_options
2577
+
2578
+ def initialize(**args)
2579
+ update!(**args)
2580
+ end
2581
+
2582
+ # Update properties of this object
2583
+ def update!(**args)
2584
+ @connect_resources = args[:connect_resources] if args.key?(:connect_resources)
2585
+ @membership_cr_manifest = args[:membership_cr_manifest] if args.key?(:membership_cr_manifest)
2586
+ @membership_resources = args[:membership_resources] if args.key?(:membership_resources)
2587
+ @resource_options = args[:resource_options] if args.key?(:resource_options)
2588
+ end
2589
+ end
2590
+
2307
2591
  # Response message for the `GkeHub.ListFeatures` method.
2308
2592
  class ListFeaturesResponse
2309
2593
  include Google::Apis::Core::Hashable
@@ -2436,6 +2720,39 @@ module Google
2436
2720
  end
2437
2721
  end
2438
2722
 
2723
+ # Response message for the `GkeHub.ListMemberships` method.
2724
+ class ListMembershipsResponse
2725
+ include Google::Apis::Core::Hashable
2726
+
2727
+ # A token to request the next page of resources from the `ListMemberships`
2728
+ # method. The value of an empty string means that there are no more resources to
2729
+ # return.
2730
+ # Corresponds to the JSON property `nextPageToken`
2731
+ # @return [String]
2732
+ attr_accessor :next_page_token
2733
+
2734
+ # The list of matching Memberships.
2735
+ # Corresponds to the JSON property `resources`
2736
+ # @return [Array<Google::Apis::GkehubV1beta::Membership>]
2737
+ attr_accessor :resources
2738
+
2739
+ # List of locations that could not be reached while fetching this list.
2740
+ # Corresponds to the JSON property `unreachable`
2741
+ # @return [Array<String>]
2742
+ attr_accessor :unreachable
2743
+
2744
+ def initialize(**args)
2745
+ update!(**args)
2746
+ end
2747
+
2748
+ # Update properties of this object
2749
+ def update!(**args)
2750
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2751
+ @resources = args[:resources] if args.key?(:resources)
2752
+ @unreachable = args[:unreachable] if args.key?(:unreachable)
2753
+ end
2754
+ end
2755
+
2439
2756
  # List of fleet namespaces.
2440
2757
  class ListNamespacesResponse
2441
2758
  include Google::Apis::Core::Hashable
@@ -2640,6 +2957,116 @@ module Google
2640
2957
  end
2641
2958
  end
2642
2959
 
2960
+ # Membership contains information about a member cluster.
2961
+ class Membership
2962
+ include Google::Apis::Core::Hashable
2963
+
2964
+ # Authority encodes how Google will recognize identities from this Membership.
2965
+ # See the workload identity documentation for more details: https://cloud.google.
2966
+ # com/kubernetes-engine/docs/how-to/workload-identity
2967
+ # Corresponds to the JSON property `authority`
2968
+ # @return [Google::Apis::GkehubV1beta::Authority]
2969
+ attr_accessor :authority
2970
+
2971
+ # Output only. When the Membership was created.
2972
+ # Corresponds to the JSON property `createTime`
2973
+ # @return [String]
2974
+ attr_accessor :create_time
2975
+
2976
+ # Output only. When the Membership was deleted.
2977
+ # Corresponds to the JSON property `deleteTime`
2978
+ # @return [String]
2979
+ attr_accessor :delete_time
2980
+
2981
+ # Output only. Description of this membership, limited to 63 characters. Must
2982
+ # match the regex: `a-zA-Z0-9*` This field is present for legacy purposes.
2983
+ # Corresponds to the JSON property `description`
2984
+ # @return [String]
2985
+ attr_accessor :description
2986
+
2987
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
2988
+ # endpoint and any additional Kubernetes metadata.
2989
+ # Corresponds to the JSON property `endpoint`
2990
+ # @return [Google::Apis::GkehubV1beta::MembershipEndpoint]
2991
+ attr_accessor :endpoint
2992
+
2993
+ # Optional. An externally-generated and managed ID for this Membership. This ID
2994
+ # may be modified after creation, but this is not recommended. The ID must match
2995
+ # the regex: `a-zA-Z0-9*` If this Membership represents a Kubernetes cluster,
2996
+ # this value should be set to the UID of the `kube-system` namespace object.
2997
+ # Corresponds to the JSON property `externalId`
2998
+ # @return [String]
2999
+ attr_accessor :external_id
3000
+
3001
+ # Optional. Labels for this membership.
3002
+ # Corresponds to the JSON property `labels`
3003
+ # @return [Hash<String,String>]
3004
+ attr_accessor :labels
3005
+
3006
+ # Output only. For clusters using Connect, the timestamp of the most recent
3007
+ # connection established with Google Cloud. This time is updated every several
3008
+ # minutes, not continuously. For clusters that do not use GKE Connect, or that
3009
+ # have never connected successfully, this field will be unset.
3010
+ # Corresponds to the JSON property `lastConnectionTime`
3011
+ # @return [String]
3012
+ attr_accessor :last_connection_time
3013
+
3014
+ # This field informs Fleet-based applications/services/UIs with the necessary
3015
+ # information for where each underlying Cluster reports its metrics.
3016
+ # Corresponds to the JSON property `monitoringConfig`
3017
+ # @return [Google::Apis::GkehubV1beta::MonitoringConfig]
3018
+ attr_accessor :monitoring_config
3019
+
3020
+ # Output only. The full, unique name of this Membership resource in the format `
3021
+ # projects/*/locations/*/memberships/`membership_id``, set during creation. `
3022
+ # membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63
3023
+ # characters in length 2. It must consist of lower case alphanumeric characters
3024
+ # or `-` 3. It must start and end with an alphanumeric character Which can be
3025
+ # expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length
3026
+ # of 63 characters.
3027
+ # Corresponds to the JSON property `name`
3028
+ # @return [String]
3029
+ attr_accessor :name
3030
+
3031
+ # MembershipState describes the state of a Membership resource.
3032
+ # Corresponds to the JSON property `state`
3033
+ # @return [Google::Apis::GkehubV1beta::MembershipState]
3034
+ attr_accessor :state
3035
+
3036
+ # Output only. Google-generated UUID for this resource. This is unique across
3037
+ # all Membership resources. If a Membership resource is deleted and another
3038
+ # resource with the same name is created, it gets a different unique_id.
3039
+ # Corresponds to the JSON property `uniqueId`
3040
+ # @return [String]
3041
+ attr_accessor :unique_id
3042
+
3043
+ # Output only. When the Membership was last updated.
3044
+ # Corresponds to the JSON property `updateTime`
3045
+ # @return [String]
3046
+ attr_accessor :update_time
3047
+
3048
+ def initialize(**args)
3049
+ update!(**args)
3050
+ end
3051
+
3052
+ # Update properties of this object
3053
+ def update!(**args)
3054
+ @authority = args[:authority] if args.key?(:authority)
3055
+ @create_time = args[:create_time] if args.key?(:create_time)
3056
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
3057
+ @description = args[:description] if args.key?(:description)
3058
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
3059
+ @external_id = args[:external_id] if args.key?(:external_id)
3060
+ @labels = args[:labels] if args.key?(:labels)
3061
+ @last_connection_time = args[:last_connection_time] if args.key?(:last_connection_time)
3062
+ @monitoring_config = args[:monitoring_config] if args.key?(:monitoring_config)
3063
+ @name = args[:name] if args.key?(:name)
3064
+ @state = args[:state] if args.key?(:state)
3065
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
3066
+ @update_time = args[:update_time] if args.key?(:update_time)
3067
+ end
3068
+ end
3069
+
2643
3070
  # MembershipBinding is a subresource of a Membership, representing what Fleet
2644
3071
  # Scopes (or other, future Fleet resources) a Membership is bound to.
2645
3072
  class MembershipBinding
@@ -2724,6 +3151,73 @@ module Google
2724
3151
  end
2725
3152
  end
2726
3153
 
3154
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
3155
+ # endpoint and any additional Kubernetes metadata.
3156
+ class MembershipEndpoint
3157
+ include Google::Apis::Core::Hashable
3158
+
3159
+ # ApplianceCluster contains information specific to GDC Edge Appliance Clusters.
3160
+ # Corresponds to the JSON property `applianceCluster`
3161
+ # @return [Google::Apis::GkehubV1beta::ApplianceCluster]
3162
+ attr_accessor :appliance_cluster
3163
+
3164
+ # EdgeCluster contains information specific to Google Edge Clusters.
3165
+ # Corresponds to the JSON property `edgeCluster`
3166
+ # @return [Google::Apis::GkehubV1beta::EdgeCluster]
3167
+ attr_accessor :edge_cluster
3168
+
3169
+ # GkeCluster contains information specific to GKE clusters.
3170
+ # Corresponds to the JSON property `gkeCluster`
3171
+ # @return [Google::Apis::GkehubV1beta::GkeCluster]
3172
+ attr_accessor :gke_cluster
3173
+
3174
+ # Output only. Whether the lifecycle of this membership is managed by a google
3175
+ # cluster platform service.
3176
+ # Corresponds to the JSON property `googleManaged`
3177
+ # @return [Boolean]
3178
+ attr_accessor :google_managed
3179
+ alias_method :google_managed?, :google_managed
3180
+
3181
+ # KubernetesMetadata provides informational metadata for Memberships
3182
+ # representing Kubernetes clusters.
3183
+ # Corresponds to the JSON property `kubernetesMetadata`
3184
+ # @return [Google::Apis::GkehubV1beta::KubernetesMetadata]
3185
+ attr_accessor :kubernetes_metadata
3186
+
3187
+ # KubernetesResource contains the YAML manifests and configuration for
3188
+ # Membership Kubernetes resources in the cluster. After CreateMembership or
3189
+ # UpdateMembership, these resources should be re-applied in the cluster.
3190
+ # Corresponds to the JSON property `kubernetesResource`
3191
+ # @return [Google::Apis::GkehubV1beta::KubernetesResource]
3192
+ attr_accessor :kubernetes_resource
3193
+
3194
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
3195
+ # Corresponds to the JSON property `multiCloudCluster`
3196
+ # @return [Google::Apis::GkehubV1beta::MultiCloudCluster]
3197
+ attr_accessor :multi_cloud_cluster
3198
+
3199
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
3200
+ # Corresponds to the JSON property `onPremCluster`
3201
+ # @return [Google::Apis::GkehubV1beta::OnPremCluster]
3202
+ attr_accessor :on_prem_cluster
3203
+
3204
+ def initialize(**args)
3205
+ update!(**args)
3206
+ end
3207
+
3208
+ # Update properties of this object
3209
+ def update!(**args)
3210
+ @appliance_cluster = args[:appliance_cluster] if args.key?(:appliance_cluster)
3211
+ @edge_cluster = args[:edge_cluster] if args.key?(:edge_cluster)
3212
+ @gke_cluster = args[:gke_cluster] if args.key?(:gke_cluster)
3213
+ @google_managed = args[:google_managed] if args.key?(:google_managed)
3214
+ @kubernetes_metadata = args[:kubernetes_metadata] if args.key?(:kubernetes_metadata)
3215
+ @kubernetes_resource = args[:kubernetes_resource] if args.key?(:kubernetes_resource)
3216
+ @multi_cloud_cluster = args[:multi_cloud_cluster] if args.key?(:multi_cloud_cluster)
3217
+ @on_prem_cluster = args[:on_prem_cluster] if args.key?(:on_prem_cluster)
3218
+ end
3219
+ end
3220
+
2727
3221
  # MembershipFeatureSpec contains configuration information for a single
2728
3222
  # Membership. NOTE: Please use snake case in your feature name.
2729
3223
  class MembershipFeatureSpec
@@ -2880,6 +3374,25 @@ module Google
2880
3374
  end
2881
3375
  end
2882
3376
 
3377
+ # MembershipState describes the state of a Membership resource.
3378
+ class MembershipState
3379
+ include Google::Apis::Core::Hashable
3380
+
3381
+ # Output only. The current state of the Membership resource.
3382
+ # Corresponds to the JSON property `code`
3383
+ # @return [String]
3384
+ attr_accessor :code
3385
+
3386
+ def initialize(**args)
3387
+ update!(**args)
3388
+ end
3389
+
3390
+ # Update properties of this object
3391
+ def update!(**args)
3392
+ @code = args[:code] if args.key?(:code)
3393
+ end
3394
+ end
3395
+
2883
3396
  # **Metering**: Per-Membership Feature State.
2884
3397
  class MeteringMembershipState
2885
3398
  include Google::Apis::Core::Hashable
@@ -2907,6 +3420,90 @@ module Google
2907
3420
  end
2908
3421
  end
2909
3422
 
3423
+ # This field informs Fleet-based applications/services/UIs with the necessary
3424
+ # information for where each underlying Cluster reports its metrics.
3425
+ class MonitoringConfig
3426
+ include Google::Apis::Core::Hashable
3427
+
3428
+ # Immutable. Cluster name used to report metrics. For Anthos on VMWare/Baremetal,
3429
+ # it would be in format `memberClusters/cluster_name`; And for Anthos on
3430
+ # MultiCloud, it would be in format ``azureClusters, awsClusters`/cluster_name`.
3431
+ # Corresponds to the JSON property `cluster`
3432
+ # @return [String]
3433
+ attr_accessor :cluster
3434
+
3435
+ # Immutable. Cluster hash, this is a unique string generated by google code,
3436
+ # which does not contain any PII, which we can use to reference the cluster.
3437
+ # This is expected to be created by the monitoring stack and persisted into the
3438
+ # Cluster object as well as to GKE-Hub.
3439
+ # Corresponds to the JSON property `clusterHash`
3440
+ # @return [String]
3441
+ attr_accessor :cluster_hash
3442
+
3443
+ # Kubernetes system metrics, if available, are written to this prefix. This
3444
+ # defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos
3445
+ # eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but
3446
+ # will migration to be under kubernetes.io/anthos
3447
+ # Corresponds to the JSON property `kubernetesMetricsPrefix`
3448
+ # @return [String]
3449
+ attr_accessor :kubernetes_metrics_prefix
3450
+
3451
+ # Immutable. Location used to report Metrics
3452
+ # Corresponds to the JSON property `location`
3453
+ # @return [String]
3454
+ attr_accessor :location
3455
+
3456
+ # Immutable. Project used to report Metrics
3457
+ # Corresponds to the JSON property `projectId`
3458
+ # @return [String]
3459
+ attr_accessor :project_id
3460
+
3461
+ def initialize(**args)
3462
+ update!(**args)
3463
+ end
3464
+
3465
+ # Update properties of this object
3466
+ def update!(**args)
3467
+ @cluster = args[:cluster] if args.key?(:cluster)
3468
+ @cluster_hash = args[:cluster_hash] if args.key?(:cluster_hash)
3469
+ @kubernetes_metrics_prefix = args[:kubernetes_metrics_prefix] if args.key?(:kubernetes_metrics_prefix)
3470
+ @location = args[:location] if args.key?(:location)
3471
+ @project_id = args[:project_id] if args.key?(:project_id)
3472
+ end
3473
+ end
3474
+
3475
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
3476
+ class MultiCloudCluster
3477
+ include Google::Apis::Core::Hashable
3478
+
3479
+ # Output only. If cluster_missing is set then it denotes that API(gkemulticloud.
3480
+ # googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.
3481
+ # Corresponds to the JSON property `clusterMissing`
3482
+ # @return [Boolean]
3483
+ attr_accessor :cluster_missing
3484
+ alias_method :cluster_missing?, :cluster_missing
3485
+
3486
+ # Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud
3487
+ # cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/
3488
+ # locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/
3489
+ # projects/my-project/locations/us-west1-a/azureClusters/my-cluster //
3490
+ # gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/
3491
+ # attachedClusters/my-cluster
3492
+ # Corresponds to the JSON property `resourceLink`
3493
+ # @return [String]
3494
+ attr_accessor :resource_link
3495
+
3496
+ def initialize(**args)
3497
+ update!(**args)
3498
+ end
3499
+
3500
+ # Update properties of this object
3501
+ def update!(**args)
3502
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
3503
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
3504
+ end
3505
+ end
3506
+
2910
3507
  # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress
2911
3508
  # feature.
2912
3509
  class MultiClusterIngressFeatureSpec
@@ -3028,6 +3625,49 @@ module Google
3028
3625
  end
3029
3626
  end
3030
3627
 
3628
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
3629
+ class OnPremCluster
3630
+ include Google::Apis::Core::Hashable
3631
+
3632
+ # Immutable. Whether the cluster is an admin cluster.
3633
+ # Corresponds to the JSON property `adminCluster`
3634
+ # @return [Boolean]
3635
+ attr_accessor :admin_cluster
3636
+ alias_method :admin_cluster?, :admin_cluster
3637
+
3638
+ # Output only. If cluster_missing is set then it denotes that API(gkeonprem.
3639
+ # googleapis.com) resource for this GKE On-Prem cluster no longer exists.
3640
+ # Corresponds to the JSON property `clusterMissing`
3641
+ # @return [Boolean]
3642
+ attr_accessor :cluster_missing
3643
+ alias_method :cluster_missing?, :cluster_missing
3644
+
3645
+ # Immutable. The on prem cluster's type.
3646
+ # Corresponds to the JSON property `clusterType`
3647
+ # @return [String]
3648
+ attr_accessor :cluster_type
3649
+
3650
+ # Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster.
3651
+ # For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-
3652
+ # a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/
3653
+ # locations/us-west1-a/bareMetalClusters/my-cluster
3654
+ # Corresponds to the JSON property `resourceLink`
3655
+ # @return [String]
3656
+ attr_accessor :resource_link
3657
+
3658
+ def initialize(**args)
3659
+ update!(**args)
3660
+ end
3661
+
3662
+ # Update properties of this object
3663
+ def update!(**args)
3664
+ @admin_cluster = args[:admin_cluster] if args.key?(:admin_cluster)
3665
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
3666
+ @cluster_type = args[:cluster_type] if args.key?(:cluster_type)
3667
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
3668
+ end
3669
+ end
3670
+
3031
3671
  # This resource represents a long-running operation that is the result of a
3032
3672
  # network API call.
3033
3673
  class Operation
@@ -3785,6 +4425,73 @@ module Google
3785
4425
  end
3786
4426
  end
3787
4427
 
4428
+ # ResourceManifest represents a single Kubernetes resource to be applied to the
4429
+ # cluster.
4430
+ class ResourceManifest
4431
+ include Google::Apis::Core::Hashable
4432
+
4433
+ # Whether the resource provided in the manifest is `cluster_scoped`. If unset,
4434
+ # the manifest is assumed to be namespace scoped. This field is used for REST
4435
+ # mapping when applying the resource in a cluster.
4436
+ # Corresponds to the JSON property `clusterScoped`
4437
+ # @return [Boolean]
4438
+ attr_accessor :cluster_scoped
4439
+ alias_method :cluster_scoped?, :cluster_scoped
4440
+
4441
+ # YAML manifest of the resource.
4442
+ # Corresponds to the JSON property `manifest`
4443
+ # @return [String]
4444
+ attr_accessor :manifest
4445
+
4446
+ def initialize(**args)
4447
+ update!(**args)
4448
+ end
4449
+
4450
+ # Update properties of this object
4451
+ def update!(**args)
4452
+ @cluster_scoped = args[:cluster_scoped] if args.key?(:cluster_scoped)
4453
+ @manifest = args[:manifest] if args.key?(:manifest)
4454
+ end
4455
+ end
4456
+
4457
+ # ResourceOptions represent options for Kubernetes resource generation.
4458
+ class ResourceOptions
4459
+ include Google::Apis::Core::Hashable
4460
+
4461
+ # Optional. The Connect agent version to use for connect_resources. Defaults to
4462
+ # the latest GKE Connect version. The version must be a currently supported
4463
+ # version, obsolete versions will be rejected.
4464
+ # Corresponds to the JSON property `connectVersion`
4465
+ # @return [String]
4466
+ attr_accessor :connect_version
4467
+
4468
+ # Optional. Major version of the Kubernetes cluster. This is only used to
4469
+ # determine which version to use for the CustomResourceDefinition resources, `
4470
+ # apiextensions/v1beta1` or`apiextensions/v1`.
4471
+ # Corresponds to the JSON property `k8sVersion`
4472
+ # @return [String]
4473
+ attr_accessor :k8s_version
4474
+
4475
+ # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for
4476
+ # CustomResourceDefinition resources. This option should be set for clusters
4477
+ # with Kubernetes apiserver versions <1.16.
4478
+ # Corresponds to the JSON property `v1beta1Crd`
4479
+ # @return [Boolean]
4480
+ attr_accessor :v1beta1_crd
4481
+ alias_method :v1beta1_crd?, :v1beta1_crd
4482
+
4483
+ def initialize(**args)
4484
+ update!(**args)
4485
+ end
4486
+
4487
+ # Update properties of this object
4488
+ def update!(**args)
4489
+ @connect_version = args[:connect_version] if args.key?(:connect_version)
4490
+ @k8s_version = args[:k8s_version] if args.key?(:k8s_version)
4491
+ @v1beta1_crd = args[:v1beta1_crd] if args.key?(:v1beta1_crd)
4492
+ end
4493
+ end
4494
+
3788
4495
  # Role is the type for Kubernetes roles
3789
4496
  class Role
3790
4497
  include Google::Apis::Core::Hashable
@@ -4169,6 +4876,32 @@ module Google
4169
4876
  @permissions = args[:permissions] if args.key?(:permissions)
4170
4877
  end
4171
4878
  end
4879
+
4880
+ # TypeMeta is the type information needed for content unmarshalling of
4881
+ # Kubernetes resources in the manifest.
4882
+ class TypeMeta
4883
+ include Google::Apis::Core::Hashable
4884
+
4885
+ # APIVersion of the resource (e.g. v1).
4886
+ # Corresponds to the JSON property `apiVersion`
4887
+ # @return [String]
4888
+ attr_accessor :api_version
4889
+
4890
+ # Kind of the resource (e.g. Deployment).
4891
+ # Corresponds to the JSON property `kind`
4892
+ # @return [String]
4893
+ attr_accessor :kind
4894
+
4895
+ def initialize(**args)
4896
+ update!(**args)
4897
+ end
4898
+
4899
+ # Update properties of this object
4900
+ def update!(**args)
4901
+ @api_version = args[:api_version] if args.key?(:api_version)
4902
+ @kind = args[:kind] if args.key?(:kind)
4903
+ end
4904
+ end
4172
4905
  end
4173
4906
  end
4174
4907
  end