google-apis-gkehub_v1beta 0.58.0 → 0.60.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,118 @@ 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
+ # MonitoringConfig informs Fleet-based applications/services/UIs how the metrics
3015
+ # for the underlying cluster is reported to cloud monitoring services. It can be
3016
+ # set from empty to non-empty, but can't be mutated directly to prevent
3017
+ # accidentally breaking the constinousty of metrics.
3018
+ # Corresponds to the JSON property `monitoringConfig`
3019
+ # @return [Google::Apis::GkehubV1beta::MonitoringConfig]
3020
+ attr_accessor :monitoring_config
3021
+
3022
+ # Output only. The full, unique name of this Membership resource in the format `
3023
+ # projects/*/locations/*/memberships/`membership_id``, set during creation. `
3024
+ # membership_id` must be a valid RFC 1123 compliant DNS label: 1. At most 63
3025
+ # characters in length 2. It must consist of lower case alphanumeric characters
3026
+ # or `-` 3. It must start and end with an alphanumeric character Which can be
3027
+ # expressed as the regex: `[a-z0-9]([-a-z0-9]*[a-z0-9])?`, with a maximum length
3028
+ # of 63 characters.
3029
+ # Corresponds to the JSON property `name`
3030
+ # @return [String]
3031
+ attr_accessor :name
3032
+
3033
+ # MembershipState describes the state of a Membership resource.
3034
+ # Corresponds to the JSON property `state`
3035
+ # @return [Google::Apis::GkehubV1beta::MembershipState]
3036
+ attr_accessor :state
3037
+
3038
+ # Output only. Google-generated UUID for this resource. This is unique across
3039
+ # all Membership resources. If a Membership resource is deleted and another
3040
+ # resource with the same name is created, it gets a different unique_id.
3041
+ # Corresponds to the JSON property `uniqueId`
3042
+ # @return [String]
3043
+ attr_accessor :unique_id
3044
+
3045
+ # Output only. When the Membership was last updated.
3046
+ # Corresponds to the JSON property `updateTime`
3047
+ # @return [String]
3048
+ attr_accessor :update_time
3049
+
3050
+ def initialize(**args)
3051
+ update!(**args)
3052
+ end
3053
+
3054
+ # Update properties of this object
3055
+ def update!(**args)
3056
+ @authority = args[:authority] if args.key?(:authority)
3057
+ @create_time = args[:create_time] if args.key?(:create_time)
3058
+ @delete_time = args[:delete_time] if args.key?(:delete_time)
3059
+ @description = args[:description] if args.key?(:description)
3060
+ @endpoint = args[:endpoint] if args.key?(:endpoint)
3061
+ @external_id = args[:external_id] if args.key?(:external_id)
3062
+ @labels = args[:labels] if args.key?(:labels)
3063
+ @last_connection_time = args[:last_connection_time] if args.key?(:last_connection_time)
3064
+ @monitoring_config = args[:monitoring_config] if args.key?(:monitoring_config)
3065
+ @name = args[:name] if args.key?(:name)
3066
+ @state = args[:state] if args.key?(:state)
3067
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
3068
+ @update_time = args[:update_time] if args.key?(:update_time)
3069
+ end
3070
+ end
3071
+
2643
3072
  # MembershipBinding is a subresource of a Membership, representing what Fleet
2644
3073
  # Scopes (or other, future Fleet resources) a Membership is bound to.
2645
3074
  class MembershipBinding
@@ -2724,6 +3153,73 @@ module Google
2724
3153
  end
2725
3154
  end
2726
3155
 
3156
+ # MembershipEndpoint contains information needed to contact a Kubernetes API,
3157
+ # endpoint and any additional Kubernetes metadata.
3158
+ class MembershipEndpoint
3159
+ include Google::Apis::Core::Hashable
3160
+
3161
+ # ApplianceCluster contains information specific to GDC Edge Appliance Clusters.
3162
+ # Corresponds to the JSON property `applianceCluster`
3163
+ # @return [Google::Apis::GkehubV1beta::ApplianceCluster]
3164
+ attr_accessor :appliance_cluster
3165
+
3166
+ # EdgeCluster contains information specific to Google Edge Clusters.
3167
+ # Corresponds to the JSON property `edgeCluster`
3168
+ # @return [Google::Apis::GkehubV1beta::EdgeCluster]
3169
+ attr_accessor :edge_cluster
3170
+
3171
+ # GkeCluster contains information specific to GKE clusters.
3172
+ # Corresponds to the JSON property `gkeCluster`
3173
+ # @return [Google::Apis::GkehubV1beta::GkeCluster]
3174
+ attr_accessor :gke_cluster
3175
+
3176
+ # Output only. Whether the lifecycle of this membership is managed by a google
3177
+ # cluster platform service.
3178
+ # Corresponds to the JSON property `googleManaged`
3179
+ # @return [Boolean]
3180
+ attr_accessor :google_managed
3181
+ alias_method :google_managed?, :google_managed
3182
+
3183
+ # KubernetesMetadata provides informational metadata for Memberships
3184
+ # representing Kubernetes clusters.
3185
+ # Corresponds to the JSON property `kubernetesMetadata`
3186
+ # @return [Google::Apis::GkehubV1beta::KubernetesMetadata]
3187
+ attr_accessor :kubernetes_metadata
3188
+
3189
+ # KubernetesResource contains the YAML manifests and configuration for
3190
+ # Membership Kubernetes resources in the cluster. After CreateMembership or
3191
+ # UpdateMembership, these resources should be re-applied in the cluster.
3192
+ # Corresponds to the JSON property `kubernetesResource`
3193
+ # @return [Google::Apis::GkehubV1beta::KubernetesResource]
3194
+ attr_accessor :kubernetes_resource
3195
+
3196
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
3197
+ # Corresponds to the JSON property `multiCloudCluster`
3198
+ # @return [Google::Apis::GkehubV1beta::MultiCloudCluster]
3199
+ attr_accessor :multi_cloud_cluster
3200
+
3201
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
3202
+ # Corresponds to the JSON property `onPremCluster`
3203
+ # @return [Google::Apis::GkehubV1beta::OnPremCluster]
3204
+ attr_accessor :on_prem_cluster
3205
+
3206
+ def initialize(**args)
3207
+ update!(**args)
3208
+ end
3209
+
3210
+ # Update properties of this object
3211
+ def update!(**args)
3212
+ @appliance_cluster = args[:appliance_cluster] if args.key?(:appliance_cluster)
3213
+ @edge_cluster = args[:edge_cluster] if args.key?(:edge_cluster)
3214
+ @gke_cluster = args[:gke_cluster] if args.key?(:gke_cluster)
3215
+ @google_managed = args[:google_managed] if args.key?(:google_managed)
3216
+ @kubernetes_metadata = args[:kubernetes_metadata] if args.key?(:kubernetes_metadata)
3217
+ @kubernetes_resource = args[:kubernetes_resource] if args.key?(:kubernetes_resource)
3218
+ @multi_cloud_cluster = args[:multi_cloud_cluster] if args.key?(:multi_cloud_cluster)
3219
+ @on_prem_cluster = args[:on_prem_cluster] if args.key?(:on_prem_cluster)
3220
+ end
3221
+ end
3222
+
2727
3223
  # MembershipFeatureSpec contains configuration information for a single
2728
3224
  # Membership. NOTE: Please use snake case in your feature name.
2729
3225
  class MembershipFeatureSpec
@@ -2880,6 +3376,25 @@ module Google
2880
3376
  end
2881
3377
  end
2882
3378
 
3379
+ # MembershipState describes the state of a Membership resource.
3380
+ class MembershipState
3381
+ include Google::Apis::Core::Hashable
3382
+
3383
+ # Output only. The current state of the Membership resource.
3384
+ # Corresponds to the JSON property `code`
3385
+ # @return [String]
3386
+ attr_accessor :code
3387
+
3388
+ def initialize(**args)
3389
+ update!(**args)
3390
+ end
3391
+
3392
+ # Update properties of this object
3393
+ def update!(**args)
3394
+ @code = args[:code] if args.key?(:code)
3395
+ end
3396
+ end
3397
+
2883
3398
  # **Metering**: Per-Membership Feature State.
2884
3399
  class MeteringMembershipState
2885
3400
  include Google::Apis::Core::Hashable
@@ -2907,6 +3422,90 @@ module Google
2907
3422
  end
2908
3423
  end
2909
3424
 
3425
+ # MonitoringConfig informs Fleet-based applications/services/UIs how the metrics
3426
+ # for the underlying cluster is reported to cloud monitoring services. It can be
3427
+ # set from empty to non-empty, but can't be mutated directly to prevent
3428
+ # accidentally breaking the constinousty of metrics.
3429
+ class MonitoringConfig
3430
+ include Google::Apis::Core::Hashable
3431
+
3432
+ # Optional. Cluster name used to report metrics. For Anthos on VMWare/Baremetal/
3433
+ # MultiCloud clusters, it would be in format `cluster_type`/`cluster_name`, e.g.,
3434
+ # "awsClusters/cluster_1".
3435
+ # Corresponds to the JSON property `cluster`
3436
+ # @return [String]
3437
+ attr_accessor :cluster
3438
+
3439
+ # Optional. For GKE and Multicloud clusters, this is the UUID of the cluster
3440
+ # resource. For VMWare and Baremetal clusters, this is the kube-system UID.
3441
+ # Corresponds to the JSON property `clusterHash`
3442
+ # @return [String]
3443
+ attr_accessor :cluster_hash
3444
+
3445
+ # Optional. Kubernetes system metrics, if available, are written to this prefix.
3446
+ # This defaults to kubernetes.io for GKE, and kubernetes.io/anthos for Anthos
3447
+ # eventually. Noted: Anthos MultiCloud will have kubernetes.io prefix today but
3448
+ # will migration to be under kubernetes.io/anthos.
3449
+ # Corresponds to the JSON property `kubernetesMetricsPrefix`
3450
+ # @return [String]
3451
+ attr_accessor :kubernetes_metrics_prefix
3452
+
3453
+ # Optional. Location used to report Metrics
3454
+ # Corresponds to the JSON property `location`
3455
+ # @return [String]
3456
+ attr_accessor :location
3457
+
3458
+ # Optional. Project used to report Metrics
3459
+ # Corresponds to the JSON property `projectId`
3460
+ # @return [String]
3461
+ attr_accessor :project_id
3462
+
3463
+ def initialize(**args)
3464
+ update!(**args)
3465
+ end
3466
+
3467
+ # Update properties of this object
3468
+ def update!(**args)
3469
+ @cluster = args[:cluster] if args.key?(:cluster)
3470
+ @cluster_hash = args[:cluster_hash] if args.key?(:cluster_hash)
3471
+ @kubernetes_metrics_prefix = args[:kubernetes_metrics_prefix] if args.key?(:kubernetes_metrics_prefix)
3472
+ @location = args[:location] if args.key?(:location)
3473
+ @project_id = args[:project_id] if args.key?(:project_id)
3474
+ end
3475
+ end
3476
+
3477
+ # MultiCloudCluster contains information specific to GKE Multi-Cloud clusters.
3478
+ class MultiCloudCluster
3479
+ include Google::Apis::Core::Hashable
3480
+
3481
+ # Output only. If cluster_missing is set then it denotes that API(gkemulticloud.
3482
+ # googleapis.com) resource for this GKE Multi-Cloud cluster no longer exists.
3483
+ # Corresponds to the JSON property `clusterMissing`
3484
+ # @return [Boolean]
3485
+ attr_accessor :cluster_missing
3486
+ alias_method :cluster_missing?, :cluster_missing
3487
+
3488
+ # Immutable. Self-link of the Google Cloud resource for the GKE Multi-Cloud
3489
+ # cluster. For example: //gkemulticloud.googleapis.com/projects/my-project/
3490
+ # locations/us-west1-a/awsClusters/my-cluster //gkemulticloud.googleapis.com/
3491
+ # projects/my-project/locations/us-west1-a/azureClusters/my-cluster //
3492
+ # gkemulticloud.googleapis.com/projects/my-project/locations/us-west1-a/
3493
+ # attachedClusters/my-cluster
3494
+ # Corresponds to the JSON property `resourceLink`
3495
+ # @return [String]
3496
+ attr_accessor :resource_link
3497
+
3498
+ def initialize(**args)
3499
+ update!(**args)
3500
+ end
3501
+
3502
+ # Update properties of this object
3503
+ def update!(**args)
3504
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
3505
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
3506
+ end
3507
+ end
3508
+
2910
3509
  # **Multi-cluster Ingress**: The configuration for the MultiClusterIngress
2911
3510
  # feature.
2912
3511
  class MultiClusterIngressFeatureSpec
@@ -3028,6 +3627,49 @@ module Google
3028
3627
  end
3029
3628
  end
3030
3629
 
3630
+ # OnPremCluster contains information specific to GKE On-Prem clusters.
3631
+ class OnPremCluster
3632
+ include Google::Apis::Core::Hashable
3633
+
3634
+ # Immutable. Whether the cluster is an admin cluster.
3635
+ # Corresponds to the JSON property `adminCluster`
3636
+ # @return [Boolean]
3637
+ attr_accessor :admin_cluster
3638
+ alias_method :admin_cluster?, :admin_cluster
3639
+
3640
+ # Output only. If cluster_missing is set then it denotes that API(gkeonprem.
3641
+ # googleapis.com) resource for this GKE On-Prem cluster no longer exists.
3642
+ # Corresponds to the JSON property `clusterMissing`
3643
+ # @return [Boolean]
3644
+ attr_accessor :cluster_missing
3645
+ alias_method :cluster_missing?, :cluster_missing
3646
+
3647
+ # Immutable. The on prem cluster's type.
3648
+ # Corresponds to the JSON property `clusterType`
3649
+ # @return [String]
3650
+ attr_accessor :cluster_type
3651
+
3652
+ # Immutable. Self-link of the Google Cloud resource for the GKE On-Prem cluster.
3653
+ # For example: //gkeonprem.googleapis.com/projects/my-project/locations/us-west1-
3654
+ # a/vmwareClusters/my-cluster //gkeonprem.googleapis.com/projects/my-project/
3655
+ # locations/us-west1-a/bareMetalClusters/my-cluster
3656
+ # Corresponds to the JSON property `resourceLink`
3657
+ # @return [String]
3658
+ attr_accessor :resource_link
3659
+
3660
+ def initialize(**args)
3661
+ update!(**args)
3662
+ end
3663
+
3664
+ # Update properties of this object
3665
+ def update!(**args)
3666
+ @admin_cluster = args[:admin_cluster] if args.key?(:admin_cluster)
3667
+ @cluster_missing = args[:cluster_missing] if args.key?(:cluster_missing)
3668
+ @cluster_type = args[:cluster_type] if args.key?(:cluster_type)
3669
+ @resource_link = args[:resource_link] if args.key?(:resource_link)
3670
+ end
3671
+ end
3672
+
3031
3673
  # This resource represents a long-running operation that is the result of a
3032
3674
  # network API call.
3033
3675
  class Operation
@@ -3785,6 +4427,73 @@ module Google
3785
4427
  end
3786
4428
  end
3787
4429
 
4430
+ # ResourceManifest represents a single Kubernetes resource to be applied to the
4431
+ # cluster.
4432
+ class ResourceManifest
4433
+ include Google::Apis::Core::Hashable
4434
+
4435
+ # Whether the resource provided in the manifest is `cluster_scoped`. If unset,
4436
+ # the manifest is assumed to be namespace scoped. This field is used for REST
4437
+ # mapping when applying the resource in a cluster.
4438
+ # Corresponds to the JSON property `clusterScoped`
4439
+ # @return [Boolean]
4440
+ attr_accessor :cluster_scoped
4441
+ alias_method :cluster_scoped?, :cluster_scoped
4442
+
4443
+ # YAML manifest of the resource.
4444
+ # Corresponds to the JSON property `manifest`
4445
+ # @return [String]
4446
+ attr_accessor :manifest
4447
+
4448
+ def initialize(**args)
4449
+ update!(**args)
4450
+ end
4451
+
4452
+ # Update properties of this object
4453
+ def update!(**args)
4454
+ @cluster_scoped = args[:cluster_scoped] if args.key?(:cluster_scoped)
4455
+ @manifest = args[:manifest] if args.key?(:manifest)
4456
+ end
4457
+ end
4458
+
4459
+ # ResourceOptions represent options for Kubernetes resource generation.
4460
+ class ResourceOptions
4461
+ include Google::Apis::Core::Hashable
4462
+
4463
+ # Optional. The Connect agent version to use for connect_resources. Defaults to
4464
+ # the latest GKE Connect version. The version must be a currently supported
4465
+ # version, obsolete versions will be rejected.
4466
+ # Corresponds to the JSON property `connectVersion`
4467
+ # @return [String]
4468
+ attr_accessor :connect_version
4469
+
4470
+ # Optional. Major version of the Kubernetes cluster. This is only used to
4471
+ # determine which version to use for the CustomResourceDefinition resources, `
4472
+ # apiextensions/v1beta1` or`apiextensions/v1`.
4473
+ # Corresponds to the JSON property `k8sVersion`
4474
+ # @return [String]
4475
+ attr_accessor :k8s_version
4476
+
4477
+ # Optional. Use `apiextensions/v1beta1` instead of `apiextensions/v1` for
4478
+ # CustomResourceDefinition resources. This option should be set for clusters
4479
+ # with Kubernetes apiserver versions <1.16.
4480
+ # Corresponds to the JSON property `v1beta1Crd`
4481
+ # @return [Boolean]
4482
+ attr_accessor :v1beta1_crd
4483
+ alias_method :v1beta1_crd?, :v1beta1_crd
4484
+
4485
+ def initialize(**args)
4486
+ update!(**args)
4487
+ end
4488
+
4489
+ # Update properties of this object
4490
+ def update!(**args)
4491
+ @connect_version = args[:connect_version] if args.key?(:connect_version)
4492
+ @k8s_version = args[:k8s_version] if args.key?(:k8s_version)
4493
+ @v1beta1_crd = args[:v1beta1_crd] if args.key?(:v1beta1_crd)
4494
+ end
4495
+ end
4496
+
3788
4497
  # Role is the type for Kubernetes roles
3789
4498
  class Role
3790
4499
  include Google::Apis::Core::Hashable
@@ -4169,6 +4878,32 @@ module Google
4169
4878
  @permissions = args[:permissions] if args.key?(:permissions)
4170
4879
  end
4171
4880
  end
4881
+
4882
+ # TypeMeta is the type information needed for content unmarshalling of
4883
+ # Kubernetes resources in the manifest.
4884
+ class TypeMeta
4885
+ include Google::Apis::Core::Hashable
4886
+
4887
+ # APIVersion of the resource (e.g. v1).
4888
+ # Corresponds to the JSON property `apiVersion`
4889
+ # @return [String]
4890
+ attr_accessor :api_version
4891
+
4892
+ # Kind of the resource (e.g. Deployment).
4893
+ # Corresponds to the JSON property `kind`
4894
+ # @return [String]
4895
+ attr_accessor :kind
4896
+
4897
+ def initialize(**args)
4898
+ update!(**args)
4899
+ end
4900
+
4901
+ # Update properties of this object
4902
+ def update!(**args)
4903
+ @api_version = args[:api_version] if args.key?(:api_version)
4904
+ @kind = args[:kind] if args.key?(:kind)
4905
+ end
4906
+ end
4172
4907
  end
4173
4908
  end
4174
4909
  end